categorical label-bar question

From: Erik N <nobleeu_at_nyahnyahspammersnyahnyah>
Date: Wed Jul 04 2012 - 10:13:40 MDT

Hi, I used the 1st example on Classification (Categorical) Data page
to make the following plot ( attached).
I want the label bar to go from 1 to 24. For some reason the label bar
is not starting at "1" and is only plotting every 2nd number, even
though I use the command(s):

  res@lbOrientation = "vertical"
  res@lbLabelPosition = "Center" ; label position
  res@lbLabelAlignment = "BoxCenters" ; label orientation
  res@lbLabelStrings = ispan(1,24,1)

How may I fix this?
Thank you ahead of time.

Sincerely.

--
- Erik -
SCRIPT
________
;================================================
;  based on vegland_1.ncl
;================================================
; Concepts illustrated:
;   - Creating a vegetation classification plot using raster contours
;   - Plotting "byte" data
;   - Customizing a labelbar for a contour plot
;   - Centering labels with respect to labelbar boxes
;   - Changing the width and height of a labelbar
;   - Centering the labels inside each box in a labelbar
;   - Changing the labelbar labels
;   - Drawing text on the frame using NDC coordinates
;   - Using the "where" function to create a land-sea mask
;================================================
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
  diri = "./"                          ; input directory
  fili = "post_wrfout_d01_2006-09-02_00:00:00.nc"
;---read in data
	dir = "./"
	a   = addfile(diri+fili,"r")
	veg = a->LandUse(0,:,:)
	
	lat = a->latitude
	lat!0 = "lat"
	lat@units = "degrees_north"
	lon = a->longitude
	lon!0 = "lon"
	lon@units = "degrees_east"
	latRange = (/min(lat), max(lat)/)
	lonRange = (/min(lon), max(lon)/)
	; Add meta data for plotting purposes
	;fix ; go back laveg and fix in wrf script
	veg!0 = "lat"
	veg!1 = "lon"
	veg&lat = lat
	veg&lon = lon
	info     = (/ " 1  Urban or Built Land", \  ; n=0
	                " 2  Dry C&P ", \
	                " 3  Irrigated C&P", \
	                " 4  Mixed C&P ", \
	                " 5  Cropland/Grassland", \
	                " 6  Cropland/Woodland", \
	                " 7  Grassland", \
	                " 8  Shrubland", \
	                " 9  Mixed Shrub/Grass", \
	                "10  Savanna", \
	                "11  Deciduous Broadleaf", \
	                "12  Deciduous Needleleaf", \
	                "13  Evergreen Broadleaf", \
	                "14  Evergreen Needleleaf", \
	                "15  Mixed Forest", \
	                "16  Water Bodies ", \
	                "17  Herbaceous Wetland", \
	                "18  Wooden Wetland", \
	                "19  Barren", \
	                "20  Herbaceous Tundra", \
	                "21  Wooded Tundra", \
	                "22  Mixed Tundra", \
	                "23  Bare Ground Tundra", \
	                "24  Snow or Ice"  /) ; n=23
colors     = (/ "white","black","purple", \  ; n=0
"coral", \	;2
"coral2", \	;3
"chocolate1", \	;4
"lightgoldenrod1", \	;5
"chocolate4", \		;6
"darkolivegreen2", \				;7
"darkolivegreen1", \	;8
"greenyellow", \		;9
"darkolivegreen3", \
"green2", \
"darkkhaki", \
"darkolivegreen", \
"darkgreen", \
"limegreen", \
"blue", \ ; water; deepskyblue2
"orange1", \
"orange3", \
"gold1", \
"lightslategrey", \
"lightsteelblue2", \
"lightsteelblue1", \
"lightyellow3", \
"lightyellow1"  /) ; n=23
				
;************************************************
; create plot
;************************************************
  wks = gsn_open_wks("pdf","domain_veg")
  gsn_define_colormap(wks, colors)
  res                  = True                ; plot mods desired
  res@gsnDraw          = False
  res@gsnFrame         = False
  ; res@gsnMaximize      = True
  res@cnFillOn         = True               ; color Fill
  res@cnFillMode       = "RasterFill"       ; Raster Mode
  res@cnLinesOn        =  False             ; Turn off contour lines
  res@cnLevelSelectionMode = "ExplicitLevels" ; set explict contour levels
  res@cnLevels         = integertobyte( ispan(2,24,1) )
	
  res@lbOrientation = "vertical"
  res@lbLabelPosition  = "Center"           ; label position
  res@lbLabelAlignment = "BoxCenters"       ; label orientation
  res@lbLabelStrings   = ispan(1,24,1)
 ; res@pmLabelBarHeightF        =  0.075
 ;res@pmLabelBarWidthF         =  0.60      ; default is 0.6
 res@pmLabelBarOrthogonalPosF = -0.0005    ; move up smidge
  ;res@mpCenterLonF     = 0                  ; set map center
  res@mpFillOn         = False
	;=======;zoom part
	res@gsnAddCyclic	  = False
	;res@mpProjection          = "Mercator"
	res@mpLimitMode           = "Corners"
	res@mpLeftCornerLatF      = latRange(0)	
	res@mpLeftCornerLonF      = lonRange(0)
	res@mpRightCornerLatF     = latRange(1)
	res@mpRightCornerLonF     = lonRange(1)
	res@pmTickMarkDisplayMode = "Always"    ; Toggle b/t these two for
tick mark effect
	res@mpGridAndLimbOn	  = True
		res@mpGridSpacingF         = 5
		res@mpGridLineThicknessF   = 1.0
		res@mpGridLineColor        = "Gray30"
	res@tmXBTickSpacingF = 15
	res@tmYLTickSpacingF = 10
	res@tmXBLabelFontHeightF = 0.015
	res@tmYLLabelFontHeightF = 0.015
	
	res@mpFillOn          = False
    res@gsnLeftString   = "Land Use"
  	res@gsnCenterString = "WRF Model Domain"
    res@gsnRightString  = "USGS Categories"
	res@txFontHeightF   = 0.015
	res@pmTickMarkDisplayMode = "Always"    ; Toggle b/t these two for
tick mark effect
	
  plot = gsn_csm_contour_map_ce(wks, veg, res) ; create plot
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Overlay boxes over regions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;************************************************
; create points for box1
;************************************************
ypts1 = (/ 20.0,  20.0,  5.0,   5.0, 20.0/)
xpts1 = (/-20.0, 10.0,10.0, -20.0,-20.0/)
;************************************************
; add the boxes
;************************************************
res1                  = True                      ; polyline mods desired
res1 = res
res1@gsLineColor      = "red"                     ; color of lines
res1@gsLineThicknessF = 8.0                       ; thickness of lines
  ; create array of dummy graphic variables. This is required, b/c each line
  ; must be associated with a unique dummy variable.
  dum1 = new(4,graphic)
  ; draw each line separately. Each line must contain two points.
  do i = 0 , 3
	dum1(i)=gsn_add_polyline(wks,plot,xpts1(i:i+1),ypts1(i:i+1),res1)
end do
  ;************************************************
  ; label the box with additional text
  ;************************************************
  ; tres       =  True
  ; tres@txFontHeightF = 0.015
  ; tres@txFontColor = "red"
  ; gsn_text(wks,plot,"Sahel",0.0,13.0,tres)
  ; Catagories
  rtxt = True
  rtxt@txJust        = "CenterLeft"
  rtxt@txFontHeightF = 0.009
                            ; 4 rows x 6 columns of text
  n  = -1
  xx = .04
  do ncol=0,5
     yy = 0.16
    do nrow=0,3
       n = n+1
       gsn_text_ndc (wks,info(n),xx,yy,rtxt)
       yy = yy - 3*rtxt@txFontHeightF
    end do
     xx = xx + 0.155
  end do
  draw(plot)
  frame(wks)
end


_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk

Received on Wed Jul 4 10:13:59 2012

This archive was generated by hypermail 2.1.8 : Mon Jul 09 2012 - 10:45:32 MDT