本质上,这是对这个问题的转发:https ://confluence.ecmwf.int/pages/viewpage.action?pageId=149341027
我已经从 CDS 下载了 ERA5。输入文件从每个考虑年份的 1 月 1 日到 12 月 31 日的每个日历日都有 24 小时步长(0、1、2、3、4、..、23)。
ECMWF 在这里声明https://confluence.ecmwf.int/display/CKB/ERA5%3A+How+to+calculate+daily+total+precipitation每日总降水量必须通过累积降水量来计算,例如 1979 年 1 月 1 日通过求和1 月 1 日的第 1、2、...、23 步和 1 月 2 日的第 0 步。表示 1979 年 1 月 1 日的第 0 步不计入当日总降水量。为了计算 1979 年 1 月 2 日的总降水量,我们还使用当天的第 1、2、3、...、23 步加上 1 月 3 日的第 0 步等等。
在 python 中似乎有这样一个选项:
import xarray as xr # import xarray library
ds_nc = xr.open_dataset('name_of_your_file.nc') # read the file
daily_precipitation = ds_nc.tp.resample(time='24H').sum('time')*1000 # calculate sum with frequency of 24h and multiply by 1000
daily_precipitation.to_netcdf('daily_prec.nc') # save as netCDF
现在我想知道这是否也可以通过简单的方式使用气候数据运营商 (CDO)。通常我会使用 CDO 中的命令进行任何此类计算daysum
,但我不确定这是否正确。
有人建议使用:
cdo -f nc copy out.nc aux.nc
cdo -delete,timestep=1, aux.nc aux1.nc
cdo -b 32 timselsum,24 aux1.nc aux2.nc
cdo -expr,'ppt=tp*1000' -setmissval,-9999.9 -remapbil,r240x120 aux2.nc era5_ppt_prev-0_1979-2018.nc
但我不确定这是正确的 - 有什么建议吗?