@@ -25,13 +25,15 @@ def _load_xarray_netcdf(path: Union[str, Path], **kwargs) -> xarray.Dataset:
25
25
"""
26
26
Load a netCDF file as Xarray Dataset
27
27
"""
28
+ _log .debug (f"_load_xarray_netcdf: { path !r} " )
28
29
return xarray .load_dataset (path , ** kwargs )
29
30
30
31
31
32
def _load_rioxarray_geotiff (path : Union [str , Path ], ** kwargs ) -> xarray .DataArray :
32
33
"""
33
34
Load a GeoTIFF file as Xarray DataArray (using `rioxarray` extension).
34
35
"""
36
+ _log .debug (f"_load_rioxarray_geotiff: { path !r} " )
35
37
try :
36
38
import rioxarray
37
39
except ImportError as e :
@@ -113,6 +115,7 @@ def _compare_xarray_dataarray(
113
115
issues = []
114
116
115
117
# TODO: isn't there functionality in Xarray itself to compare these aspects?
118
+ # TODO: also compare attributes of the DataArray?
116
119
if actual .dims != expected .dims :
117
120
issues .append (f"Dimension mismatch: { actual .dims } != { expected .dims } " )
118
121
for dim in set (expected .dims ).intersection (actual .dims ):
@@ -179,9 +182,15 @@ def _compare_xarray_datasets(
179
182
all_issues = []
180
183
actual_vars = set (actual .data_vars )
181
184
expected_vars = set (expected .data_vars )
185
+ _log .debug (f"_compare_xarray_datasets: { actual_vars = } { expected_vars = } " )
182
186
if actual_vars != expected_vars :
183
187
all_issues .append (f"Xarray DataSet variables mismatch: { actual_vars } != { expected_vars } " )
184
188
for var in expected_vars .intersection (actual_vars ):
189
+ if not expected .data_vars [var ].coords :
190
+ _log .debug (f"_compare_xarray_datasets: skipping variable { var !r} (empty coords)" )
191
+ # TODO: still compare attributes of the DataArray?
192
+ continue
193
+ _log .debug (f"_compare_xarray_datasets: comparing variable { var !r} " )
185
194
issues = _compare_xarray_dataarray (actual [var ], expected [var ], rtol = rtol , atol = atol )
186
195
if issues :
187
196
all_issues .append (f"Issues for variable { var !r} :" )
0 commit comments