爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9606|回复: 7

[作图] ncl作图出现的问题

[复制链接]

新浪微博达人勋

发表于 2013-7-31 20:28:55 | 显示全部楼层 |阅读模式

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

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

x
关于画图时出现如 mpMinLonF is not a valid resource in curl_mean00011_contour at this time 这种情况,要怎么检查到底是哪里出错了呢。   res@mpMinLonF            = min(rot1&lon)                res@mpMaxLonF           = max(rot1&lon)
  res@mpMinLatF            = min(rot1&lat)
  res@mpMaxLatF            = max(rot1&lat)
我想用这个来加陆地边界,但是它老是提示上边的错误,我觉得这些resource应该都是通用的吧,大家有没有什么好的解决方法?谢谢!


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-31 21:49:40 | 显示全部楼层
帖完整的脚本吧,就这样没法帮你解决
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-7-31 21:53:34 | 显示全部楼层

begin
files = systemfunc("ls ./rota*.nc")   ;批量处理
f0     =addfiles(files,"r")       ;以只读方式打开一个文件
ListSetType (f0, "join")
   rot      =f0[:]->rota
   rot!0    ="time"
;   tem      =lonFlip(tem0)
   if (any(isnan_ieee(rot))) then        ;isnan_ieee返回包含ieee nan的数组
      value  = 1.e20
      replace_ieeenan (rot, value, 0) ;该函数用于将nan值转换成用户指定的值 ;value是用于代替nan
      rot@_FillValue = value
   end if
   
   rot1    =rot(time|:,{lat|0:30},{lon|99:122})
   rot1    =rot1*1e2
   lat      =f0[0]->lat
   lon      =f0[0]->lon
   lat@units ="degrees_north"
   lon@units ="degrees_east"
   lat       =rot1&lat
   lon       =rot1&lon
   

   rot1_mean=dim_avg_n_Wrap(rot1,0)      ;求年平均
   rot2     =dim_rmvmean_n_Wrap(rot1,0)   ;直接是三维场时减去年平均
  
print(rot2(0,0,:))   
;printVarSummary(strf1)    ;Prints a summary of a variable's information.
  ; strf1&lat  =lat
;  rot1&depth=dep
   delete(rot2@long_name)   ;去掉strf2中的属性long_name
printVarSummary(rot1)
;******************************************
;plot
  wks1                =gsn_open_wks("ps","curl_mon_mean_minus_annual_mean00011")
;  wks2                =gsn_open_wks("ps","curl_mean00011")
   gsn_define_colormap(wks1,"ncl_default")
;   gsn_define_colormap(wks2,"ncl_default")
  res                 =True
  plot                =new(12,graphic)
;  res@gsnDraw         =False
;  res@gsnFrame        =False

;  res@mpLimitMode          ="LatLon"
;  res@mpFillBoundarySets   ="Geophysical"
  res@mpFillDrawOrder      = "PreDraw"
  res@mpLandFillColor      = "gray"       ;加陆地边界  
  
  res@mpOutlineOn           = True
  res@gsnAddCyclic             = False
  res@mpMinLatF            = 0
  res@mpMaxLatF            = 20   
  res@mpMinLonF            = 99            
  res@mpMaxLonF            = 122
  

  res@cnLevelSelectionMode   ="ManualLevels"  ;设置colorbar等距
  res@cnMinLevelValF         =-1.6
  res@cnMaxLevelValF         =1.6
  res@cnLevelSpacingF        =0.1

  res@cnInfoLabelFontHeightF =0.012
  res@tmXBLabelFontHeightF   =0.025
  res@tmYLLabelFontHeightF   =0.02
  res@tmXBOn                 =False
  
  res@tmYLOn                 =False    ;y轴左边字符不开
  res@tmXBLabelFontColor     =1
  res@tmYLLabelFontColor     =1

  res@lbLabelStride          =1
  res@lbLabelBarOn           =False  
  res@lbOrientation          ="Vertical";   
  res@vpHeightF              =0.4
  res@vpWidthF               =0.5
  
  res@cnFillOn       =True
  res@cnLinesOn      =False
  res@cnLineLabelsOn =False
  res@cnInfoLabelOn  =False   
  res@gsnSpreadColors=True
  res@lbOrientation  ="vertical"
  
  res@gsnAddCyclic    = False
  res@sfXArray       =lon
  res@sfYArray       =lat
   
  res@gsnYAxisIrregular2Linear =True
  res@trYReverse     =False  
  

do i=0,1
  plot(i+1)=gsn_csm_contour(wks1,rot2(i+1,:,:),res)
  plot(i+4)=gsn_csm_contour(wks1,rot2(i+4,:,:),res)
  plot(i+7)=gsn_csm_contour(wks1,rot2(i+7,:,:),res)
end do
  res@tmYLOn                 =False
  res@tmXBOn                 =True
  res@tmXBMode               ="Explicit"

print(lat)  
  res@tmXBValues             =(/100,105,110,115,120/)
  res@tmXBLabels             =(/"100E","105E","110E","115E","120E"/)
   do i=0,1
     plot(i+10)=gsn_csm_contour(wks1,rot2(i+10,:,:),res)
   end do
   res@tmYLOn                =True
   res@tmYLMode               ="Explicit"
   res@tmYLValues             =(/3.0,6.0,9.0,12.0,15.0,18.0/)
   res@tmYLLabels             =(/"3N","6N","9N","12N","15N","18N"/)
   plot(9)    =gsn_csm_contour(wks1,rot2(9,:,:),res)
   res@tmXBOn                =False    ;x轴下边字符不开
   plot(0)    =gsn_csm_contour(wks1,rot2(0,:,:),res)
   plot(3)    =gsn_csm_contour(wks1,rot2(3,:,:),res)
   plot(6)    =gsn_csm_contour(wks1,rot2(6,:,:),res)

;panel plot   ;所有图画在一张图上
   pres               =True

   pres@gsnPanelLabelBar  =True


   pres@gsnPanelFigureStrings= (/"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"/)  
   pres@amJust   = "BottomLeft"
   pres@pmLabelBarOrthogonalPosF        =0.005
   pres@gsnPanelFigureStringsFontHeightF=0.01   
   pres@gsnPanelXWhiteSpacePercent      =0
   pres@gsnPanelYWhiteSpacePercent      =0

   pres@lbLabelBarOn        =True
   pres@lbOrientation       ="Vertical"

   pres@pmLabelBarHeightF     =0.8
   pres@lbLabelStride         = 3
;   drawNDCGrid(wks1)
   pres@txFontHeightF = 0.01
   gsn_text_ndc(wks1,"x10~S~-2",0.97,0.91,pres)   
   gsn_panel(wks1,plot,(/4,3/),pres)
Trueend
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-31 23:51:19 | 显示全部楼层
你用gsn_csm_contour这个来画图,就是不带地图的,你设置地图范围,肯定是无效的么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-1 10:05:32 | 显示全部楼层
尽头的尽头 发表于 2013-7-31 23:51
你用gsn_csm_contour这个来画图,就是不带地图的,你设置地图范围,肯定是无效的么

原来是这样,有点感觉了...谢谢啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-4 16:08:47 | 显示全部楼层
多谢~~类似问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-7 22:59:19 | 显示全部楼层
学习了
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-10-5 20:31:03 | 显示全部楼层
尽头的尽头 发表于 2013-7-31 23:51
你用gsn_csm_contour这个来画图,就是不带地图的,你设置地图范围,肯定是无效的么

学习了!感谢大神
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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