爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5676|回复: 0

ncl 画青藏高原边界内图问题

[复制链接]

新浪微博达人勋

发表于 2017-5-9 22:04:37 | 显示全部楼层 |阅读模式
NCL
系统平台: ncl mask青藏高原
问题截图: -
问题概况: 我想只保留青藏高原边界线以内的内容,想要把边界线外的mask掉
我看过提问的智慧: 看过
自己思考时长(天): 14

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

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

x
begin

;************************************************
;************************************************
; create pointer to file and read in data
;************************************************
shp_fname = "/cygdrive/c/Users/Administrator/Desktop/NN/tibetan/tibet.shp"

fils = systemfunc("ls /cygdrive/c/Users/Administrator/Desktop/NN/GLDAS_CLM10SUBP_3H.A2010001.0000.001.grb")
printVarSummary(fils)   ; full path to files
f = addfiles(fils, "r")
ListSetType(f,"join")
printVarSummary(f)

; ListSetType(f,"join")
sw = f[:]->SOIL_M_GDS0_DBLY
printVarSummary(sw)
printVarSummary(swy)
copy_VarCoords(sw(0,:,:), swy)
udims = dimsizes(swy)
     opt             = True
     opt@return_mask = True
     TP_mask        = shapefile_mask_data(swy,shp_fname,opt)
   res                       = True   
   wks = gsn_open_wks("png", "sm11")
   gsn_define_colormap(wks,"MPL_RdYlBu")     

   ;res@gsnMaximize           = True   
   res@gsnDraw               = False
   res@gsnFrame              = False
   res@mpOutlineOn           = False
   res@cnFillOn              = True
   res@cnLinesOn             = False  
   res@cnLineLabelsOn        = False   
   res@lbLabelBarOn          = True   
   res@lbBoxLinesOn          = True
   res@cnSmoothingOn           = True     
   ;res@cnSmoothingDistanceF  =   True
   res@cnSmoothingTensionF   =   True
   res@gsnSpreadColors     = True      
   res@gsnSpreadColorStart  = 3            
  res@gsnSpreadColorEnd   = 9               
  res@cnLevelSelectionMode    = "ExplicitLevels"

   res@gsnAddCyclic        = False
  res@cnFillDrawOrder     = "Draw"
  ;axis and ticks set
   res@mpMinLonF            = 70               ; set min lon
   res@mpMaxLonF            = 110               ; set max lon
   res@mpMinLatF            = 24               ; set min lat
   res@mpMaxLatF            = 45               ; set max lat
      res@tmXBValues           = (/70.,80.,90.,100.,110./);,120.,130.,140/)
   res@tmXBLabels           = (/"70E","80E","90E","100E","110E"/);,"120E","130E","140E"/)
   res@tmYLValues           = (/20.,25.,30.,35.,40.,45./)        ;,50.,55/)     ;(/15.,
   res@tmYLLabels           = (/"20N","25N","30N","35N","40N","45N"/)       ;,"50N","55N"/)  ;(/"15N",  
   res@tmXTOn               =False           ;turns off the top tick marks
   res@tmYLMinorOn          =False           ;Turns off minor tick marks

  res@mpDataBaseVersion     = "MediumRes"
   res@mpLandFillColor         = "white"
   res@mpInlandWaterFillColor  = "white"
   res@mpOceanFillColor        = "white"
   res@gsnLeftString        ="soil moisture"
   res@gsnRightString        ="m~S~3~N~/m~S~3~N~"

plots1 = gsn_csm_contour_map(wks,swy,res)

   lnres  = True
   poly_mask0 = gsn_add_shapefile_polylines(wks,plots1,shp_fname,lnres)

   draw(plots1)
   frame(wks)

end

sm14.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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