[ncl-talk] Overlaying multiple polylines on top of contour map
Rick Brownrigg
brownrig at ucar.edu
Thu Jul 2 09:38:46 MDT 2015
Hi
I think the issue is that wrf_map_overlays() calls frame()/draw() behind
the scenes. At the bottom of the docs for this function, there's this
guidance:
If you want to use gsn_add_poly*xxxx* routines (like *gsn_add_polymarker*
<http://ncl.ucar.edu/Document/Graphics/Interfaces/gsn_add_polymarker.shtml>)
to add primtives to a WRF plot, then you need to set:
plt_res at PanelPlot = True
plt_res at FramePlot = False
before you call *wrf_map_overlays*. Then, call the appropriate gsn_add_poly
*xxxx* routine to attach the desired primitives, and finally call *draw*
<http://ncl.ucar.edu/Document/Functions/Built-in/draw.shtml>(plot) and
*frame* <http://ncl.ucar.edu/Document/Functions/Built-in/frame.shtml>(wks)
to draw the plot with the attached primitives and advance the frame.
Hope that helps...
Rick
On Thu, Jul 2, 2015 at 7:43 AM, Kelsey Mulder <
kelsey.mulder at manchester.ac.uk> wrote:
> Hello,
>
> I’m trying to overlay multiple trajectory paths on top of relative
> vorticity contours using gsn_add_polyline. I have tried seemingly
> everything but can only either manage to get all the trajectories on a
> separate page from my wrf contour map (what happens with the script below)
> or to only get one trajectory to plot on my map. The NCL script is below
> and my file of trajectories is attached. Any help would be greatly
> appreciated!
>
>
> Kelsey Mulder
>
>
> PhD Student, University of Manchester
> School of Earth, Atmospheric and Environmental Sciences
> Simon Building
> Oxford Road
> Manchester, M13 9PL
> United Kingdom
>
> Tel: +44 161 306 3911
>
>
> 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/contributed.ncl"
> begin
> ;
> ; The WRF ARW input file.
> ; This needs to have a ".nc" appended, so just do it.
> a = addfile("./wrfout_d04_2011-11-29_12:00:00.nc","r")
> ; We generate plots, but what kind do we prefer?
> ; type = "x11"
> type = "pdf"
> ; type = "ps"
> ; type = "ncgm"
> wks = gsn_open_wks(type,"abs_vort_traj")
> height = 500 ;height in meters
> gsn_define_colormap(wks,"BlueWhiteOrangeRed")
>
> ; Set some basic resources
> res = True
> res at MainTitle = "REAL-TIME WRF"
> res at gsnDraw = False ;Don't draw yet!
> pltres = True
> mpres = True
> res at gsnFrame = False ;don't advance frame yet!
> mpres at mpGeophysicalLineColor = "Black"
> mpres at mpGridLineColor = "Black"
> mpres at mpLimbLineColor = "Black"
> mpres at mpNationalLineColor = "Black"
> mpres at mpPerimLineColor = "Black"
> mpres at mpUSStateLineColor = "Black"
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ; What times and how many time steps are in the data set?
> times = wrf_user_getvar(a,"times",-1) ; get times in the file
> ntimes = dimsizes(times) ; number of times in the file
> ;print(times)
> ;exit
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ; do it = 0,ntimes-1,30 ; TIME LOOP
> do it = 539,539,5 ;Nothing and broken s
> ; do it = 569,569,5 ;Bulging
> ; do it = 149,149,5 ;core/gap
> print("Working on time: " + times(it) )
> res at TimeLabel = times(it) ; Set Valid time to use on plots
>
> ; Get the data
> avo = wrf_user_getvar(a,"avo",it)
> z = wrf_user_getvar(a,"z",it)
> forig = wrf_user_getvar(a,"F",it)
> f = forig*100000
> wstag = wrf_user_getvar(a,"W",it) ; w in m/s
> w = wrf_user_unstagger(wstag,"Z")
>
> ; Interpolate to pressure
> av_plane = wrf_user_intrp3d(avo,z,"h",height,0,False)
> rvo = av_plane - f
> w_plane = wrf_user_intrp3d(w,z,"h",height,0,False)
> copy_VarAtts(av_plane, rvo) ;copy variable attributes
> ; rvo at description = "Relative Vorticity"
>
> ; Plotting options
> opts = res
> opts at cnFillOn = True
> ; opts at gsnSpreadColorEnd = -3 ; End third from the last color in
> color map
> opts at ContourParameters = (/ -5000., 5000., 1000./)
> contour_a = wrf_contour(a,wks,rvo,opts)
> delete(opts)
>
> opts = res
> opts at cnFillOn = False
> ; opts at gsnSpreadColorEnd = -3 ; End third from the last color in
> color map
> opts at ContourParameters = (/ 10., 20., 5./)
> opts at cnLineColor = "black"
> ; opts at gsnContourNegLineDashPattern = 1 ; sets negative contours
> to dash patter
> n 1
> contour_pos = wrf_contour(a,wks,w_plane,opts)
> delete(opts)
>
> opts = res
> opts at cnFillOn = False
> ; opts at gsnSpreadColorEnd = -3 ; End third from the last color in
> color map
> opts at ContourParameters = (/ -20., -5., 5./)
> opts at cnLineColor = "grey50"
> ; opts at gsnContourNegLineDashPattern = 1 ; sets negative contours
> to dash patter
> n 1
> contour_neg = wrf_contour(a,wks,w_plane,opts)
> delete(opts)
>
> ; MAKE PLOTS
> plot =
> wrf_map_overlays(a,wks,(/contour_a,contour_pos,contour_neg/),pltres,mpres)
> ; plot = wrf_map_overlays(a,wks,(/contour/),pltres,mpres)
>
> ;======================================
> ;Plot trajectory
> ;=======================================
> pltres at PanelPlot = True
> ;also read in trajectory location file so we can plot location
> hdata = readAsciiTable("./nothing_trajectories.txt",5,"float",0)
> maxtraj = 45
> dum = new(maxtraj,graphic)
> do ntraj=1,maxtraj,1
> ;ntraj = 1
> heightdatastart = 61*(ntraj-1)
> heightdataend = heightdatastart+60
> trajnumber = hdata(heightdatastart:heightdataend,0)
> timetraj = hdata(heightdatastart:heightdataend,1)
> xlocation = hdata(heightdatastart:heightdataend,2) ;in i units
> ylocation = hdata(heightdatastart:heightdataend,3) ;in j units
> zlocation = hdata(heightdatastart:heightdataend,4) ;in km
>
>
> loc = wrf_user_ij_to_ll(a,xlocation,ylocation,True)
>
>
> xpt = loc(0,:)
> ypt = loc(1,:)
>
>
> gsres = True
> first = True
> gsres at gsMarkerIndex = 16 ; marker style (circle)
> gsres at gsMarkerSizeF = 8.0 ; marker size
> gsres at gsMarkerColor = "black" ; maker color
>
> ; create a unique marker to indicate the start of the trajectory
>
> first at gsMarkerSizeF = 15.0 ; marker size
> first at gsMarkerColor = "black" ; marker color
>
> res_lines = True
> ; res_lines at gsLineThicknessF = 3. ; 3x as thick
>
> dum(ntraj-1) = gsn_add_polyline(wks,plot,xpt,ypt,res_lines)
>
> end do ;end trajectory loop
> draw(plot)
> frame(wks)
> end do ; END OF TIME LOOP
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> end
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150702/f1d26f0c/attachment.html
More information about the ncl-talk
mailing list