pygeoapi abstract for Maps for the Web - geopython/pygeoapi GitHub Wiki

Title

pygeoapi - Towards a Python Web API for OGC Standard Maps

Abstract

Recently, the proliferation of REST [1] as an architectural style as well as OpenAPI [2] has resulted in broader adoption of a leaner service contract and the OGC transforming its workflow in developing a new generation of API specifications like the OGC API - Features (OAFeat, formerly WFS 3) for data access. OAFeat [3] implements the aforementioned standards to lower the barrier to implementation, especially for mass-market/non-geospatial developers. OAFeat is being actively developed in the open on GitHub. In addition, SpatioTemporal Asset Catalog (STAC)[6] is a community specification being developed in parallel to OAFeat. STAC intends to standardize how geospatial assets are exposed online and queried and is oriented for both static collections or dynamic catalogues of satellite imagery.

pygeoapi [7] is a reference server implementation compliant with the OGC API - Features specification. Implemented in Python, pygeoapi supports many other OGC APIs via the Flask web framework and a fully integrated OpenAPI structure. Lightweight, easy to deploy and cloud-ready, pygeoapi's architecture facilitates publishing datasets from multiple sources into an OAFeat compliant server for now. Implementations of other OGC APIs are in the roadmap to version 1.0 and the OGC API - Tiles [4] is next to come to support initially vector tiles for the collections of OAFeat features. A first step to allow web mapping clients to consume them from maps.

pygeoapi follows a clear separation structure with a view, provider/plugin and entry point module. The view approach allows for easy integration with other frameworks like Starlette and Django. The provider abstracts connectivity to numerous data sources (CSV, SQLite3, GeoJSON, Elasticsearch, GDAL/OGR) and provides extensibility to support additional formats.

This presentation will provide an overview of pygeoapi, current status and more importantly next steps for web mapping applications as part of the evolution of the project.

Authors affiliation