Python xarray:根据每月重新采样的平均值计算每日异常(不是气候学)
xarray's解释了如何计算每月气候异常。在这里,我尝试做一些稍微不同的事情:根据每日时间序列,我想计算本月平均值的每日异常值() 我用groupby和手工制作的月票(代码如下)成功地做到了这一点。有没有一种更好的、更简单的方法来获得同样的结果Python xarray:根据每月重新采样的平均值计算每日异常(不是气候学),python,python-xarray,xarray,Python,Python Xarray,Xarray,xarray's解释了如何计算每月气候异常。在这里,我尝试做一些稍微不同的事情:根据每日时间序列,我想计算本月平均值的每日异常值() 我用groupby和手工制作的月票(代码如下)成功地做到了这一点。有没有一种更好的、更简单的方法来获得同样的结果 import xarray as xr import numpy as np import pandas as pd # Create a data array t = pd.date_range('2001', '2003', freq='D')
import xarray as xr
import numpy as np
import pandas as pd
# Create a data array
t = pd.date_range('2001', '2003', freq='D')
da = xr.DataArray(np.arange(len(t)), coords={'time':t}, dims='time')
# Monthly time stamp for groupby
da.coords['stamp'] = ('time', [str(y) + '-' + str(m) for (y, m) in
zip(da['time.year'].values,
da['time.month'].values)])
# Anomaly
da_ano = da.groupby('stamp') - da.groupby('stamp').mean()
da_ano.plot();
您可以将平均数的月度时间序列显式转换为每日时间序列。例如:
monthly = da.resample(time='1MS').mean()
upsampled_monthly = monthly.resample(time='1D').ffill()
anomalies = da - upsampled_monthly