问题描述
在xarray版本0.16中,当我将keep_attrs=True
添加到xarray.dataset.map(http://xarray.pydata.org/en/stable/generated/xarray.Dataset.map.html#xarray.Dataset.map)
ds = xr.tutorial.open_dataset("air_temperature")
stacked = ds.stack(allpoints=['lon','lat'])
#test_map = stacked.groupby('allpoints').map(np.mean)
test_map = stacked.groupby('allpoints').map(np.mean,keep_attrs=True)
test_map.air.unstack('allpoints').plot()
我得到了错误
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-202-f06a419ac8a1> in <module>
2 stacked = ds.stack(allpoints=['lon','lat'])
3 #test_map = stacked.groupby('allpoints').map(np.mean)
----> 4 test_map = stacked.groupby('allpoints').map(np.mean,keep_attrs=True)
5 test_map.air.unstack('allpoints').plot()
~/miniconda3/envs/pangeo/lib/python3.6/site-packages/xarray/core/groupby.py in map(self,func,args,shortcut,**kwargs)
921 # ignore shortcut if set (for Now)
922 applied = (func(ds,*args,**kwargs) for ds in self._iter_grouped())
--> 923 return self._combine(applied)
924
925 def apply(self,args=(),shortcut=None,**kwargs):
~/miniconda3/envs/pangeo/lib/python3.6/site-packages/xarray/core/groupby.py in _combine(self,applied)
941 def _combine(self,applied):
942 """Recombine the applied objects like the original."""
--> 943 applied_example,applied = peek_at(applied)
944 coord,dim,positions = self._infer_concat_args(applied_example)
945 combined = concat(applied,dim)
~/miniconda3/envs/pangeo/lib/python3.6/site-packages/xarray/core/utils.py in peek_at(iterable)
181 """
182 gen = iter(iterable)
--> 183 peek = next(gen)
184 return peek,itertools.chain([peek],gen)
185
~/miniconda3/envs/pangeo/lib/python3.6/site-packages/xarray/core/groupby.py in <genexpr>(.0)
920 """
921 # ignore shortcut if set (for Now)
--> 922 applied = (func(ds,**kwargs) for ds in self._iter_grouped())
923 return self._combine(applied)
924
<__array_function__ internals> in mean(*args,**kwargs)
TypeError: _mean_dispatcher() got an unexpected keyword argument 'keep_attrs'
似乎keep_attrs=True
选项没有达到我想要的位置。 (如果没有keep_attrs=True
,我将失去属性)
解决方法
感谢明确的示例。
这是错误的错误消息!随时将问题发布到我们在GitHub上的问题跟踪器中。
在这种情况下,无需使用np.mean
,只需使用mean
:
In [15]: stacked.groupby('allpoints').mean(...,keep_attrs=True)
Out[15]:
<xarray.Dataset>
Dimensions: (allpoints: 1325)
Coordinates:
* allpoints (allpoints) MultiIndex
- allpoints_level_0 (allpoints) float64 200.0 200.0 200.0 ... 330.0 330.0
- allpoints_level_1 (allpoints) float64 75.0 72.5 70.0 ... 20.0 17.5 15.0
Data variables:
air (allpoints) float32 260.37643 262.73438 ... 297.30508
Attributes:
Conventions: COARDS
title: 4x daily NMC reanalysis (1948)
description: Data is from NMC initialized reanalysis\n(4x/day). These a...
platform: Model
references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly...
这能回答您的问题吗?