SolarSoft Library

This page is a listing of the entire contents of this library for IDL. This listing is the long version. Viewing the much more compact listing may be handier.

[Go Back to Main IDL Libraries Search Page]


Last modified: Thu Dec 21 21:27:54 2000.

List of Routines


Routine Descriptions

ABSCAL

[Next Routine] [List of Routines]
 NAME:
	ABSCAL
 PURPOSE:
	Apply the FITS BZERO and BSCALE keyword values to a data array

 CALLING SEQUENCE:
	RESULT = ABSCAL( Value, Header, /DEBUG)

 INPUTS:
	VALUE -  Any scalar, vector, or array (usually an integer type giving a
		relative intensity).
	HEADER - A FITS  header array containing the absolute calibration
		keyword BSCALE, and optionally BZERO and BUNIT.

 OUTPUT:
	RESULT = BSCALE*VALUE + BZERO, where the BSCALE and BZERO scalars
		are taken from the FITS header.  
		If the absolute calibration keywords do not exist, then
		RESULT = VALUE, and !ERR = -1.

 OPTIONAL INPUT KEYWORD:
	DEBUG - If DEBUG is set, then ABSCAL will print the
		calibration units given by the BUNIT keyword.

 REVISION HISTORY:
	Written W. Landsman, STX Corporation     January 1987
	Use DEBUG keyword instead of !DEBUG      September 1995

(See /host/bluemoon/usr2/idllib/ssw/allpro/abscal.pro)


ACGAUNT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:		ACGAUNT
 PURPOSE:	Calculate continuum gaunt factor using approximations
		of R. Mewe (18-JUN-85) to full calculations of 
		paper VI (Arnaut and Rothenflug for ion balances).
 CATEGORY:
 CALLING SEQUENCE: cgauntf = acgaunt( wave, te_6)
               cgauntf = acgaunt( wave, te_6, G1=gff, G2=gfb, G3=g2p)

 INPUTS:	wave = Wavelength in Angstrom (1-d vector or scalar)
		te_6 = Temperature in 10^6 K  (1-d vector or scalar)
 OPTIONAL INPUTS: none.
 OUTPUTS: 	Function result
		 = cgauntf(n_elements(te_6), n_elements(wave)) 
		 = array of approximate continuum gaunt factors.
 OPTIONAL OUTPUTS:
		G1 = Free-free  Gaunt factor
		G2 = Free-bound Gaunt factor
		G3 = 2-photon   Gaunt factor

 COMMON BLOCKS: none
 SIDE EFFECTS:  none
 RESTRICTIONS:  none
 PROCEDURE:	see a paper of R. Mewe et al. (A & Ap)
 MODIFICATIONS: written by N.Nitta from a Fortran version, March 1991.
	31-jul-93, JRL, Added a check on the exponent to prevent floating underflow message
       23-Jun-94, DMZ, made Gaunt factors double precision

(See /host/bluemoon/usr2/idllib/ssw/allpro/acgaunt.pro)


AD2XY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     AD2XY
 PURPOSE:
     Compute X and Y from  RA and DEC and a FITS  astrometry structure
 EXPLANATION:
     A tangent (gnomonic) projection is computed directly; other projections 
     are computed using WCSXY2SPH.     AD2XY is meant to be used internal to 
     other procedures.   For interactive purposes, use ADXY.

 CALLING SEQUENCE:
     AD2XY, a ,d, astr, x, y   

 INPUTS:
     A -     R.A. in DEGREES, scalar or vector
     D -     Dec. in DEGREES, scalar or vector
     ASTR - astrometry structure, output from EXTAST procedure containing:
        .CD   -  2 x 2 array containing the astrometry parameters CD1_1 CD1_2
               in DEGREES/PIXEL                                   CD2_1 CD2_2
        .CDELT - 2 element vector giving increment at reference point in
               DEGREES/PIXEL
        .CRPIX - 2 element vector giving X and Y coordinates of reference pixel
               (def = NAXIS/2)
        .CRVAL - 2 element vector giving R.A. and DEC of reference pixel 
               in DEGREES
        .CTYPE - 2 element vector giving projection types 

 OUTPUTS:
     X     - row position in pixels, scalar or vector
     Y     - column position in pixels, scalar or vector

 REVISION HISTORY:
     Converted to IDL by B. Boothman, SASC Tech, 4/21/86
     Use astrometry structure,  W. Landsman      Jan. 1994   
     Do computation correctly in degrees  W. Landsman       Dec. 1994
     Only pass 2 CRVAL values to WCSSPH2XY   W. Landsman      June 1995
     Don't subscript CTYPE      W. Landsman       August 1995        
     Understand reversed X,Y (X-Dec, Y-RA) axes,   W. Landsman  October 1998

(See /host/bluemoon/usr2/idllib/ssw/allpro/ad2xy.pro)


ADDTIME

[Previous Routine] [Next Routine] [List of Routines]
  Name:
    ADDTIME
  Purpose:
    If optional keyword delta_min is supplied, then add a offset in 
		decimal minutes to an external time (H,M,S,MS,D,M,Y).
    If optional keyword difference is supplied, return the difference 
		as Value = [A] - [B], where Value will be minutes (floating).

  Inputs:
    A	= Base time, any format.

  Calling Sequence:
    Result = addtime(A,delta_min=delta_min)	; Result is [h,m,s,ms,d,m,y]
    Result = addtime(A,difference=B)		; Result is minutes (float)
    Result = addtime(A,difference=B,/sec)	; Result is seconds (float)

  Outputs:
    Function returns New time time, if delta_min keyword is provided.
    Function returns difference of A-B, if B keyword is provied.

  OPTIONAL INPUT KEYWORDS:
    delta_min	Decimal minutes (positive or negative) to add to A.
		If /secs is set, this should be in secs.
    B		2nd time to subtract from A in any format.
    secs	If set, return the result in seconds with diff=keyword
               If set, the input delta should be specified in secs

  Procedure:
    Calls ex2int and int2ex to do the calculations. 

  MODIFICATION HISTORY:
    15-oct-91, Written, JRL
    26-oct-91, Update, JRL - To handle hrs > 24 case
    22-jun-92, Update, JRL - eliminate the 24:00 hour case
    11-sep-92, Update, JRL - Call anytim2ex to convert input to external.
    27-jul-94, JRL - Return the result in secs (with massive help from JMM!)
     6-Mar-95, JRL - Improved logic so delta= doesn't overflow

(See /host/bluemoon/usr2/idllib/ssw/allpro/addtime.pro)


ADD_PATH

[Previous Routine] [Next Routine] [List of Routines]
 PROJECT:
       SOHO - CDS

 NAME:
       ADD_PATH

 PURPOSE:
       Add directory (and optionally all its subdirs) into IDL path

 EXPLANATION:

 CALLING SEQUENCE:
       ADD_PATH, path_name [,/append] [,index=index]

 INPUTS:
       path_name -- A string scalar of a valid directory name.

 OPTIONAL INPUTS:
       INDEX -- Position in the !path where the directory name is inserted;
                ignored if the keyword APPEND is set.

 OUTPUTS:
       None, but !path is changed.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       APPEND -- By default, the given directory name is added in the
                 beginning of !path. Set this keyword will add the directory
                 name in the end of !path.
       EXPAND -- Set this keyword if the PATH_NAME needs to be expanded.

 CALLS:
       CHK_DIR, CONCAT_DIR, STR_SEP, ARR2STR, DATATYPE, OS_FAMILY

 COMMON BLOCKS:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       Utilities, OS

 PREVIOUS HISTORY:
       Written October 8, 1994, by Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:
       Version 2, Liyun Wang, GSFC/ARC, October 17, 1994
          Added EXPAND keyword
	Version 3, William Thompson, GSFC, 29 August 1995
		Modified to use OS_FAMILY

 VERSION:
       Version 3, 29 August 1995

(See /host/bluemoon/usr2/idllib/ssw/allpro/add_path.pro)


ADD_PROP

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO-CDS

 Name        : ADD_PROP

 Purpose     : Add a property to a map object

 Category    : imaging

 Explanation : 

 Syntax      : add_prop,map,property=value

 Examples    : add_prop,map,units='arcsecs'

 Inputs      : MAP = map structure
               PROPERTY = property name
               VALUE = property value
               REPLACE = set to replace with new value if property exists

 Opt. Inputs : None


 Outputs     : MAP = new map with property added

 Opt. Outputs: 

 Keywords    : See inputs

 Common      : None

 Restrictions: Cannot have two properties with same name

 Side effects: None

 History     : Written 18 March 1998, D. Zarro, SAC/GSFC

 Contact     : dzarro@solar.stanford.edu

(See /host/bluemoon/usr2/idllib/ssw/allpro/add_prop.pro)


ADD_SYNOP

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	HESSI

 Name        :	ADD_SYNOP()

 Purpose     :	Adds a record to synoptic database

 Explanation :	

 Syntax      : ADD_SYNOP, DEF, STATUS

 Inputs      :	DEF = This is an anonymous structure containing
		      tags defined by DEF_SYNOP

 Opt. Inputs :	None.

 Outputs     :	STATUS = logical value representing
		whether or not the operation was successful, where 1 is
		successful and 0 is unsuccessful.

 Opt. Outputs:	None.

 Keywords    : ERR    = error string (blank if no errors).
               REPLATE = set to replace a record if it already exists

 Restrictions:	None.

 Side effects:	If input catalog number is already in DB, then input
               DEF will replace current entry, otherwise it
               will be added with a new catalog number.

 Category    :	HESSI Synoptic Analysis Database

 Written     :	Dominic Zarro, SM&A/GSFC, 8 May 1999

 Contact     : dzarro@solar.stanford.edu

(See /host/bluemoon/usr2/idllib/ssw/allpro/add_synop.pro)


ADD_TAG

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SDAC

 Name        :	ADD_TAG

 Purpose     :	add a tag to a structure

 Explanation :	

 Use         : NEW_STRUCT=ADD_TAG(STRUCT,TAG,TAG_NAME)

 Inputs      :	STRUCT = input structure (array or scalar)
             : TAG_VALUE = tag variable to add 
             : TAG_NAME = tag name 

 Opt. Inputs :	None.

 Outputs     :	NEW_STRUCT = new structure

 Opt. Outputs:	None.

 Keywords    :	NAME = new name for structure
               INDEX = index or tag name where to append new tag [def = last]
               ERR   = error message [blank if ok]
               DUPLICATE = set to allow duplicate tag names
		TOP_LEVEL = If set, then only the top level is searched to
			    determine if the tag already exists.
               NO_COPY = do not make copy of input TAG variable
                         (it will be destroyed after input)

 Restrictions:	Cannot add more than one tag at a time

 Side effects:	None.

 Category    :	Structure handling

 Prev. Hist. :	None.

 Written     :	Dominic Zarro (ARC)
               
 Version     :	Version 1.0, 7 November 1994 -- written
               Version 2.0, 16 June 1996    -- cleaned up
		Version 3, 11-Aug-1997, William Thompson, GSFC
			Added keyword TOP_LEVEL
		Version 4 8-Oct-1998, Zarro (SMA/GSFC) - converted to using
                       CREATE_STRUCT

(See /host/bluemoon/usr2/idllib/ssw/allpro/add_tag.pro)


ADJUST

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS

 Name        : 
	ADJUST()
 Purpose     : 
	Adjust the range of an image.
 Explanation : 
	Adjusts the range of an image.  Basically equivalent to using the
	">" and "<" operators, except that pixels equal to MISSING are ignored
	and not changed by this procedure.
 Use         : 
	Result = ADJUST( ARRAY,  )
 Inputs      : 
	ARRAY	= Array to be scaled.
 Opt. Inputs : 
	None.
 Outputs     : 
	Result of function is scaled image.
 Opt. Outputs: 
	None.
 Keywords    : 
	MINIMUM	= Lower limit to scale image into.  If not passed, then
		  MIN(ARRAY) is assumed.
	MAXIMUM	= Upper limit to scale image into.  If not passed, then
		  MAX(ARRAY) is assumed.
	MISSING	= Value flagging missing pixels.
 Calls       : 
	GET_IM_KEYWORD
 Common      : 
	None.
 Restrictions: 
	In general, the SERTS image display routines use several non-standard
	system variables.  These system variables are defined in the procedure
	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
	user's IDL_STARTUP file.

	Some routines also require the SERTS graphics devices software,
	generally found in a parallel directory at the site where this software
	was obtained.  Those routines have their own special system variables.

 Side effects: 
	None.
 Category    : 
	Utilities, Image_display.
 Prev. Hist. : 
	William Thompson, March 1991.
	William Thompson, August 1992, renamed BADPIXEL to MISSING.
 Written     : 
	William Thompson, GSFC, March 1991.
 Modified    : 
	Version 1, William Thompson, GSFC, 14 May 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 14 May 1993.

(See /host/bluemoon/usr2/idllib/ssw/allpro/adjust.pro)


ADJUST_COLOR

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS

 Name        : 
	ADJUST_COLOR
 Purpose     : 
	Adjust the color table with the cursor.
 Explanation : 
	Use the graphics cursor to control the lower limit and range of the
	color tables.

	Cursor is repeatedly sampled.  X position is the lower limit (e.g.
	cutoff).  Y position controls range of color table.  Initially, the
	cutoff is set to 0 and the range is 255 with the cursor at the upper
	left corner.  When any key is struck the lower limit and range are
	printed and the procedure is exited.

 Use         : 
	ADJUST_COLOR  [, R,G,B ]
 Inputs      : 
	None required.
 Opt. Inputs : 
	R = Red color gun vector, 256 elements, 0 to 255.
		(usually read from device)
	G = Green color gun vector.
	B = Blue color gun vector.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	DISABLE	 = If passed, then TVSELECT is not used.
	NOCURSOR = If passed, then TVCRS is not called.  TVCRS is not called
		   for Tektronix terminals in any case.
 Calls       : 
	TVSELECT, TVUNSELECT
 Common      : 
	If the parameters are omitted, the color vectors are read using
	TVLCT,/GET.  Regardless of the number of parameters, the colors in
	common are not changed.
 Restrictions: 
	In general, the SERTS image display routines use several non-standard
	system variables.  These system variables are defined in the procedure
	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
	user's IDL_STARTUP file.

	Some routines also require the SERTS graphics devices software,
	generally found in a parallel directory at the site where this software
	was obtained.  Those routines have their own special system variables.

 Side effects: 
	None.
 Category    : 
	Utilities, Image_display.
 Prev. Hist. : 
	DMS, JULY, 1982. Written.
	WTT, AUGUST, 1990.  Ported to version 2 for non-windowed devices.
	William Thompson, April 1992, changed to use TVLCT,/GET instead of
				      common block.
 Written     : 
	David M. Stern, RSI, July 1982.
 Modified    : 
	Version 1, William Thompson, GSFC, 14 May 1993.
		Incorporated into CDS library.
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
 Version     : 
	Version 2, 8 April 1998

(See /host/bluemoon/usr2/idllib/ssw/allpro/adjust_color.pro)


ADJUST_TIMES

[Previous Routine] [Next Routine] [List of Routines]
   Name: adjust_times

   Purpose: check input times and adjust if required 

   Input Parameters:
      t0 - start time 	- any Yohkoh format
      t1 - stop time

   Output Parameters:
      t0 - start time (adjusted)	; output is always Yohkoh string format
      t1 - stop time (adjusted)

   Keyword Parameters
      maxdays   - if set, maximum number of days allowed (t1-t0)
      timerange - 2 element vector; force times to fall in this range
      earliest  - same as timerange(0)
      latest    - same as timerange(1)
      status (output) - true (1) if no problems, false (0) if problems/adjust.
      deltat (output) - delta Time (seconds between final output times)

   History:
      28-sep-1995 (S.L.Freeland) to simplify checking WWW form times

   Warning - input times may be clobbered (I mean adjusted)

(See /host/bluemoon/usr2/idllib/ssw/allpro/adjust_times.pro)


ADSTRING

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	ADSTRING
 PURPOSE:
	Return RA and Dec as character string in sexigesimal format.
 EXPLANATION:
	RA and Dec may be entered as either a 2 element vector or as
	2 scalars.  One can also specify the precision of the declination
	in digits after the decimal point.

 CALLING SEQUENCE
	result = ADSTRING( ra_dec )	      
		or
	result = ADSTRING( ra,dec,[ precision ] )

 INPUTS:
	RA_DEC - 2 element vector giving the Right Ascension and declination
		in decimal degrees.
                     or
	RA     - Right ascension in decimal degrees, numeric scalar
	DEC    - Declination in decimal degrees, numeric scalar

 OPTIONAL INPUT:
	PRECISION  - Integer scalar (0-4) giving the number of digits after the 
		decimal of DEClination.   The RA is automatically 1 digit more.
		This parameter may either be the third parameter after RA,DEC 
		or the second parameter after [RA,DEC].  It is not available 
		for just DEC.   If no PRECISION parameter is passed, a 
		precision of 1 for both RA and DEC is returned to maintain 
		compatibility with past ADSTRING functions.    Values of 
		precision larger than 4 will be truncated to 4.    If
		PRECISION is 3 or 4, then RA and Dec should be input as 
		double precision.

 OUTPUT:
	RESULT - Character string containing HR,MIN,SEC,DEC,MIN,SEC formatted
		as ( 2I3,F5.(p+1),2I3,F4.p ) where p is the PRECISION 
		parameter.    If only a single scalar is supplied it is 
		converted to a sexigesimal string (2I3,F5.1).

 EXAMPLE:
	(1) Display CRVAL coordinates in a FITS header, H

	IDL> crval = sxpar(h,'CRVAL*')  ;Extract 2 element CRVAL vector (degs)
	IDL> print, adstring(crval)     ;Print CRVAL vector sexigesimal format

	(2)  print,adstring(30.42,-1.23,1)  ==>  ' 02 01 40.80  -01 13 48.0'
	     print,adstring(30.42,+0.23)    ==>  ' 02 01 40.8  +00 13 48.0'
	     print,adstring(+0.23)          ==>  '+00 13 48.0'

 PROCEDURES CALLED:
	RADEC, SIXTY()

 REVISION HISTORY:
	Written   W. Landsman                      June 1988
	Addition of variable precision and DEC seconds precision fix. 
	ver.  Aug. 1990 [E. Deutsch]
	Output formatting spiffed up       October 1991 [W. Landsman]
	Remove ZPARCHECK call, accept 1 element vector  April 1992 [W. Landsman]
	Call ROUND() instead of NINT()    February 1996  [W. Landsman]
	Check roundoff past 60s           October 1997   [W. Landsman]
	Work for Precision =4             November 1997  [W. Landsman]

(See /host/bluemoon/usr2/idllib/ssw/allpro/adstring.pro)


ADXY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	ADXY
 PURPOSE:
	Use a FITS header to convert celestial (RA,Dec) to pixel coordinates
 EXPLANATION:
	Use an image header to compute X and Y positions, given the
	RA and Dec in decimal degrees.  

 CALLING SEQUENCE:
	ADXY, HDR		;Prompt for Ra and DEC 
	ADXY, hdr, a, d, x, y, [ /PRINT ]

 INPUTS:
	HDR - FITS Image header containing astrometry parameters

 OPTIONAL INPUTS:
	A - Right ascension in decimal DEGREES, scalar or vector
	D - Declination in decimal DEGREES, scalar or vector        

	If A and D are not supplied, user will be prompted to supply
	them in either decimal degrees or HR,MIN,SEC,DEG,MN,SC format.

 OPTIONAL OUTPUT:
	X     - row position in pixels, same number of elements as A and D
	Y     - column position in pixels

 OPTIONAL KEYWORD INPUT:
	PRINT - If this keyword is set and non-zero, then results are displayed
		at the terminal.

 OPERATIONAL NOTES:
	If less than 5 parameters are supplied, or if the /PRINT keyword is
	set, then then the X and Y positions are displayed at the terminal.

	If the procedure is to be used repeatedly with the same header,
 	then it would be faster to use AD2XY.

 PROCEDURES CALLED:
	AD2XY, ADSTRING(), EXTAST, GETOPT()

 REVISION HISTORY:
	W. Landsman                 HSTX          January, 1988
	Use astrometry structure   W. Landsman   January, 1994	
	Changed default ADSTRING format   W. Landsman    September, 1995

(See /host/bluemoon/usr2/idllib/ssw/allpro/adxy.pro)


AFFINE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AFFINE

 PURPOSE:
	Apply the affine transformation given by the input parameters
       to IMAGE. 
	
 CATEGORY:
	Z3 - Image processing, geometric transforms, image registration.

 CALLING SEQUENCE:
	transformed_image = AFFINE(image,mx,my,sx,theta,xc,yc)

 INPUTS:
       IMAGE:  The image to be transformed. Must be 2-D.
       MX, MY: Magnification factors in x and y directions.
       SX:     Horizontal shear term.
       THETA:  Rotation angle in DEGREES. THETA > 0 => counterclockwise rotation.
       XC, YC: Center of rotation.
               
 KEYWORDS:
	INTERP:	Set this keyword for bilinear interpolation.  If this keyword
		is set to 0 or omitted, nearest neighbor sampling is used.
		Note that setting this keyword is the same as using the 
		ROT_INT User Library function.  This change (and others) 
		essentially makes ROT_INT obsolete.

	CUBIC:	If specified and non-zero, "Cubic convolution"
		interpolation is used.  This is a more
		accurate, but more time-consuming, form of interpolation.
		CUBIC has no effect when used with 3 dimensional arrays.
		If this parameter is negative and non-zero, it specifies the
		value of the cubic interpolation parameter as described
		in the INTERPOLATE function.  Valid ranges are -1 <= Cubic < 0.
		Positive non-zero values of CUBIC (e.g. specifying /CUBIC)
		produce the default value of the interpolation parameter
		which is -1.0.

      MISSING:	The data value to substitute for pixels in the output image 
		that map outside the input image.       

 OUTPUTS:
       NONE

 RETURNS:
       TIMAGE: the affine transformation of input image IMAGE.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Uses POLY_2D to warp the input image according to the 
       given parameters.

	See:	Image Processing for Scientific Applications
               Bernd J\"ahne
		CRC Press, 1997, Chapter 8.

       Same as ROT.PRO but includes shear term and /PIVOT is assumed.

 MODIFICATION HISTORY:
	T. Berger, LMATC, 26-February-1998.
       S.L.Freeland, LMSAL, 10-March-1998 - backward compatible IDV V < 5

(See /host/bluemoon/usr2/idllib/ssw/allpro/affine.pro)


AFFINE_SOLVE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AFFINE_SOLVE

 PURPOSE:
	Calculate the parameters of a general affine image
       transformation given a set of points from two images:
       one of the images is assumed to be the reference image,
       the other is assumed to be an image translated, rotated,
       scaled, and possibly sheared relative to the reference image.

       The form of the general transformation is affine:
       X = tranformed coordinates = [T+ M S R T-] X'
       where, in homogeneous coordinates,

              X  = TRANSPOSE[x, y, 1]: test image vector
              T+ = [[1,0,x0],[0,1,y0],[0,0,1]]: translatation of (0,0) back to (x0,y0) 
              M  = [[mx,0,0],[0,my,0],[0,0,1]]:scale
              S  = [[1,sx,0],[0,1,0],[0,0,1]]: horizontal shear
              R  = [[cos(t),-sin(t),0],[sin(t),cos(t),0],[0,0,1]]:
                   rotate clockwise by angle t about origin.
              T- = [[1,0,-x0],[0,1,-y0],[0,0,1]]:center of rotation to (0,0)
              X' = TRANSPOSE[x',y',1]: reference image vector
	
 CATEGORY:
	Z3 - Image processing, geometric transforms, image registration.

 CALLING SEQUENCE:
	AFFINE_SOLVE, xin,xrefin,sx,sy,s,theta,x0,y0

 INPUTS:
	XIN:    2xN dimensional array of points taken from image1 
               which correspond to the same points in the reference image.
               Xi = XIN(0,*)
		Yi = XIN(1,*)
               N is the number of points. 

	XPIN:   2xN dimensional array of points from the "reference image"
               which correspond to points in the image. 
               
 KEYWORDS:
       VERBOSE: If set, print the transformation elements to the screen.

 OUTPUTS:
       MX, MY: Magnification factors in x and y axes, respectively.

       SX:      Horizontal shearing factor.

       THETA:  Rotation angle in degrees. 

       XC,YC:  Center of rotation vector elements OR translation
               vector elements.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	N, the number of matched points in the transformed and reference
       images should be large (greater than 20), should be taken from
       widely spaced locations in the image field-of-view, and should
       be measured to within 1-pixel for greatest accuracy.

       Off-center rotation and translation require a two-stage approach
       for image registration. i.e. in the first stage, apply the parameters 
       given by this routine to the test image. A second set of points
       is then selected from the image and the reference image, and 
       a second run of this program should output a final translation
       to be applied to the test image to bring it in registration with
       the reference image. This is tested for and the user is alerted.

 PROCEDURE:
	Using least squares estimation, determine the elements 
       of the general affine transformation (rotation and/or scaling
       and/or translation and/or shearing) of an image onto a reference 
       image. 

	See:	Image Processing for Scientific Applications
               Bernd J\"ahne
		CRC Press, 1997, Chapter 8.

       Use AFFINE.PRO (or ROT.PRO if no shear is found) to apply the 
       transformation to the test image after computing them with this routine.

 MODIFICATION HISTORY:
	Written: T. Berger, LMATC, 24-Feb-1998.
       Added no rotation/translation test. TEB, 2-March-98.
       10-March-1998 - S.L.Freeland - Backward compatible for IDL V<5

(See /host/bluemoon/usr2/idllib/ssw/allpro/affine_solve.pro)


AFF_DIST

[Previous Routine] [Next Routine] [List of Routines]
	PRINT,x(1),y(1)
	

(See /host/bluemoon/usr2/idllib/ssw/allpro/aff_dist.pro)


AFHREAD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AFhread
 PURPOSE:
	Subroutine of WFPCREAD to read a GEIS header from an HST STSDAS image.
 EXPLANATION:
	This procedure reads a GEIS header from an HST image.   It then looks
	if a .SHH file is present for FOC images to calculate better 
	astrometry by getting the current PSANGLV3 from this file.   Called by
	 WFPCREAD.PRO

 CALLING SEQUENCE:
	AFhread, HdrFile, hdr

 INPUTS:
	HdrFile - scalar string giving name of STSDAS header for an FOC image	

 OUTPUTS:
	hdr - string array, FITS header for the FOC image.    The position
		angle of the V3 axis of HST (PSANGLV3) is added, if it could 
		be found in the .SHH file	
 REVISION HISTORY:
	Written         Eric W. Deutsch  (U. of Washington)    June, 1994
	Documentation update   W. Landsman  (HSTX)             July, 1994

(See /host/bluemoon/usr2/idllib/ssw/allpro/afhread.pro)


AIDE

[Previous Routine] [Next Routine] [List of Routines]
 Aide en ligne des logiciels NRH1


(See /host/bluemoon/usr2/idllib/ssw/allpro/aide.pro)


AIRTOVAC

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AIRTOVAC
 PURPOSE:
	Convert air wavelengths to vacuum wavelengths 
 EXPLANATION:
	Wavelengths are corrected for the index of refraction of air under 
	standard conditions.  Wavelength values below 2000 A will not be 
	altered.  Uses the IAU standard for conversion given in Morton 
	(1991 Ap.J. Suppl. 77, 119)

 CALLING SEQUENCE:
	AIRTOVAC, WAVE

 INPUT/OUTPUT:
	WAVE - Wavelength in Angstroms, scalar or vector
		WAVE should be input as air wavelength(s), it will be
		returned as vacuum wavelength(s).  WAVE is always converted to
		double precision upon return.

 EXAMPLE:
	If the air wavelength is  W = 6056.125 (a Krypton line), then 
	AIRTOVAC, W yields an vacuum wavelength of W = 6057.8019

 METHOD:
	See Morton (Ap. J. Suppl. 77, 119) for the formula used

 REVISION HISTORY
	Written W. Landsman                November 1991

(See /host/bluemoon/usr2/idllib/ssw/allpro/airtovac.pro)


AITOFF

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AITOFF
 PURPOSE:
	Convert Right Ascension, Declination to X,Y using an AITOFF projection.
 EXPLANATION:
	This procedure can be used to create an all-sky map in Galactic 
	coordinates with an equal-area Aitoff projection.  Output map 
	coordinates are zero longitude centered.

 CALLING SEQUENCE:
	AITOFF, L, B, X, Y 

 INPUTS:
	L - longitude - scalar or vector, in degrees
	B - latitude - same number of elements as L, in degrees

 OUTPUTS:
	X - X coordinate, same number of elements as L.   X is normalized to
		be between -180 and 180
	Y - Y coordinate, same number of elements as L.  Y is normalized to
		be between -90 and 90.

 NOTES:
	See AIPS memo No. 46, page 4, for details of the algorithm.  This
	version of AITOFF assumes the projection is centered at b=0 degrees.

 REVISION HISTORY:
	Written  W.B. Landsman  STX          December 1989
	Modified for Unix:
		J. Bloch	LANL SST-9	5/16/91	1.1

(See /host/bluemoon/usr2/idllib/ssw/allpro/aitoff.pro)


AITOFF_GRID

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AITOFF_GRID

 PURPOSE:
	Produce an overlay of latitude and longitude lines over a plot or image
 EXPLANATION:
	The grid is plotted on the current graphics device. AITOFF_GRID 
	assumes that the ouput plot coordinates span the x-range of 
	-180 to 180 and the y-range goes from -90 to 90.

 CALLING SEQUENCE:

	AITOFF_GRID[,DLONG,DLAT,[LINESTYLE=N,/LABELS]

 INPUTS:

	DLONG	= Optional input longitude line spacing in degrees. If left
		  out, defaults to 30.
       DLAT    = Optional input lattitude line spacing in degrees. If left
                 out, defaults to 30.

 OPTIONAL INPUT KEYWORDS:

	LINESTYLE	= Optional input integer specifying the linestyle to
			  use for drawing the grid lines.
	LABELS		= Optional keyword specifying that the latitude and
			  longitude lines on the prime meridian and the
			  equator should be labeled in degrees. If LABELS is
			  given a value of 2, i.e. LABELS=2, then the longitude
			  labels will be in hours and minutes instead of
			  degrees.

 OUTPUTS:
	Draws grid lines on current graphics device.

 CATAGORY:
	SST-9 Graphics routine.

 AUTHOR AND MODIFICATIONS:

	J. Bloch	1.2	6/2/91

(See /host/bluemoon/usr2/idllib/ssw/allpro/aitoff_grid.pro)


ALIGN_CUBE_CORREL

[Previous Routine] [Next Routine] [List of Routines]
   Name: align_cube_correl

   Purpose: align a data cube via cross correlation; update coordinates

   Input Parameters:
      index - the header structures   ; SSW standards w/pointing fields
      data  - the data cube       

   Calling Sequence:
        align_cube_correl, index, incube, outindex, outcube ; header & cube 
   -OR- align_cube_correl, incube, outcube                  ; just cube?
   -OR- align_cube_correl, inoutcube                        ; just cube?
     
   History:
      15-October-1998 - S.L.Freeland
      Distillation based on review of SSW correlation/alignment SW  by:
         G.L.Slater  (SXT..)     get_off, cube-align, translate
         J.P.Wuelser (SXT/MEES)  korrel, poly_movie
         T.Tarbell   (TRACE)     tr_get_disp

      Proto type - When called with 'index' structures, will
      adjust the 'pointing' standard tags to reflect alignement and
      return in 'outindex'
   
   Side Effects:
      Called with one paramater, (input cube), the input is overwritten
      by the aligned version (memory conservation, for example)

   Method: 
      call get_correl_offsets to get the cross correlation offsets for cube
      call image_translate to align the cube (via poly2d method)

   Category:
      2D , 3D, Image, Alignment, Cross Correlation      

   Restrictions:
      update of coordinates not yet implemented

(See /host/bluemoon/usr2/idllib/ssw/allpro/align_cube_correl.pro)


ALL_VALS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ALL_VALS
 PURPOSE:
       Find and sort unique values in an array
 CATEGORY:
 CALLING SEQUENCE:
       out = all_vals(in)
 INPUTS:
	in	any array
 OPTIONAL INPUT PARAMETERS:
 KEYWORD PARAMETERS:
 OUTPUTS:
	out	sorted array of unique values
 OPTIONAL OUTPUT PARAMETERS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
       RDB     Sep-98  Written, modelled on old library routine

(See /host/bluemoon/usr2/idllib/ssw/allpro/all_vals.pro)


ALPHAGEN

[Previous Routine] [Next Routine] [List of Routines]
   Name: alphagen

   Purpose: return array ['A', 'B', 'C'...] (sindgen with alpha)

   Calling Sequence: 
      alpha=alphagen(10 [,/lower])

(See /host/bluemoon/usr2/idllib/ssw/allpro/alphagen.pro)


ALPHA_PAGE

[Previous Routine] [Next Routine] [List of Routines]
 PROJECT:
       SDAC
 	
 NAME:
	ALPHA_PAGE

 PURPOSE:
 	This procedure switches to alpha from graphics page under Tektronix.

 CATEGORY:
	GRAPHICS

 CALLING SEQUENCE:
	ALPHA_PAGE

 INPUTS:
	None

 OUTPUTS:
	None

 SIDE EFFECTS:
	Issues a carriage return if called.

 RESTRICTIONS:

 PROCEDURE:
	A command string (string(24b)) is issued through print to switch the terminal

 COMMON BLOCKS:
	None.

 MODIFICATION HISTORY:
 	Written by:	AKT
	Version 2:	RAS, 23-Mar-1995, only called for Tektronix
	Version 3, richard.schwartz@gsfc.nasa.gov, 7-sep-1997, more documentation

(See /host/bluemoon/usr2/idllib/ssw/allpro/alpha_page.pro)


AMEDIAN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	AMEDIAN
 PURPOSE:
	Works the same as MEDIAN, but the effect tapers off at the edges.
 CALLING SEQUENCE:
	Result = AMEDIAN( ARRAY, WIDTH )
 INPUT PARAMETERS:
	ARRAY	= One or two-dimensional array to be median filtered.
	WIDTH	= Width of the median filter box.
 OPTIONAL KEYWORD PARAMETERS:
	None.
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
	None.
 RESTRICTIONS:
	ARRAY must be one or two-dimensional.
 PROCEDURE:
	A larger array is constructed with the border filled with the reflected
	edges of the original array.  Then MEDIAN is applied to this larger
	array, and the area corresponding to the original array is returned as
	the result of the function.
 MODIFICATION HISTORY:
	William Thompson, February 1993.

(See /host/bluemoon/usr2/idllib/ssw/allpro/amedian.pro)


AMOEBA_C

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	AMOEBA_C

 Purpose     :	Reiteratively fits an arbitrary function

 Explanation :	Fits an arbitrary function to a series of data points via a
		least-squares reiterative technique.

		The procedure used is taken from Numerical Recipes.

 Use         :	AMOEBA_C, X, Y, FNAME, PARAM

 Inputs      :	X	= Positions.
		Y	= Data values.
		FNAME	= Name of function to be fitted (string variable).
		PARAM	= Parameters of fit.  Passed as first guess.  Returned
			  as fitted values.

 Opt. Inputs :	None.

 Outputs     :	PARAM	= Parameters of fit.  See note above.

 Opt. Outputs:	None.

 Keywords    :	
	ACCURACY = Accuracy to cut off at.  Defaults to 1E-5.
	MAX_ITER = Maximum number of reiterations.  Defaults to 20.
	POISSON	 = If set, then a Poisson error distribution is assumed, and
		   the weights are set accordingly to 1/Y.
	ERROR	 = Array of errors.  The weights are set accordingly to
		   1/ERROR^2 (normal distribution).  Overrides POISSON.
	LAMBDA	 = Initial step sizes for PARAM, or if scalar then fraction of
		   PARAM.  Defaults to 1E-2.  When passed as an array, this
		   parameter can be used to hold parameters constant by setting
		   LAMBDA(I)=0 for those parameters.
	NOPRINT	 = If set, then no printout is generated.
	CHISQR	 = Returned value of chi-squared.  Only relevant if ERROR
		   passed explicitly.
	N_ITER	 = Number of iterations used.
	ABSOLUTE = If set, then the sum of the absolute differences is
		   minimized instead of the sum of the squares.  This is
		   equivalent to assuming a double-sided exponential
		   distribution.
	LORENTZ	 = If set, then a Lorentz distribution is used instead of a