有没有办法使用 numpy 对 python 中的两个 netcdf 文件执行区域统计功能?但不使用gdal?较精细的netcdf为0.5度,较大的netcdf为2度。因此,我想对落在较大 2 度像元内的所有 0.5 度像元进行平均。
谢谢!
最佳答案
我实际上会使用气候数据运算符(cdo)来执行此任务,而不是使用 numpy。这可以处理所有类型的原生网格,而不仅仅是这里的特殊情况,即一个网格单元精确地分为 16 个。
为了将 file1.nc 映射到 file2.nc,我们首先计算权重。
cdo gencon,file2.nc file1.nc weights.nc
这里我使用一阶保守重映射,因此假设文件 1 的分辨率为 0.5,文件 2 的分辨率为 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
关于python - 区域内的 Numpy 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246538/