爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12275|回复: 3

[作图] 请问如何画WRF模拟区域以及如何设置

[复制链接]

新浪微博达人勋

发表于 2021-5-25 20:21:29 | 显示全部楼层 |阅读模式

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

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

x
请教各位大神,目前WRF的模拟区域我只会用util里面自带的plotgrids用NCL画出来,但是现在我要把图放到文章里,需要把图缩小,所以显示经纬度的字体要调大,并且要把显示间隔调大一点,但是我看了下plotgrids.ncl的脚本没有找到调整经纬度字体的地方,请问一下该如何把这个字体调大了?或者各位大神有别的可以画处模拟区域的办法吗?

plotgrids.ncl画出的图

plotgrids.ncl画出的图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-5-28 10:45:50 | 显示全部楼层
导出来放到AI里调整
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-6-9 21:26:59 | 显示全部楼层
本帖最后由 短发党人 于 2021-6-9 21:29 编辑

可以发你一个脚本
;verlay information from 2 domains
; November 2009

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"
;load "./WRFUserARW.ncl"

begin

  wks_type = "png"
  wks_type@wkWidth = 3000
  wks_type@wkHeight = 3000
  wks = gsn_open_wks(wks_type,"wrf_overlay_doms")
  gsn_define_colormap(wks,"cmp_flux")

  d1 = addfile("/***/WPS/met_em.d01.***.nc", "r")
  d2 = addfile("/***/WPS/met_em.d02.***.nc", "r")
  d3 = addfile("/***/WPS/met_em.d03.***.nc", "r")

  var1 = wrf_user_getvar(d1,"HGT_M",0)
  lat1 = wrf_user_getvar(d1,"XLAT",0)
  lon1 = wrf_user_getvar(d1,"XLONG",0)
  var2 = wrf_user_getvar(d2,"HGT_M",0)
  lat2 = wrf_user_getvar(d2,"XLAT",0)
  lon2 = wrf_user_getvar(d2,"XLONG",0)
  var3 = wrf_user_getvar(d3,"HGT_M",0)
  lat3 = wrf_user_getvar(d3,"XLAT",0)
  lon3 = wrf_user_getvar(d3,"XLONG",0)

  var1@lat2d = lat1
  var1@lon2d = lon1
  var2@lat2d = lat2
  var2@lon2d = lon2
  var3@lat2d = lat3
  var3@lon2d = lon3

  dom_dims = dimsizes(var1)
  dom_rank = dimsizes(dom_dims)
  nx1 = dom_dims(dom_rank - 1) - 1
  ny1 = dom_dims(dom_rank - 2) - 1
  dom_dims = dimsizes(var2)
  dom_rank = dimsizes(dom_dims)
  nx2 = dom_dims(dom_rank - 1) - 1
  ny2 = dom_dims(dom_rank - 2) - 1
  dom_dims = dimsizes(var3)
  dom_rank = dimsizes(dom_dims)
  nx3 = dom_dims(dom_rank - 1) - 1
  ny3 = dom_dims(dom_rank - 2) - 1

  res                 = True

; Set some contouring resources.
  res@cnFillOn        = True
  res@cnLinesOn       = False
  res@cnLineLabelsOn  = False
  res@cnInfoLabelOn   = False
  res@gsnSpreadColors = True
  res@cnLevelSelectionMode = "ExplicitLevels"
  res@cnLevels             = (/0, 10, 25, 50, 75, 100, 125, 150, 200, 300, 400, 500, 750, \
                                1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000/)
  res@gsnLeftString = ""
  res@gsnRightString = ""
  res@vpWidthF                    = 0.8
  res@vpHeightF                   = 0.8
  res@vpXF                        = 0.1
  res@vpYF                        = 1.0
  res@gsnDraw         = False
  res@gsnFrame        = False

  res2 = res

; Add map resources
  res@mpDataBaseVersion     = "MediumRes"          ; Default is LowRes
  res@mpOutlineDrawOrder    = "PostDraw"           ; Draw map outlines last
  res@mpGridAndLimbOn       = False                ; Turn off lat/lon lines
  res@pmTickMarkDisplayMode = "Always"             ; Turn on map tickmarks
  res = set_mp_wrf_map_resources(d1,res)
  res@mpLimitMode        = "Corners"               ; Portion of map to zoom
  res@mpLeftCornerLatF   = lat1(0,0)
  res@mpLeftCornerLonF   = lon1(0,0)
  res@mpRightCornerLatF  = lat1(ny1,nx1)
  res@mpRightCornerLonF  = lon1(ny1,nx1)

; Add label bar resources
  res@lbLabelAutoStride        = True
  res@gsnMaximize              = True    ; Maximize plot in frame
  res@lbTitleString            = " "
  res@lbTitleDirection         = "Down"
  res@lbTitleJust              = "CenterRight"
  res@lbTitlePosition          = "Right"
  res@lbTitleOffsetF           = 0.07
  res@lbOrientation            = "Vertical"
  res@pmLabelBarSide           = "Right"
  res@pmLabelBarHeightF        = 0.8
  res@pmLabelBarWidthF         = 0.11
  res@pmLabelBarOrthogonalPosF = 0.03
  res@lbBoxMinorExtentF        = 0.4

  res2@lbLabelBarOn = False  ; Labelbar already created in 1st plot
  res2@gsnMaximize  = False  ; Use maximization from original plot

; we need these to later draw boxes for the location of the nest domain
  xbox_out = new(5,float)
  ybox_out = new(5,float)
  lnres = True
  lnres@gsLineThicknessF  = 3.0

; make images
  map = gsn_csm_contour_map(wks, var1, res)
  plot1 = gsn_csm_contour(wks, var2, res2)
  plot2 = gsn_csm_contour(wks, var3, res2)

; let's make 4 plots
; 1 - the mother domain only
; 2 - the mother and nest domains
; 3 - same as 2, but add a box around domain 2
; 4 - same as 2, but add a box around domain 3

; PLOT 1
  draw(map)
  frame(wks)

; PLOT 2
  overlay (map, plot1)
  draw(map)
  frame(wks)

; PLOT 3
  draw(map)   ; domain 2 already overlaid here - so just draw again
  xbox = (/lon2(0,0),lon2(0,nx2),lon2(ny2,nx2),lon2(ny2,0),lon2(0,0)/)
  ybox = (/lat2(0,0),lat2(0,nx2),lat2(ny2,nx2),lat2(ny2,0),lat2(0,0)/)
  datatondc(map, xbox, ybox, xbox_out, ybox_out)
  gsn_polyline_ndc(wks, xbox_out, ybox_out, lnres)
  frame(wks)
; PLOT 4
  draw(map)   ; domain 2 already overlaid here - so just draw again
  xbox1 = (/lon2(0,0),lon2(0,nx2),lon2(ny2,nx2),lon2(ny2,0),lon2(0,0)/)
  ybox1 = (/lat2(0,0),lat2(0,nx2),lat2(ny2,nx2),lat2(ny2,0),lat2(0,0)/)
  xbox2 = (/lon3(0,0),lon3(0,nx3),lon3(ny3,nx3),lon3(ny3,0),lon3(0,0)/)
  ybox2 = (/lat3(0,0),lat3(0,nx3),lat3(ny3,nx3),lat3(ny3,0),lat3(0,0)/)
  datatondc(map, xbox1, ybox1, xbox_out, ybox_out)
  gsn_polyline_ndc(wks, xbox_out, ybox_out, lnres)
  datatondc(map, xbox2, ybox2, xbox_out, ybox_out)
  gsn_polyline_ndc(wks, xbox_out, ybox_out, lnres)
  frame(wks)
end

你可以稍微修改一下。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-7-5 22:06:23 | 显示全部楼层
短发党人 发表于 2021-6-9 21:26
可以发你一个脚本
;verlay information from 2 domains
; November 2009

收到,谢谢~~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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