如何使用NCO掩膜NetCDF陆地区域仅保留海洋数据?
海洋掩膜制作与应用操作指南
前置说明
你已将两个数据集重采样到一致的0.1°×0.1°分辨率,可直接通过CDO内置算子完成海陆掩膜制作与应用,无需额外引入第三方数据源。
步骤1:制作匹配维度的海洋掩膜文件
- 首先基于CDO内置的全球地形数据集,生成和你的数据分辨率、经纬度范围完全对齐的地形文件:
假设你的MERRA-2重采样后文件名为merra2_pblh_resampled.nc,执行命令:
输出文件cdo -f nc -remapbil,merra2_pblh_resampled.nc -ltopography topo_0.1deg.nctopo_0.1deg.nc中的topo变量代表海拔高度:≥0为陆地区域,<0为海洋区域。 - 基于地形文件生成二值海洋掩膜:海洋区域赋值为1,陆地区域设为缺失值:
cdo -setctomiss,1 -lec,0 topo_0.1deg.nc ocean_mask.nc
步骤2:分别为两个数据集应用掩膜
注意两个数据集的变量维度顺序不同,需分开处理:
处理MERRA-2 PBLH数据
PBLH变量维度为(time, lat, lon),和掩膜的(lat, lon)维度顺序完全匹配,直接相乘即可:
cdo mul merra2_pblh_resampled.nc ocean_mask.nc merra2_pblh_ocean.nc
输出文件中陆地区域的PBLH值会自动设置为原数据定义的缺失值1.e+15f。
处理IMERG降雨率数据
precipitationCal变量维度为(time, lon, lat),和掩膜维度顺序相反,需先转置掩膜维度再相乘:
# 转置掩膜的经纬度维度 cdo -transpose ocean_mask.nc ocean_mask_lonlat.nc # 应用掩膜 cdo mul imerg_precip_resampled.nc ocean_mask_lonlat.nc imerg_precip_ocean.nc
输出文件中陆地区域的降雨率会自动设置为原数据定义的缺失值-9999.9f。
可选验证步骤
可通过ncview可视化输出文件,或用ncdump提取局部陆地区域的数值,确认掩膜生效。
内容的提问来源于stack exchange,提问作者mpletch1
相关产品推荐
相关产品推荐

