xarray 映射(应用)在指定 keep_attrs 时给出错误
xarray map (apply) gives error when keep_attrs is specified
在 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, func, 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, *args, **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...
这是否回答了您的问题?
在 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, func, 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, *args, **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...
这是否回答了您的问题?