[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