模式中为了防止海陆边界不连续造成积分不稳定,往往会将海温插值到陆地上,画图时当然不希望这些数据出现,求海温区域平均时也不希望出现,所以必须要处理下。 根据目的是画图还是计算,处理的方式不一样。画图的话,我们希望海陆边缘不要出现
比如这样就很好。其实不需对原数据进行操作,只要改变绘图的属性让地图底图后画就可以:
res@mpFillDrawOrder="PostDraw"
如果要进行计算,就需要mask了,如果是规整的1x1的数据可以用landsea_mask解决
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
a = addfile("$NCARG_ROOT/lib/ncarg/data/cdf/landsea.nc","r") lsdata = a->LSMASK lsm = landsea_mask(lsdata,data&lat,data&lon) data = mask(data,lsm.eq.1,False) data = mask(data,lsm.eq.3,False)
如果数据不是规整的1x1,需要先做一下插值处理,比如包含极点的场变量转换
var4 = f2fsh_Wrap(var4s1,(/180,360/))