An OGC API to geospatial data

pygeoapi.io

OSGeo Project FOSS4G 2022 Florence

This presentation available at https://pygeoapi.io/presentations/foss4g2022

Table of contents

  • Project overview
  • Core capabilities
  • Latest developments
  • Selected featured projects
  • Roadmap
  • Support

Project overview

Say hello to pygeoapi

Project Overview

  • Geospatial data Web API framework via OGC API
  • REST/JSON/OpenAPI/Swagger
  • OGC Compliant
  • OSGeo Project
  • International team (Canada, Netherlands, Greece, Italy, New Zealand, United States, Spain)
    • Numerous core contributors
    • 21000 upstream contributors (dependencies)

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 and data binding
  • Robust plugin framework (data connections, formats, processing)
  • Easy deployment (pip install, Docker, conda, UbuntuGIS)
  • Minimal core dependencies

Provider plugin framework

  • Features (Elasticsearch, PostgreSQL/PostGIS, CSV, GeoJSON, OGR, MongoDB, Esri)
  • Coverages (xarray, rasterio)
  • Tiles (MinIO, ZXY directory tree)
  • Records (Elasticsearch, TinyDB)
  • Implement your own!

Processing framework

  • Expose Python workflow as processes
  • Process manager support for job control (TinyDB)
  • Implement your own!

Implementing your own Plugin

  • Develop / propose / maintain as core plugin
  • Develop / maintain in your own repository

schema.org

  • Lower the barrier to data search
  • HTML encoding is annotated as schema.org/Dataset to facilitate search engines
  • Google dataset search locates pygeoapi datasets

Linked Data - JSON-LD

  • JSON-LD provided as additional representation
  • Default out of the box functionality for most pygeoapi resources / endpoints
  • Additional configuration

Deploying

Numerous deployment options

  • PyPI
  • UbuntuGIS
  • Docker
  • Conda
  • FreeBSD

Core Capabilities

OpenAPI

OGC API - Features

OGC API - Coverages

OGC API - Records

OGC API - Tiles

OGC API - Processes

OGC API - Environmental Data Retrieval

SpatioTemporal Asset Catalog (STAC)

HTML templating

Latest developments

Breaking!

www.osgeo.org/foundation-news/pygeoapi-graduates-osgeo-incubation

OGC API sprint participation

  • Leading/following implementation
  • Rapid/early adoption of specifications/update
  • Experimentation (servers, clients)
  • OGC/OSGeo/ASF Joint Sprint (March 2022)
  • Collaboration
    • OSGeo projects
    • OGC API implementing clients/servers

OGC API - Routes Implementation

New core committers

Welcome Joana Simoes, Ph.D (@doublebyte)

  • Developer Relations, OGC
  • Long time contributor to FOSS4G
  • OSGeo Charter member circa 2017
  • Vice-president OSGeo Portugal Local Chapter
  • pygeoapi: OGC API Sprints, Features, Tiles, MongoDB, Elasticsearch

New core committers

Welcome Ben Webb (@webb-ben)

  • Lincoln Institute of Land Policy
  • Center for Geospatial Solutions
  • US Internet of Water
  • pygeoapi: Provider plugins

Service providers

  • training
  • setup/installation/deployment
  • custom integration
  • bug fixing
  • features/enhancements
  • core development
  • maintenance/packaging/distribution
  • documentation

Hierarchical collections


resources:
    naturalearth/10m-cultural-vectors/admin_0_countries:
        ...
    naturalearth/10m-physical-vectors/coastline:
        ...
					

docs.pygeoapi.io/en/latest/configuration.html#hierarchical-collections

More new features

  • HTML: migration to Bootstrap
  • Hidden resource publication (publishing without advertising)
  • New provider plugins: (Esri, Socrata, STAC HATEOAS)
  • Anti-meridian support
  • Gzip support

Selected recent projects

WIS2 in a box

docs.wis2box.wis.wmo.int

US Geoplatform.gov

  • US Geospatial Platform (Geoplatform) provides a central point of access to federal geospatial metadata, services and data
  • Aligns with FAIR principles
  • Powered by numerous FOSS4G components
  • Aligns with FAIR principles
  • 100+ National Geospatial Data Assets

geoapi.geoplatform.gov

eMOTIONAL Cities

  • Mapping the cities through the senses of those who make them
  • Urban living and mental health and wellbeing

emotionalcities-h2020.eu

British Geological Survey - OGCAPI Server

  • BGS OpenGeoscience geospatial data

ogcapi.bgs.ac.uk

GeoE3

  • A Geospatially Enabled Ecosystem for Europe
  • Data integration platform demonstrating how vital connections between existing and emerging national, regional, and cross-border digital services can be made

geoe3platform.eu/geoe3

geoconnex.us

  • The Geoconnex project is about providing technical infrastructure and guidance to create an open, community-contribution model for a knowledge graph linking hydrologic features in the United States, published in accordance with Spatial Data on the Web best practives as an implementation of Internet of Water principles

geoconnex.us

River Runner

merit.internetofwater.app

Roadmap

Roadmap

  • 1.0
    • OGC API - Maps
    • OGC API - Styles
    • API Refactor
  • Transactions
  • Google BigQuery provider plugin

Support

pygeoapi.io/community/service-providers

Links

Thank you!

Grazie!

@tomkralidis @JMendesDeJesus @justb4 @pvgenuchten @tzotsos @alpha-beta-soup @francbartoli @doublebyte