[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