Skip to content

Commit 5d01fd2

Browse files
dcherianclaude
andauthored
Avoid DataArray construction when scanning for cell_measures (#647)
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
1 parent 93511ee commit 5d01fd2

1 file changed

Lines changed: 6 additions & 9 deletions

File tree

‎cf_xarray/accessor.py‎

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2107,17 +2107,14 @@ def cell_measures(self) -> dict[str, list[Hashable]]:
21072107
"""
21082108

21092109
obj = self._obj
2110+
if isinstance(obj, DataArray):
2111+
variables = [*obj.coords.variables.values(), obj.variable]
2112+
else:
2113+
variables = list(obj.variables.values())
21102114
all_attrs = [
2111-
ChainMap(da.attrs, da.encoding).get("cell_measures", "")
2112-
for da in obj.coords.values()
2115+
ChainMap(var.attrs, var.encoding).get("cell_measures", "")
2116+
for var in variables
21132117
]
2114-
if isinstance(obj, DataArray):
2115-
all_attrs += [ChainMap(obj.attrs, obj.encoding).get("cell_measures", "")]
2116-
elif isinstance(obj, Dataset):
2117-
all_attrs += [
2118-
ChainMap(da.attrs, da.encoding).get("cell_measures", "")
2119-
for da in obj.data_vars.values()
2120-
]
21212118
as_dataset = self._maybe_to_dataset().reset_coords()
21222119

21232120
keys: dict[str, str] = {}

0 commit comments

Comments
 (0)