Allocates new workstation color indexes.
function NhlNewColor ( workstations [*] : graphic, red [*] : float, green [*] : float, blue [*] : float ) return_val [dimsizes(workstations)][dimsizes(red)] : integer
Arrays of floating-point values between 0 and 1 inclusive. They must all be the same length.
The color indexes allocated can be different for each workstation identifier, so the return array of color indexes is dimensioned nwks x nrgb , where nwks is the length of workstations, and nrgb is the length of the red, green, blue arrays.
For the color map of each workstation in workstations, this function allocates color indexes for every given red, green, blue triplet.
This function is different than the NhlSetColor procedure in that you are not required to input color indexes for which to put the new colors.
If you are trying to add a color to a color map that already has 256 colors in it, you will get an error. Try using NhlSetColor in this case.
This example draws a filled contour plot over a map. It uses a "rainbow" colormap which has no gray in it. This causes the continents to be drawn in white. The NhlNewColor function is used to add gray to the end of the colormap.
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" begin datadir = ncargpath("data") datafile = datadir + "/cdf/meccatemp.cdf" ; ; Load a file record from the netCDF file ; as a read only data set. ; n = addfile(datafile,"r") t = n->t(0,:,:) type = "x11" type@wkColorMap = "rainbow" type@wkBackgroundColor = "white" type@wkForegroundColor = "black" wks = gsn_open_wks(type,"annotation") ; Open a workstation. ; ; If you don't add this color, your continent colors ; will be white instead of gray. ; newindex = NhlNewColor(wks,0.8,0.8,0.8) ; ; Set some resources. ; res = True res@gsnSpreadColors = True res@gsnSpreadColorEnd = -2 res@gsnMaximize = True res@gsnAddCyclic = False res@cnLevelSelectionMode= "ManualLevels" res@cnMinLevelValF = 195.0 res@cnMaxLevelValF = 328.0 res@cnLevelSpacingF = 2.25 res@cnFillOn = True res@cnLinesOn = False res@mpGridAndLimbOn = False res@mpFillDrawOrder = "PostDraw" plot = gsn_csm_contour_map(wks,t,res) end