Python 用xarray计算季节平均值有什么简单的方法吗?

Python 用xarray计算季节平均值有什么简单的方法吗?,python,python-xarray,Python,Python Xarray,许多每月的NetCDF文件包含许多年中的所有月份(例如,从1948年1月到2018年12月) 如何使用Xarray方便地计算每年的季节平均数 有人使用GroupBy计算季节平均数,但似乎将跨越多年的所有月份分为4组,这无法给出每年的季节平均数。听起来你在寻找a型操作。使用链接到的文档示例中的get\u dpm函数,我认为以下类似操作应该可以工作: month\u length=xr.DataArray( 获取\u dpm(ds.time.to\u index(),calendar='standa

许多每月的NetCDF文件包含许多年中的所有月份(例如,从1948年1月到2018年12月)

如何使用Xarray方便地计算每年的季节平均数


有人使用
GroupBy
计算季节平均数,但似乎将跨越多年的所有月份分为4组,这无法给出每年的季节平均数。

听起来你在寻找a型操作。使用链接到的文档示例中的
get\u dpm
函数,我认为以下类似操作应该可以工作:

month\u length=xr.DataArray(
获取\u dpm(ds.time.to\u index(),calendar='standard'),
coords=[ds.time],
name='month\u length'
)
结果=((ds*月长)。重新采样(time='QS-DEC')。求和()
月份长度。重采样(time='QS-DEC').sum()
使用
“QS-DEC”
频率将数据分为连续的三个月,固定在12月1日

如果您的数据缺少值,您将需要修改此加权平均值运算以说明这一点(即,在取分母中的和之前,我们需要掩盖
月长
):

result=(ds*月长)。重新采样(time='QS-DEC')。sum()/
月份长度,其中(ds.notnull()).resample(time='QS-DEC').sum()