这是我之前的问题的后续内容,因为这对示例和数据更加具体。我有一个304乘448的冰数据阵列(在极地立体投影中),其中可以获得netcdf here。可以在此file中找到每个网格框的相应纬度/经度点。我想将这些数据转换为常规的lat / lon网格(比如180x360),其中每个网格框都是一个度数。有没有python方式这样做?等等使用Basemap,或者使用CDO(气候数据运算符)?
非常感谢提前。 詹姆斯
答案 0 :(得分:1)
如果您首先使用例如
将网格添加到数据文件中ncks -A -v lat,lon NSIDC_LatLon.nc sample.nc
然后你可以使用NCO的ncremap来修改,例如,
ncremap -i sample.nc -d 1x1.nc -o out.nc
不幸的是,这将需要NCO的当前快照(而不是已发布的版本),因为输入文件包含一个异常顺序的维度,我只是修补了NCO来处理。重新排序的输出样本为here。
根据OP的请求,我重新编译了他的文件,然后上传了它(here)。我没有1x1数据集,所以我首先创建一个1x1网格文件,如手册中所示,然后重新编号(使用ncremap -g选项):
ncremap -i ~/NSIDC.nc -g ${DATA}/grids/180x360_SCRIP.20150901.nc -o ~/NSIDC_1x1.nc
答案 1 :(得分:0)
通常在CDO中执行此操作的命令是
cdo remapcon,r360x180 in.nc out.nc
您可以使用bil = bilinear,nn =最近邻居,con2 = 2阶保守重映射代替con =保守重映射。
根据此帖子,https://code.mpimet.mpg.de/boards/1/topics/8302?r=8326最新版本的cdo应该能够处理极地立体投影。