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

Ell*_*son 7 netcdf4 cdo-climate

我目前正在尝试使用一个 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
Run Code Online (Sandbox Code Playgroud)

第二种网格类型是海洋碳通量的全球数据集(参数: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
Run Code Online (Sandbox Code Playgroud)

当我尝试重新网格 Time_Varying 时,执行以下操作:

cdo remapbil,mygridtype Time_Varying_Biomes.nc TVB_rg.nc

我收到此错误:

cdo remapbil (Abort): Unsupported generic coordinates (Variable: MeanBiomes)!
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Rob*_*son 5

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

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

cdo griddes infile.nc > mygrid
sed -i "s/generic/lonlat/g" mygrid
Run Code Online (Sandbox Code Playgroud)

然后使用CDO设置网格:

cdo setgrid,mygrid infile.nc infile_fixedgrid.nc
Run Code Online (Sandbox Code Playgroud)

然后您应该能够重新网格化该文件。