- 问题起因:
自己写出的nc文件经度的排序为:-180°~180°
,用于插值时需要将其经度排序与目标文件的经度排序方式一致,恰巧我的目标nc文件经度排序为:0°~360°,需要先进行转换。 - 虽然之前我也曾写过转换的方法,但是一般比较麻烦,还经常容易出问题。
- 最近在学习cdo命令,发现cdo可以方便快捷的实现上述问题。只需要通过下列一行命令即可:
cdo sellonlatbox,lon1,lon2,lat1,lat2 input.nc output.nc
input.nc
就是你要输入的nc文件 ,output.nc
就是转换完成后输出的nc文件
但是在我进行转换时,却发现报错了:
通过网页查找,发现问题如下图所示,我创建的nc文件中,grid coordinates网格
的格式为:generic (通用)
cdo无法识别该格式
解决方法:
将generic
转换为 lonlat
格式
通过下面的命令可以实现:
1、创建一个新的网格文件,将“generic”替换为“lonlat”
cdo griddes 你的文件名称.nc > mygrid sed -i "s/generic/lonlat/g" mygrid
2、使用cdo命令重新设置网格
cdo setgrid,mygrid 你的文件名.nc 输出文件名.nc
最后进行结果检验:
成功了!!!插值也轻易完成啦~~希望对大家有帮助!!!
一个努力学习python的海洋 水平有限,欢迎指正!!! 欢迎评论、收藏、点赞、转发、关注。 关注我不后悔,记录学习进步的过程~~