[ncl-talk] Overlay a box and a marker over WRF field
Rabah Hachelaf
hachelaf at sca.uqam.ca
Wed May 27 11:22:56 MDT 2015
Thanks Rick and others,
It works now.
Rabah
2015-05-27 13:06 GMT-04:00 Rick Brownrigg <brownrig at ucar.edu>:
> Hi,
>
> If you set the resources as recommended by Karin (which you have not done
> in your attached script), and you use gsn_add_polymarker() rather than
> gsn_polymarker(), you'll get what you are after. Note that
> gsn_add_polymarker, like gsn_add_polyline, is a function, not a procedure,
> so you must assign the return value to some (arbitrary) variable.
>
> Rick
>
>
> On Wed, May 27, 2015 at 9:27 AM, Rabah Hachelaf <hachelaf at sca.uqam.ca>
> wrote:
>
>> @ Katin,
>>
>> Thanks for your replay, but your suggestion does'nt change any things.
>> @ Alex,
>>
>> Attached you find my geo_em, namelist.wps and the ncl script that i use.
>>
>>
>> Thanks.
>>
>> Rabah
>>
>> 2015-05-27 6:47 GMT-04:00 Karin Meier-Fleischer <meier-fleischer at dkrz.de>
>> :
>>
>>> Hi,
>>>
>>> take a look at the web page
>>> https://www.ncl.ucar.edu/Document/Functions/WRF_arw/wrf_map_overlays.shtml
>>>
>>> —>
>>>
>>> If you want to use gsn_add_poly*xxxx* routines (like
>>> *gsn_add_polymarker*
>>> <https://www.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*
>>> <https://www.ncl.ucar.edu/Document/Functions/Built-in/draw.shtml>(plot)
>>> and *frame*
>>> <https://www.ncl.ucar.edu/Document/Functions/Built-in/frame.shtml>(wks)
>>> to draw the plot with the attached primitives and advance the frame.
>>>
>>> Bye,
>>> Karin
>>>
>>>
>>>
>>> Am 27.05.2015 um 05:51 schrieb Alex Schaefer <
>>> alexander.schaefer at mines.sdsmt.edu>:
>>>
>>> Rabah,
>>>
>>> So if you don’t put them both both res and pltres you still end up with
>>> 2 plots?
>>>
>>> It might also be worth trying to use the gsn_add_polymarker as opposed
>>> to using the gsn-polymarker. gsn_polymarker might have the frame internally
>>> built. The gsn_add_polymarker does return an identifier so you would do it
>>> similar to your polyline call:
>>>
>>> pm_id = gsn_add_polymarker(wks,plot,npres at ref_lon,npres at ref_lat,mpres)
>>>
>>> If this doesn’t work can you attach your geo_em file and script and I
>>> will see if I can see what is going on.
>>>
>>> -Alex
>>>
>>>
>>>
>>> On May 26, 2015, at 7:06 PM, Rabah Hachelaf <hachelaf at sca.uqam.ca>
>>> wrote:
>>>
>>> Hi Alex ,
>>>
>>> When i add
>>> opts at gsnDraw = False
>>> opts at gsnFrame = False
>>> or
>>> res at gsnDraw = False
>>> res at gsnFrame = False
>>>
>>> and also
>>>
>>> pltres at gsnDraw = False
>>> pltres at gsnFrame = False
>>>
>>> I get only grid with the box and the marker like attached.
>>>
>>>
>>>
>>> 2015-05-26 20:47 GMT-04:00 Alex Schaefer <
>>> alexander.schaefer at mines.sdsmt.edu>:
>>>
>>>> Rabah,
>>>>
>>>> Where in your script did you add the resources suggested by Jared?
>>>>
>>>> Since you have a bunch of different resource objects you will need to
>>>> set it in each going into plots controlling plot resources. For you this
>>>> should include res or opts and likely pltres.
>>>>
>>>> -Alex
>>>>
>>>>
>>>> On May 26, 2015, at 6:36 PM, Rabah Hachelaf <hachelaf at sca.uqam.ca>
>>>> wrote:
>>>>
>>>> Hi Jared,
>>>>
>>>> Thanks for your reponse,
>>>>
>>>> But add
>>>>
>>>>
>>>> res at gsnDraw = False
>>>> res at gsnFrame = False
>>>>
>>>> doesn't change any things.
>>>>
>>>> Rabah
>>>>
>>>>
>>>> 2015-05-26 18:34 GMT-04:00 Jared Lee <jaredlee at ucar.edu>:
>>>>
>>>>> Hi Rabah,
>>>>>
>>>>> I believe what you're missing is these two lines where you set other
>>>>> 'res' resources:
>>>>>
>>>>> res at gsnDraw = False
>>>>> res at gsnFrame = False
>>>>>
>>>>> By default they're both set to True, which would give you two separate
>>>>> images. If you set both to false you should get a single plot with your
>>>>> polymarker overlaid.
>>>>>
>>>>> Hope that helps.
>>>>>
>>>>> Jared
>>>>>
>>>>> On Tue, May 26, 2015 at 4:21 PM, Rabah Hachelaf <hachelaf at sca.uqam.ca>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> Hello NCL users,
>>>>>>
>>>>>> I am using the script below to plot a box and a marker dot over
>>>>>> topography field from WRF outputs,
>>>>>>
>>>>>> My problem is i can not get one figure, i get two separate figures
>>>>>> like attached.
>>>>>>
>>>>>> Any suggestion to solve this.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ; Example script - plot terrain (using some basic WRF scripts)
>>>>>> ; Overwrite basic map background settings
>>>>>> ; November 2008
>>>>>>
>>>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
>>>>>>
>>>>>> begin
>>>>>>
>>>>>> a = addfile("../geo_em.d02.nc","r") ; Open a file
>>>>>> filename = "../namelist.wps"
>>>>>>
>>>>>> npres= True
>>>>>> npres at ref_lat = stringtofloat(systemfunc("grep ref_lat "
>>>>>> +filename+ " | cut -f2 -d'=' | cut -f1 -d','" ) )
>>>>>> npres at ref_lon = stringtofloat(systemfunc("grep ref_lon "
>>>>>> +filename+ " | cut -f2 -d'=' | cut -f1 -d','" ) )
>>>>>>
>>>>>> type = "png"
>>>>>> wks = gsn_open_wks(type,"plt_geo_6") ; Create a plot
>>>>>> workstation
>>>>>>
>>>>>>
>>>>>> opts = True ; Set some Basic Plot
>>>>>> options
>>>>>> opts at MainTitle = "GEOGRID FIELDS"
>>>>>> opts at InitTime = False ; Do not plot time or
>>>>>> footers
>>>>>> opts at Footer = False
>>>>>>
>>>>>> ter = wrf_user_getvar(a,"HGT_M",0) ; Read the variable to
>>>>>> memory
>>>>>> lon = a->XLONG_U(0,:,:)
>>>>>> lat = a->XLAT_U(0,:,:)
>>>>>> printVarSummary(lat)
>>>>>>
>>>>>> print (lat(0,0)+", "+lon(0,0)+",0,")
>>>>>> print (lat(0,60)+", "+lon(0,60)+",0,")
>>>>>> print (lat(59,60)+", "+lon(59,60)+",0,")
>>>>>> print (lat(59,0)+", "+lon(59,0)+",0")
>>>>>>
>>>>>>
>>>>>> res = opts ; Use basic options
>>>>>> for this field
>>>>>> res at cnFillOn = True ; Create a color fill
>>>>>> plot
>>>>>> res at ContourParameters = (/ 0., 1000., 50. /) ; Set the levels
>>>>>>
>>>>>> contour = wrf_contour(a,wks,ter,res)
>>>>>>
>>>>>> pltres = True ; Set plot options
>>>>>> mpres = True ; Set map options
>>>>>> mpres at mpGeophysicalLineColor = "Black" ; Overwrite basic map
>>>>>> settings
>>>>>> mpres at mpGridLineColor = "Black"
>>>>>> mpres at mpLimbLineColor = "Black"
>>>>>> mpres at mpNationalLineColor = "Black"
>>>>>> mpres at mpPerimLineColor = "Black"
>>>>>> mpres at mpUSStateLineColor = "Black"
>>>>>> mpres at mpProjection = "LambertConformal"
>>>>>> mpres at mpLambertParallel1F = 30
>>>>>> mpres at mpLambertParallel2F = 60
>>>>>> mpres at mpLambertMeridianF = -98
>>>>>> mpres at mpGridSpacingF = 0.25
>>>>>> ;************************************************
>>>>>> ; add the box
>>>>>> ;************************************************
>>>>>> ;************************************************
>>>>>> ypts = (/ lat(10,10), lat(10,50), lat(49,50), lat(49,10),
>>>>>> lat(10,10)/)
>>>>>> xpts = (/ lon(10,10), lon(10,50), lon(49,50), lon(49,10),
>>>>>> lon(10,10)/)
>>>>>> ;************************************************
>>>>>>
>>>>>> resp = True ; polyline mods
>>>>>> desired
>>>>>> resp at gsLineColor = "black" ; color of
>>>>>> lines
>>>>>> resp at gsLineThicknessF = 2.0 ; thickness of
>>>>>> lines
>>>>>> ; resp at gsLineLabelString= "test" ; adds a line
>>>>>> label string
>>>>>>
>>>>>>
>>>>>>
>>>>>> plot = wrf_map_overlays(a,wks,(/contour/),pltres,mpres) ; Plot
>>>>>> field over map background
>>>>>>
>>>>>>
>>>>>> dum = new(4,graphic)
>>>>>> do i = 0 , 3
>>>>>> dum(i)=gsn_add_polyline(wks,plot,xpts(i:i+1),ypts(i:i+1),resp)
>>>>>>
>>>>>> end do
>>>>>> ;*********************************************************
>>>>>> mpres at gsMarkerColor = "Black"
>>>>>> mpres at gsMarkerIndex = 16
>>>>>> mpres at gsMarkerSizeF = 0.005
>>>>>> gsn_polymarker(wks,plot,npres at ref_lon,npres at ref_lat,mpres)
>>>>>>
>>>>>> draw(plot)
>>>>>> frame(wks)
>>>>>>
>>>>>> end
>>>>>>
>>>>>> --
>>>>>> ------------------------------
>>>>>> Cordialement,
>>>>>> Best regards,
>>>>>> Rabah Hachelaf
>>>>>>
>>>>>> _______________________________________________
>>>>>> ncl-talk mailing list
>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> ===============================
>>>>> Jared A. Lee, Ph.D.
>>>>> Project Scientist I
>>>>> Research Applications Laboratory
>>>>> National Center for Atmospheric Research
>>>>> Boulder, Colorado, USA
>>>>>
>>>>> Email: jaredlee at ucar.edu (w)
>>>>> Phone: 303.497.8485 (w)
>>>>> Web: https://staff.ucar.edu/users/jaredlee
>>>>> ===============================
>>>>>
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> List instructions, subscriber options, unsubscribe:
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> ------------------------------
>>>> Cordialement,
>>>> Best regards,
>>>> Rabah Hachelaf
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> ------------------------------
>> Cordialement,
>> Best regards,
>> Rabah Hachelaf
>>
>> _______________________________________________
>> ncl-talk mailing list
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
--
------------------------------
Cordialement,
Best regards,
Rabah Hachelaf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150527/7cbef5b2/attachment.html
More information about the ncl-talk
mailing list