[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