r-如何在NetCDF中更改经度范围



我的NetCDF文件有4个维度(经度、纬度、时间、液位压力)和几个变量。

我想把经度数据[340 342 344…360 0 2 4…18 20]替换为[-20-18-16…-2 0 2 4..18 20]。事实上,经度是从0°到360°计算的,但我需要从-180°到180°。

我在网上找到了一些想法,但我不知道如何应用它们。

这里有一个解释:

"一些netcdf文件包含严格意义上的正值[0360],这与gdal/QGis处理经度值的方式不兼容-它们不环绕日期线。这也会导致gdalwarp的错误,当与其他数据集(具有[-180180]值)组合时,由于180度的经度偏移,它们没有正确对齐。

简单的修复方法是测试经度变量,并通过在IReadBlock和SRS检测中减去180将[180360]区间中的任何值转换为[-180180]。"

我也读过"gdal翻译",但我不知道如何使用它

编辑:我的纬度也有问题,它是N->S(我想要它是S->N),由于"cdo invertelat"

这就是我发现的:

ncap2 -O -s 'where(lon>180) lon=lon-360' ifile ofile

我还不确定它不会改变其他任何事情,但它似乎起作用了。

我意识到这是一个旧线程,但由于我最近遇到了一个非常类似的问题,我想我应该添加我的解决方案,因为我在其他地方找不到它。。。

我使用了cdo包(https://code.zmaw.de/projects/cdo)命令sellonlatbox将我的输入数据从[0360)经度范围转换为[-180180),并将纬度重新排序为[-90,90](即S->N):

cdo sellonlatbox,-180,180,-90,90 infile.nc outfile.nc

最新更新