The geopython Community and Ecosystem

					>>> import geopython
geopython.github.io

This presentation available at geopython.github.io/presentation

Outline

  • Why Python for Geospatial?
  • Projects
  • Standards Support
  • Community

Why Python for Geospatial?

  • Minimal Setup
  • Easy to read and understand
  • Availability
  • Ubiquitous
  • Ecosystem of tools (PyPI, GitHub, etc.)
  • Can glue to C/C++ building blocks
  • Fast (enough)
    • Rapid development

Projects

  • pycsw
  • PyWPS
  • OWSLib
  • GeoHealthCheck
  • GeoUsage
  • MetaSearch
  • Stetl
  • pygeoapi
  • pygeometa
  • pygeofilter
  • pygml

More projects available at GitHub

Projects

  • GeoNode
  • pyproj
  • MapProxy
  • Fiona
  • Rasterio
  • Shapely
  • EOxServer
  • istSOS
  • MapScript

At a Glance: Standards Matrix

Software Standards Function Component
pycsw OGC API, CSW Publish/search/discover Server
PyWPS WPS Processing Server
OWSLib OGC API, WxS Discover/visualize/access Client
GeoHealthCheck WxS Quality of service Client
GeoUsage WxS Service metrics/analysis Toolkit
MetaSearch (QGIS) OGC API, CSW Discover/visualize/access Client
Stetl GML/GPKG/JSON/OWS Spatial ETL Toolkit
pygeoapi OGC API, STAC Discovery/visualize/access/process Server
pygeometa ISO, OGC Metadata management Toolkit
pygml OGC GML GML parser Toolkit
pygeofilter OGC Filter, CQL FES/CQL parser Toolkit

pygeoapi

  • Created by Tom Kralidis in 2018 on Valentine's Day with ❤️
  • Geospatial data Web API framework via OGC API
  • International team (Canada, Netherlands, Greece, Italy, New Zealand, United States, Spain)
  • OSGeo Project
  • OGC Reference Implementation

Install in 5 minutes


python3 -m venv pygeoapi
cd pygeoapi
. bin/activate
git clone https://github.com/geopython/pygeoapi.git
cd pygeoapi
pip3 install -r requirements.txt
python3 setup.py install
cp pygeoapi-config.yml example-config.yml
vi example-config.yml  # edit as required
export PYGEOAPI_CONFIG=example-config.yml
export PYGEOAPI_OPENAPI=example-openapi.yml
pygeoapi openapi generate $PYGEOAPI_CONFIG --output-file $PYGEOAPI_OPENAPI
pygeoapi serve
# in another terminal
curl http://localhost:5000  # or open in a web browser
                                

Technical Overview

  • Core abstract API; web framework agnostic (default Flask)
  • YAML configuration (metadata, dataset connections
  • Automated OpenAPI document generation (data binding)
  • Robust plugin framework (data connections, formats, processing)
  • Easy deployment (pip3 install, Docker, conda, UbuntuGIS)
  • Minimal dependencies
pycsw
  • pycsw is an OGC API - Records and OGC CSW server implementation written in Python
  • Open Source project released under the MIT license
  • Runs on all major platforms (Windows, Linux, Mac OS X)
  • OSGeo Project since 11 March 2015

Introduction

  • pycsw fully implements the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web]
  • pycsw also implements OGC API - Records, CQL, OpenSearch, OAI-PMH, SRU, STAC
  • pycsw allows for the publishing and discovery of geospatial metadata

Introduction

The project is certified OGC Compliant, and is an OGC Reference Implementation for both CSW 2.0.2 and 3.0.0

Aiming OGC API - Records Reference Implementation

This product conforms to the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web], Revision 2.0.2. OGC, OGC®, and CERTIFIED OGC COMPLIANT are trademarks or registered trademarks of the Open Geospatial Consortium, Inc. in the United States and other countries.

This product conforms to the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web], Revision 3.0.0. OGC, OGC®, and CERTIFIED OGC COMPLIANT are trademarks or registered trademarks of the Open Geospatial Consortium, Inc. in the United States and other countries.

This product conforms to the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web], Revision 2.0.2. OGC, OGC®, and CERTIFIED OGC COMPLIANT are trademarks or registered trademarks of the Open Geospatial Consortium, Inc. in the United States and other countries.

pycsw is an official OSGeo Project

OSGeo Project

OWSLib

  • Created by Sean Gillies in 2006
  • Swiss army knife client for OGC standards (APIs, formats)
  • OGC WxS
  • OGC API

pygeometa

  • Created by Tom Kralidis in 2009
  • Originally named “pygdm” as part of larger internal geospatial data management workflow at Environment Canada
  • Pulled out as a standalone project (pygeometa) in 2014
  • Published to GitHub in 2015
  • Original focus on static discovery metadata for ISO 19115
  • Increased focus on automated workflow and run-time pipelines
  • CLI or Python API
  • Support additional formats
  • Multilingual support
  • Support for 'base' MCF reuse (i.e. contacts)
  • Schema validation (new!)
  • Extensible
  • allows for additional properties
  • add your own Metadata Formats!!

Doing Geospatial in Python workshop

  • In depth workshop on Python geospatial tooling
  • Data, projections, metadata, publishing, analysis, visualization, and more!
  • Interactive Jupyter notebooks
  • Clone locally or use online (Binder)

Links