|
72 | 72 | "longitude": ("Lon",),
|
73 | 73 | },
|
74 | 74 | "axis": {"T": ("T",), "Z": ("Z",), "Y": ("Y",), "X": ("X",)},
|
| 75 | + "cartesian_axis": {"T": ("T",), "Z": ("Z",), "Y": ("Y",), "X": ("X",)}, |
75 | 76 | "positive": {"Z": ("up", "down"), "vertical": ("up", "down")},
|
76 | 77 | "units": {
|
77 | 78 | "latitude": (
|
@@ -175,7 +176,7 @@ def _get_axis_coord_single(var: Union[DataArray, Dataset], key: str,) -> List[st
|
175 | 176 | results = _get_axis_coord(var, key)
|
176 | 177 | if len(results) > 1:
|
177 | 178 | raise KeyError(
|
178 |
| - f"Multiple results for {key!r} found: {results!r}. Is this valid CF? Please open an issue." |
| 179 | + f"Multiple results for {key!r} found: {results!r}. I expected only one." |
179 | 180 | )
|
180 | 181 | elif len(results) == 0:
|
181 | 182 | raise KeyError(f"No results found for {key!r}.")
|
@@ -917,7 +918,11 @@ def __getitem__(self, key: Union[str, List[str]]):
|
917 | 918 | successful = dict.fromkeys(key, False)
|
918 | 919 | for k in key:
|
919 | 920 | if k in _AXIS_NAMES + _COORD_NAMES:
|
920 |
| - names = axis_coord_mapper(self._obj, k) |
| 921 | + try: |
| 922 | + names = axis_coord_mapper(self._obj, k) |
| 923 | + except KeyError as e: |
| 924 | + raise ValueError(f"Receive multiple variables for key {k!r}. Expected only one. Please pass a list [{k!r}] instead to get all variables matching {k!r}.") |
| 925 | + raise e |
921 | 926 | successful[k] = bool(names)
|
922 | 927 | coords.extend(names)
|
923 | 928 | elif k in _CELL_MEASURES:
|
|
0 commit comments