[ncl-talk] Overlay a box and a marker over WRF field

Rick Brownrigg brownrig at ucar.edu
Wed May 27 11:06:57 MDT 2015


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150527/6fe700cf/attachment.html 


More information about the ncl-talk mailing list