Skip to content

Commit d7c7122

Browse files
authored
Add SensorThings API EDR Provider (geopython#1928)
* Port SensorthingsEDR provider * Fix flake8 * Respond to PR feedback * Implement PR feedback * Remove noqa lines Formate STA EDR provider such that it does not require #noqa to pass CI * Fix CoverageJSON capitalization
1 parent d809647 commit d7c7122

File tree

5 files changed

+882
-1
lines changed

5 files changed

+882
-1
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ jobs:
142142
pytest tests/test_parquet_provider.py
143143
pytest tests/test_postgresql_provider.py
144144
pytest tests/test_rasterio_provider.py
145+
pytest tests/test_sensorthings_edr_provider.py
145146
pytest tests/test_sensorthings_provider.py
146147
pytest tests/test_socrata_provider.py
147148
# pytest tests/test_socrata_provider_live.py.py # NOTE: these are skipped in the file but listed here for completeness

docs/source/data-publishing/ogcapi-edr.rst

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,22 @@ Providers
1414
---------
1515

1616
pygeoapi core EDR providers are listed below, along with a matrix of supported query
17-
parameters.
17+
types and query arguments.
18+
19+
.. csv-table::
20+
:header: Provider, Position, Radius, Area, Cube, Trajectory, Corridor, Items, Locations, Instances
21+
:align: left
22+
23+
`xarray-edr`_,✅,❌,❌,✅,❌,❌,❌,❌,❌
24+
`SensorThingsEDR`_,❌,❌,✅,✅,❌,❌,✅,✅,❌
25+
1826

1927
.. csv-table::
2028
:header: Provider, coords, parameter-name, datetime
2129
:align: left
2230

2331
`xarray-edr`_,✅,✅,✅
32+
`SensorThingsEDR`_,✅,✅,✅
2433

2534

2635
Below are specific connection examples based on supported providers.
@@ -90,6 +99,30 @@ The `xarray-edr`_ provider plugin reads and extracts `NetCDF`_ and `Zarr`_ data
9099
`pyproj.CRS.from_user_input`_.
91100

92101

102+
SensorThingsEDR
103+
^^^^^^^^^^^^^^^
104+
105+
The SensorThings API EDR Provider for pygeaopi extends the feature provider to
106+
produce CoverageJSON representations from SensorThings responses repsonses. This provider
107+
relies on using the ObservedProperty Entity to create the `parameter-name` set.
108+
109+
.. code-block:: yaml
110+
111+
providers:
112+
- type: edr
113+
name: SensorThingsEDR
114+
data: https://emotional.byteroad.net/FROST-Server/v1.1/
115+
- type: feature
116+
name: SensorThings
117+
data: https://emotional.byteroad.net/FROST-Server/v1.1/Things
118+
title_field: name
119+
120+
121+
.. note::
122+
The `feature` provider must also be configured to service the `.../items`
123+
EDR query type.
124+
125+
93126
Data access examples
94127
--------------------
95128

pygeoapi/plugin.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
'PostgreSQL': 'pygeoapi.provider.postgresql.PostgreSQLProvider',
6161
'rasterio': 'pygeoapi.provider.rasterio_.RasterioProvider',
6262
'SensorThings': 'pygeoapi.provider.sensorthings.SensorThingsProvider',
63+
'SensorThingsEDR': 'pygeoapi.provider.sensorthings_edr.SensorThingsEDRProvider', # noqa: E501
6364
'SQLiteGPKG': 'pygeoapi.provider.sqlite.SQLiteGPKGProvider',
6465
'Socrata': 'pygeoapi.provider.socrata.SODAServiceProvider',
6566
'TinyDB': 'pygeoapi.provider.tinydb_.TinyDBProvider',

0 commit comments

Comments
 (0)