
NhlNewColor
Allocates new workstation color indexes.
Prototype
function NhlNewColor ( workstations [*] : graphic, red [*] : float, green [*] : float, blue [*] : float ) return_val [dimsizes(workstations)][dimsizes(red)] : integer
Arguments
workstationsAn array of NCL Workstation identifiers. The identifiers are ones returned either from calling gsn_open_wks or calling create to create a Workstation object.
red
green
blue
Arrays of floating-point values between 0 and 1 inclusive. They must all be the same length.
Return value
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.
Description
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.
See Also
NhlFreeColor, NhlSetColor, NhlIsAllocatedColor, NhlGetNamedColorIndex, namedcolor2rgb
Examples
Example 1
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