如何解决 cdo转换经度-180~180 为0~360时出现报错:cdo sellonlatbox: Unsupported grid type: generic的问题

  • 问题起因:
    自己写出的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无法识别该格式
如何解决 cdo转换经度-180~180 为0~360时出现报错:cdo sellonlatbox: Unsupported grid type: generic的问题_第1张图片
解决方法:
generic 转换为 lonlat 格式

通过下面的命令可以实现:
1、创建一个新的网格文件,将“generic”替换为“lonlat”

cdo griddes 你的文件名称.nc > mygrid
sed -i "s/generic/lonlat/g" mygrid

2、使用cdo命令重新设置网格

cdo setgrid,mygrid 你的文件名.nc 输出文件名.nc

最后进行结果检验:
在这里插入图片描述

如何解决 cdo转换经度-180~180 为0~360时出现报错:cdo sellonlatbox: Unsupported grid type: generic的问题_第2张图片
成功了!!!插值也轻易完成啦~~希望对大家有帮助!!!

在这里插入图片描述

					    			一个努力学习python的海洋
				                    水平有限,欢迎指正!!!
			                        欢迎评论、收藏、点赞、转发、关注。
			                        关注我不后悔,记录学习进步的过程~~

你可能感兴趣的:(如何解决系列,学习,cdo,cdo命令介绍)