This is a utility routine to scale the elements of a vector or an array into a given data range.
Utilities
A vector or array of the same size as the input, scaled into the data range given by `minRange` and `maxRange'. The input vector is confined to the data range set by `MinValue` and `MaxValue` before scaling occurs.
maxRange: in, optional, type=varies, default=1 The maximum output value of the scaled vector. Set to 1 by default. minRange: in, optional, type=varies, default=0 The minimum output value of the scaled vector. Set to 0 by default. vector: in, required The input vector or array to be scaled.
double: in, optional, type=boolean, default=0 Set this keyword to perform scaling in double precision. Otherwise, scaling is done in floating point precision. maxvalue: in, optional Set this value to the maximum value of the vector, before scaling (vector < maxvalue). The default value is Max(vector). minvalue: in, optional Set this value to the mimimum value of the vector, before scaling (minvalue < vector). The default value is Min(vector). nan: in, optional, type=boolean, default=0 Set this keyword to enable not-a-number checking. NANs in vector will be ignored. preserve_type: in, optional, type=boolean, default=0 Set this keyword to preserve the input data type in the output.
Simple example of scaling a vector:: IDL> x = [3, 5, 0, 10] IDL> xscaled = cgScaleVector(x, -50, 50) IDL> Print, xscaled -20.0000 0.000000 -50.0000 50.0000 Suppose your image has a minimum value of -1.7 and a maximum value = 2.5. You wish to scale this data into the range 0 to 255, but you want to use a diverging color table. Thus, you want to make sure value 0.0 is scaled to 128. You proceed like this:: scaledImage = cgScaleVector(image, 0, 255, MINVALUE=-2.5, MAXVALUE=2.5)
FANNING SOFTWARE CONSULTING:: David W. Fanning 1645 Sheely Drive Fort Collins, CO 80526 USA Phone: 970-221-0438 E-mail: david@idlcoyote.com Coyote's Guide to IDL Programming: http://www.idlcoyote.com
Change History:: Written by: David W. Fanning, 12 Dec 1998. Added MAXVALUE and MINVALUE keywords. 5 Dec 1999. DWF. Added NAN keyword. 18 Sept 2000. DWF. Removed check that made minRange less than maxRange to allow ranges to be reversed on axes, etc. 28 Dec 2003. DWF. Added PRESERVE_TYPE and DOUBLE keywords. 19 February 2006. DWF. Added FPUFIX to cut down on floating underflow errors. 11 March 2006. DWF. Renamed Scale_Vector to cgScaleVector, 16 May 2013. DWF.
Copyright (c) 1998-2013, Fanning Software Consulting, Inc.