我想在高斯网格上对GCM数据进行正则网格,比如在1度X 1度。如何使用CDO
或Python
或MATLAB
.
编辑1:数据格式为netcdf
.
江南体育网页版地球科学堆栈交换是一个为那些江南电子竞技平台对地质学、气象学、海洋学和环境科学感兴趣的人提供的问答网站。注册只需要一分钟。
注册加入这个社区吧我们定义了一个1°x1°网格单元大小为30x30的lat-lon目标网格,网格单元从40°N和-10°E(=10°W)开始:
Gridtype = lonlat xsize = 30 ysize = 30 xfirst = -10 xinc = 1 yfirst = 40 yinc = 1
该文本被写入一个文本文件。看到章节1.3.2 CDO手册有关详细信息和进一步的示例。
如果你已经有一个netCDF文件,其中包含目标网格上的数据,你也可以从该文件中提取网格定义:
cdo griddes FILE_WITH_TARGET_GRID。nc > myGridDef
myGridDef
是文本文件。
我假设我们做的是双线性插值。这是用remapbil
运营商通过:
cdo remapbil myGridDef INPUT_FILE。数控OUTPUT_FILE.nc
输入数据的网格需要在输入文件中正确定义(这通常是个问题)。
数据变量的空间维度(以下示例中的SST)需要命名朗
而且纬度
.此外,坐标变量朗
而且纬度
必须存在(时间无关!)。这些变量需要具有正确的坐标变量属性(参见下面的示例)。
例子:
尺寸:lon = 30;Lat = 30;时间=无限;//(24当前)变量:double lon(lon);Lon:standard_name = "longitude";Lon:long_name = "longitude";Lon:单位= "degrees_east";lon:axis = "X";双拉(拉特);纬度:standard_name = "纬度"; lat:long_name = "latitude" ; lat:units = "degrees_north" ; lat:axis = "Y" ; double time(time) ; time:standard_name = "time" ; time:long_name = "time" ; time:units = "seconds since 1900-01-01 00:00:00" ; time:calendar = "standard" ; time:axis = "T" ; float SST(time, lat, lon) ; SST:long_name = "sea_surface_temperature" ; SST:units = "degree celsius" ; SST:_FillValue = NaNf ; SST:missing_value = NaNf ; SST:var_desc = "sea surface temperature" ;
空间维度和相应的变量存在于源文件中,但没有表示为朗
而且纬度
.然后每个数据变量(本例中为SST)都需要有一个属性坐标
它保存了坐标变量的名称。
SST:坐标= "lon latat ";
例子:
尺寸:TSTEP =无限;//(24当前)COL = 112;Row = 106;变量:";双lon(ROW, COL);Lon:standard_name = "longitude";Lon:long_name = "经度坐标";Lon:单位= "degrees_east";lon:_CoordinateAxisType = " lon ";双拉(ROW, COL); lat:standard_name = "latitude" ; lat:long_name = "latitude coordinate" ; lat:units = "degrees_north" ; lat:_CoordinateAxisType = "Lat" ; double time(TSTEP) ; time:standard_name = "time" ; time:long_name = "time" ; time:units = "seconds since 1900-01-01 00:00:00" ; time:calendar = "standard" ; float SST(TSTEP, ROW, COL) ; SST:long_name = "sea_surface_temperature" ; SST:units = "degree celsius" ; SST:coordinates = "lon lat" ; SST:var_desc = "sea surface temperature" ;
如果坐标变量缺失,则可以通过setgrid
操作符。如果我们想在源文件中添加网格定义,那么我们需要在文本文件中添加源文件的网格定义(参见'define grid')。
mySourceGridDef infile_no_cods。数控INFILE_WI_COORDS.nc
griddes
这个文件是一个曲线网格。
\ endgroup美元
griddes
从一个现有的目标网格netCDF文件),并应用插值例程(例如。remapbil
)下载你需要转换的档案。 \ endgroup美元netcdf
格式。我不确定是否interp2
可应用于Gussian网格
虽然我已经大量使用这个函数直线网格
. \ endgroup美元