-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
This works:
import xarray as xr
ds = xr.tutorial.open_dataset('air_temperature')
ds.transpose('not_existing_dim', 'lat', 'lon', 'time', ...)
This doesn't (subset air):
import xarray as xr
ds = xr.tutorial.open_dataset('air_temperature')
ds['air'].transpose('not_existing_dim', 'lat', 'lon', 'time', ...)
The error message is a bit inaccurate too since I do have Ellipsis included; might be related to two calls of: dims = tuple(utils.infix_dims(dims, self.dims))
ValueError: ('not_existing_dim', 'lat', 'lon', 'time') must be a permuted list of ('time', 'lat', 'lon'), unless `...` is included
Traceback
...
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-5-793dfc1507ea> in <module>
2 ds = xr.tutorial.open_dataset('air_temperature')
3 ds.transpose('not_existing_dim', 'lat', 'lon', 'time', ...)
----> 4 ds['air'].transpose('not_existing_dim', 'lat', 'lon', 'time', ...)
~/anaconda3/envs/py3/lib/python3.7/site-packages/xarray/core/dataarray.py in transpose(self, transpose_coords, *dims)
2035 if dims:
2036 dims = tuple(utils.infix_dims(dims, self.dims))
-> 2037 variable = self.variable.transpose(*dims)
2038 if transpose_coords:
2039 coords: Dict[Hashable, Variable] = {}
~/anaconda3/envs/py3/lib/python3.7/site-packages/xarray/core/variable.py in transpose(self, *dims)
1388 if len(dims) == 0:
1389 dims = self.dims[::-1]
-> 1390 dims = tuple(infix_dims(dims, self.dims))
1391 axes = self.get_axis_num(dims)
1392 if len(dims) < 2 or dims == self.dims:
~/anaconda3/envs/py3/lib/python3.7/site-packages/xarray/core/utils.py in infix_dims(dims_supplied, dims_all)
724 if set(dims_supplied) ^ set(dims_all):
725 raise ValueError(
--> 726 f"{dims_supplied} must be a permuted list of {dims_all}, unless `...` is included"
727 )
728 yield from dims_supplied