Skip to content

Commit 74c4c61

Browse files
committed
cleanup
1 parent fa83bcb commit 74c4c61

File tree

1 file changed

+6
-16
lines changed

1 file changed

+6
-16
lines changed

cf_xarray/accessor.py

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import inspect
55
import itertools
66
import re
7-
from collections import ChainMap, namedtuple
7+
from collections import ChainMap, defaultdict, namedtuple
88
from collections.abc import (
99
Callable,
1010
Hashable,
@@ -2990,21 +2990,11 @@ def grid_mapping_names(self) -> dict[str, list[str]]:
29902990
# Parse potentially multiple grid mappings
29912991
grid_mapping_var_names = _parse_grid_mapping_attribute(grid_mapping_attr)
29922992

2993-
results = {}
2994-
for grid_mapping_var_name in grid_mapping_var_names:
2995-
# First check if it's in the DataArray's coords (for multiple grid mappings
2996-
# that are coordinates of the DataArray)
2997-
if grid_mapping_var_name in da.coords:
2998-
grid_mapping_var = da.coords[grid_mapping_var_name]
2999-
if "grid_mapping_name" in grid_mapping_var.attrs:
3000-
gmn = grid_mapping_var.attrs["grid_mapping_name"]
3001-
if gmn not in results:
3002-
results[gmn] = [grid_mapping_var_name]
3003-
else:
3004-
results[gmn].append(grid_mapping_var_name)
3005-
# For standalone DataArrays, the grid mapping variables may not be available
3006-
# This is a limitation of the xarray data model - when you extract a DataArray
3007-
# from a Dataset, it doesn't carry over non-coordinate variables
2993+
results = defaultdict(list)
2994+
for grid_mapping_var_name in grid_mapping_var_names and set(da.coords):
2995+
grid_mapping_var = da.coords[grid_mapping_var_name]
2996+
if gmn := grid_mapping_var.attrs.get("grid_mapping_name"):
2997+
results[gmn].append(grid_mapping_var_name)
30082998

30092999
return results
30103000

0 commit comments

Comments
 (0)