python - 区域内的 Numpy 聚合

标签 python numpy netcdf

有没有办法使用 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/

相关文章:

python - NLTK 中的真实字数统计

python - 如何在同一客户端上处理两个版本的Python?

python - 如何用python生成身份张量?

python-3.x - 如何在列 Pandas 中找到连续零的最大计数?

python - 使用 Python 将 NetCDF 文件转换为 CSV 或文本

python - 创建变量以创建 netCDF 文件时出错

python - 如何修复 CMakeLists.txt : Generator NMake Makefiles does not support platform specification, 中的 CMake 错误,但指定了平台 x64

python - 组合太多

python - 如何将 SVG 折线转换为 Quickdraw Stroke-3 numpy 格式?

Python 删除所有特定变量的坐标 - netcdf