[ncl-talk] overlaying a hodograph onto a sounding
Adam Phillips
asphilli at ucar.edu
Mon Apr 9 16:04:08 MDT 2018
Hi Joe,
I think you may be right about overlay using the native coordinate system
of skewT_background. If you cannot get things to work with the overlay
route, I recommend you shift to using gsn_add_annotation in lieu of
overlay. There are numerous examples on the Annotations example page (
http://www.ncl.ucar.edu/Applications/annotate.shtml) on how to do this. I
think you should be able to get away with the following:
1) Draw the background using skewT_BackGround
<https://www.ncl.ucar.edu/Document/Functions/Skewt_func/skewT_BackGround.shtml>
.
2) Draw the hodograph using gsn_csm_xy
<https://www.ncl.ucar.edu/Document/Graphics/Interfaces/gsn_csm_xy.shtml>
- making sure to set gsnDraw and gsnFrame to False
- set vpXF, vpYF, vpWidthF, and vpHeightF to only plot in the
upper-lefthand side of the plot
3) call gsn_add_annotation to overlay the hodograph on the skewT_background.
4) Draw the plot, like this: draw (skewt_bkgd)
5) Use the skewT_PlotData
<https://www.ncl.ucar.edu/Document/Functions/Skewt_func/skewT_PlotData.shtml>
to
overlay the skewT data.
6) Advance the frame: frame(wks)
Code:
skewt_bkgd = skewT_BackGround (wks, skewtOpts)
hodo_res = True
hodo_res at vpXF = 0.07
hodo_res at vpYF = 0.92
hodo_res at vpWidthF = 0.15
hodo_res at vpHeightF = 0.15
hodo_res at gsnDraw = False
hodo_res at gsnFrame = False
hodo_plot = gsn_csm_xy(wks,U_unstag(0,:,locY,locX),V_unstag(0,:,locY,loc
X),hodo_res)
amres = True
amres at amParallelPosF = -0.5 ; -0.5 is the left edge of the plot.
amres at amOrthogonalPosF = -0.5 ; -0.5 is the top edge of the plot.
amres at amJust = "BottomLeft"
anno1 = gsn_add_annotation(skewt_bkgd, hodo_plot, amres)
draw (skewt_bkgd)
; Draw the skew-T data
dataOpts = True
dataOpts at Parcel = 1
dataOpts at WspdWdir = False ; wind speed and dir [else: u,v]
skewT_data = skewT_PlotData(wks, skewt_bkgd, P_tot(:,locY,locX), \
TC(0,:,locY,locX), \
TD(0,:,locY,locX), \
z_tot(0,:,locY,locX), \
U_unstag(0,:,locY,locX), \
V_unstag(0,:,locY,locX), \
dataOpts)
frame(wks)
end
The only question I have with the above coding is whether the hodograph
will be drawn in the correct order (=last).
Hope that helps!
Adam
On Mon, Apr 9, 2018 at 2:33 PM, Joe Grim <grim at ucar.edu> wrote:
> Hi,
>
> Could someone please help me with a conceptual skewT + hodograph plot? My
> hope is to create a skewT plot with a hodograph overlaid, much like what
> you see from other skewT plots, such as this one: http://weather.rap.ucar.
> edu/upper/dnr.gif. I couldn't find any examples on the NCL website, so I
> thought I could create my own, but couldn't get it to plot correctly.
>
> Conceptually, I imagine the script would be created in this order:
> 1) Draw the background using skewT_BackGround
> <https://www.ncl.ucar.edu/Document/Functions/Skewt_func/skewT_BackGround.shtml>
> .
> 2) Draw the hodograph using gsn_csm_xy
> <https://www.ncl.ucar.edu/Document/Graphics/Interfaces/gsn_csm_xy.shtml>
> - making sure to set gsnDraw and gsnFrame to False
> - set vpXF, vpYF, vpWidthF, and vpHeightF to only plot in the
> upper-lefthand side of the plot
> 3) Use the overlay procedure to overlay the two, like
> this: overlay(skewt_bkgd,hodo_plot)
> 4) Draw the plot, like this: draw (skewt_bkgd)
> 5) Use the skewT_PlotData
> <https://www.ncl.ucar.edu/Document/Functions/Skewt_func/skewT_PlotData.shtml> to
> overlay the skewT data.
> 6) Advance the frame: frame(wks)
>
> I almost got it to work, except the hodograph only plots on the bottom of
> the image the portion of the hodograph with positive V component (I assume
> the rest is "off screen" below); I assume it is using the native coordinate
> system of skewT_BackGround
> <https://www.ncl.ucar.edu/Document/Functions/Skewt_func/skewT_BackGround.shtml> instead
> of having its own independent coordinate system.
>
> Does anyone have any thoughts or ideas of how I can do this? Thanks!
>
> Joe
>
> P.S. Here is the current version of my code:
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/skewt_func.ncl"
> begin
> ; Read in WRF data
> in_file = "/d3/ATEC/wrfout_misc/ATC/wrfout_d01_2017-09-02_05:00:
> 00.ATC_P+FCST"
> ncdf_in = addfile(in_file+".nc","r")
> P_tot = wrf_user_getvar(ncdf_in,"pressure",0)
> z_tot = wrf_user_getvar(ncdf_in,"z",-1)
> U = wrf_user_getvar(ncdf_in,"U",-1)
> U_unstag = wrf_user_unstagger(U,U at stagger)
> V = wrf_user_getvar(ncdf_in,"V",-1)
> V_unstag = wrf_user_unstagger(V,V at stagger)
> TC = wrf_user_getvar(ncdf_in,"tc",-1)
> TD = wrf_user_getvar(ncdf_in,"td",-1)
>
> ; Create skewT background
> PlotType = "png"
> PlotName = "Sounding_MartinAF"
> wks = gsn_open_wks(PlotType,PlotName)
> loc = wrf_user_ll_to_ij(ncdf_in,-76.42,39.33,True)
> locX = loc(0) - 1
> locY = loc(1) - 1
> skewtOpts = True
> skewtOpts at vpXF = 0.07 ; controls off-set from left
> skewtOpts at vpYF = 0.92 ; controls off-set from top
> skewtOpts at vpWidthF = 0.85 ; controls size of plot
> skewtOpts at vpHeightF = 0.85 ; controls size of plot
> skewtOpts at tiMainString = "Sounding at 39.33N, 76.42W"
> skewt_bkgd = skewT_BackGround (wks, skewtOpts)
> draw (skewt_bkgd)
>
> ; Draw hodograph here???
> hodo_res = True
> hodo_res at vpXF = 0.07
> hodo_res at vpYF = 0.92
> hodo_res at vpWidthF = 0.15
> hodo_res at vpHeightF = 0.15
> hodo_res at gsnDraw = False
> hodo_res at gsnFrame = False
> hodo_plot = gsn_csm_xy(wks,U_unstag(0,:,locY,locX),V_unstag(0,:,locY,
> locX),hodo_res)
> overlay(skewt_bkgd,hodo_plot)
> draw (skewt_bkgd)
>
> ; Draw the skew-T data
> dataOpts = True
> dataOpts at Parcel = 1
> dataOpts at WspdWdir = False ; wind speed and dir [else: u,v]
> skewT_data = skewT_PlotData(wks, skewt_bkgd, P_tot(:,locY,locX), \
> TC(0,:,locY,locX), \
> TD(0,:,locY,locX), \
> z_tot(0,:,locY,locX), \
> U_unstag(0,:,locY,locX), \
> V_unstag(0,:,locY,locX), \
> dataOpts)
> frame(wks)
>
> end
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
--
Adam Phillips
Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
www.cgd.ucar.edu/staff/asphilli/ 303-497-1726
<http://www.cgd.ucar.edu/staff/asphilli>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180409/640d676b/attachment.html>
More information about the ncl-talk
mailing list