[ncl-talk] Incorrect label bar
    Beata Szabo 
    szabo.b at czechglobe.cz
       
    Wed Sep 21 02:12:46 MDT 2016
    
    
  
I created a panel plot with my own netCDF files and color table be created
according to
http://www.ncl.ucar.edu/Document/Graphics/create_color_table.shtml
My own color table has ncolors = 5. The netCDF files contains five float
values (1.0, 2.0, 3.0, 4.0, 5.0). After I run the below script I received
correct maps with incorrect labelbar. The labelbar containes 11 box where
the first two and the last two colors are two times and the third color
roles three times. Moreover the label strings are the follows: Arid,
Sub-humid, Label_6, Label_8.
How can I create a correct labelbar?
;----------------------------------------------------------------------
; Main code.
;----------------------------------------------------------------------
begin
;************************************************
; read in netCDF file
;************************************************
  a = addfile("UNEP_E-OBS_sm.nc","r")
  b = addfile("UNEP_1971-2000_sm.nc","r")
  c = addfile("UNEP_2021-2050_sm.nc","r")
  d = addfile("UNEP_2071-2100_sm.nc","r")
  un1 = a->unep(:,:)
  un2 = b->unep(:,:)
  un3 = c->unep(:,:)
  un4 = d->unep(:,:)
  minlat             =  30                ; min lat to mask
  maxlat             =  75                ; max lat to mask
  minlon             = -20                ; min lon to mask
  maxlon             =  40                ; max lon to mask
;************************************************
; create plot
;************************************************
  wks = gsn_open_wks("png","unep")            ; send graphics to PNG file
  cmap = read_colormap_file("aridity")
  plot = new(4,graphic)
  res                       = True              ; plot mods desired
  res at gsnMaximize           = True              ; enlarge plot
  res at gsnDraw               = False             ; Don't draw yet
  res at gsnFrame              = False             ; Don't advance frame yet
  res at mpProjection          = "LambertConformal"; choose projection
  res at cnFillOn              = True              ; turn on color
  res at cnLinesOn             = False             ; turn off contour lines
  res at lbLabelBarOn          = False
  res at cnFillPalette         = cmap(::-1,:)         ; set color map
  res at mpMinLatF             = minlat
  res at mpMaxLatF             = maxlat
  res at mpMinLonF             = minlon
  res at mpMaxLonF             = maxlon
  res at gsnMaskLambertConformal = True            ; turn on lc masking
  res at mpGridAndLimbOn         = True
  res at mpGridLatSpacingF       = 10
  res at mpGridLonSpacingF       =  5
  res at gsnAddCyclic            = False
  res at tiMainString            = ""
  res at tiMainOffsetYF          = 0.01   ; Move title up a little
  res at gsnRightString          = "A"
  res at gsnLeftString           = ""
;  pr&lon = pr&lon-180                             ; make lon go -180 to 180
  plot(0)  =
gsn_csm_contour_map(wks,un1({minlat:maxlat},{minlon:maxlon}),res);
create plot
  resb                       = True              ; plot mods desired
  resb at gsnMaximize           = True              ; enlarge plot
  resb at gsnDraw               = False             ; Don't draw yet
  resb at gsnFrame              = False             ; Don't advance frame yet
  resb at mpProjection          = "LambertConformal"; choose projection
  resb at cnFillOn              = True              ; turn on color
  resb at cnLinesOn             = False             ; turn off contour lines
  resb at lbLabelBarOn          = False
  resb at cnFillPalette         = cmap(::-1,:)         ; set color map
  resb at mpMinLatF             = minlat
  resb at mpMaxLatF             = maxlat
  resb at mpMinLonF             = minlon
  resb at mpMaxLonF             = maxlon
  resb at gsnMaskLambertConformal = True            ; turn on lc masking
  resb at mpGridAndLimbOn         = True
  resb at mpGridLatSpacingF       = 10
  resb at mpGridLonSpacingF       =  5
  resb at gsnAddCyclic            = False
  resb at tiMainString            = ""
  resb at tiMainOffsetYF          = 0.01   ; Move title up a little
  resb at gsnRightString          = "B"
  resb at gsnLeftString           = ""
  plot(1)  =
gsn_csm_contour_map(wks,un2({minlat:maxlat},{minlon:maxlon}),resb);
create plot
  resc                       = True              ; plot mods desired
  resc at gsnMaximize           = True              ; enlarge plot
  resc at gsnDraw               = False             ; Don't draw yet
  resc at gsnFrame              = False             ; Don't advance frame yet
  resc at mpProjection          = "LambertConformal"; choose projection
  resc at cnFillOn              = True              ; turn on color
  resc at cnLinesOn             = False             ; turn off contour lines
  resc at lbLabelBarOn          = False
  resc at cnFillPalette         = cmap(::-1,:)         ; set color map
  resc at mpMinLatF             = minlat
  resc at mpMaxLatF             = maxlat
  resc at mpMinLonF             = minlon
  resc at mpMaxLonF             = maxlon
  resc at gsnMaskLambertConformal = True            ; turn on lc masking
  resc at mpGridAndLimbOn         = True
  resc at mpGridLatSpacingF       = 10
  resc at mpGridLonSpacingF       =  5
  resc at gsnAddCyclic            = False
  resc at tiMainString            = ""
  resc at tiMainOffsetYF          = 0.01   ; Move title up a little
  resc at gsnRightString          = "C"
  resc at gsnLeftString           = ""
  plot(2)  =
gsn_csm_contour_map(wks,un3({minlat:maxlat},{minlon:maxlon}),resc);
create plot
  resd                       = True              ; plot mods desired
  resd at gsnMaximize           = True              ; enlarge plot
  resd at gsnDraw               = False             ; Don't draw yet
  resd at gsnFrame              = False             ; Don't advance frame yet
  resd at mpProjection          = "LambertConformal"; choose projection
  resd at cnFillOn              = True              ; turn on color
  resd at cnLinesOn             = False             ; turn off contour lines
  resd at lbLabelBarOn          = False
  resd at cnFillPalette         = cmap(::-1,:)         ; set color map
  resd at mpMinLatF             = minlat
  resd at mpMaxLatF             = maxlat
  resd at mpMinLonF             = minlon
  resd at mpMaxLonF             = maxlon
  resd at gsnMaskLambertConformal = True            ; turn on lc masking
  resd at mpGridAndLimbOn         = True
  resd at mpGridLatSpacingF       = 10
  resd at mpGridLonSpacingF       =  5
  resd at gsnAddCyclic            = False
  resd at tiMainString            = ""
  resd at tiMainOffsetYF          = 0.01   ; Move title up a little
  resd at gsnRightString          = "D"
  resd at gsnLeftString           = ""
  plot(3)  =
gsn_csm_contour_map(wks,un4({minlat:maxlat},{minlon:maxlon}),resd);
create plot
;---Attach latitude labels
  add_lc_labels(wks,plot(0),minlat,maxlat,minlon,maxlon)
  add_lc_labels(wks,plot(1),minlat,maxlat,minlon,maxlon)
  add_lc_labels(wks,plot(2),minlat,maxlat,minlon,maxlon)
  add_lc_labels(wks,plot(3),minlat,maxlat,minlon,maxlon)
;---Drawing the plot will also draw all the attached labels.
  draw(plot(0))
  draw(plot(1))
  draw(plot(2))
  draw(plot(3))
  frame(wks)
   ;-- create panel plot
;************************************************
    resP                     = True                ; modify the panel plot
    resP at gsnPanelLabelBar    = True                ; add common colorbar
    resP at lbLabelFontHeightF  = 0.007               ; make labels smaller
    resP at cnExplicitLabelBarLabelOn = True
    resP at lbLabelStrings = (/"","Hyper-arid","Arid", \
           "Semi-arid","Sub-humid","Humid"/)
    gsn_panel(wks,plot,(/2,2/),resP)
end
Thank you for your help in advance!
Beata
Dr. Beata Szabo-Takacs
Global Change Research Institute CAS
Bělidla 986/4a
60300 Brno
Czech Republic
    
    
More information about the ncl-talk
mailing list