[ncl-talk] Incorrect label bar

Beata Szabo szabo.b at czechglobe.cz
Sun Sep 25 10:11:06 MDT 2016


Hi Adam,

Thank you very much for your help. It works correctly.

Kind regards,
Beata
> Hi Beata,
> Try changing this:
> res at cnLevels = (/1,2,3,4/)
> to this:
> res at cnLevels = (/1.5,2.5,3.5,4.5/)
>
> If that does not work please send the current version of you script, along
> with your aridity colormap and data files to our ftp site so someone can
> take a look. Follow the ftp instructions here:
> http://www.ncl.ucar.edu/report_bug.shtml
> (Under "You can ftp larger datasets and files to:")
>
> When the transfer is completed make sure you send to ncl-talk the name of
> the files you transferred.
> Adam
>
>
>
> On Fri, Sep 23, 2016 at 1:56 AM, Beata Szabo <szabo.b at czechglobe.cz>
> wrote:
>
>> Dear Mary,
>>
>> Thank you for your response. If I apply your suggestions:
>>
>> res at cnLevelSelectionMode = "ExplicitLevels"
>> res at cnLevels = (/1,2,3,4/)
>>
>> the labelbar will be correct but the maps are incorrect, because this
>> method shifts the colors. I attached its result. It does not show the
>> hyper-arid areas (brown) and the semi-arid levels (green) are missed in
>> Iberia-Peninsula. I need same maps as I attached in the previous email.
>> Could you or someone help me to fix this matter.
>>
>> Thank you in advance!
>> Beata
>>
>> > Beata,
>> >
>> > When NCL repeats colors in a labelbar like this, it's because there
>> aren't
>> > enough colors in the color map for the number of contour levels being
>> > requested.
>> >
>> > It looks like your color map only has 5 colors, so you need to use one
>> > fewer contour levels:
>> >
>> > res at cnLevelSelectionMode = "ExplicitLevels"
>> > res at cnLevels = (/1,2,3,4/)
>> >
>> >
>> > --Mary
>> >
>> >
>> >
>> >
>> > On Thu, Sep 22, 2016 at 3:06 AM, Beata Szabo <szabo.b at czechglobe.cz>
>> > wrote:
>> >
>> >> I added
>> >> resP at lbBoxCount = 5
>> >>
>> >> but unfortunately it does not help. I created new netcdf files with
>> same
>> >> variables, but I converted the unep variable to integer and I also
>> tried
>> >> to draw the maps with those integer variables (1,2,3,4,5) with
>> >>
>> >>   res at cnLevels              = (/1,2,3,4,5/)
>> >>
>> >> The resulted maps are correct but the label is still incorrect both
>> with
>> >> string and without string labels. I attached the sript and the
>> created
>> >> maps. I would appreciated if someone helped me!
>> >>
>> >> Beata
>> >>
>> >> > I don't know for certain, but you might try adding
>> >> >
>> >> >    resP at lbBoxCount = 5
>> >> >
>> >> > I'm not positive that will fix it, but the docs say that the sizes
>> of
>> >> > arrays like lbLabelStrings, etc, must match the lbBoxCount, and in
>> >> your
>> >> > case it sounds like its defaulting to 11 (?)
>> >> >
>> >> > Hope that helps...
>> >> > Rick
>> >> >
>> >> >
>> >> > On Wed, Sep 21, 2016 at 2:12 AM, Beata Szabo
>> <szabo.b at czechglobe.cz>
>> >> > wrote:
>> >> >
>> >> >> 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
>> >> >>
>> >> >> _______________________________________________
>> >> >> ncl-talk mailing list
>> >> >> ncl-talk at ucar.edu
>> >> >> List instructions, subscriber options, unsubscribe:
>> >> >> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>> >> >>
>> >> >
>> >>
>> >>
>> >> Dr. Beata Szabo-Takacs
>> >> Global Change Research Institute CAS
>> >> Bělidla 986/4a
>> >> 60300 Brno
>> >> Czech Republic
>> >>
>> >> _______________________________________________
>> >> ncl-talk mailing list
>> >> ncl-talk at ucar.edu
>> >> List instructions, subscriber options, unsubscribe:
>> >> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>> >>
>> >>
>> >
>>
>>
>> Dr. Beata Szabo-Takacs
>> Global Change Research Institute CAS
>> Bělidla 986/4a
>> 60300 Brno
>> Czech Republic
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
>
> --
> Adam Phillips
> Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
> www.cgd.ucar.edu/staff/asphilli/   303-497-1726
>
> <http://www.cgd.ucar.edu/staff/asphilli>
>


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