Publishing raster data to OGC API - Coverages¶
OGC API - Coverages provides geospatial data access functionality to raster data.
To add raster data to pygeoapi, you can use the dataset example in Configuration as a baseline and modify accordingly.
Providers¶
pygeoapi core feature providers are listed below, along with a matrix of supported query parameters.
Provider |
rangeSubset |
subset |
bbox |
datetime |
---|---|---|---|---|
rasterio |
✅ |
✅ |
✅ |
|
xarray |
✅ |
✅ |
✅ |
✅ |
Below are specific connection examples based on supported providers.
Connection examples¶
rasterio¶
The rasterio provider plugin reads and extracts any data that rasterio is capable of handling.
providers:
- type: coverage
name: rasterio
data: tests/data/CMC_glb_TMP_TGL_2_latlon.15x.15_2020081000_P000.grib2
options: # optional creation options
DATA_ENCODING: COMPLEX_PACKING
format:
name: GRIB
mimetype: application/x-grib2
Note
The rasterio provider format.name
directive requires a valid
GDAL raster driver short name.
xarray¶
The xarray provider plugin reads and extracts NetCDF and Zarr data.
providers:
- type: coverage
name: xarray
data: tests/data/coads_sst.nc
# optionally specify x/y/time fields, else provider will attempt
# to derive automagically
x_field: lat
x_field: lon
time_field: time
format:
name: netcdf
mimetype: application/x-netcdf
providers:
- type: coverage
name: xarray
data: tests/data/analysed_sst.zarr
format:
name: zarr
mimetype: application/zip
Note
Zarr files are directories with files and subdirectories. Therefore a zip file is returned upon request for said format.
Data access examples¶
list all collections - http://localhost:5000/collections
overview of dataset - http://localhost:5000/collections/foo
coverage rangetype - http://localhost:5000/collections/foo/coverage/rangetype
coverage domainset - http://localhost:5000/collections/foo/coverage/domainset
coverage access via CoverageJSON (default) - http://localhost:5000/collections/foo/coverage?f=json
coverage access via native format (as defined in
provider.format.name
) - http://localhost:5000/collections/foo/coverage?f=GRIBcoverage access with comma-separated rangeSubset - http://localhost:5000/collections/foo/coverage?rangeSubset=1,3
coverage access with subsetting - http://localhost:5000/collections/foo/coverage?subset=lat(10,20)&subset=long(10,20)