From 15be1dcd4fc533250dfa691fd01314a01fe8d351 Mon Sep 17 00:00:00 2001 From: James Varndell <36902610+JamesVarndell@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:15:29 +0100 Subject: [PATCH] OGC API - Coverages: Propagate selected fields into covjson conversion (#1788) * Propagate selected fields into covjson conversion * Update xarray_.py --------- Co-authored-by: Tom Kralidis --- pygeoapi/provider/xarray_.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pygeoapi/provider/xarray_.py b/pygeoapi/provider/xarray_.py index 1531514..f06bb10 100644 --- a/pygeoapi/provider/xarray_.py +++ b/pygeoapi/provider/xarray_.py @@ -237,7 +237,7 @@ class XarrayProvider(BaseProvider): :param metadata: coverage metadata :param data: rasterio DatasetReader object - :param fields: fields dict + :param fields: fields :returns: dict of CoverageJSON representation """ @@ -246,6 +246,11 @@ class XarrayProvider(BaseProvider): minx, miny, maxx, maxy = metadata['bbox'] mint, maxt = metadata['time'] + selected_fields = { + key: value for key, value in self.fields.items() + if key in fields + } + try: tmp_min = data.coords[self.y_field].values[0] except IndexError: @@ -294,7 +299,7 @@ class XarrayProvider(BaseProvider): 'ranges': {} } - for key, value in self.fields.items(): + for key, value in selected_fields.items(): parameter = { 'type': 'Parameter', 'description': value['title'], @@ -315,7 +320,7 @@ class XarrayProvider(BaseProvider): data = _convert_float32_to_float64(data) try: - for key, value in self.fields.items(): + for key, value in selected_fields.items(): cj['ranges'][key] = { 'type': 'NdArray', 'dataType': value['type'],