1

有没有办法使用 numpy 对 python 中的两个 netcdf 文件执行区域统计功能?但是不使用gdal?较精细的 netcdf 为 0.5 度,较大的 netcdf 为 2 度。所以,我想平均落在较大的 2 度单元内的所有 0.5 度单元。

谢谢!

4

1 回答 1

2

而不是使用 numpy,我实际上会使用气候数据运算符 (cdo) 来执行此任务。这可以处理所有类型的原生网格,而不仅仅是您在这里遇到的一个网格单元正好分为 16 个的特殊情况。

要将 file1.nc 映射到 file2.nc,我们首先计算权重。

cdo gencon,file2.nc file1.nc weights.nc

这里我使用一阶保守重映射,所以假设 file1 是 0.5 分辨率,而 file2 是 2.0,那么粗糙区域的总和应该被保留。请注意,cdo 中还有许多其他选项可用于重新映射。

现在我们重新映射:

cdo remap,file2.nc,weights.nc file1.nc file1_remap.nc

制造差异和区域手段也很简单:

cdo sub file1_remap.nc file2.nc diff.nc
cdo zonmean diff.nc diff_zonmean.nc  

您甚至可以使用管道将其保持在一条线上:

cdo zonmean -sub file1_remap.nc file2.nc diff_zonmean.nc
于 2017-01-28T15:09:49.910 回答