Skip to content
This repository was archived by the owner on Nov 5, 2022. It is now read-only.
This repository was archived by the owner on Nov 5, 2022. It is now read-only.

pygeoapi integration #22

@isedwards

Description

@isedwards

pygeoapi is a Python server implementation of the OGC API suite of standards.

This issue exists to discuss the best approach to integrating pygeoapi into opencdms-api (and possibly also import parts into pyopencdms).

Approach

pyopencdms takes the same architectural approach as the bottom two layers of pygeoapi. Specifically:

  1. Where pygeoapi implements different "providers" for different sources of geospatial data (e.g. CSV file, PostGIS database etc.) - pyopencdms will implement different "providers" for different Climate Data Management System (CDMS) databases
  2. The import opencdms Python package in the pyopencdms repository is equivalent to the "Core" of pygeoapi that exposes an "internal API". This is will be an internal Python API that can be used to manage data from all CDMS providers in the same way - in our case, it is useful for the Python API to be a separate library for scientific users who are working directly with data and are not interested in a Web API.

opencdms-api is our web server backend that will use the "internal API" from pyopencdms to provide one of more Web APIs. This is equivalent to the "web" component of pygeoapi (although the majority of our configuration is likely to be in the OpenCDMS Application Database rather than YAML).

pygeoapi architecture

(Image from pygeoapi presentation)

Integration

Can pygeoapi be integrated into pyopencdms and opencdms-api?

  • OGC API Web Processing Service (WPS)

    • Can we reuse pygeoapi's internal API for processes in pyopencdms?
    • Can we reuse pygeoapi's WPS Web API for processes in opencdms-api?
  • OGC API Environmental Data Retrieval (EDR)

    • Can we extend (or be inspired by) EDR to create a common API for Environmental Data Management (EDM) in opencdms-api?
    • Does the deign of the "EDM" Web API impact on our Python internal API in pyopencdms?
  • Using opencdms-api as a reverse-proxy for pygeoapi

    • opencdms-api has the capability to mount other Python WSGI applications and expose their APIs unaltered. A possible advantage of this 'pass-through' approach is that opencdms-api can be used to authenticate users of pygeoapi APIs using credentials in a CDMS.

Can pyopencdms be integrated into pygeoapi?

  • Does it make sense to create an opencdms provider for pygeoapi that allows all supported CDMSs to be data providers for pygeoapi?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions