从 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 以进行下一次计算。
我在 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 以进行下一次计算。