Skip to content

Commit 5e91797

Browse files
Restore attributes for coordinates
Co-authored-by: Keith Doore <[email protected]>
1 parent 0b66d79 commit 5e91797

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/xarray_regrid/methods/conservative.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,12 @@ def conservative_regrid_dataset(
7878
) -> xr.Dataset:
7979
"""Dataset implementation of the conservative regridding method."""
8080
data_vars: list[str] = list(data.data_vars)
81+
data_coords: list[str] = list(data.coords)
8182
dataarrays = [data[var] for var in data_vars]
83+
datacoords = [data[var] for var in data_coords]
8284
attrs = data.attrs
8385
da_attrs = [da.attrs for da in dataarrays]
86+
dcrds_attrs = [dcrds.attrs for dcrds in datacoords]
8487

8588
for coord in coords:
8689
target_coords = coords[coord].to_numpy()
@@ -102,6 +105,8 @@ def conservative_regrid_dataset(
102105

103106
for da, _attr in zip(dataarrays, da_attrs, strict=True):
104107
da.attrs = _attr
108+
for dcrd, _attr in zip(datacoords, dcrds_attrs, strict=True):
109+
dcrd.attrs = _attr
105110
regridded = xr.merge(dataarrays)
106111
regridded.attrs = attrs
107112
return regridded # TODO: add other coordinates/data variables back in.
@@ -113,7 +118,10 @@ def conservative_regrid_dataarray(
113118
latitude_coord: str,
114119
) -> xr.DataArray:
115120
"""DataArray implementation of the conservative regridding method."""
121+
data_coords: list[str] = list(data.coords)
122+
datacoords = [data[var] for var in data_coords]
116123
attrs = data.attrs
124+
dcrds_attrs = [dcrds.attrs for dcrds in datacoords]
117125
for coord in coords:
118126
if coord in data.coords:
119127
target_coords = coords[coord].to_numpy()
@@ -131,6 +139,8 @@ def conservative_regrid_dataarray(
131139

132140
data = data.transpose(coord, ...)
133141
data = apply_weights(data, weights, coord, target_coords)
142+
for dcrd, _attr in zip(datacoords, dcrds_attrs, strict=True):
143+
dcrd.attrs = _attr
134144
data.attrs = attrs
135145
return data
136146

0 commit comments

Comments
 (0)