2013-04-26 74 views
1

有没有办法在使用numpy的python中的两个netcdf文件上执行区域统计功能?但没有使用gdal?更高分辨率的netcdf是0.5度,更大的netcdf是2度。所以,我想平均所有0.5度的细胞落入较大的2度细胞内。区域内的Numpy聚合

谢谢!

回答

2

与其使用numpy,我实际上会使用气候数据运算符(cdo)执行此任务。这可以处理所有类型的本地网格,而不仅仅是这里的一个网格单元精确分割为16的特殊情况。

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

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

在这里,我使用第一顺序重映射保守,所以假设文件1是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