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

Converting generic grid type to a lonlat gridtype using cdo

我目前正在尝试使用一个 NetCDF 文件(可以从 https://doi.pangaea.de/10.1594/PANGAEA.828650) to extract specific latitudes from this dataset (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 运算符解决此问题。

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

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

然后用CDO设置网格:

cdo setgrid,mygrid infile.nc infile_fixedgrid.nc

然后您应该可以重新网格化文件。