[ncl-talk] overlaying multiple layers on a map

Joe Grim grim at ucar.edu
Thu Oct 12 11:26:54 MDT 2017


Hi,

I am in the midst of creating a suite of operational weather plots for the
ATEC project I am working on.  We are replacing RIP plots with NCL plots,
since NCL is much more versatile.  I need the scripts to be as flexible as
possible, since there are a wide variety of plots.  Therefore, I am drawing
each layer of a plot and overlaying them.  For example, in the plot I am
trying to create, there is a map, shaded contour plot, solid contour lines,
dashed contour lines, and wind barbs.  It all plots perfectly, except for
the wind barbs are missing.  I have tried to use numerous examples on the
NCL website as templates, and then adapting them, but none of them will
draw the wind barbs either.  I am trying to avoid using plotting functions
that plot scalars and vectors within the same function, so the plotting
system can be as flexible as possible.

Here is my script.  The input file is on my website, here:
http://joeandfrede.com/ncl/wrfout_d01_2017-09-23_12_00_00.RTC_P+FCST.
Could someone tell me what I am missing or doing wrong?  Thanks on my part,
and the whole ATEC project.

Joe

; This script is used to test ideas for plotting in NCL
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
begin
 PlotType = "png"
 in_file = "wrfout_d01_2017-09-23_12:00:00.RTC_P+FCST"
 ncdf_in = addfile(in_file+".nc","r")
 times  = wrf_user_list_times(ncdf_in)  ; get times in the file
 ntimes = dimsizes(times)         ; number of times in the file
 T2    = wrf_user_getvar(ncdf_in,"T2",0)
 rh2   = wrf_user_getvar(ncdf_in,"rh2",0)
 XLAT  = wrf_user_getvar(ncdf_in,"XLAT",0)
 XLONG = wrf_user_getvar(ncdf_in,"XLONG",0)
 U10   = wrf_user_getvar(ncdf_in,"U10",0)
 V10   = wrf_user_getvar(ncdf_in,"V10",0)
 slp   = wrf_user_getvar(ncdf_in,"slp",0)
 dims       = dimsizes(XLAT)
 nlat       = dims(0)
 nlon       = dims(1)

; Create plot
 PlotName = "T2_RH2_WND10_v2"
 wks = gsn_open_wks(PlotType,PlotName)
 gsn_define_colormap(wks,"BlAqGrYeOrReVi200")

 res_sha = True
 res_sha at cnFillOn = True
 res_sha at gsnDraw    = False
 res_sha at gsnFrame   = False
 res_sha at gsnSpreadColors = True
 res_sha at cnInfoLabelOn = False
 res_sha at sfXArray  = XLONG
 res_sha at sfYArray  = XLAT

 res_con = True
 res_con at cnLineColor = "NavyBlue"
 res_con at cnLineThicknessF = 3
 res_con at gsnDraw    = False
 res_con at gsnFrame   = False
 res_con at cnInfoLabelOn = False
 res_con at gsnLeftStringOrthogonalPosF = 0.05
 res_con at gsnRightStringOrthogonalPosF = 0.05
 res_con at sfXArray  = XLONG
 res_con at sfYArray  = XLAT

 res_dash = True
 res_dash at cnLineColor = "red4"
 res_dash at cnLineThicknessF = 3
 res_dash at gsnContourPosLineDashPattern = 1
 res_dash at gsnDraw    = False
 res_dash at gsnFrame   = False
 res_dash at cnInfoLabelOn = False
 res_dash at gsnLeftStringOrthogonalPosF = 0.1
 res_dash at gsnRightStringOrthogonalPosF = 0.1
 res_dash at sfXArray  = XLONG
 res_dash at sfYArray  = XLAT

 res_vec = True
 res_vec at gsnDraw    = False
 res_vec at gsnFrame   = False
 res_vec at vcGlyphStyle    = "WindBarb"
 res_vec at vcMinDistanceF  = 0.02
 res_vec at vcRefLengthF  = 0.02
 res_vec at gsnLeftStringOrthogonalPosF = 0.15
 res_vec at gsnRightStringOrthogonalPosF = 0.15
 res_vec at vcRefAnnoOn      = False
 res_vec at vcMinFracLengthF = 0.2
 ;res_vec at vcVectorDrawOrder        = "Postdraw"
 ;res_vec at sfXArray  = XLONG
 ;res_vec at sfYArray  = XLAT

 res_map = True
 res_map at gsnDraw    = False
 res_map at gsnFrame   = False
 res_map at mpLimitMode         = "Corners"             ; corner method of zoom
 res_map at mpLeftCornerLatF    = XLAT(0,0)            ; left corner
 res_map at mpLeftCornerLonF    = XLONG(0,0)            ; left corner
 res_map at mpRightCornerLatF   = XLAT(nlat-1,nlon-1)  ; right corner
 res_map at mpRightCornerLonF   = XLONG(nlat-1,nlon-1)  ; right corner
 res_map at mpProjection        = "LambertConformal"    ; choose projection
 res_map at mpLambertParallel1F = ncdf_in at TRUELAT1
 res_map at mpLambertParallel2F = ncdf_in at TRUELAT2
 res_map at mpLambertMeridianF  = ncdf_in at STAND_LON
 res_map at tfDoNDCOverlay      = True                  ; native grid, no
transform
 ;res_map at mpOutlineDrawOrder     = "Predraw"
 ;res_map at mpFillDrawOrder        = "Predraw"
 res_map at mpFillOn            = False

 plot_sha = gsn_csm_contour(wks,T2,res_sha)
 plot_con = gsn_csm_contour(wks,rh2,res_con)
 plot_dash = gsn_csm_contour(wks,slp,res_dash)
 plot_vec = gsn_csm_vector(wks,U10,V10,res_vec)
 plot_map = gsn_csm_map(wks,res_map)
  ;res_map = res_vec
  ;plot_map = gsn_csm_vector_map(wks,U10,V10,res_map)

 overlay(plot_map,plot_sha)
 overlay(plot_map,plot_con)
 overlay(plot_map,plot_dash)
 overlay(plot_map,plot_vec)

 draw(plot_map)
 frame(wks)

 print("Created plot: "+PlotName+"."+PlotType)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171012/322d2ceb/attachment.html>


More information about the ncl-talk mailing list