使用 cdo 将通用网格类型转换为 lonlat 网格类型

问题描述

我目前正在尝试使用一个 NetCDF 文件(可以从 https://doi.pangaea.de/10.1594/PANGAEA.828650 下载的开源数据)从该数据集(https://www.nodc.noaa.gov/archive/arc0105/0160558/3.3/data/0-data/spco2_1982-2015_MPI_SOM-FFN_v2016.nc,再次开源)中提取特定纬度。

一个数据集是定义的全球海洋区域,称为生物群落,我已经成功地从该区域提取了覆盖标记为 16 和 17 的生物群落的区域。

此数据集具有以下网格类型:

gridtype  = generic
gridsize  = 64800
xsize     = 180
ysize     = 360
xname     = lat
xunits    = "degrees latitude"
yname     = lon
yunits    = "degrees longitude"
xfirst    = -89.5
xinc      = 1
yfirst    = -179.5
yinc      = 1

第二种网格类型是海洋碳通量的全球数据集(参数:fgco2_raw),我希望从 Time_varying_Biomes.nc 中生物群落 16 和 17 定义的区域中提取值

此数据集 spco2_1982-2015_MPI_SOM-FFN_v2016.nc 具有以下网格类型:

gridtype  = lonlat
gridsize  = 64800
datatype  = float
xsize     = 360
ysize     = 180
xname     = lon
xlongname = "longitude"
xunits    = "degrees_east"
yname     = lat
ylongname = "latitude"
yunits    = "degrees_north"
xfirst    = -179.5
xinc      = 1

当我尝试重新排列 Time_varying 时,执行以下操作:

cdo remapbil,mygridtype Time_varying_Biomes.nc TVB_rg.nc

我收到此错误

cdo remapbil (Abort): Unsupported generic coordinates (Variable: MeanBiomes)!

以前有没有人遇到过这个问题,你知道我该如何解决吗?如果您需要更多信息来解决问题,请告诉我。

提前致谢!

解决方法

您可以使用 setgrid 运算符解决此问题。

首先创建一个网格文件。这与您提供的相同,但将“通用”替换为“lonlat”:

cdo griddes infile.nc > mygrid
sed -i "s/generic/lonlat/g" mygrid

然后使用CDO设置网格:

cdo setgrid,mygrid infile.nc infile_fixedgrid.nc

然后您应该能够重新整理文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...