diff --git a/docs/source/data-publishing/ogcapi-edr.rst b/docs/source/data-publishing/ogcapi-edr.rst index 307e87525..33da90507 100644 --- a/docs/source/data-publishing/ogcapi-edr.rst +++ b/docs/source/data-publishing/ogcapi-edr.rst @@ -55,6 +55,7 @@ The `xarray-edr`_ provider plugin reads and extracts `NetCDF`_ and `Zarr`_ data # to derive automagically x_field: lon y_field: lat + z_field: z time_field: time # optionally specify the coordinate reference system of your dataset # else pygeoapi assumes it is WGS84 (EPSG:4326). diff --git a/pygeoapi/provider/base.py b/pygeoapi/provider/base.py index 538c076a9..0d48cd1a3 100644 --- a/pygeoapi/provider/base.py +++ b/pygeoapi/provider/base.py @@ -69,6 +69,7 @@ def __init__(self, provider_def): self.uri_field = provider_def.get('uri_field') self.x_field = provider_def.get('x_field') self.y_field = provider_def.get('y_field') + self.z_field = provider_def.get('z_field') self.time_field = provider_def.get('time_field') self.title_field = provider_def.get('title_field') self.properties = provider_def.get('properties', []) diff --git a/pygeoapi/provider/xarray_edr.py b/pygeoapi/provider/xarray_edr.py index f5bf543f2..768c6cb2d 100644 --- a/pygeoapi/provider/xarray_edr.py +++ b/pygeoapi/provider/xarray_edr.py @@ -105,6 +105,13 @@ def position(self, **kwargs): if datetime_ is not None: query_params[self.time_field] = self._make_datetime(datetime_) + z = kwargs.get('z') + if z is not None: + if self.z_field is not None: + query_params[self.z_field] = z + else: + LOGGER.debug('No vertical level found') + LOGGER.debug(f'query parameters: {query_params}') try: