使用 NCO 仅屏蔽 land/including 海洋数据?
Masking data over land/including only oceanic data using NCO?
我有两个不同的数据集,它们最初具有不同的分辨率,但已使用 CDO 的 remapbil 运算符重新网格化为具有 0.1x0.1 度分辨率。第一个是 NASA 的 MERRA-2 行星边界层高度 (PBLH) 数据,第二个是 NASA 的 IMERG 降雨率(下图为 precipitationCal)数据。我已经参考了 关于屏蔽海洋数据的问题,但我仍然对从哪里开始感到困惑。我试图掩盖陆地数据而不是海洋数据。如何为我的数据创建自己的掩码?数据说明如下。
dimensions:
time = UNLIMITED ; // (24 currently)
lon = 650 ;
lat = 351 ;
variables:
int time(time) ;
time:standard_name = "time" ;
time:long_name = "time" ;
time:units = "minutes since 2020-07-13 00:30:00" ;
time:calendar = "standard" ;
time:axis = "T" ;
float lon(lon) ;
lon:standard_name = "longitude" ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
float lat(lat) ;
lat:standard_name = "latitude" ;
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
float PBLH(time, lat, lon) ;
PBLH:standard_name = "planetary_boundary_layer_height" ;
PBLH:long_name = "planetary_boundary_layer_height" ;
PBLH:units = "m" ;
PBLH:_FillValue = 1.e+15f ;
PBLH:missing_value = 1.e+15f ;
PBLH:fmissing_value = 1.e+15f ;
PBLH:vmax = 1.e+15f ;
PBLH:vmin = -1.e+15f ;
PBLH:origname = "PBLH" ;
PBLH:fullnamepath = "/PBLH" ;
dimensions:
time = 1 ;
lon = 650 ;
lat = 351 ;
latv = 2 ;
nv = 2 ;
lonv = 2 ;
int time(time) ;
time:DimensionNames = "time" ;
time:Units = "seconds since 1970-01-01 00:00:00 UTC" ;
time:units = "seconds since 1970-01-01 00:00:00 UTC" ;
time:standard_name = "time" ;
time:LongName = "Representative time of data in \n",
"\t\t\tseconds since 1970-01-01 00:00:00 UTC." ;
time:bounds = "time_bnds" ;
time:axis = "T" ;
time:calendar = "julian" ;
time:origname = "time" ;
time:fullnamepath = "/Grid/time" ;
float lon(lon) ;
lon:DimensionNames = "lon" ;
lon:Units = "degrees_east" ;
lon:units = "degrees_east" ;
lon:standard_name = "longitude" ;
lon:LongName = "Longitude at the center of\n",
"\t\t\t0.10 degree grid intervals of longitude \n",
"\t\t\tfrom -180 to 180." ;
lon:bounds = "lon_bnds" ;
lon:axis = "X" ;
lon:origname = "lon" ;
lon:fullnamepath = "/Grid/lon" ;
float lat(lat) ;
lat:DimensionNames = "lat" ;
lat:Units = "degrees_north" ;
lat:units = "degrees_north" ;
lat:standard_name = "latitude" ;
lat:LongName = "Latitude at the center of\n",
"\t\t\t0.10 degree grid intervals of latitude\n",
"\t\t\tfrom -90 to 90." ;
lat:bounds = "lat_bnds" ;
lat:axis = "Y" ;
lat:origname = "lat" ;
lat:fullnamepath = "/Grid/lat" ;
float precipitationCal(time, lon, lat) ;
precipitationCal:DimensionNames = "time,lon,lat" ;
precipitationCal:Units = "mm/hr" ;
precipitationCal:units = "mm/hr" ;
precipitationCal:coordinates = "time lon lat" ;
precipitationCal:_FillValue = -9999.9f ;
precipitationCal:CodeMissingValue = "-9999.9" ;
precipitationCal:origname = "precipitationCal" ;
precipitationCal:fullnamepath = "/Grid/precipitationCal" ;
提前感谢任何对此有任何见解或建议的人。
按照本指南,我能够相对轻松地解决这个问题 here
下面是我的数据中显示面罩工作的图形示例:
Masked data
我有两个不同的数据集,它们最初具有不同的分辨率,但已使用 CDO 的 remapbil 运算符重新网格化为具有 0.1x0.1 度分辨率。第一个是 NASA 的 MERRA-2 行星边界层高度 (PBLH) 数据,第二个是 NASA 的 IMERG 降雨率(下图为 precipitationCal)数据。我已经参考了
dimensions:
time = UNLIMITED ; // (24 currently)
lon = 650 ;
lat = 351 ;
variables:
int time(time) ;
time:standard_name = "time" ;
time:long_name = "time" ;
time:units = "minutes since 2020-07-13 00:30:00" ;
time:calendar = "standard" ;
time:axis = "T" ;
float lon(lon) ;
lon:standard_name = "longitude" ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
float lat(lat) ;
lat:standard_name = "latitude" ;
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
float PBLH(time, lat, lon) ;
PBLH:standard_name = "planetary_boundary_layer_height" ;
PBLH:long_name = "planetary_boundary_layer_height" ;
PBLH:units = "m" ;
PBLH:_FillValue = 1.e+15f ;
PBLH:missing_value = 1.e+15f ;
PBLH:fmissing_value = 1.e+15f ;
PBLH:vmax = 1.e+15f ;
PBLH:vmin = -1.e+15f ;
PBLH:origname = "PBLH" ;
PBLH:fullnamepath = "/PBLH" ;
dimensions:
time = 1 ;
lon = 650 ;
lat = 351 ;
latv = 2 ;
nv = 2 ;
lonv = 2 ;
int time(time) ;
time:DimensionNames = "time" ;
time:Units = "seconds since 1970-01-01 00:00:00 UTC" ;
time:units = "seconds since 1970-01-01 00:00:00 UTC" ;
time:standard_name = "time" ;
time:LongName = "Representative time of data in \n",
"\t\t\tseconds since 1970-01-01 00:00:00 UTC." ;
time:bounds = "time_bnds" ;
time:axis = "T" ;
time:calendar = "julian" ;
time:origname = "time" ;
time:fullnamepath = "/Grid/time" ;
float lon(lon) ;
lon:DimensionNames = "lon" ;
lon:Units = "degrees_east" ;
lon:units = "degrees_east" ;
lon:standard_name = "longitude" ;
lon:LongName = "Longitude at the center of\n",
"\t\t\t0.10 degree grid intervals of longitude \n",
"\t\t\tfrom -180 to 180." ;
lon:bounds = "lon_bnds" ;
lon:axis = "X" ;
lon:origname = "lon" ;
lon:fullnamepath = "/Grid/lon" ;
float lat(lat) ;
lat:DimensionNames = "lat" ;
lat:Units = "degrees_north" ;
lat:units = "degrees_north" ;
lat:standard_name = "latitude" ;
lat:LongName = "Latitude at the center of\n",
"\t\t\t0.10 degree grid intervals of latitude\n",
"\t\t\tfrom -90 to 90." ;
lat:bounds = "lat_bnds" ;
lat:axis = "Y" ;
lat:origname = "lat" ;
lat:fullnamepath = "/Grid/lat" ;
float precipitationCal(time, lon, lat) ;
precipitationCal:DimensionNames = "time,lon,lat" ;
precipitationCal:Units = "mm/hr" ;
precipitationCal:units = "mm/hr" ;
precipitationCal:coordinates = "time lon lat" ;
precipitationCal:_FillValue = -9999.9f ;
precipitationCal:CodeMissingValue = "-9999.9" ;
precipitationCal:origname = "precipitationCal" ;
precipitationCal:fullnamepath = "/Grid/precipitationCal" ;
提前感谢任何对此有任何见解或建议的人。
按照本指南,我能够相对轻松地解决这个问题 here
下面是我的数据中显示面罩工作的图形示例:
Masked data