LZN's Blog CodePlayer

【已解决】ncl中关于Land Sea Mask的问题

2014-11-22
LZN

模式中为了防止海陆边界不连续造成积分不稳定,往往会将海温插值到陆地上,画图时当然不希望这些数据出现,求海温区域平均时也不希望出现,所以必须要处理下。 根据目的是画图还是计算,处理的方式不一样。画图的话,我们希望海陆边缘不要出现QQ图片20141122160718

比如这样就很好。其实不需对原数据进行操作,只要改变绘图的属性让地图底图后画就可以:

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/))

Comments

Content