From fa65c506066bc5974d69c4da5d75f9d175f01189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20L=C3=BCken-Winkels?= Date: Wed, 7 Feb 2024 16:09:16 +0100 Subject: [PATCH 1/2] Exchange `xr.Dataset.dims` by `xr.Dataset.sizes` --- xwrf/accessors.py | 2 +- xwrf/grid.py | 4 ++-- xwrf/postprocess.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xwrf/accessors.py b/xwrf/accessors.py index 1c363cee..417189ab 100644 --- a/xwrf/accessors.py +++ b/xwrf/accessors.py @@ -168,7 +168,7 @@ def destagger(self, staggered_to_unstaggered_dims: dict[str, str] | None = None) dataset, but will not be associated with any data variables. """ staggered_dims = ( - {dim for dim in self.xarray_obj.dims if dim.endswith('_stag')} + {dim for dim in self.xarray_obj.sizes if dim.endswith('_stag')} if staggered_to_unstaggered_dims is None else set(staggered_to_unstaggered_dims) ) diff --git a/xwrf/grid.py b/xwrf/grid.py index d9382877..f8ca6c9f 100644 --- a/xwrf/grid.py +++ b/xwrf/grid.py @@ -61,8 +61,8 @@ def _wrf_grid_from_dataset(ds: xr.Dataset) -> Mapping[Hashable, pyproj.CRS | np. # Get grid specifications trf = pyproj.Transformer.from_crs(wgs84, crs, always_xy=True) - nx = ds.dims['west_east'] - ny = ds.dims['south_north'] + nx = ds.sizes['west_east'] + ny = ds.sizes['south_north'] e, n = trf.transform(cen_lon, cen_lat) x0 = -(nx - 1) / 2.0 * dx + e # DL corner y0 = -(ny - 1) / 2.0 * dy + n # DL corner diff --git a/xwrf/postprocess.py b/xwrf/postprocess.py index 2d7ccf25..e9d975b9 100644 --- a/xwrf/postprocess.py +++ b/xwrf/postprocess.py @@ -99,7 +99,7 @@ def _include_projection_coordinates(ds: xr.Dataset) -> xr.Dataset: 'projection metadata.' ) return ds - horizontal_dims = set(config.get('horizontal_dims')).intersection(set(ds.dims)) + horizontal_dims = set(config.get('horizontal_dims')).intersection(set(ds.sizes)) # Include dimension coordinates for dim in horizontal_dims: @@ -126,7 +126,7 @@ def _assign_coord_to_dim_of_different_name(ds: xr.Dataset) -> xr.Dataset: def _rename_dims(ds: xr.Dataset) -> xr.Dataset: """Rename dims for more consistent semantics.""" - rename_dim_map = {k: v for k, v in config.get('rename_dim_map').items() if k in ds.dims} + rename_dim_map = {k: v for k, v in config.get('rename_dim_map').items() if k in ds.sizes} return ds.rename(rename_dim_map) From c8717c846ca7ca867eaa69372a459cbd95b7261d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20L=C3=BCken-Winkels?= Date: Fri, 15 Mar 2024 16:33:18 +0100 Subject: [PATCH 2/2] Restore lines where `dims` is used as intended --- xwrf/accessors.py | 2 +- xwrf/postprocess.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/xwrf/accessors.py b/xwrf/accessors.py index 417189ab..1c363cee 100644 --- a/xwrf/accessors.py +++ b/xwrf/accessors.py @@ -168,7 +168,7 @@ def destagger(self, staggered_to_unstaggered_dims: dict[str, str] | None = None) dataset, but will not be associated with any data variables. """ staggered_dims = ( - {dim for dim in self.xarray_obj.sizes if dim.endswith('_stag')} + {dim for dim in self.xarray_obj.dims if dim.endswith('_stag')} if staggered_to_unstaggered_dims is None else set(staggered_to_unstaggered_dims) ) diff --git a/xwrf/postprocess.py b/xwrf/postprocess.py index e9d975b9..2d7ccf25 100644 --- a/xwrf/postprocess.py +++ b/xwrf/postprocess.py @@ -99,7 +99,7 @@ def _include_projection_coordinates(ds: xr.Dataset) -> xr.Dataset: 'projection metadata.' ) return ds - horizontal_dims = set(config.get('horizontal_dims')).intersection(set(ds.sizes)) + horizontal_dims = set(config.get('horizontal_dims')).intersection(set(ds.dims)) # Include dimension coordinates for dim in horizontal_dims: @@ -126,7 +126,7 @@ def _assign_coord_to_dim_of_different_name(ds: xr.Dataset) -> xr.Dataset: def _rename_dims(ds: xr.Dataset) -> xr.Dataset: """Rename dims for more consistent semantics.""" - rename_dim_map = {k: v for k, v in config.get('rename_dim_map').items() if k in ds.sizes} + rename_dim_map = {k: v for k, v in config.get('rename_dim_map').items() if k in ds.dims} return ds.rename(rename_dim_map)