Xarray 每年重新采样
Xarray resample inter annually
我正在尝试每年对我的数据进行重新采样,但很难设置重新采样的开始日期。
import xarray as xr
import numpy as np
import pandas as pd
da = xr.DataArray(
np.linspace(0, 11, num=36),
coords=[
pd.date_range(
"15/12/1999", periods=36,
)
],
dims="time",
)
da.resample(time="1Y").mean()
我想要实现的是获得以下时间段的方法:15/12/1999-15/12/2000, 15/12/2000-15/12/2001, 15/12/2001 -15/12/2002, ...
我已经通过将时间移到第一个月并使用相应的 pandas 锚定偏移量解决了这个问题。之后,将时间重置。
import xarray as xr
import numpy as np
import pandas as pd
da = xr.DataArray(
np.concatenate([np.zeros(365), np.ones(365)]),
coords=[
pd.date_range(
"06/15/2017", "06/14/2019", freq='D'
)
],
dims="time",
)
days_to_first_of_month = pd.Timedelta(days=int(da.time.dt.day[0])-1)
da['time'] = da.time - days_to_first_of_month
month = da.time.dt.strftime("%b")[0].values
resampled = da.resample(time=f'AS-{month}').sum()
resampled['time'] = resampled.time + days_to_first_of_month
print(resampled)
有没有更高效或更干净的方法?
我正在尝试每年对我的数据进行重新采样,但很难设置重新采样的开始日期。
import xarray as xr
import numpy as np
import pandas as pd
da = xr.DataArray(
np.linspace(0, 11, num=36),
coords=[
pd.date_range(
"15/12/1999", periods=36,
)
],
dims="time",
)
da.resample(time="1Y").mean()
我想要实现的是获得以下时间段的方法:15/12/1999-15/12/2000, 15/12/2000-15/12/2001, 15/12/2001 -15/12/2002, ...
我已经通过将时间移到第一个月并使用相应的 pandas 锚定偏移量解决了这个问题。之后,将时间重置。
import xarray as xr
import numpy as np
import pandas as pd
da = xr.DataArray(
np.concatenate([np.zeros(365), np.ones(365)]),
coords=[
pd.date_range(
"06/15/2017", "06/14/2019", freq='D'
)
],
dims="time",
)
days_to_first_of_month = pd.Timedelta(days=int(da.time.dt.day[0])-1)
da['time'] = da.time - days_to_first_of_month
month = da.time.dt.strftime("%b")[0].values
resampled = da.resample(time=f'AS-{month}').sum()
resampled['time'] = resampled.time + days_to_first_of_month
print(resampled)
有没有更高效或更干净的方法?