3636from pygeoapi .provider .xarray_ import (
3737 _to_datetime_string ,
3838 _convert_float32_to_float64 ,
39- XarrayProvider ,
39+ XarrayProvider
4040)
4141
4242LOGGER = logging .getLogger (__name__ )
@@ -73,10 +73,9 @@ def position(self, **kwargs):
7373
7474 query_params = {}
7575
76+ LOGGER .debug ('Query type: position' )
7677 LOGGER .debug (f'Query parameters: { kwargs } ' )
7778
78- LOGGER .debug (f"Query type: { kwargs .get ('query_type' )} " )
79-
8079 wkt = kwargs .get ('wkt' )
8180 if wkt is not None :
8281 LOGGER .debug ('Processing WKT' )
@@ -115,7 +114,10 @@ def position(self, **kwargs):
115114
116115 try :
117116 if select_properties :
118- self ._fields = {k : v for k , v in self ._fields .items () if k in select_properties } # noqa
117+ self ._fields = {
118+ k : v for k , v in self ._fields .items ()
119+ if k in select_properties
120+ }
119121 data = self ._data [[* select_properties ]]
120122 else :
121123 data = self ._data
@@ -156,12 +158,12 @@ def position(self, **kwargs):
156158 bbox = wkt .bounds
157159 out_meta = {
158160 'bbox' : [bbox [0 ], bbox [1 ], bbox [2 ], bbox [3 ]],
159- " time" : time ,
160- " driver" : " xarray" ,
161- " height" : height ,
162- " width" : width ,
163- " time_steps" : time_steps ,
164- " variables" : {var_name : var .attrs
161+ ' time' : time ,
162+ ' driver' : ' xarray' ,
163+ ' height' : height ,
164+ ' width' : width ,
165+ ' time_steps' : time_steps ,
166+ ' variables' : {var_name : var .attrs
165167 for var_name , var in data .variables .items ()}
166168 }
167169
@@ -183,12 +185,11 @@ def cube(self, **kwargs):
183185
184186 query_params = {}
185187
188+ LOGGER .debug ('Query type: cube' )
186189 LOGGER .debug (f'Query parameters: { kwargs } ' )
187190
188- LOGGER .debug (f"Query type: { kwargs .get ('query_type' )} " )
189-
190191 bbox = kwargs .get ('bbox' )
191- xmin , ymin , xmax , ymax = self ._configure_bbox (bbox )
192+ xmin , ymin , xmax , ymax = self ._configure_bbox ()
192193
193194 if len (bbox ) == 4 :
194195 query_params [self .x_field ] = slice (bbox [xmin ], bbox [xmax ])
@@ -208,15 +209,17 @@ def cube(self, **kwargs):
208209 if datetime_ is not None :
209210 query_params [self .time_field ] = self ._make_datetime (datetime_ )
210211
212+ fields = {
213+ field : self .fields [field ]
214+ for field in select_properties
215+ if field in self .fields
216+ } if select_properties else self .fields
217+
211218 LOGGER .debug (f'query parameters: { query_params } ' )
212219 try :
213- if select_properties :
214- self ._fields = {k : v for k , v in self ._fields .items () if k in select_properties } # noqa
215- data = self ._data [[* select_properties ]]
216- else :
217- data = self ._data
218- data = data .sel (query_params )
219- data = _convert_float32_to_float64 (data )
220+ data = _convert_float32_to_float64 (
221+ self ._data [[* fields ]].sel (query_params )
222+ )
220223 except KeyError :
221224 raise ProviderNoDataError ()
222225
@@ -231,16 +234,18 @@ def cube(self, **kwargs):
231234 data .coords [self .x_field ].values [- 1 ],
232235 data .coords [self .y_field ].values [- 1 ]
233236 ],
234- "time" : time ,
235- "driver" : "xarray" ,
236- "height" : height ,
237- "width" : width ,
238- "time_steps" : time_steps ,
239- "variables" : {var_name : var .attrs
240- for var_name , var in data .variables .items ()}
237+ 'time' : time ,
238+ 'driver' : 'xarray' ,
239+ 'height' : height ,
240+ 'width' : width ,
241+ 'time_steps' : time_steps ,
242+ 'variables' : {
243+ var_name : var .attrs
244+ for var_name , var in data .variables .items ()
245+ }
241246 }
242247
243- return self .gen_covjson (out_meta , data , self . fields )
248+ return self .gen_covjson (out_meta , data , fields )
244249
245250 def _make_datetime (self , datetime_ ):
246251 """
@@ -300,7 +305,7 @@ def _parse_time_metadata(self, data, kwargs):
300305 time_steps = kwargs .get ('limit' )
301306 return time , time_steps
302307
303- def _configure_bbox (self , bbox ):
308+ def _configure_bbox (self ):
304309 xmin , ymin , xmax , ymax = 0 , 1 , 2 , 3
305310 if self ._data [self .x_field ][0 ] > self ._data [self .x_field ][- 1 ]:
306311 xmin , xmax = xmax , xmin
0 commit comments