爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6117|回复: 3

[其他] 【求助】怎么画站点风?

[复制链接]

新浪微博达人勋

发表于 2022-3-9 09:01:53 | 显示全部楼层 |阅读模式

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

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

x
各位老师,可以帮忙看一下我的程序是哪里有问题吗?我想把站点风画在地形图上,结果只能画出地形图,不能画出站点风。
; These files are loaded by default in NCL V6.2.0 and newer
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/wrf/WRFUserARW.ncl"

begin
;---Open WRF output file.

  filename1 ="/home/lenovo/wrfout_d01_2017-07-20_00_00_00"
  a = addfile(filename1 +".nc","r")

;---Read terrain height and lat/lon off file.
  it        = 0     ; first time step
  hgt       = wrf_user_getvar(a,"HGT",it)    ; Terrain elevation
  hgt@lat2d = wrf_user_getvar(a,"XLAT",it)   ; latitude/longitude
  hgt@lon2d = wrf_user_getvar(a,"XLONG",it)  ; required for plotting

  
  ;cmap= read_colormap_file("OceanLakeLandSnow")
  filename2 = "/home/lenovo/2017010308.txt"
  nrow=numAsciiRow(filename2)
  ncol=numAsciiCol(filename2)
  data=asciiread(filename2, -1, "string")
  ;data2= onedtond(data,(/nrow,ncol/))
  lon=stringtofloat(str_get_field(data,1," "))
  lat=stringtofloat(str_get_field(data,2," "))
  wd=stringtofloat(str_get_field(data,5," "))
  ws=stringtofloat(str_get_field(data,6," "))
  uv   = wind_component(ws,wd,0)
  uu=uv(0,:)
  vv=uv(1,:)
  wuu=new((/nrow,3/),float)
  wuu(:,0)=lat
  wuu(:,1)=lon
  wuu(:,2)=uu
  wuu@lat1d=lat
  wuu@lon1d=lon
  wvv=new((/nrow,3/),float)
  wvv(:,0)=lat
  wvv(:,1)=lon
  wvv(:,2)=vv
  wvv@lat1d=lat
  wvv@lon1d=lon
  wks = gsn_open_wks("png","station")
   
  res               = True

  res@mpShapeMode   ="FreeAspect"     ;此功能要打开才可以调节视图
  res@vpHeightF     =0.6
  res@vpWidthF      =0.6
  res@gsnMaximize   = True         ; maximize plot in frame

  res@tiMainString  = ""          ;filename     同下   不过有tiMainOn=true  False  进行关闭!
  res@gsnLeftString  = ""         ;Default: data@units   可以使用""填写空值取消默认高级接口的左字符串! 目前开口命令未找到
  res@gsnRightString  = ""
  res@tmXBLabelFontHeightF    = 0.015
  res@tmYLLabelFontHeightF    = 0.02
  ;res@cnFillOn      = True  

  ;res@cnFillPalette = cmap(4:254,1)
  res@cnLinesOn     = False

  res@mpProjection  = "CylindricalEquidistant"    ; The default

  res@gsnAddCyclic  = False


;---Zoom in on plot
  res@mpMinLatF     = min(hgt@lat2d) ;39.26664;
  res@mpMaxLatF     = max(hgt@lat2d) ;40.50695;
  res@mpMinLonF     = min(hgt@lon2d) ;115.5248;
  res@mpMaxLonF     = max(hgt@lon2d) ;117.3066;
;---Additional resources desired
  res@pmTickMarkDisplayMode = "Always"   ; nicer tickmarks
  
  res@mpGeophysicalLineThicknessF  =3
  res@mpNationalLineThicknessF     =3               ;Default: 1.0
  res@mpProvincialLineThicknessF   =3               ;Default: 1.0
  res@mpCountyLineThicknessF       =3
  res@mpDataBaseVersion     = "MediumRes"       ; better and more map outlines
  res@mpDataSetName         = "Earth..4"
  res@mpOutlineBoundarySets = "AllBoundaries"
  res@mpOutlineOn           = True


  res@gsnDraw = False
  res@gsnFrame = False

  res@lbOrientation         = "Vertical";"horizontal";
  res@tiMainOffsetYF        = -0.03           ; Move the title down

;---Change contour levels to better match the color map being used

  res@cnFillOn             = True
  res@cnLinesOn            = False
  ;res@cnFillPalette        = "OceanLakeLandSnow";"BlueWhiteOrangeRed";"CBR_coldhot";"posneg_2";"CBR_coldhot";"temp_19lev","CBR_coldhot"
  res@cnFillPalette        = "OceanLakeLandSnow"
  res@gsnSpreadColorStart =4
  res@gsnSpreadColorEnd   =244
  res@cnFillMode           = "AreaFill" ;"RasterFill"    ; 设置填充模式 栅格填充没有区域填充好看!
  res@gsnMaximize          = True
  res@cnLevelSelectionMode = "ManualLevels"
  res@cnMinLevelValF       = 0
  res@cnMaxLevelValF       = 5000
  res@cnLevelSpacingF      = 50
  res@lbBoxLinesOn         = False                ; turn off labelbar box lines
  ;res@cnLevelSelectionMode = "ExplicitLevels"
  ;res@cnLevels = (/0,200,400,600,800,1000,1200,1400,1600,1800/)
  res@lbLabelBarOn         = True                 ; 是否打开色标   Default: True  可以选择关闭!
  res@lbLabelFontHeightF   = 0.015               
  res@lbOrientation        = "horizontal" ;"Vertical"           ; 色标的方向
  ;res@lbLabelAutoStride   = True                 ; 是否自动设置色标标签间隔    默认为Ture  如果修改选择lbLabelStride
  res@lbLabelStride        =  20                  ; 手动设置色标数字标签间隔(与填充图中的间隔不同)    Default: 1
  res@lbLabelFontHeightF   = 0.015                 ;Default: 0.02
  res@lbLabelAlignment     = "InteriorEdges"  ;"BoxCenters"  ; ;色标标签位于颜色方框的位置    Default: InteriorEdges   建议用默认
  ;res@cnLabelBarEndStyle   = "IncludeMinMaxLabels";"ExcludeOuterBoxes";   ; 色标尾端样式 "ExcludeOuterBoxes"排除最外颜色箱子"ExcludeOuterBoxes"   Default: IncludeOuterBoxes
  ;res@lbLabelAngleF        = 90                   ; 色标标签倾斜角度    Default: 0   角度以逆时针旋转   
  ;res@lbTitleOn             = True                 ; 是否打开色标标题
  ;res@lbTitleString         = "m" ;"~S~o~N~c"      ;"m/s"     ; 色标标题
  ;res@lbTitlePosition      = "bottom";"Right"              ; 色标标题位置   默认Default: Top    此功能没啥用途建议不用!
  ;res@lbTitleJust           = "bottomcenter"        ;字符串的第一部分表示垂直对齐上中下(top, center, bottom),第二部分表示水平对齐(左、中、右)(left, center, right)
  ;res@lbTitleFontThicknessF  = 0.1                 ;  Default: 1.0
  ;res@lbTitleFontHeightF     = 0.01                ; Default: 0.025   字体大小例如°C和 m/s的大小

  ;res@pmLabelBarOrthogonalPosF = -0.03             ; 色标垂直方向的位置   Default: 0.02     负数为在垂直方向往←左移动
  ;res@pmLabelBarParallelPosF  = 0.55               ; 色标水平方向的位置   Default: 0.5      负数为在水平方向往下↓移动
  ;res@pmLabelBarWidthF        = 0.15               ; 色标的宽度  Default: 0.15 (for a viewport width of 0.6)对于窗口为0.6的默认值
  res@pmLabelBarHeightF       = 0.1                 ; 色标的高度  Default: 0.6 (for a viewport height of 0.6)对于窗口为0.6的默认  

  ;res@cnLevelSelectionMode = "ExplicitLevels"
  ;res@cnLevels = (/2,100,200,400,600,800,1000,1200,1400,1600,1800,2000,2200/)
  contour = gsn_csm_contour_map(wks,hgt,res)



  wmsetp("col", 2)
  wmsetp("wbs", .06)

   wmbarbmap(wks,lat,lon,uu,vv)
  draw(contour)
  
  frame (wks)  
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-3-13 21:39:28 | 显示全部楼层
试着这么改一下!我是这样出图的:
draw(contour)

wmsetp("col", 2)
wmsetp("wbs", .06)
  wmbarbmap(wks,lat,lon,uu,vv)
  
  frame (wks)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-10-21 12:28:21 | 显示全部楼层
请问楼主解决这个问题了吗?目前遇到了一样的问题,可以请教一下吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-12-19 10:03:48 | 显示全部楼层
请问wuu和wvv画的时候用到了吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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