【发布时间】:2020-05-06 00:18:19
【问题描述】:
基本上,这是这个问题的转贴: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 日的 step 1, 2,...,23 与 Jan 2 的 step 0 相加,表示 1979 年 1 月 1 日的 step 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
但我不确定这是否正确 - 有什么建议吗?
【问题讨论】:
标签: python netcdf weather cdo-climate era5