[ncl-talk] gsn_polyline and shading issue

David Brown dbrown at ucar.edu
Mon Aug 4 17:15:33 MDT 2014


You do not need to set any "DrawOrder" resources to get what you want. I
think the issue here is the ordering of the calls. gsn_polyline is an
immediate mode call, meaning that it draws as soon as it is called.

gsn_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat1,poly_lat1/),pres)

gsn_polyline(wks,map,(/poly_lon2,poly_lon2/),(/poly_lat1,poly_lat2/),pres)

gsn_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat2,poly_lat2/),pres)

gsn_polyline(wks,map,(/poly_lon1,poly_lon1/),(/poly_lat1,poly_lat2/),pres)

draw(map)

This sequence of calls draws 4 polylines and then draws the map. If you
want the lines on top, you should just put the draw(map) call before the
polyline calls.
(The frame call should not be commented out, but It should be placed after
the polyline calls.):

draw(map)

gsn_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat1,poly_lat1/),pres)

gsn_polyline(wks,map,(/poly_lon2,poly_lon2/),(/poly_lat1,poly_lat2/),pres)

gsn_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat2,poly_lat2/),pres)

gsn_polyline(wks,map,(/poly_lon1,poly_lon1/),(/poly_lat1,poly_lat2/),pres)

frame(wks)


On the other hand, if you use gsn_add_polyline you are adding the polylines
as components of the "map" graphic object. The lines are drawn when you
call draw(map). So in this case,
you do need to have the polyline calls in front of the draw(map) call:

  d1 =
gsn_add_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat1,poly_lat1/),pres)

  d2 =
gsn_add_polyline(wks,map,(/poly_lon2,poly_lon2/),(/poly_lat1,poly_lat2/),pres)

  d3 =
gsn_add_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat2,poly_lat2/),pres)

  d4 =
gsn_add_polyline(wks,map,(/poly_lon1,poly_lon1/),(/poly_lat1,poly_lat2/),pres)

   draw(map)
   frame(wks)

Hope this helps.
 -dave













On Mon, Aug 4, 2014 at 3:25 PM, Adam Phillips <asphilli at ucar.edu> wrote:

> Hi Cathy,
> That is strange. I would think the res at mpFillDrawOrder = "Draw" and
> pres at tfPolyDrawOrder = "PostDraw" combination would definitely work. I
> just tried running things here, and I was able to plot the polylines over
> the map fill by swapping gsn_polyline for gsn_add_polyline.
>
> I'm not sure why one would have to do that; perhaps a developer can chime
> in here.
> Adam
>
>
> On Mon, Aug 4, 2014 at 3:13 PM, Cathy Smith - NOAA Affiliate <
> cathy.smith at noaa.gov> wrote:
>
>> Adam
>> I tried that and got the same behavior (lines behind shading)
>>
>> Cathy
>>
>>
>>
>>
>>
>>
>> On Mon, Aug 4, 2014 at 3:08 PM, Adam Phillips <asphilli at ucar.edu> wrote:
>>
>>> Hi Cathy,
>>> Try setting pres at tfPolyDrawOrder = "PostDraw". That resource should
>>> control when the polylines are drawn. If that doesn't solve it let everyone
>>> know.
>>> Adam
>>>
>>>
>>> On Mon, Aug 4, 2014 at 3:01 PM, Cathy Smith - NOAA Affiliate <
>>> cathy.smith at noaa.gov> wrote:
>>>
>>>> I tried res at mpFillDrawOrder  (which I think is what you were referring
>>>> to; the other doesn't exist)
>>>>
>>>> I set to PreDraw, Draw and Post Draw and got the same behavior. I did
>>>> see some doc here
>>>>
>>>> http://www.ncl.ucar.edu/Applications/draworder.shtml
>>>>
>>>> which is along the lines of what you suggested but didn't seem to work
>>>> for the routines I used. I wonder if there is a way to draw the polylines
>>>> last instead of the shaded fill first?
>>>>
>>>> Thanks for the suggestion.
>>>>
>>>> Cathy
>>>>
>>>>
>>>> On Mon, Aug 4, 2014 at 2:43 PM, Kyle Griffin <ksgriffin2 at wisc.edu>
>>>> wrote:
>>>>
>>>>> I believe the quick fix, assuming nothing else is explicitly ordered,
>>>>> will be
>>>>>
>>>>> res at mpDrawOrder = "PreDraw"
>>>>>
>>>>> If that doesn't do it, you can poke around with other DrawOrder
>>>>> resources to move things into either "PreDraw", "Draw", or "PostDraw"
>>>>> drawing phases.
>>>>>
>>>>>
>>>>> Kyle
>>>>>
>>>>> ----------------------------------------
>>>>> Kyle S. Griffin
>>>>> Department of Atmospheric and Oceanic Sciences
>>>>> University of Wisconsin - Madison
>>>>> Room 1421
>>>>> 1225 W Dayton St, Madison, WI 53706
>>>>> Email: ksgriffin2 at wisc.edu
>>>>>
>>>>>
>>>>> On Mon, Aug 4, 2014 at 3:28 PM, Cathy Smith (NOAA Affiliate) <
>>>>> cathy.smith at noaa.gov> wrote:
>>>>>
>>>>>> Hi NCLers
>>>>>> I'm having trouble getting a polyline to appear OVER a map with
>>>>>> continents shaded. I have simplified code below which reproduces the
>>>>>> problem.  The code draws a basic map (shading is default) and then a
>>>>>> box
>>>>>> on the map using gsn_polyline . You can run code and then look at
>>>>>> fluffy.ps. The box just shows up where there is no shading. I
>>>>>> verified
>>>>>> in testing that the lines show up as long as they aren't located where
>>>>>> the shading is. How can I control the order of shading so it is done
>>>>>> before the polylines?
>>>>>>
>>>>>> NCL version is 6.2.0 on a 64 bit linux server.
>>>>>>
>>>>>> Thanks!
>>>>>> Cathy Smith
>>>>>>
>>>>>>
>>>>>> ;*;************************************************
>>>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>>>>>> ;**************************************************
>>>>>> begin
>>>>>>
>>>>>>    psname="fluffy"
>>>>>>    wks = gsn_open_wks("ps",psname)               ; open workstation
>>>>>>    res            = True                          ; map resources
>>>>>>    res at gsnDraw    = False                         ; don't draw
>>>>>>    res at gsnFrame   = False                         ; don't advance
>>>>>> frame
>>>>>>    res_lb         = True                          ; map resources
>>>>>>    latmin=41
>>>>>>    latmax=52
>>>>>>    lonmin=235
>>>>>>    lonmax=250
>>>>>>    poly_lat1=43
>>>>>>    poly_lat2=50
>>>>>>    poly_lon1=237
>>>>>>    poly_lon2=247
>>>>>>    res at mpMaxLatF  = latmax                           ; select
>>>>>> subregion
>>>>>>    res at mpMinLatF  = latmin
>>>>>>    res at mpMinLonF  = lonmin
>>>>>>    res at mpMaxLonF  = lonmax
>>>>>>    res at mpCenterLonF  = (lonmax+lonmin)/2.
>>>>>>
>>>>>>    map = gsn_csm_map_ce(wks,res)                         ; create map
>>>>>>
>>>>>>    pres                  = True                             ; polyline
>>>>>> resources
>>>>>>    pres at gsLineThicknessF = 2.0                ; line thickness
>>>>>>
>>>>>>
>>>>>>
>>>>>> gsn_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat1,poly_lat1/),pres)
>>>>>>
>>>>>>
>>>>>> gsn_polyline(wks,map,(/poly_lon2,poly_lon2/),(/poly_lat1,poly_lat2/),pres)
>>>>>>
>>>>>>
>>>>>> gsn_polyline(wks,map,(/poly_lon1,poly_lon2/),(/poly_lat2,poly_lat2/),pres)
>>>>>>
>>>>>>
>>>>>> gsn_polyline(wks,map,(/poly_lon1,poly_lon1/),(/poly_lat1,poly_lat2/),pres)
>>>>>>
>>>>>>    draw(map)
>>>>>> ;   frame(wks)
>>>>>>
>>>>>> end
>>>>>>
>>>>>> --
>>>>>> ----------------------------------------------
>>>>>> NOAA/ESRL PSD and CU CIRES
>>>>>> 303-497-6263
>>>>>> http://www.esrl.noaa.gov/psd/people/cathy.smith/
>>>>>>
>>>>>> Emails about data/webpages may get quicker responses from emailing
>>>>>> esrl.psd.data at noaa.gov
>>>>>>
>>>>>> _______________________________________________
>>>>>> ncl-talk mailing list
>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> ---------------------------------------------------
>>>> NOAA/ESRL PSD and CIRES CDC303-497-6263http://www.esrl.noaa.gov/psd/people/cathy.smith/
>>>>
>>>> Emails about data/webpages may get quicker responses from emailing
>>>>
>>>> esrl.psd.data at noaa.gov
>>>>
>>>>
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>
>>>>
>>>
>>>
>>> --
>>> Adam Phillips
>>> Associate Scientist,  Climate and Global Dynamics Division, NCAR
>>> www.cgd.ucar.edu/staff/asphilli/   303-497-1726
>>>
>>> <http://www.cgd.ucar.edu/staff/asphilli>
>>>
>>
>>
>>
>> --
>>
>> ---------------------------------------------------
>> NOAA/ESRL PSD and CIRES CDC303-497-6263http://www.esrl.noaa.gov/psd/people/cathy.smith/
>>
>> Emails about data/webpages may get quicker responses from emailing
>>
>> esrl.psd.data at noaa.gov
>>
>>
>
>
> --
> Adam Phillips
> Associate Scientist,  Climate and Global Dynamics Division, NCAR
> www.cgd.ucar.edu/staff/asphilli/   303-497-1726
>
> <http://www.cgd.ucar.edu/staff/asphilli>
>
> _______________________________________________
> 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/20140804/2680fbd2/attachment.html 


More information about the ncl-talk mailing list