xarray在将UTC中的24小时数据重新采样为每日最大值或总和时考虑夏令时

2024-09-29 02:28:37 发布

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

我有一个具有以下维度的DataArray T_SFC

xarray.DataArray 'T_SFC'     time: 425136   latitude: 148   longitude: 244

time维度有一个UTC时间戳,从“1972-01-01T00:00:00”到“2020-06-30T23:00:00”

array(['1972-01-01T00:00:00.000000000', '1972-01-01T01:00:00.000000000',
       '1972-01-01T02:00:00.000000000', ..., '2020-06-30T21:00:00.000000000',
       '2020-06-30T22:00:00.000000000', '2020-06-30T23:00:00.000000000'],
      dtype='datetime64[ns]')

我想做的是将数据从每小时重新采样到每日最大值(),但要使用本地时区(澳大利亚/墨尔本),还要考虑夏令时。在非DST中为+10,而在DST中为+11

我可以使用baseloffset将UTC时间戳在非DST中偏移10小时,在DST中偏移11小时

da.resample(time='24H',base=14,loffset='10H',skipna=True).max('time') OR
da.resample(time='24H',base=13,loffset='10H',skipna=True).max('time')

如何通过一个函数或使用apply()或map()函数重新采样()来实现这一点


Tags: 函数truebasetime时间maxdadst