扩展xarray数据

2024-03-29 13:03:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在xarray教程数据集中添加霜冻天数。在

airtemps = xr.tutorial.load_dataset('air_temperature')
# The set spans more than a year, let's take only one
airtemps = airtemps.sel(time=slice('2013-01-01', '2013-12-31'))
airtemps['air'] = airtemps.air - 273.15

数据是相当高分辨率的时间明智的,所以为了更容易处理,我重新取样 航空日=空气温度重采样('1D','time',how='mean') air_month=空气_日重采样('1M','time',how='mean')

因此,我希望在air_month中有一个额外的变量,在所有三个维度上,平均天数都在零以下。在

我最天真的尝试就是这样

^{pr2}$

然而,通过sum(),我在这里失去了时间维度。我被困在这里,还没有把xarray的概念包装在我的头上。在

谢谢你的帮助!在


Tags: 数据time时间教程airmeantutorialhow
1条回答
网友
1楼 · 发布于 2024-03-29 13:03:08

你快到了! 你的groupby非常相似(而且在某些方面更好,因为xarray的重采样还不是groupby)

In [24]: (air_day.air < 0).resample('M', dim='time', how='sum')
Out[24]:
<xarray.DataArray 'air' (time: 12, lat: 25, lon: 53)>
array([[[31, 31, 31, ..., 31, 31, 31],
        [31, 31, 31, ..., 31, 31, 31],
        [31, 31, 31, ..., 31, 31, 31],
        ...,
        [ 0,  0,  0, ...,  0,  0,  0],
        [ 0,  0,  0, ...,  0,  0,  0],
        [ 0,  0,  0, ...,  0,  0,  0]]])
Coordinates:
  * lat      (lat) float32 75.0 72.5 70.0 67.5 65.0 62.5 60.0 57.5 55.0 52.5 ...
  * lon      (lon) float32 200.0 202.5 205.0 207.5 210.0 212.5 215.0 217.5 ...
  * time     (time) datetime64[ns] 2013-01-31 2013-02-28 2013-03-31 ...

相关问题 更多 >