基本上,这是来自如何从 ERA5 每小时 netCDF 数据计算每日平均值? 我有四个大气变量,即。露点温度、长波辐射、短波辐射和风速(根据 u10 和 v10 风分量计算)。所有都是小时刻度,我需要将它们转换为日刻度(请注意,这里我只给出了露点温度的例子)。为了首先做到这一点,我应用了以下命令
cdo daymean -shifttime,-1hour d2m.nc d2m_wb.nc
并得到以下结果。
cdo sinfo d2m_wb.nc
File format : NetCDF2
-1 : Institut Source T Steptype Levels Num Points Num Dtype : Parameter ID
1 : unknown unknown v instant 1 1 475 1 F64 : -1
Grid coordinates :
1 : lonlat : points=475 (19x25)
lon : 85.5 to 90 by 0.25 degrees_east
lat : 21.5 to 27.5 by 0.25 degrees_north
Vertical coordinates :
1 : surface : levels=1
Time coordinate : 25904 steps
RefTime = 1900-01-01 00:00:00 Units = hours Calendar = gregorian Bounds = true
YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss
1949-12-31 23:00:00 1950-01-01 11:00:00 1950-01-02 11:00:00 1950-01-03 11:00:00
1950-01-04 11:00:00 1950-01-05 11:00:00 1950-01-06 11:00:00 1950-01-07 11:00:00
1950-01-08 11:00:00 1950-01-09 11:00:00 1950-01-10 11:00:00 1950-01-11 11:00:00
1950-01-12 11:00:00 1950-01-13 11:00:00 1950-01-14 11:00:00 1950-01-15 11:00:00
1950-01-16 11:00:00 1950-01-17 11:00:00 1950-01-18 11:00:00 1950-01-19 11:00:00
1950-01-20 11:00:00 1950-01-21 11:00:00 1950-01-22 11:00:00 1950-01-23 11:00:00
1950-01-24 11:00:00 1950-01-25 11:00:00 1950-01-26 11:00:00 1950-01-27 11:00:00
1950-01-28 11:00:00 1950-01-29 11:00:00 1950-01-30 11:00:00 1950-01-31 11:00:00
..................................................................................
................................................................................
................................................................................
.................
2020-10-31 11:00:00 2020-11-01 11:00:00 2020-11-02 11:00:00 2020-11-03 11:00:00
2020-11-04 11:00:00 2020-11-05 11:00:00 2020-11-06 11:00:00 2020-11-07 11:00:00
2020-11-08 11:00:00 2020-11-09 11:00:00 2020-11-10 11:00:00 2020-11-11 11:00:00
2020-11-12 11:00:00 2020-11-13 11:00:00 2020-11-14 11:00:00 2020-11-15 11:00:00
2020-11-16 11:00:00 2020-11-17 11:00:00 2020-11-18 11:00:00 2020-11-19 11:00:00
2020-11-20 11:00:00 2020-11-21 11:00:00 2020-11-22 11:00:00 2020-11-23 11:00:00
2020-11-24 11:00:00 2020-11-25 11:00:00 2020-11-26 11:00:00 2020-11-27 11:00:00
2020-11-28 11:00:00 2020-11-29 11:00:00 2020-11-30 11:00:00 2020-12-31 23:00:00
cdo sinfo: Processed 1 variable over 25904 timesteps [6.03s 37MB
结果(每日平均值)对我来说似乎很可疑(因为它有时间戳11:00:00
)。因此,我在 CDO 论坛上提出了同样的问题,他们建议向后移动 1 分钟而不是 1 小时。
cdo daymean -shifttime,-1min d2m.nc d2m_wb.nc
在这里,时间戳 (of d2m_wb.nc
) 显示12:00:00
而不是11:00:00
。我不确定结果是否正确。因此,我尝试使用 python (3.8.5) 中的以下脚本对此进行交叉检查。
import xarray as xr
hourly_d2m = xr.open_dataset(r'E:\Data\Rda\d2m\d2m.nc')
d2m = hourly_d2m['d2m']
d2m= hourly_d2m.shift(time=-1).dropna(dim='time',how='all')
sds = d2m.resample(time='D').mean(dim='time')
sds.to_netcdf('E:\Data\Rda\d2m\daily\d2m_wb.nc')
00:00:00
在计算 的每日平均值后,我得到了时间戳d2m_wb.nc
。现在,问题是不同的软件和命令会产生共同目标(即每日平均值)的不同结果。我完全困惑并寻找合适的解决方案或澄清。谢谢你。