Skip to content

pygeoapi abstract for foss4g Europe 2018

Tom Kralidis edited this page Apr 17, 2018 · 8 revisions

Title

pygeoapi - Towards a Python Web API for Emerging OGC Standards

Abstract

The Open Geospatial Consortium (OGC) has been a key standards body in support of geospatial interoperability providing numerous specifications for data (Geography Markup Language) and interfaces (Web Map Service, Web Feature Service, Catalogue Service for the Web, etc.). These standards have provided broad interoperability for decades and supported by numerous open source and proprietary implementations.

Recently, the proliferation of REST [1] as an architectural style as well as OpenAPI [2], W3C, and JSON have resulted in the OGC transforming its processes in developing WFS 3.0 as a data access specification. WFS 3.0 [3] implements the aforementioned standards to lower the barrier to implementation, especially for mass market/non-geospatial developers. WFS 3.0 is being actively developed in the open on GitHub. In addition, SpatioTemporal Asset Catalog (STAC)[4] is a community specification being developed in parallel to WFS 3.0. STAC intends standardize how geospatial assets are exposed online and queried, and is oriented for both static collections or dynamic catalogues of satellite imagery.

pygeoapi [5] is among the current emerging WFS3.0 server implementations. Implemented in Python, pygeoapi supports WFS 3.0 via the Flask web framework and a fully integrated OpenAPI structure. Lightweight and easy to deploy, pygeoapi's architecture facilitates publishing datasets from multiple sources into a WFS 3.0 compliant server.

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

This presentation will provide an overview of pygeoapi, current status and next steps as part of the evolution of the project.

Authors affiliation

Clone this wiki locally