- 积分
- 8284
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-3-11
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-8-26 11:05:06
|
显示全部楼层
这个程序是按照官网上改的,我想做到的是850hpa上青藏高原等地区虚假值用特定的颜色标示出来!但是画出来的图怎么是这样的啊,请大神们帮忙看一下,谢谢!
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
files=systemfunc("ls -1 fnl_20130501*" )
f=addfiles(files + ".grb2","r")
ListSetType(f,"join")
u=f[:]->UGRD_P0_L100_GLL0(:,20,:,:)
v=f[:]->VGRD_P0_L100_GLL0(:,20,:,:)
hgt = f[:]->HGT_P0_L1_GLL0
z = f[:]->HGT_P0_L100_GLL0(:,{85000},:,:)
avg_hgt=dim_avg_n_Wrap(hgt,0)
avg_z=dim_avg_n_Wrap(z,0)
avg_u=dim_avg_n_Wrap(u,0)
avg_v=dim_avg_n_Wrap(v,0)
uMask = mask(avg_u,avg_hgt.gt.avg_z,False)
vMask = mask(avg_v,avg_hgt.gt.avg_z,False)
spd=sqrt(uMask*uMask+vMask*vMask)
gsmth_spd = smth9(spd, 0.50, -0.25, False)
copy_VarMeta(avg_u,uMask)
copy_VarMeta(avg_v,vMask)
copy_VarMeta(avg_u,gsmth_spd)
wks = gsn_open_wks("x11","wind_May_850hpa")
;gsn_define_colormap(wks,"BlAqGrYeOrReVi200")
uMask@long_name="avg of uv at 850hpa in May"
vMask@long_name="avg of uv at 850hpa in May"
;---Set common resources for all plots
res = True
res@gsnFrame = False
res@gsnDraw = False
res@gsnLeftString = ""
res@gsnRightString = ""
;>--------------------------------------------<
; set for the map
;>--------------------------------------------<
mpres = res
;mpres@gsnAddCyclic = False
mpres@mpMinLatF = 0.
mpres@mpMaxLatF = 60.
mpres@mpMinLonF = 50.
mpres@mpMaxLonF = 140.
mpres@mpDataBaseVersion = "MediumRes"
mpres@mpDataSetName = "Earth..4"
mpres@mpOutlineOn = True ; Turn on map outlines
mpres@mpOutlineSpecifiers = (/"China","Taiwan"/) ;China:states
;mpres@mpAreaMaskingOn = True ;cover it
;mpres@mpMaskAreaSpecifiers = (/"China","Taiwan"/) ;China:states
mpres@mpLandFillColor = "white"
mpres@mpInlandWaterFillColor = "white"
mpres@mpOceanFillColor = "white"
mpres@mpOutlineBoundarySets = "NoBoundaries"
;res@mpFillDrawOrder = "PostDraw"
mpplot=gsn_csm_map(wks,mpres)
;vector
vcres = res
vcres@vcRefMagnitudeF = 10. ; make vectors larger
vcres@vcRefLengthF = 0.032 ; ref vec length
;vcres@vcGlyphStyle = "WindBarb" ; select wind barbs
vcres@vcMinDistanceF = 0.015 ; thin out vectors
vcres@vcGlyphStyle = "CurlyVector"
vcres@vcWindBarbColor = "Blue"
vcres@vcRefAnnoString1On = True
vcres@vcRefAnnoString1 = "10m/s"
;vcres@vcLevelColors = True
vcres@vpXF = 0 ;左边距
vcres@vpYF = 0 ;上边距
vcres@vpWidthF = 1.0 ; height and width of plot
vcres@vpHeightF = 0.8
;res@vcVectorDrawOrder = "PostDraw"
vcplot = gsn_csm_vector(wks,uMask,vMask,vcres)
;contour
cnres = res
cnres@cnFillOn = True
cnres@cnLinesOn = False
cnres@cnMonoFillColor = True
cnres@cnFillColor = "white"
cnres@cnMissingValFillColor = "gray"
cnres@gsnAddCyclic = False
gsmth_spd@long_name=""
gsmth_spd@units=""
cnres@lbLabelsOn = False
cnres@lbLabelBarOn = False
cnres@lbBoxLinesOn = False
cnres@lbPerimFillColor=False
cnres@cnLineLabelsOn = False ; no contour line labels
cnres@cnInfoLabelOn = False
cnres@cnInfoLabelPerimOn = False ; no info label
colors = (/"white","white","white","white","white","white"/)
gsn_define_colormap(wks, colors)
cnplot=gsn_csm_contour(wks,gsmth_spd,cnres)
overlay(mpplot,cnplot)
overlay(mpplot,vcplot)
draw(mpplot)
frame(wks)
end
|
-
|