从 netCDF 中的 dekad 数据计算 3-dekad 累积

Calculate 3-dekad accumulation from dekad data in netCDF

我在 netCDF 中有来自 CHIRPS 的 dekad 降雨量:https://data.chc.ucsb.edu/products/CHIRPS-2.0/global_dekad/netcdf/

1 个 nc 格式的数据为 1 年,即。 chirps-v2.0.1981.dekads.nc 然后我将所有 nc 文件合并为单个 nc ncrcat *.nc merge.nc

最后,我想根据dekad数据计算3-dekad的降雨量累积(结果将等于月累积),滚动dekad累积。例如:

rain1981.01.1 + rain1981.01.2 + rain1981.01.3
rain1981.01.2 + rain1981.01.3 + rain1981.02.1
rain1981.01.3 + rain1981.02.1 + rain1981.02.2
...
rain2019.12.1 + rain2019.12.2 + rain2019.12.3

如何使用 CDO 或 NCO 做到这一点?

我刚刚找到了上述问题的解决方案。这是使用 CDO 的步骤。

  • 使用边界框剪辑所有下载的 nc 文件:for fl in *.nc; do cdo sellonlatbox,94,145,-12,7 $fl clip"_"$fl; done
  • 合并所有剪辑的 nc 文件使用:cdo mergetime clip_*.nc timeseries.nc
  • 计算月累计:cdo runsum,3 input.nc output.nc

输出将产生具有时间信息的3-dekad降雨量累积YYYY.MM.DD并且DD仅具有基于原始输入的值1,11和21。 最后一步我想将它提取到 3 个差异文件中(extract1.nc、extract11.nc 和 extract21.nc)。 我使用了这个公式:cdo selday,1 input.nc output.nc 将值 1 更改为 11 或 21 以进行下一次计算。