По сути, это репост этого вопроса: https://confluence.ecmwf.int/pages/viewpage.action?pageId=149341027
Я загрузил ERA5 из CDS. Входной файл имеет 24 часовых шага (0, 1, 2, 3, 4, .., 23) для каждого календарного дня, начиная с 1 января по De c 31 каждого рассматриваемого года.
Состояние ECMWF здесь https://confluence.ecmwf.int/display/CKB/ERA5%3A+How+to+calculate+daily+total+precipitation, что суточное общее количество осадков должно быть рассчитано путем накопления осадков, например, на 1 января 1979 года, суммируя шаги 1, 2, ..., 23 1 января и шаг 0 2 января. означает, что шаг 0 от 1 января 1979 года не включен в расчет общего количества осадков за этот день. Для расчета общего количества осадков за 2 января 1979 г. мы также используем шаги 1, 2, 3, ..., 23 этого дня плюс шаг 0 3 января и т. Д.
Кажется, что есть возможность сделать это в 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) простым способом. Обычно я делал бы любые такие вычисления, используя команду daysum
в CDO, но я не уверен, что это правильно.
Кто-то предложил использовать:
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
Но я не уверен, что это правильно - есть предложения?