# coyote: CGSCALEVECTOR

- coyote/Utilities
- [Source code]

Description

      This is a utility routine to scale the elements of a vector or an array into a
      given data range.

Categories

      Utilities

Returns

      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.

Params

      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.

Keywords

      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.

Examples

      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)

Author

      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

History

      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

      Copyright (c) 1998-2013, Fanning Software Consulting, Inc.