Extended IDL Help

This page was created by the IDL library routine mk_html_help. For more information on this routine, refer to the IDL Online Help Navigator or type:

     ? mk_html_help

at the IDL command line prompt.

Last modified: Wed Mar 31 06:40:53 1999.


List of Routines


Routine Descriptions

ABBRV_FILPOL

[Next Routine] [List of Routines]
 NAME:
	ABBRV_FILPOL

 PURPOSE:
	This function returns an abbreviated code for the filter
	and polarizer/sector wheels.

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	Result = ABBRV_FILPOL(Filter)

 INPUTS:
	Filter = String giving the filter or polarizer/sector value

 OPTIONAL INPUTS:
	None

 OUTPUTS:
	The function result is a string containing the code for the filter
	wheel or the polarizer wheel.  Each wheel posisiton is a two
	character string.

 PROCEDURE:
	The wheel position is decoded and converted to a 2 character string.

 EXAMPLE:

 MODIFICATION HISTORY:
	Written, RA Howard, NRL, 7 October 1996
	15 Oct 96	RAH	Added removing whitespace from filter
				Corrected filter/polarizer/sector cases

       @(#)abbrv_filpol.pro	1.3 10/15/96     LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/abbrv_filpol.pro)


ADD_LASCO_LOGO

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

 PURPOSE:
	This function inserts the LASCO logo into the corner of an image

 CATEGORY:
	LASCO_SYNOPTIC

 CALLING SEQUENCE:
	Result = ADD_LASCO_LOGO(Img)

 INPUTS:
	Img:	Input image

 OUTPUTS:
	Result:	Output image with same type and dimenstion as input
	
 COMMON:
	ADD_LASCO_LOGO_COMMON, w_logo
	Temporary storage for the logo
	
 PROCEDURE:
	Checks to see if the logo array has been read in, and restores it
	if not.  Then inserts the logo into the lower, right hand corner.

 MODIFICATION HISTORY:
 	Written by:	Scott Paswaters, NRL, Dec 1997

	@(#)add_lasco_logo.pro	1.2 03/03/98 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/add_lasco_logo.pro)


AWIN

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

 PURPOSE:
	This procedure opens a window of the same size as the input array

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	AWIN, Arr

 INPUTS:
	Arr:	A two dimensional array of any type

 OUTPUTS:
	None

 SIDE EFFECTS:
	A blank window is displayed.

 EXAMPLE:
	Open a window of the same size as an arbitrary image array

		AWIN, image

 MODIFICATION HISTORY:
 	Written by:	SE Paswaters, NRL, June 1996

	@(#)awin.pro	1.2 05/14/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/awin.pro)


BROWSE_DISP

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

 PURPOSE:
	This procedure displays an image of an input string of hex values.

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	BROWSE_DISP, Img_str

 INPUTS:
	Img_str:	A string array of image intensities

 OPTIONAL INPUTS:
	Img_name:	The name of the image

 OUTPUTS:
	None

 PROCEDURE:
	This pro displays an image. It requires an input string of hex values
	that is, normally, result of a sybase query for a browse image. Note
	that a browse image is stored in sybase and retured by a query as a
	string of hex values. To display it, we must change it to its original
	byte array format, save it to a file, and use "read_jpeg" and "tvscl"
	to display it. It also accepts a second (optional) input string that
	will be displayed, as is, in the lower left corner of the display. It
	can be used to display such information as name, date, etc., about the 
	image.

 MODIFICATION HISTORY:
 	Written by:	Ed Esfandiari  Feb 1996

	@(#)browse_disp.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/browse_disp.pro)


BUILD_LASCO_HELP

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - LASCO/EIT
                   
 Name        : BUILD_LASCO_HELP
               
 Purpose     : Create html help files for all LASCO IDL library routines.
               
 Use         : BUILD_LASCO_HELP
    
 Inputs      : None.
               
 Outputs     : None.
               
 Keywords    : None.

 Restrictions: Must have write permission to $NRL_LIB/lasco directories.
               
 Side effects: Creates files in the subdirectories of $NRL_LIB/lasco of the form:
  		help_subdir.html.  Ex. help_data_anal.html
               
 Category    : Help.
               
 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, Mar. 1996.
               
 Modified    : RAH, NRL, 3/31/99.  Added inout and expfac directories

 Version     : 

 @(#)build_lasco_help.pro	1.5 03/31/99 :LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/build_lasco_help.pro)


CAT_PHASER

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

 PURPOSE:
	This procedure displays 64x64 fits images on phaser for cataloging

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	CAT_PHASER, Fname

 INPUTS:
	Fname:	root name of the fits images to search for
		eg:  fname = 'c1' will search for all files whose
			file names begin with c1: c1*.fts

 OUTPUTS:
	An IDL plot file is generated.

 PROCEDURE:
	A 512 x 512 plotting area is established, and a series of 64 x 64 
	images are displayed.

 EXAMPLE:
	To display the series of 

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 12 Jan 1996

	@(#)cat_phaser.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/cat_phaser.pro)


CDS2JD

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS     
                   
 Name        : CDS2JD()
               
 Purpose     : Converts any CDS time format to full Julian day.
               
 Explanation : Converts any CDS time format to the equivalent Julian
               day value.  Returns result in a structure with the
               tags int (long) and frac (double).
               
 Use         : IDL>  jd = cds2jd(any_format)
    
 Inputs      : any_format - date/time in any of the acceptable CDS 
                            time formats -- for acceptable formats see file 
                            aaareadme.txt.
               
 Opt. Inputs : None
               
 Outputs     : Function returns JD in a structure {int:0L,frac:0.0d0}.
               
 Opt. Outputs: None
               
 Keywords    : ERRMSG  =  If defined and passed, then any error messages will
                          be returned to the user in this parameter rather 
                          than being printed to the screen.  If no errors are
                          encountered, then a null string is returned.  In 
                          order to use this feature, the string ERRMSG must 
                          be defined first, e.g.,

                             ERRMSG = ''
                             JD = CDS2JD ( DT, ERRMSG=ERRMSG, ...)
                             IF ERRMSG NE '' THEN ...

 Calls       : ANYTIM2UTC, INT2UTC, JULDAY

 Common      : None
               
 Restrictions: None
               
 Side effects: None
               
 Category    : Util, time
               
 Prev. Hist. : None

 Written     : C D Pike, RAL, 16-May-94
               
 Modified    :	Version 1, C D Pike, RAL, 16-May-94
		Version 2, William Thompson, GSFC, 14 November 1994
			Changed .DAY to .MJD
		Version 3, Donald G. Luttermoser, GSFC/ARC, 20 December 1994
			Added the keyword ERRMSG.  Included ON_ERROR flag.
		Version 4, Donald G. Luttermoser, GSFC/ARC, 30 January 1995
			Added ERRMSG keyword to internally called procedured.
			Made error handling routine more robust.
		Version 5, Donald G. Luttermoser, GSFC/ARC, 13 February 1995
			Allowed for input to be either scalar or vector.

 Version     :	Version 5, 13 Februaryy 1995

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/cds2jd.pro)


CHECK_PRO_NAMES

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

 PURPOSE:
	This procedure checks for duplicate procedure names in $NRL_LIB

 CATEGORY:
	LASCO UTIL

 CALLING SEQUENCE:
	CHECK_PRO_NAMES

 INPUTS:
	None
	
 KEYWORD PARAMETERS:
	LASCO:	Set this keyword to only print duplicates if they also occur
		underneath the lasco directory.

 OUTPUTS:
	This procedure writes the results to a file 'duplicate_pros.txt' in
	the users home directory.

 PROCEDURE:
	All files with pro in their name are found using the find commadn
	Then only files ending in .pro and which are not in teh SCCS directory
	are saved.  Duplicate file names are then located using the where 
	function.

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 7 March 1997

	@(#)check_pro_names.pro	1.1 09/26/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/check_pro_names.pro)


CW_BSELECTOR

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

 PURPOSE:
	CW_BSELECTOR is a compound widget that appears as a pull-down
	menu whose label shows the widget's current value. When the button
	is pressed, the menu appears and the newly selected value becomes
	the new title of the pull-down menu.

 CATEGORY:
	Compound widgets.

 CALLING SEQUENCE:
		widget = CW_BSELECTOR(Parent, Names)

	To get or set the value of a CW_BSELECTOR, use the GET_VALUE and
	SET_VALUE keywords to WIDGET_CONTROL. The value of a CW_BSELECTOR
	is the index of the selected item.

 INPUTS:
       Parent:		The ID of the parent widget.
	Names:		A string array, containing one string per button,
			giving the name of each button.

 KEYWORD PARAMETERS:
	EVENT_FUNCT:	The name of an optional user-supplied event function 
			for buttons. This function is called with the return
			value structure whenever a button is pressed, and 
			follows the conventions for user-written event
			functions.
	FONT:		The name of the font to be used for the button
			titles. If this keyword is not specified, the default
			font is used.
	FRAME:		Specifies the width of the frame to be drawn around
			the base.
	IDS:		A named variable into which the button IDs will be
			stored, as a longword vector.
	LABEL_LEFT:	Creates a text label to the left of the buttons.
	LABEL_TOP:	Creates a text label above the buttons.
	MAP:		If set, the base will be mapped when the widget
			is realized (the default).
	RETURN_ID:	If set, the VALUE field of returned events will be
			the widget ID of the button.
	RETURN_INDEX:	If set, the VALUE field of returned events will be
			the zero-based index of the button within the base.
			THIS IS THE DEFAULT.
	RETURN_NAME:	If set, the VALUE field of returned events will be
			the name of the button within the base.
	RETURN_UVALUE:	An array of user values to be associated with
			each button. Selecting the button sets the uvalue
			of the CW_BSELECTOR to the button's uvalue and
			returns the uvalue in the value field of the event
			structure.  If this keyword isn't specified, the
			CW_BSELECTOR's uvalue remains unchanged.
	SET_VALUE:	The initial value of the buttons. This keyword is 
			set to the index of the Names array element desired.
			So if it is desired that the initial value be the 
			second element of the Names array, SET_VALUE would
			be set equal to 1. This is equivalent to the later 
			statement:

			WIDGET_CONTROL, widget, set_value=value

	UVALUE:		The user value to be associated with the widget.
	XOFFSET:	The X offset of the widget relative to its parent.
	YOFFSET:	The Y offset of the widget relative to its parent.

 OUTPUTS:
       The ID of the created widget is returned.

 SIDE EFFECTS:
	This widget generates event structures with the following definition:

		event = { ID:0L, TOP:0L, HANDLER:0L, INDEX:0, VALUE:0 }

	The INDEX field is the index (0 based) of the menu choice. VALUE is
	either the INDEX, ID, NAME, or BUTTON_UVALUE of the button,
	depending on how the widget was created.

 RESTRICTIONS:
	Only buttons with textual names are handled by this widget.
	Bitmaps are not understood.

 MODIFICATION HISTORY:
	1 April 1993, DMS,  Adapted from CW_BGROUP.
	22 Dec. 1993, KDB,  Corrected documentation for keyword SET_VALUE.
	11 Aug. 1994, Scott Paswaters (NRL)
          1) Added MENU=2 to differentiate a pd menu from a button under Motif.
          2) Modified the CW_BSELECTOR_SETV procedure to allow changing the labels
             of the buttons.  Example if you had a pd menu with two buttons 'b1' & 'b2':
               WIDGET_CONTROL, cw_bselector_base, SET_VALUE=['b3','b4']	;** change labels
               WIDGET_CONTROL, cw_bselector_base, SET_VALUE=0			;** to select 'b3'

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/cw_bselector2.pro)


FIND_CLOSEST

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

 PURPOSE:
	This function finds the subscript of an array that is closest to
	a given number.

 CATEGORY:
	LASCO UTIL

 CALLING SEQUENCE:
	Result = FIND_CLOSEST (Num, Arr)

 INPUTS:
	Num:	Number for which the array will be searched
	Arr:	An array of points in ascending order

 KEYWORD PARAMETERS:
	LESS:	Returns the closest subscript for arr that is less than or 
		equal to num Otherwise the subscript of the point closest 
		to num is returned.  Notice that the value of arr might be 
		greater than num.

 OUTPUTS:
	This function returns the subscript of an array closest to the given
	number.

 RESTRICTIONS:
	The input array should be in ascending order.

 MODIFICATION HISTORY:
 	Written by:	Scott Passwaters, NRL, Feb, 1997
	24 Sep 1998, N Rich	changed /LESS keyword to include equal-to

	@(#)find_closest.pro	1.2 07/18/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/find_closest.pro)


FIND_CLOSEST_ARR

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

 PURPOSE:
	This routine matches up elements of two arrays, returning the subscripts 
	of the array that are closest to the elements from the other array.

 CATEGORY:
	LASCO UTIL

 CALLING SEQUENCE:
	FIND_CLOSEST, arr1, arr2, ind1, ind2 [, /LESS]

 INPUTS:
	arr1:	The first array of numbers
	arr2:	The second array of numbers (doesn't have to have same elements as first)

 OUTPUTS:
	ind1:	index into arr1 that corresponds to arr2
	ind2:	index into arr1 that corresponds to arr2

 KEYWORD PARAMETERS:
	LESS:	Returns the closest subscript for arr that is less than num
		Otherwise the subscript of the point closest to num is
		returned.  Notice that the value of arr might be greater than 
		num.

 RESTRICTIONS:
	The input arrays should be in ascending order.

 MODIFICATION HISTORY:
 	Written by:	Scott Paswaters, NRL, Dec, 1997

       @(#)find_closest_arr.pro    1.0 12/17/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/find_closest_arr.pro)


FIXWRAP

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


 PURPOSE:
       This function removes the overflow values of an image


 CATEGORY:
  


 CALLING SEQUENCE:
       out = FIXWRAP(in)

 
 INPUTS:
       in = image with overflows


 OPTIONAL INPUTS:
      NONE

	
 KEYWORD PARAMETERS:
      NONE


 OUTPUTS:
      out = a long image with overflows removed


 OPTIONAL OUTPUTS:
      NONE

 COMMON BLOCKS:
      NONE

 SIDE EFFECTS:
      The output image is LONG type

 RESTRICTIONS:
      NONE

 PROCEDURE:


 EXAMPLE:
      in = LASCO_READFITS(file, h)
      out = FIXWRAP(in)

 MODIFICATION HISTORY:
      Written by:         A. Vourlidas, NRL, 9/30/97

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/fixwrap.pro)


IMG2DNPERSEC

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

 PURPOSE:
	Convert an image in raw counts (DN) to DN/sec

 CATEGORY:
	DATA_ANAL

 CALLING SEQUENCE:
	Result = IMG2DNPERSEC(Img,Header)

 INPUTS:
	Img = Input Image array.
	Header = Image header

 OUTPUTS:
	The function returns an image converted to DN/second.  The type will be 
	double precision.

 PROCEDURE:
	The corrected exposure time is determined and then it and the offset bias
	are applied to the image as:
		output = (input-bias)/exposure
	Note that EXP_CORR will return the old exposure time and the current offset 
	bias, if the correction factor is not found.

	Calls:
		EXP_CORR

 MODIFICATION HISTORY:
	Written, RA Howard, NRL, 25 November 1997
	Modified:
		20 Feb 98	RAH	Added exposure factor correction

       @(#)img2dnpersec.pro	1.2 02/15/98     LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/img2dnpersec.pro)


KDATE

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

 PURPOSE:
	This procedure converts a k index (modified julian date) into the
	day, month and year

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	KDATE,K,Id,Im,Iy

 INPUTS:
	K:	The k-index (modified julian date)

 OUTPUTS:
	Id:	The date of month
	Im:	The number of the month (1..12)
	Iy:	The year

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 1975

	@(#)kdate.pro	1.2 10/17/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/kdate.pro)


KDAY

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

 PURPOSE:
	This procedure converts a calendar date to the corresponding serial
	day number.  

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	KDAY,Id,Im,Iy,K

 INPUTS:
	Id:	The day of month (1..31)
	Im:	The number of month (1..12)
	Iy:	The year, either as a two or four digit number

 OUTPUTS:
	K:	The serial day number.  To obtain the Julian Day number (valid 
		at noon), add 2415079

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 1975.

	@(#)kday.pro	1.3 05/09/98 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/kday.pro)


LASER8[1]

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

PURPOSE:
	This procedure generates a "nice" layout for printing images
	using an interactive menu system.

CATEGORY:
	UTIL

CALLING SEQUENCE:
	LASER8

INPUTS:
	None

OUTPUTS:
	None, File written to disk

AUTHOR:
	Eric T. Swanson, NRL Summer Student, Aug, 1991

	@(#)laser8.pro	1.2 05/14/97 LASCO IDL LIBRARY

+
NAME:
	LASER8

PURPOSE:
	This procedure generates a "nice" layout for printing images
	using an interactive menu system.

CATEGORY:
	UTIL

CALLING SEQUENCE:
	LASER8

INPUTS:
	None

OUTPUTS:
	None, File written to disk

AUTHOR:
	Eric T. Swanson, NRL Summer Student, Aug, 1991

	@(#)laser8.pro	1.2 05/14/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/laser8.pro)


LASER8[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:		CONGRID
 PURPOSE:	Simulate the action of the VAX/VMS CONGRID/CONGRIDI function.
		Shrink or expand the size of an image.
 CATEGORY:	Image processing.
 CALLING SEQUENCE:
	Result = CONGRID(Image, Xs, Ys [, Interp = Interp])
 INPUTS:
	Image = 2D array to resample.
	Xs = desired number of columns for result.
	Ys = number of rows for result.
 KEYWORD PARAMETERS:
	Interp = keyword which if set causes bilinear interpolation to be
		used.  Otherwise nearest neighbor method is used.
 OUTPUTS:
	Result = Image of same type as input, of size (Xs, Ys).
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
	None.
 RESTRICTIONS:
	Doesn't completely emulate the VAX/VMS CONGRID.  The case 
	of a rectangular grid is not implemented.  This can be done 
	using multiple calls to POLY_2D.
 PROCEDURE:
	Simple call POLY_2D with the warping coefficients.
 MODIFICATION HISTORY:
	DMS, Sept. 1988.

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/laser8.pro)


LEG_DISP

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

 PURPOSE:
	This procedure computes the leg actuator motions required for the
	pointing of LASCO.  

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	LEG_DISP,Theta,Phi

 INPUTS:
	Theta:	Desired motion in pitch (in arc sec)
	Phi:	Desired motion in yaw (in arc sec)

 OUTPUTS:
	The number of steps is printed on the display.

 RESTRICTIONS:
	Assumes starting at center positions

 EXAMPLE:
	To obtain the number of steps to move the two legs 4 arc min in pitch
	and 2 arc min in yaw:

		LEG_DISP,240.,120.

 MODIFICATION HISTORY:
 	Written by:	S.Plunkett, DSR, 1994

	@(#)leg_disp.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/leg_disp.pro)


M1ANGLE

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

 PURPOSE:
	Compute the angular offset of the M1 mirror from LVDT values.

 CATEGORY:
	LASCO-UTIL

 CALLING SEQUENCE:
	Result = M1ANGLE (LVDT)

 INPUTS:
	LVDT:	A three element array giving the values of the LVDT
		for the P1, P2 and P3 piezo electric stacks.
		The LVDT values are obtained by running the LP to
		for the M1 measurement unit.

 OPTIONAL INPUTS:
	None
	
 KEYWORD PARAMETERS:
	None

 OUTPUTS:
	This function returns a 2 element array giving the pointing angles
	in the X and Y directions.  The values returned are in units of
	arc seconds in the M1 coordinate system.

 OPTIONAL OUTPUTS:
	None

 COMMON BLOCKS:
	None

 SIDE EFFECTS:
	None

 RESTRICTIONS:
	None

 PROCEDURE:
	The equations provided by Kaiser-Trede have been implemented.

 EXAMPLE:
	To find the offset associated with the LVDT values (547, 603, 767):

	Result = M1ANGLE ([547,603,767])

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 1993

	@(#)m1angle.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1angle.pro)


M1COEFF

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

 PURPOSE:
	This routine returns coefficients needed for computing the M1 pointing.
	It is used by other routines.

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	M1COEFF,B,C,F,K7,K8,K9

 INPUTS:
	None

 OUTPUTS:
	B,C,F,K7,K8,K9:	The coefficients for the M1 mirror pointing

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 1994

	@(#)m1coeff.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1coeff.pro)


M1DACS

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

 PURPOSE:
	This function returns a 3 word array of the P1, P2 and P3 DAC values
	to command the M1 mirror to a given offset.

 CATEGORY:
	LASCO-UTIL

 CALLING SEQUENCE:
	Result = M1DACS ( Alphax, Alphay)

 INPUTS:
	Alphax:	The pointing angle in the x direction in the M1 coordinate 
		system.  The value is in arc seconds.
	Alphay:	The pointing angle in the y direction in the M1 coordinate 
		system.  The value is in arc seconds.

 OPTIONAL INPUTS:
	None
	
 KEYWORD PARAMETERS:
	None

 OUTPUTS:
	This function returns a three word array containing the values
	of the P1, P2 and P3 DACS necessary to move to the input offset
	angles.

 OPTIONAL OUTPUTS:
	None

 COMMON BLOCKS:
	None

 SIDE EFFECTS:
	None

 RESTRICTIONS:
	None

 PROCEDURE:
	The equations provided by Kaiser-Trede have been implemented.
	The input values are relative to the "active zero" point.

 EXAMPLE:
	To move to a point that is located at (+10.2, -5.7) arc seconds

	     Result = M1DACS (10.2,-5.7)

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 1993
	Version 2	RAH 26 May 1996	Deleted the various models.

	@(#)m1dacs.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1dacs.pro)


M1DYNIMG

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

 PURPOSE:
	Returns a 4 word array of the constants for dynamic imaging.

 CATEGORY:
	LASCO-UTIL

 CALLING SEQUENCE:
	Result = M1DYNIMG (Alhpax, Alphay)

 INPUTS:
	Alphax:	The angle (in arc sec) to move the M1 in the X direction.
	Alphay:	The angle (in arc sec) to move the M1 in the Y direction.

 OPTIONAL INPUTS:
	None
	
 KEYWORD PARAMETERS:
	None

 OUTPUTS:
	This function returns a 4 word array containing the constants
	A, B, C and D that are used by the LEB to compute the DAC values
	in the dynamic imaging LP.

 OPTIONAL OUTPUTS:
	None

 COMMON BLOCKS:
	None

 SIDE EFFECTS:
	None

 RESTRICTIONS:
	None

 PROCEDURE:
	The equations provided by Kaiser-Trede have been implemented.

 EXAMPLE:
	Normally, dynamic imaging will move the M1 by 0.5 pixel steps
	To find the coefficients to move in 0.5 pixel steps:

	Result = M1DYNIMG ( 0.5*5.6, 0.5*5.6 )

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 1993

	@(#)m1dynimg.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1dynimg.pro)


M1REVERSE

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

 PURPOSE:
	This function reverses the bits of the m1 lvdt reading.

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	M1REVERSE,Dd

 INPUTS:
	Dd:	Then DN value from the M1 LVDT

 OUTPUTS:
	This function returns the value of the M1 LVDT reading after bit
	reversal.

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 1994

	@(#)m1reverse.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1reverse.pro)


M1TEES

[Previous Routine] [Next Routine] [List of Routines]
   alphax and alphay are the pointing angles in arc seconds 

   returns a 3 word array of the P1, P2 and P3 DAC values

	@(#)m1tees.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1tees.pro)


M1WOBBLE

[Previous Routine] [Next Routine] [List of Routines]
   computes the m1 wobble parameters, A, B, C, D

	@(#)m1wobble.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/m1wobble.pro)


MK_HTML_HELP

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

 PURPOSE:
	Given a list of IDL procedure files (.PRO), VMS text library 
       files (.TLB), or directories that contain such files, this procedure 
       generates a file in the HTML format that contains the documentation 
       for those routines that contain a DOC_LIBRARY style documentation 
       template.  The output file is compatible with World Wide Web browsers.

 CATEGORY:
	Help, documentation.

 CALLING SEQUENCE:
	MK_HTML_HELP, Sources, Outfile

 INPUTS:
     Sources:  A string or string array containing the name(s) of the
		.pro or .tlb files (or the names of directories containing 
               such files) for which help is desired.  If a source file is 
               a VMS text library, it must include the .TLB file extension.  
               If a source file is an IDL procedure, it must include the .PRO
               file extension.  All other source files are assumed to be
               directories.
     Outfile:	The name of the output file which will be generated.

 KEYWORDS:
     TITLE:	If present, a string which supplies the name that
		should appear as the Document Title for the help.
     VERBOSE:	Normally, MK_HTML_HELP does its work silently.
		Setting this keyword to a non-zero value causes the procedure
		to issue informational messages that indicate what it
		is currently doing. !QUIET must be 0 for these messages
               to appear.
     STRICT:   If this keyword is set to a non-zero value, MK_HTML_HELP will 
               adhere strictly to the HTML format by scanning the 
               the document headers for characters that are reserved in 
               HTML (<,>,&,").  These are then converted to the appropriate 
               HTML syntax in the output file. By default, this keyword
               is set to zero (to allow for faster processing).

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	A help file with the name given by the Outfile argument is
	created.

 RESTRICTIONS:
	The following rules must be followed in formatting the .pro
	files that are to be searched.
		(a) The first line of the documentation block contains
		    only the characters ";+", starting in column 1.
               (b) There must be a line which contains the string "NAME:",
                   which is immediately followed by a line containing the
                   name of the procedure or function being described in
                   that documentation block.  If this NAME field is not
                   present, the name of the source file will be used.
		(c) The last line of the documentation block contains
		    only the characters ";-", starting in column 1.
		(d) Every other line in the documentation block contains
		    a ";" in column 1.

       Note that a single .pro file can contain multiple procedures and/or
       functions, each with their own documentation blocks. If it is desired
       to have "invisible" routines in a file, i.e. routines which are only
       for internal use and should not appear in the help file, simply leave
       out the ";+" and ";-" lines in the documentation block for those
       routines.

	No reformatting of the documentation is done.

 MODIFICATION HISTORY:
       July 5, 1995, DD, RSI. Original version.
       July 13, 1995, Mark Rivers, University of Chicago. Added support for
               multiple source directories and multiple documentation
               headers per .pro file.
       July 17, 1995, DD, RSI. Added code to alphabetize the subjects;
               At the end of each description block in the HTML file,
               added a reference to the source .pro file.
       July 18, 1995, DD, RSI. Added STRICT keyword to handle angle brackets.
       July 19, 1995, DD, RSI. Updated STRICT to handle & and ".
               Changed calling sequence to accept .pro filenames, .tlb
               text librarie names, and/or directory names.
               Added code to set default subject to name of file if NAME
               field is not present in the doc header.
       Mar  14, 1996, SEP, NRL-LASCO, Made "See" a hypertext link to file.
		Fix to handle case of no valid headers.

	@(#)mk_html_help.pro	1.2 10/11/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/lasco_mk_html_help.pro)


ONE2TWO

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ONE2TWO
 PURPOSE:
       Convert from 1-d indices to 2-d indices.
 CATEGORY:
 CALLING SEQUENCE:
       one2two, in, arr, ix, iy
 INPUTS:
       in = 1-d indices (may be a scalar).  in
       arr = array to use (for size only).  in
         Alternatively, arr can be [nx, ny]
         where nx and ny are the image sizes
         in x and y (saves space).
 KEYWORD PARAMETERS:
 OUTPUTS:
       ix, iy = equivalent 2-d indices.     out
 COMMON BLOCKS:
 NOTES:
 MODIFICATION HISTORY:
       R. Sterner, 25 May, 1986.
       Johns Hopkins Applied Physics Lab.
       R. Sterner, 19 Nov, 1989 --- converted to SUN.
       R. Sterner, 9 Jun, 1993 --- Allowed [nx,ny] instead of ARR.

 Copyright (C) 1986, Johns Hopkins University/Applied Physics Laboratory
 This software may be used, copied, or redistributed as long as it is not
 sold and this copyright notice is reproduced on each copy made.  This
 routine is provided as is without any express or implied warranties
 whatsoever.  Other limitations apply as described in the file disclaimer.txt.

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/one2two.pro)


PS_SETUP

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

 PURPOSE:		setup Postscript printer

 CATEGORY:
 CALLING SEQUENCE:	ps_setup,param,printer
 INPUTS:		param = 0 to change the idl plot device to the printer
			param =	1 to return the plot device back to the screen
				  and to transfer the plot file to the printer
 			param = 2 to read current window and send to Postscript
		  		  This may be faster for plots with lots of 
				  points.  This is a screen dump, if you 
				  suddenly decide a plot is worth printing.

 			param = 3 Save to a file

 			param = 4 Same as 2 but color table is inverted first

 OPTIONAL INPUTS:	printer = ascii string designating the printer to be
				  used
			color_prt = specify color postscript printer

			encap = output encapsulated Postscript

                       gif = output gif image (only for ps_setup,2)


 OUTPUTS:
 OPTIONAL OUTPUT PARAMETERS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
		  Example:
		    ps_setup,0
		    plot,x
		    plot,y
		    ps_setup,1,'A13'
		  Example:
		    ps_setup,0,/color_prt
		    tvscl,img
		    ps_setup,1,'lasco_phaser'
		  Example:
		    plot,huge_array
		    ps_setup,2

 MODIFICATION HISTORY:
	WRITTEN BY:	RA Howard, NRL, 1990
 
	@(#)ps_setup.pro	1.9 10/27/98 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/ps_setup.pro)


SHARPEN

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

 PURPOSE:
	Sharpens a ratio image by adding in a small amount of an edge enhanced image

 CATEGORY:
	LASCO UTIL

 CALLING SEQUENCE:
	Result = SHARPEN(Img,Bkg,factor)

 INPUTS:
	Img:	Input image in DN/sec
	Bkg:	Background image in DN/sec
	Factor:	Factor of edge enhanced image to add to original image, Default is .015

 KEYWORD PARAMETERS:
	PF:	Point filter factor, default is 4
	BOX_SIZE:	Size of box to use in unsharp mask.  Default is 11 points

 OUTPUTS:
	This function returns the edge enhance ratio image as a real number.

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:
	The procedure to enhance an image adds a little edge enhancement to the original image.

	First the image (in DN/sec) is point filtered to remove the stars and cosmic rays.

	Then the unsharp mask image is formed with the original image and the background
	image.  The edge enhanced image is the difference between the unsharp mask of
	the original image and the background image.  The difference is performed to remove
	any artifacts such as stray light arcs that are in both the original and background images.

	The ratio image is computed and the missing blocks are set to 1.0.

	The edge enhanced image is computed as:
		(Img/Bkg) + factor*edge_enhanced_image 

 EXAMPLE:

 MODIFICATION HISTORY:
 	Written by:	RAH, 20 Apr 98

	%W% %H% LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/sharpen.pro)


STR_SEP2

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

 PURPOSE:
	This function breaks up a string into words that are separated by
	either spaces or tabs.

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	Result = STR_SEP2(Str)

 INPUTS:
	Str:	String to be processed

 OUTPUTS:
	The function result is a string array with each word in each element
	of the array.

 MODIFICATION HISTORY:
 	Written by:	

	@(#)str_sep2.pro	1.1 10/05/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/str_sep2.pro)


STR_UNIQUE

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

 PURPOSE:
	Returns an array which is the unique elements of the input string

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	Result = STR_UNIQUE(Str)

 INPUTS:
	Str:	A string array

 OUTPUTS:
	This function returns a string array containing the unique elements
	of the input array

 RESTRICTIONS:
	The input string must be a singly dimensioned array

 PROCEDURE:
	

 EXAMPLE:
	Suppose you have a string array, s, that contains, ['A','A','a','B','B','A']

	To create an array of the unique elements of the array s:

		unique= STR_UNIQUE(s)

	The output array, unique will contain ['A','a','B']

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 7/30/97

	@(#)str_unique.pro	1.2 11/20/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/str_unique.pro)


SUMMARY_PLOT

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

 PURPOSE:
	This procedure writes gif files of up to 25 browse images per file
       from the list of images

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	SUMMARY_PLOT,List

 INPUTS:
	List:	A string array of the filenames to be used

 KEYWORD PARAMETERS
	OUTDIR:	If set, specifies the output directory to write the images to.
		If not set, writes to the users' home directory
	
 OUTPUTS:
	A series of files are written.

 SIDE EFFECTS:

 RESTRICTIONS:
	At this time, the page size, the number of images/page, and
	the image annotation is coded into the routine.  

	It is easy to add a branch point for different number of images
	per page, i.e., 25, 36, etc.  It is not clear how to change
	the annotation.


 PROCEDURE:
	Make gifs that are 650 by 900.  Portrait mode

 EXAMPLE:

 MODIFICATION HISTORY:
 	Written by:	M.D. Andrews, 18 Aug 1997
	Modifications:
	19 Oct 1998	RAH	use lasco_readfits, test for bad image

	%W% %H% LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/summary_plot.pro)


SUNDIST

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

 PURPOSE:
   	This procedure generates two arrays whose elements are the distance 
	from the center of the sun and the position angle from solar north.

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	SUNDIST,Coord,Dist,Angle

 INPUTS:
	Coord = 4 word array containing the solar coordinates,
			column center of sun,
			row center of sun,
			roll angle of solar north,
			number of pixels per radius

 KEYWORD PARAMETERS:
	XSIZE = Number of columns in image, default is 1024
	YSIZE = Number of rows in image, default is square matrix

 OUTPUTS:
	Dist = array whose elements are solar radii

 OPTIONAL OUTPUTS:
 	Angle = array whose elements are position angle

 MODIFICATION HISTORY:
 	Written by:	R.A. Howard, NRL, 27 October 1995


	@(#)sundist.pro	1.1 09/19/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/sundist.pro)


TWO2ONE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       TWO2ONE
 PURPOSE:
       Convert from 2-d indices to 1-d indices.
 CATEGORY:
 CALLING SEQUENCE:
       two2one, ix, iy, arr, in
 INPUTS:
       ix, iy = 2-d indices.                 in
       arr = array to use (for size only).   in
         Alternatively, arr can be [nx, ny]
         where nx and ny are the image sizes
         in x and y (saves space).
 KEYWORD PARAMETERS:
 OUTPUTS:
       in = equivalent 1-d indices.          out
 COMMON BLOCKS:
 NOTES:
 MODIFICATION HISTORY:
       R. Sterner, 7 May, 1986.
       Johns Hopkins Applied Physics Lab.
       R. Sterner, 19 Nov, 1989 --- converted to SUN
       R. Sterner, 15 Feb, 1993 --- fixed a bug in the [nx,ny] case.

 Copyright (C) 1986, Johns Hopkins University/Applied Physics Laboratory
 This software may be used, copied, or redistributed as long as it is not
 sold and this copyright notice is reproduced on each copy made.  This
 routine is provided as is without any express or implied warranties
 whatsoever.  Other limitations apply as described in the file disclaimer.txt.

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/two2one.pro)


UNIQ_NOSORT

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

 PURPOSE:
       Return the subscripts of the unique elements in an array.
       Does not require array to be sorted (as in UNIQ).

 CATEGORY:
       Array manipulation.

 CALLING SEQUENCE:
       UNIQ_SORT(Array)

 INPUTS:
       Array:  The array to be scanned.  

 OUTPUTS:
       An array of indicies into ARRAY is returned.  The expression:

               ARRAY(UNIQ_NOSORT(ARRAY))

       will be a copy of the sorted Array with duplicate elements removed.

 COMMON BLOCKS:
       None.

 Written     : Scott Paswaters, NRL, Dec 1996.

 SCCS variables for IDL use
 
 @(#)uniq_nosort.pro	1.1 05/14/97 :NRL Solar Physics


(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/uniq_nosort.pro)


UTC2YYMMDD

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

 PURPOSE:
	This function converts a modified julian date structure into a date 
	string in the format yymmdd 

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	Result = UTC2YYMMDD(Utc)

 INPUTS:
	Utc:	Universal time in the CDS time structure

 OPTIONAL KEYWORDS:
	Use /HHMMSS to have '_HHMMSS' added.  Ex result: 'YYMMDD_HHMMSS'
	Use /YYYY to have 4 digit year.  Ex result: 'YYYYMMDD_HHMMSS'

 OUTPUTS:
	This function returns a date string in the format YYMMDD.

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 1995

 	  Updated :	97/01/28 SE Paswaters - Added /HHMMSS keyword
 	  Updated :	97/12/15 SE Paswaters - Added /HHMMSS keyword

	@(#)utc2yymmdd.pro	1.2 05/14/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/utc2yymmdd.pro)


WIN2PS

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

 PURPOSE:
	This routine reads the current window and colortable and saves it to 
	a postscript file in the current directory named win2ps.ps.

 CATEGORY:
	Utilities.  Output.

 CALLING SEQUENCE:

	WIN2PS

 INPUTS:
	None.

 OUTPUTS:
	None.

 SIDE EFFECTS:
	Creates a file in the current directory (or /tmp if no write permission) 
	named win2ps.ps.

 MODIFICATION HISTORY:
 	Written by:	S.E. Paswaters October, 1996

 	Modified:	96/12/12  SEP  Scaled image to 256 colors for postscript

 SCCS variables for IDL use
 
 @(#)win2ps.pro	1.6 11/20/97 :NRL Solar Physics

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/win2ps.pro)


XREGISTERED

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

 PURPOSE:
	This function returns true if the widget named as its argument 
	is currently registered with the XMANAGER as an exclusive widget, 
	otherwise this routine returns false.

 CATEGORY:
	Widgets.

 CALLING SEQUENCE:
	Result = XREGISTERED(Name)

 INPUTS:
	Name:	A string containing the name of the widget in question.

 KEYWORD PARAMETERS:
	NOSHOW:	If the widget in question is registered, it is brought
		to the front of all the other windows by default.  Set this
		keyword to keep the widget from being brought to the front.
	ID:	If the widget in question is registered, this named variable
               will contain the id of the first instance of the widget.

 OUTPUTS:
	If the named widget is registered, XREGISTERED returns the number
	of instances of that name in the list maintained by XMANAGER.  
	Otherwise, XREGISTERED returns 0.

 COMMON BLOCKS:
	MANAGED

 SIDE EFFECTS:
	Brings the widget to the front of the desktop if it finds one.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Searches the list of exclusive widget names and if a match is found
	with the one in question, the return value is modified.

 MODIFICATION HISTORY:
	Written by Steve Richards, November, 1990
	Jan, 92 - SMR	Fixed a bug where an invalid widget
			was being referenced with 
			WIDGET_CONTROL and the /SHOW keyword.
	17 November 1993 - AB and SMR. Added ID validity checking to
			fix a bug where already dead widgets were being
			accessed.
	21 October 1994 - Scott Paswaters (NRL) added the ID optional param.

	@(#)xregistered2.pro	1.1 10/08/96 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/xregistered2.pro)


YYMMDD2UTC

[Previous Routine] [List of Routines]
 NAME:
	YYMMDD2UTC

 PURPOSE:
	This function converts a date string in the format YYMMDD into a 
       modified julian date structure

 CATEGORY:
	UTIL

 CALLING SEQUENCE:
	Result = YYMMDD2UTC(Dates)

 INPUTS:
	Dates:	Date string in the format yymmdd, or yyyymmdd, mjd or CDS time structure

 OUTPUTS:
	This function returns a CDS date structure.  If the input is an array of
	date strings, then the output will be an array of structures.

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 1995
	V2:  RAH, Jun 2, 1997, input dates can be long, string or CDS time structure
	V3:  RAH, Sep 22, 1997, corrected CDS time structure to be longs not integers

	@(#)yymmdd2utc.pro	1.4 09/22/97 LASCO IDL LIBRARY

(See /net/cronus/opt/local/idl_nrl_lib/lasco/util/yymmdd2utc.pro)