[ncl-talk] Attaching a map outside (or inside) of a plot

Michele Petrini mpetrini139 at yahoo.it
Fri Jul 10 07:52:03 MDT 2015


Dear helpdesk,
I apologize for replying to Mary only, my mistake.
I have another question, still related to add polymarkers to my map to 
attach, in turn, outside of a plot. I am trying to add full circle to 
the map, each one with a different color. This is the code I used;

  plotxy1 = gsn_csm_xy(wks,time,uplot1(:,:),res) ; Draw an XY plot.

   mapannotation2 = gsn_csm_contour_map(wks,Hicetfmask(24:125,120:220),res1)

   lat2=(/lat(82,152),lat(99,144),lat(83,154),lat(97,147)/)
   lon2=(/lon(82,152),lon(99,144),lon(83,154),lon(97,147)/)
   colors2 = (/2,20,10,14/)
   index2  = (/17,17,17,17/)
   size2   = (/0.015,0.015,0.015,0.015/)

idd2   = new(4,graphic)

   mkres               = True

   do i=0,3

   mkres at gsMarkerIndex = index2(i)                     ; Filled circle
   mkres at gsMarkerSizeF = size2(i)
   mkres at gsMarkerColor = colors2(i)

   idd2(i) = gsn_add_polymarker(wks,mapannotation2,lon2,lat2,mkres)

   end do

   amres                        = True
   amres at amParallelPosF         = -0.55
   amres at amOrthogonalPosF       = 0.97
   amres at amJust                 = "BottomLeft"

   map_final = gsn_add_annotation(plotxy1,mapannotation2,amres)

   gsn_panel(wks,plotxy1,(/1,1/),False)

What I get is four points in the correct positions and sizes, but all 
equally colored (yellow). Again, I can't understand where my code is 
wrong. Thank you.

Michele

On 09/07/2015 20:10, Mary Haley wrote:
> Hi Michele,
>
> I'm CC-ing ncl-talk, as we prefer for people to post back to the list 
> rather than emailing developers individually.
>
> Use gsn_add_text instead of gsn_text, in the same way you are using 
> gsn_add_polyline. Make sure you use a different id:
>
> txid1 = gsn_add_text(wks,mapannotation,"A",lon(145,23),lat(145,23),tres)
>
> txid2 = gsn_add_text(wks,mapannotation,"B",lon(145,79),lat(145,79),tres)
>
> ​--Mary
>
>> On Thu, Jul 9, 2015 at 5:54 AM, Michele Petrini <mpetrini139 at yahoo.it 
> <mailto:mpetrini139 at yahoo.it>> wrote:
>
>     Dear Mary,
>     it works fine. Now I'm trying to add also two letters inside the
>     legend plot (in order to label the polyline I drew), using the red
>     code below;
>
>     isoplot =
>     gsn_csm_xy2(wks,xiso,brockplot1(25:77),icetplot1(25:77),resL,resR)
>
>       mapannotation =
>     gsn_csm_contour_map(wks,Hicetfmask(45:226,1:140),res1)
>
>       tres                   = True
>       tres at txFontHeightF     = 0.01
>       tres at txFontColor       = "red"
>
>     gsn_text(wks,mapannotation,"A",lon(145,23),lat(145,23),tres)
>
>     gsn_text(wks,mapannotation,"B",lon(145,79),lat(145,79),tres)
>
>       ypts = (/lat(145,25),lat(145,77)/)
>       xpts = (/lon(145,25),lon(145,77)/)
>
>       res2                   = True
>       res2 at gsLineColor       = "red"
>       res2 at gsLineThicknessF  = 3.0
>
>       dum = new(1,graphic)
>       dum = gsn_add_polyline(wks,mapannotation,xpts(0:1),ypts(0:1),res2)
>
>       amres                        = True
>       amres at amParallelPosF         = -0.55
>       amres at amOrthogonalPosF       = 0.97
>       amres at amJust                 = "BottomLeft"
>
>       map_final = gsn_add_annotation(isoplot,mapannotation,amres)
>
>       resF               = True
>       resF at txString      = "Isostasy profile over LIS"
>       resF at txFont        = 21
>       resF at txFontHeightF = 0.03
>
>       gsn_panel(wks,isoplot,(/1,1/),resF)
>
>     What I get is the two letters A, B inside the main XYY plot. I
>     really can't get why...
>
>     Thank you,
>     Michele
>
>
>
>     On 08/07/2015 18:11, Mary Haley wrote:
>>     Michele,
>>
>>     I think the error might be coming from trying to panel the "id"
>>     created from calling gsn_add_annotation, rather than the actual
>>     plot. Try this:
>>
>>     gsn_panel(wks,isoplot,(/1,1/),False)
>>
>>     You might also look into maximize_output
>>
>>     --Mary
>>
>>
>>     On Wed, Jul 8, 2015 at 5:58 AM, Michele Petrini
>>     <mpetrini139 at yahoo.it <mailto:mpetrini139 at yahoo.it>> wrote:
>>
>>         Dear helpdesk,
>>         I am trying to attach a small map as a legend of a XY plot
>>         (with double different Y axes). The map I need to attach must
>>         contain also a line, added with gsn_add_polyline. The two
>>         single plots (the XYY plot and the map with the polyline) are
>>         correct (I drew them separately first), but as I use
>>         gsn_add_annotation I get the following error message:
>>
>>
>>         fatal:Invalid plot ID=282 passed to NhlGetBB
>>         warning:pmOverlaySequenceIds isn't a resource in this object
>>         warning:NhlGetValues:Error retrieving pmOverlaySequenceIds
>>         fatal:["Execute.c":8578]:Execute: Error occurred at or near
>>         line 1927 in file
>>         $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl
>>
>>         fatal:["Execute.c":8578]:Execute: Error occurred at or near
>>         line 6847 in file
>>         $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl
>>
>>         fatal:["Execute.c":8578]:Execute: Error occurred at or near
>>         line 7546 in file
>>         $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl
>>
>>         fatal:["Execute.c":8578]:Execute: Error occurred at or near
>>         line 647 in file Exercise1.ncl
>>
>>         Do you have any idea the reason why I get such an error? Here
>>         is the code.
>>
>>         --------------------------------------------------------------------------------------------------------------------------------
>>         ;***************************************set resources for the
>>         isostasy plot (Left)
>>
>>           resL                        = True
>>
>>           resL at tiYAxisString          = "Variation in bedrock
>>         elevation (30-0 kyrs BP) (m)"
>>           resL at tiXAxisFontHeightF     = 0.02
>>           resL at tiYAxisFontHeightF     = 0.02
>>
>>           resL at xyLineColors           = 20 ; Define line colors.
>>           resL at xyLineThicknessF       = 3.0 ; Define line thickness.
>>           resL at xyDashPattern = 0 ; Make curves all solid
>>
>>           resL at trYMaxF      = -150.
>>           resL at trYMinF      = -850.
>>
>>           resL at tmXTOn                 = False
>>
>>           resL at tmYLMinorOn            = False
>>           resL at tmYLLabelFont          = 21
>>           resL at tmYLLabelFontHeightF   = 0.02
>>
>>           resL at pmLegendDisplayMode    = "Always"
>>           resL at lgPerimOn              = False
>>           resL at xyExplicitLegendLabels = "Topography variation (m)"
>>           resL at pmLegendSide           = "Bottom"
>>           resL at pmLegendOrthogonalPosF = 0.01
>>           resL at pmLegendWidthF         = 0.4
>>           resL at pmLegendHeightF        = 0.04
>>
>>           resL at vpHeightF              = 0.4
>>           resL at vpWidthF               = 0.4
>>
>>
>>           resL at lgAutoManage = False
>>           resL at tmXBMode               = "Explicit" ; Define your own
>>         tick mark labels.
>>           ;resL at tmXBLabelFont          = 21 ; Change font of labels.
>>           ;resL at tmXBLabelFontHeightF   = 0.02
>>           resL at tmXBMinorOn            = False ; No minor tick marks.
>>           resL at tmXBValues             = (/xiso(0),xiso(52)/) ;
>>         Location to put tick mark labels
>>           resL at tmXBLabels             = (/"A","B"/)
>>
>>           resL at gsnDraw                = False                   ; do
>>         not draw picture
>>           resL at gsnFrame               = False                   ; do
>>         not advance frame
>>
>>
>>         ;******************************************set resources for
>>         ice thickness plot (right)
>>
>>            resR                        = True
>>
>>            resR at tiYAxisString          = "Variation in ice thickness
>>         (30-0 kyrs BP) (m)"
>>            resR at tiXAxisFontHeightF     = 0.02
>>            resR at tiYAxisFontHeightF     = 0.02
>>
>>            resR at xyLineColors           = 21 ; Define line colors.
>>            resR at xyLineThicknessF       = 3.0 ; Define line thickness.
>>            resR at xyDashPattern          = 1 ; Make curves all solid
>>
>>            resR at trYMaxF      = 3100
>>            resR at trYMinF      = 600
>>
>>            resR at tmXBOn                 = False
>>            resR at tmXTOn                 = False
>>
>>            resR at tmYRMinorOn            = False
>>            resR at tmYRLabelFont          = 21
>>            resR at tmYRLabelFontHeightF   = 0.02
>>
>>            resR at vpHeightF              = 0.4
>>            resR at vpWidthF               = 0.4
>>
>>
>>            resR at pmLegendDisplayMode    = "Always"
>>            resR at lgPerimOn              = False
>>            resR at xyExplicitLegendLabels = "Ice thickness variation (m)"
>>            resR at pmLegendSide           = "Bottom"
>>            resR at pmLegendOrthogonalPosF = 0.06
>>            resR at pmLegendWidthF         = 0.4
>>            resR at pmLegendHeightF        = 0.04
>>            resR at lgAutoManage = False
>>            resR at gsnDraw                = False                   ; do
>>         not draw picture
>>            resR at gsnFrame               = False                   ; do
>>         not advance frame
>>
>>
>>         ;******************************************set resources for
>>         legend plot
>>           res1          = True
>>           res1 at gsnDraw  = False
>>           res1 at gsnFrame = False
>>
>>
>>           res1 at mpLimitMode            = "Corners"            ; choose
>>         range of map
>>           res1 at mpLeftCornerLatF       = lat(41,1)
>>           res1 at mpLeftCornerLonF       = lon(41,1)
>>           res1 at mpRightCornerLatF      = lat(226,139)
>>           res1 at mpRightCornerLonF      = lon(226,139)
>>
>>           res1 at mpProjection           = "LambertEqualArea"
>>           res1 at mpCenterLatF           = 90
>>           res1 at mpCenterLonF           = 0
>>           res1 at mpOutlineOn            = True
>>           res1 at tfDoNDCOverlay         = True
>>
>>           res1 at cnFillOn               = True
>>           res1 at cnLevelSelectionMode   = "ManualLevels"
>>           res1 at cnMinLevelValF         = 0
>>           res1 at cnMaxLevelValF         = 5000
>>           res1 at cnLevelSpacingF        = 50
>>           res1 at gsnDraw                = False                  ; do
>>         not draw picture
>>           res1 at gsnFrame               = False                  ; do
>>         not advance frame
>>
>>           res1 at cnLinesOn              = False                  ; 
>>         contour lines
>>           res1 at cnLineLabelsOn         = False                  ; no
>>         contour labels
>>           res1 at gsnSpreadColors        = True                   ; use
>>         total colormap
>>           res1 at gsnSpreadColorStart    = 2
>>           res1 at gsnSpreadColorEnd      = 27
>>           res1 at cnInfoLabelOn          = False                  ; no
>>         contour info (right bottom)
>>           res1 at lbLabelBarOn = False
>>
>>           res1 at vpHeightF              = 0.2
>>           res1 at vpWidthF               = 0.2
>>
>>         ;****************************************************end
>>         resources
>>
>>           isoplot =
>>         gsn_csm_xy2(wks,xiso,brockplot1(25:77),icetplot1(25:77),resL,resR)
>>
>>
>>           mapannotation =
>>         gsn_csm_contour_map(wks,Hicetfmask(45:226,1:140),res1)
>>
>>           ypts = (/lat(145,25),lat(145,77)/)
>>           xpts = (/lon(145,25),lon(145,77)/)
>>
>>           res2                   = True
>>           res2 at gsLineColor       = "black"
>>           res2 at gsLineThicknessF  = 3.0
>>           res2 at gsLineLabelString = "A B"
>>
>>           dum = new(1,graphic)
>>           dum =
>>         gsn_add_polyline(wks,mapannotation,xpts(0:1),ypts(0:1),res2)
>>
>>           amres                        = True
>>           amres at amParallelPosF         = -1.15
>>           amres at amOrthogonalPosF         = -0.4
>>           amres at amJust                 = "CenterLeft"
>>
>>           map_final = gsn_add_annotation(isoplot,mapannotation,amres)
>>
>>           gsn_panel(wks,map_final,(/1,1/),False)
>>
>>           delete(resL)
>>           delete(resR)
>>           delete(res1)
>>           delete(res2)
>>           delete(amres)
>>         ----------------------------------------------------------------------------------------------------------------------------------
>>
>>         Thank you for you help,
>>
>>         Michele
>>
>>         -- 
>>
>>         ***
>>         Michele Petrini
>>
>>         Ph.D. student in Earth Science and Fluid Mechanics
>>
>>         Università degli studi di Trieste,
>>         Dipartimento di Matematica e Geoscienze
>>         Palazzina C - via Weiss 1, 34128 Trieste, Italy
>>
>>         Email:mpetrini139 at yahoo.it  <mailto:mpetrini139 at yahoo.it>
>>         Skype: michele.petrins
>>         Mobile:+39 3398367372  <tel:%2B39%203398367372>  
>>
>>
>>         _______________________________________________
>>         ncl-talk mailing list
>>         ncl-talk at ucar.edu <mailto:ncl-talk at ucar.edu>
>>         List instructions, subscriber options, unsubscribe:
>>         http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
>     -- 
>
>     ***
>     Michele Petrini
>
>     Ph.D. student in Earth Science and Fluid Mechanics
>
>     Università degli studi di Trieste,
>     Dipartimento di Matematica e Geoscienze
>     Palazzina C - via Weiss 1, 34128 Trieste, Italy
>
>     Email:mpetrini139 at yahoo.it  <mailto:mpetrini139 at yahoo.it>
>     Skype: michele.petrins
>     Mobile:+39 3398367372  <tel:%2B39%203398367372>  
>
>

-- 

***
Michele Petrini

Ph.D. student in Earth Science and Fluid Mechanics

Università degli studi di Trieste,
Dipartimento di Matematica e Geoscienze
Palazzina C - via Weiss 1, 34128 Trieste, Italy

Email: mpetrini139 at yahoo.it
Skype: michele.petrins
Mobile: +39 3398367372

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150710/155ee18f/attachment.html 


More information about the ncl-talk mailing list