Files
pygeoapi/docs/source/data-publishing/ogcapi-coverages.rst
T
Sarah Jordan 32cbe3e925 S3 Cloud Storage Access for EDR Provider (#1235)
* read from s3 bucket

* fix formatting for build workflow

* add s3fs to provider requirements

* storage options for fsspec

* Revert "storage options for fsspec"

This reverts commit dcfaceedd78d0f0e0dc3e38610958671c27b06a6.

* Revert "storage options for fsspec"

This reverts commit dcfaceedd78d0f0e0dc3e38610958671c27b06a6.

* delete extraneous code for cloud storage read

* update documentation

* add ci testing

* update test suite config file

* update number of collections

* update test query for s3

* ci testing updates

* read from s3 bucket

* fix formatting for build workflow

* add s3fs to provider requirements

* storage options for fsspec

* Revert "storage options for fsspec"

This reverts commit dcfaceedd78d0f0e0dc3e38610958671c27b06a6.

* Revert "storage options for fsspec"

This reverts commit dcfaceedd78d0f0e0dc3e38610958671c27b06a6.

* delete extraneous code for cloud storage read

* update documentation

* add ci testing

* update test suite config file

* update number of collections

* update test query for s3

* ci testing updates

* documentation updates

* config updates

* flake8

* modify sfs3 version

installing requirements threw an error when specifying 2023.6.0 (only identifies up through 2023.1.0). Had added the sfs3 requirement to deal with issues thrown when the 2023.9.0 release came out.

* updated coverages documentation
2023-09-13 14:12:58 -04:00

133 lines
4.1 KiB
ReStructuredText

.. _ogcapi-coverages:
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 :ref:`configuration`
as a baseline and modify accordingly.
Providers
---------
pygeoapi core feature providers are listed below, along with a matrix of supported query
parameters.
.. csv-table::
:header: Provider, properties, subset, bbox, datetime
:align: left
:ref:`Rasterio<rasterio-provider>`,✅,✅,✅,
:ref:`Xarray<xarray-provider>`,✅,✅,✅,✅
Below are specific connection examples based on supported providers.
Connection examples
-------------------
.. _rasterio-provider:
Rasterio
^^^^^^^^
.. note::
Requires Python package Rasterio
The `Rasterio`_ provider plugin reads and extracts any data that Rasterio is
capable of handling.
.. code-block:: yaml
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-provider:
xarray
^^^^^^
.. note::
Requires Python package Xarray
The `Xarray`_ provider plugin reads and extracts `NetCDF`_ and `Zarr`_ data.
.. code-block:: yaml
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.
.. note::
When referencing `NetCDF`_ or `Zarr`_ data stored in an S3 bucket,
be sure to provide the full S3 URL. Any parameters required to open the dataset
using fsspec can be added to the config file under `options` and `s3`.
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=GRIB
* coverage access with comma-separated properties
* http://localhost:5000/collections/foo/coverage?properties=1,3
* coverage access with subsetting
* http://localhost:5000/collections/foo/coverage?subset=lat(10:20)&subset=long(10:20)
* coverage with bbox
* http://localhost:5000/collections/foo/coverage?bbox=10,10,20,20
* coverage with bbox and bbox CRS
* http://localhost:5000/collections/foo/coverage?bbox=-8794239.772668611,5311971.846945471,-8348961.809495518,5621521.486192066&bbox=crs=3857
.. note::
``.../coverage`` queries which return an alternative representation to CoverageJSON (which prompt a download)
will have the response filename matching the collection name and appropriate file extension (e.g. ``my-dataset.nc``)
.. _`OGC API - Coverages`: https://github.com/opengeospatial/ogcapi-coverages
.. _`Rasterio`: https://rasterio.readthedocs.io
.. _`Xarray`: https://docs.xarray.dev/en/stable
.. _`NetCDF`: https://en.wikipedia.org/wiki/NetCDF
.. _`Zarr`: https://zarr.readthedocs.io/en/stable
.. _`GDAL raster driver short name`: https://gdal.org/drivers/raster/index.html