爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8521|回复: 7

[作图] 【求助】站点画图等值线和阴影图overlay时边界溢出的问题

[复制链接]
发表于 2014-7-31 16:28:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
      要做冬春夏三个季节的高压指数与我国160站降水的相关分布图,等值线是相关系数,阴影图是t检验;三个季节的图就是用panel,3行1列的。

      首先,画相关系数等值线图,用r=gsn_csm_contour,再画t检验的阴影图,用t=gsn_csm_contour_map。然后把overlay(t,r)。最后三个季节的图再overlay一下。出图的时候,相关系数的等值线超出了中国的边界,不晓得怎么去除,求助啊。。。
rt.PNG

ncl脚本太长,可以略过,画图过程中没报错。
  1. ;冬季、春季、夏季的面积指数与夏季降水的相关分布,并加t检验
复制代码



密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-7-31 16:29:01 | 显示全部楼层
代码怎么只显示一行。。。
;冬季、春季、夏季的面积指数与夏季降水的相关分布,并加t检验
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"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"

begin
;>=========================冬季========================================<
pathwin1="/home/731/r_1212.txt"
pathwin2="/home/731/t_1212.txt"
winr=asciiread(pathwin1,(/160/),"float")
wint=asciiread(pathwin2,(/160/),"float")
;读取站点信息并插值成格点值
paths="/home/731/LonLat.txt"
lonlat=asciiread(paths,(/160,3/),"float")
lat=lonlat(:,1)
lon=lonlat(:,2)
;新建差值格点
olon=fspan(75.,140.,66)
olat=fspan(17.,57.,41)
olon!0="lon"
olon@long_name="lon"
olon@units="degrees_east"
olon&lon=olon
;print(olon)
olat!0="lat"
olat@long_name="lat"
olat@units="degrees_north"
olat&lat=olat
winr@_FillValue=9.96921e+36
rscan=(/10,5,2/)   ;连续的有效半径大小,最大为10,依次递减
datawinr=obj_anal_ic_Wrap(lon,lat,winr,olon,olat,rscan,False)  ;Creanm插值
wint@_FillValue=9.96921e+36
datawint=obj_anal_ic_Wrap(lon,lat,wint,olon,olat,rscan,False)
;>============================春季====================================<
pathspr1="/home/731/r_345.txt"
pathspr2="/home/731/t_345.txt"
sprr=asciiread(pathspr1,(/160/),"float")
sprt=asciiread(pathspr2,(/160/),"float")
sprr@_FillValue=9.96921e+36
rscan=(/10,5,2/)   ;连续的有效半径大小,最大为10,依次递减
datasprr=obj_anal_ic_Wrap(lon,lat,sprr,olon,olat,rscan,False)  ;Creanm插值
sprt@_FillValue=9.96921e+36
datasprt=obj_anal_ic_Wrap(lon,lat,sprt,olon,olat,rscan,False)
;>============================夏季=====================================<  
pathsum1="/home/731/r_678.txt"
pathsum2="/home/731/t_678.txt"
sumr=asciiread(pathsum1,(/160/),"float")
sumt=asciiread(pathsum2,(/160/),"float")
sumr@_FillValue=9.96921e+36
rscan=(/10,5,2/)   ;连续的有效半径大小,最大为10,依次递减
datasumr=obj_anal_ic_Wrap(lon,lat,sumr,olon,olat,rscan,False)  ;Creanm插值
sumt@_FillValue=9.96921e+36
datasumt=obj_anal_ic_Wrap(lon,lat,sumt,olon,olat,rscan,False)

;printVarSummary(datasumt)
   
;>=========================设置图形共有属性=============================<   
;设定出图的类型和路径
wks=gsn_open_wks("pdf","corelation")  
gsn_define_colormap(wks,"GrayWhiteGray")
plot=new(3,graphic)   
;设定属性
res=True
res@gsnAddCyclic=False
res@mpDataSetName="Earth..4"  
res@mpDataBaseVersion="MediumRes"
res@mpOutlineOn=True
;中国范围
res@mpMinLatF= 17.        
res@mpMaxLatF= 55.
res@mpMinLonF= 72.
res@mpMaxLonF= 140.
;加粗边界
res@mpGeophysicalLineThicknessF=2.   
res@mpNationalLineThicknessF=2.   
;修改投影方式
res@mpProjection = "LambertConformal"   ;兰伯特投影
res@mpLambertMeridianF = 110.0
res@mpLimitMode = "LatLon"
res@mpLambertParallel1F = .001      ;Default: .001
res@mpLambertParallel2F = 89.999    ;Default: 89.999
;去掉行政区域以外的
res@mpAreaMaskingOn = True   ;使能填充覆盖
res@mpMaskAreaSpecifiers = (/"China","Taiwan","Disputed area between India and China","India:Arunachal Pradesh"/)  ;China:states
res@mpOutlineSpecifiers=(/"China:states","Taiwan"/)
res@mpOceanFillColor = 0     ;用白色填充海洋  0是colormap的索引值
res@mpInlandWaterFillColor = 0  ;用白色填充内陆湖水
res@mpLandFillColor=0
;res@mpOutlineBoundarySets="NoBoundaries"
;等值线不显示,并填色
res@cnFillOn=True
res@cnLinesOn=False
res@cnLineLabelsOn = False
res@cnFillDrawOrder= "PreDraw"     
res@lbLabelBarOn=False
res@cnInfoLabelOn=False        
;画特定的等值线并填色
res@cnLevelSelectionMode="ExplicitLevels"      
res@cnLevels=(/-2.704,-2.021,2.021,2.704/)
res@cnFillColors=(/10,38,0,38,10/)
res@tiMainString=" "
res@gsnRightString=" "
res@gsnLeftString=" "
res@tmYROn=False
res@tmXTOn=False
res@cnInfoLabelOn=False         
res@cnLineLabelsOn=False
res@gsnMaximize=False      
;>=========================各个图形属性分别设置=============================<
;>===========冬季==================<
winrres=True
;等值线显示
winrres@cnFillOn=False
winrres@cnLinesOn=True
winrres@cnLineLabelsOn=False
winrres@cnInfoLabelOn=False
plotwinr=gsn_csm_contour(wks,datawinr,winrres)
plot(0)=gsn_csm_contour_map(wks,datawint,res)
overlay(plot(0),plotwinr)
;draw(plot(0))
;>===========春季==================<
sprrres=True
;等值线显示
sprrres@cnFillOn=False
sprrres@cnLinesOn=True
sprrres@cnLineLabelsOn=False
sprrres@cnInfoLabelOn=False
plotsprr=gsn_csm_contour(wks,datasprr,sprrres)
plot(1)=gsn_csm_contour_map(wks,datasprt,res)
overlay(plot(1),plotsprr)
;draw(plot(1))
;>===========夏季==================<
sumrres=True
;等值线显示
sumrres@cnFillOn=False
sumrres@cnLinesOn=True
sumrres@cnLineLabelsOn=False
sumrres@cnInfoLabelOn=False
plotsumr=gsn_csm_contour(wks,datasumr,sumrres)
plot(2)=gsn_csm_contour_map(wks,datasumt,res)
overlay(plot(2),plotsumr)
;draw(plot(2))

plres=True
plres@gsnMaximize=False
plres@gsnPanelLabelBar=True
plres@txString="Corelation between AREI and PREI "
plres@gsnPanelFigureStrings= (/"a) winter","b) spring","c) summer"/)
plres@amJust= "TopLeft"
gsn_panel(wks,plot,(/3,1/),plres)
frame(wks)   
end

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-7-31 17:00:57 来自手机 | 显示全部楼层
本来是想把相关系数的等值线也带上map的,结果overlay的时候系统说两个map型的图不能oberlay
密码修改失败请联系微信:mofangbao
发表于 2014-8-1 07:41:08 来自手机 | 显示全部楼层
http://www.ncl.ucar.edu/Applications/mask.shtml
密码修改失败请联系微信:mofangbao
发表于 2014-12-6 19:55:33 | 显示全部楼层
请问楼主这个问题解决了吗。。。同问
密码修改失败请联系微信:mofangbao
发表于 2018-1-2 17:50:33 | 显示全部楼层
请问楼主有没有解决
密码修改失败请联系微信:mofangbao
发表于 2018-7-24 16:02:40 | 显示全部楼层
楼主解决了吗
密码修改失败请联系微信:mofangbao
发表于 2019-11-29 11:12:32 | 显示全部楼层
本帖最后由 fayfang 于 2019-11-29 11:18 编辑

可以试试把溢出那一层的mpFillDrawOrder设置成"PreDraw"不知道有没有用
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表