pygeoapi Environmental Data Retrieval
This repository contains SQL pygeoapi providers for OGC API - Environmental Data Retrieval (EDR).
OGC API - EDR
The configuration for SQL OGC API - EDR follows that of pygeoapi for OGC API - Features, with the addition of two sections edr_fields and external_tables.
For more detailed documentation on the creation of a pygeoapi configuration file, refer
to the docs.
Config Explanation
- The
tablefield represents the top level table that all joins are relative to - The
edr_fieldssection defines the columns of your SQL table and their corresponding field in OGC API - EDR.- Fields are defined in the format
TABLE.COLUMN
- Fields are defined in the format
- The
external_tablessection allows foriegn table joins to allowedr_fieldsto refer to any table/column with a mapped relationship to the primary table.foreignis the column in the primary table defined in thetablefieldremoteis the column in the foreign table defined in theexternal_tables- Example: The config below describes a schema with a table named
locations. Its has a keyobservation_id_in_locations_tablewhich is a reference and we can join this to the primary tableobservationsusing theobservation_idcolumn.
external_tables: locations: remote: observation_id_in_locations_table foreign: observation_idIn many cases, theforeignandremotefields will be the same if you want to join the same key name from the primary table to the foreign table. (i.e. if you have aobservation_idfield in the primary table andobservation_idfield in the table for locations that associates the two)- Example: The config below describes a schema with a table named
Postgres
The configuration for Postgres EDR is as follows:
- type: edr
name: pgedr.PostgresEDRProvider
data: # Same as PostgresSQLProvider
host: ${POSTGRES_HOST}
dbname: ${POSTGRES_DB}
user: ${POSTGRES_USER}
password: ${POSTGRES_PASSWORD}
# the schema in which the relevant tables are located
search_path: [capture]
table: waterservices_daily
edr_fields: # Required EDR Fields
id_field: id # Result identifier field
geom_field: geometry # Result geometry field
time_field: time # Result time field
location_field: monitoring_location_id # Result location identifier field
result_field: value # Result value/timeseries field
parameter_id: parameter_code # Result parameter id field
parameter_name: waterservices_timeseries_metadata.parameter_name # Result parameter name field
parameter_unit: unit_of_measure # Result parameter unit field
external_tables: # Additional table joins
waterservices_timeseries_metadata: # JOIN waterservices_timeseries_metadata ON waterservices_daily.parameter_code=waterservices_timeseries_metadata.parameter_code
foreign: parameter_code
remote: parameter_code
MySQL
The configuration for MySQL EDR is as follows:
- type: edr
name: pgedr.MySQLEDRProvider
data: # Same as MySQLProvider
host: ${MYSQL_HOST}
port: ${MYSQL_PORT}
dbname: ${MYSQL_DATABASE}
user: ${MYSQL_USER}
password: ${MYSQL_PASSWORD}
search_path: [${MYSQL_DATABASE}]
table: landing_observations
edr_fields: # Required EDR Fields
id_field: id
geom_field: airports.airport_locations.geometry_wkt
time_field: time
location_field: location_id
result_field: value
parameter_id: parameter_id
parameter_name: airport_parameters.name
parameter_unit: airport_parameters.units
external_tables: # Additional table joins
airports: # JOIN airports ON landing_observations.location_id=airports.code
foreign: location_id
remote: code
airports.airport_locations: # JOIN airport_locations ON airports.code=airport_locations.id
foreign: code
remote: id
airport_parameters: # JOIN airport_parameters ON landing_observations.parameter_id=airport_parameters.id
foreign: parameter_id
remote: id
Metadata
Release files for pgedr 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pgedr-0.3.0.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pgedr-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.4 kB
Release files / pgedr-0.3.0.tar.gz
| Download URL | pgedr-0.3.0.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1dd295c2559551ca09a31b265eaa42e16b955c19b8a61d73324a49bb6c2b39a1
|
|
BLAKE2b-256 checksum How to use checksums |
b4ad51b0828455660c6fef35f49e5fe598555062e5ddc25cfe9b2c9eaca68eee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency logRelease files / pgedr-0.3.0-py3-none-any.whl
| Download URL | pgedr-0.3.0-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
167b4c0120c916710639dfb14fddcd00a1184bb2ba5ceb39ebdf9e4ad4406b95
|
|
BLAKE2b-256 checksum How to use checksums |
5df5c39eccff13c2c16a9f213ebf50d276d69989389dab965d3a13961236c286
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency log