【问题标题】:xarray annual grouping across years跨年的 xarray 年度分组
【发布时间】:2018-03-20 03:05:57
【问题描述】:

我正在计算我的数据的年度平均值:

sst_ANN = ds['sst'].groupby(ds['time.year']).mean(dim='time')

这当然很优雅。现在我想做同样的事情,除了计算后一年从六月到五月的年平均值,而不是日历年。会有类似的单线来做到这一点吗?

【问题讨论】:

  • 在 Pandas 中可以这样做:stackoverflow.com/questions/26341272/…
  • 这是我得到的结果:my_time = pd.to_datetime(ds_sst['time'].values) ds_sst.groupby(pd.DatetimeIndex( ds_sst['time'].values ).shift(-5,freq='m').year) 给:TypeError: 'group' must be an xarray.DataArray or the name of an xarray variable or dimension

标签: python-xarray xarray


【解决方案1】:

您可能应该使用 xarray 的 resample 方法而不是 groupby(在这种情况下它们是相似的,但 resample 更容易操作以执行您想要的操作)。

对于 xarray 0.10.0 及更高版本,如下所示:

sst_ANN = ds['sst'].resample(time='AS-JUN').mean('time')

对于旧版本的 xarray,它看起来像:

sst_ANN = ds['sst'].resample(freq='AS-JUN', dim='time', how='mean')

在这两种情况下,我们都使用"anchored offset"AS-JUN 翻译为“每年,期初,从六月开始”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多