-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
In [1]: arr = xr.DataArray(np.random.rand(4, 3),
...: ...: [('time', pd.date_range('2000-01-01', periods=4)),
...: ...: ('space', ['IA', 'IL', 'IN'])])
...: ...:
In [17]: arr.coords['space2'] = ('space', ['A','B','C'])
In [18]: arr
Out[18]:
<xarray.DataArray (time: 4, space: 3)>
array([[ 0.05187049, 0.04743067, 0.90329666],
[ 0.59482538, 0.71014366, 0.86588207],
[ 0.51893157, 0.49442107, 0.10697737],
[ 0.16068189, 0.60756757, 0.31935279]])
Coordinates:
* time (time) datetime64[ns] 2000-01-01 2000-01-02 2000-01-03 2000-01-04
* space (space) |S2 'IA' 'IL' 'IN'
space2 (space) |S1 'A' 'B' 'C'Now try to select on the space2 coord:
In [19]: arr.sel(space2='A')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-19-eae5e4b64758> in <module>()
----> 1 arr.sel(space2='A')
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/xarray/core/dataarray.pyc in sel(self, method, tolerance, **indexers)
601 """
602 return self.isel(**indexing.remap_label_indexers(
--> 603 self, indexers, method=method, tolerance=tolerance))
604
605 def isel_points(self, dim='points', **indexers):
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/xarray/core/dataarray.pyc in isel(self, **indexers)
588 DataArray.sel
589 """
--> 590 ds = self._to_temp_dataset().isel(**indexers)
591 return self._from_temp_dataset(ds)
592
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/xarray/core/dataset.pyc in isel(self, **indexers)
908 invalid = [k for k in indexers if k not in self.dims]
909 if invalid:
--> 910 raise ValueError("dimensions %r do not exist" % invalid)
911
912 # all indexers should be int, slice or np.ndarrays
ValueError: dimensions ['space2'] do not existIs there an easier way to do this? I couldn't think of anything...
CC @justinkuosixty