Headers for LASCO IDL Library: UTIL

This page was created by IDL lasco_mk_html_help.pro on Wed Aug 17 12:22:03 2005.


List of Routines


Routine Descriptions

ABBRV_FILPOL

[List of Routines] (See ./abbrv_filpol.pro)

 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


ADD_LASCO_LOGO

[List of Routines] (See ./add_lasco_logo.pro)

 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

 KEYWORDS:
	LEFT	When set, puts logo on lower left corner

 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
	99/07/14  N Rich	Add LEFT keyword

	@(#)add_lasco_logo.pro	1.3 07/14/99 LASCO IDL LIBRARY


AWIN

[List of Routines] (See ./awin.pro)

 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


BROWSE_DISP

[List of Routines] (See ./browse_disp.pro)

 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


BUILD_LASCO_HELP

[List of Routines] (See ./build_lasco_help.pro)

 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


CAT_PHASER

[List of Routines] (See ./cat_phaser.pro)

 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


CDS2JD

[List of Routines] (See ./cds2jd.pro)

 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


CDS_GEN_HELP

[List of Routines] (See ./cds_gen_help.pro)

 NAME:
	CDS_GEN_HELP

 PURPOSE:
	This procedure goes through all the LASCO IDL directories and
       generates a help file in HTML format of the form help_.html

 CATEGORY:
	
	Utility

 CALLING SEQUENCE:

	CDS_GEN_HELP

 INPUTS:
       NONE
	
 KEYWORD PARAMETERS:
       NONE

 OUTPUTS:
       HTML Help Files in each directory are generated

 EXAMPLE:

	CDS_GEN_HELP

 MODIFICATION HISTORY:
 	Written by:	Dennis Wang
       Created: 2 Feb 2001

	%W% %H% LASCO IDL LIBRARY


CHECK_FILENAME

[List of Routines] (See ./check_filename.pro)

 NAME:
                        check_filename
 PURPOSE:
                        Removes the extension and path from the filename if present

 CALLING SEQUENCE:
                        check_filename,filename
                        check_filename,filename,path,extension

 INPUTS:
                        filename = string to be checked (may be a string array)

 OUTPUTS:
                        filename will be returned without extension and path

 OPTIONAL OUTPUTS:
                        path      = path name 
                        extension = extension not including decimal point

 MODIFICATION HISTORY:
                        RAH 10/1/89
                        rah 3/28/91 added array input for filename
 SCCS variables for IDL use
 
 @(#)check_filename.pro	1.1 7/6/92 :NRL Solar Physics


CHECK_IMGDIR

[List of Routines] (See ./check_imgdir.pro)

 NAME:
                               check_imgdir	
 PURPOSE:
                               checks !imgdir for a / on the end	
 CALLING SEQUENCE:
                               check_imgdir

 INPUTS:			None
 OPTIONAL INPUT PARAMETERS:	None
 KEYWORD PARAMETERS:		None

 PROCEDURE:
                               if !imgdir does not end with / then puts one on

 MODIFICATION HISTORY:		RAH 3/26/91
 SCCS variables for IDL use
 
 @(#)check_imgdir.pro	1.1 7/6/92 :NRL Solar Physics


CHECK_PRO_NAMES

[List of Routines] (See ./check_pro_names.pro)

 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


CW_ARRSEL

[List of Routines] (See ./cw_arrsel.pro)

 TITLE:
	CW_ARRSEL

 PURPOSE:
	This function takes a vector and allows the user to add new values
	and reject values already there.

 INPUT PARAMETERS:
	X: Initial value of group of buttons

 OPTIONAL INPUT PARAMETERS:
	SELECTED: A vector of values that should start checked.  This
		parameter takes precedence over 'status'.  If X is not specified but
		selected is, then the initial buttons to be shown will be read from
		selected instead of x

	STATUS: A vector of binary values the same size as x.  All buttons with
		a nonzero corresponding element of status will be shown as checked.
		The 'selected' keyword takes precedence over status.

	TITLE: A string which will be the title of the widget.  Default is
		'Array Selection'

	PROMPT: A string which will prompt the user to enter a new value.
		Default is 'New Value:'

 OUTPUTS:
	The values selected by the user are returned as a vector.

 SIDE EFFECTS:
	None

 RESTRICTIONS:
	This widget is MODAL.  No other widget applications will be responsive
	while this widget is in use.

 PROCEDURE:
	CW_ARRSEL is primarily an extension of the CW_BGROUP included
	with IDL which allows buttons to be added dynamically.  It does
	this by saving necessary values internally and then destroying and
	rebuilding its widget interface  as necessary.

 EXAMPLES:
	To change the coefficients sent to a curvefit routine according to the 
	user's demands, starting with a default of [3,7,9]

		coeffs=CW_ARRSEL([3,7,9])
		result=curvefit(x,y,weights,coeffs, function_name='f')
 
 WRITTEN:
	11 August, 2000			Andrew Hayes, NRL

 @(#)cw_arrsel.pro	1.1 08/21/00 :LASCO IDL LIBRARY


DIFF

[List of Routines] (See ./diff.pro)

 FUNCTION DIFF

 Returns values in arr1 that are not in arr2; if none, then returns -1.

 INPUTS:
 arr1, arr2	Arrays to compare, can be any size or type (???)

 OUTPUTS:
 flag		Zero if no values are returned (-1), else is 1

 Written by N. Rich, NRL/Interferometrics, about 2000

 Modified:
  01.11.06, nbr - Rewrite so it works one way only.

	11/08/01 @(#)diff.pro	1.2 - NRL LASCO IDL Library


DIRPATH

[List of Routines] (See ./dirpath.pro)

 NAME:
	dirpath

 PURPOSE:
	Converts input into a directory with a delimiter on the end.
	Takes OS differences into account.

 CATEGORY:
	System File Utility

 CALLING SEQUENCE:
 
	Result = DIRPATH(Rootdir, Subdirs)

 INPUTS:
	Rootdir:	The first portion of the directory structure

 OPTIONAL INPUTS:
	Subdirs	STRARR	List of subdirectories to add to rootdir 
	
 KEYWORD PARAMETERS:
	None

 OUTPUTS:
	Returns directory with correct delimiters.

 PROCEDURE:
	Uses !DELIMITER if defined, else uses GET_DELIM()

 EXAMPLE:
	dir = DIRPATH(getenv('NRL_LIB'),['idl','expfac']) returns
	DIR	STRING = '/net/cronus/opt/local/idl_nrl_lib/idl/expfac/'
	for OS Solaris (UNIX)

 MODIFICATION HISTORY:
 	Written by:	N. Rich, 01/12/17, NRL

	@(#)dirpath.pro	1.1, 12/17/01 LASCO IDL LIBRARY


DISPLAY_JPG

[List of Routines] (See ./display_jpg.pro)

PRO display_jpg, lzorql, day, tscope


   PURPOSE:
	DISPLAY_JPG is called by the VIEW_JPG2 procedure to display
	.jpg images from a certain day and telescope, from cplex1
	or cplex2 on corona. It is also designed to print these
	images.

   CALLING SEQUENCE:
	
	display_jpg, lzorql, day, tscope

   INPUTS:
	lzorql, day, tscope: all string variables


   OUTPUT:
	Draw widget on screen; postcript file '~/printjpg.ps'


   Written by Nathan Rich, July 1996

   MODIFIED:	NR	 1 Aug 1996	rename findfile directories
		NR	 5 Aug		added -o nobanner to print
		nbr, 5 Nov 2001 - Add SCCS tags

	11/05/01 @(#)display_jpg.pro	1.3 - NRL LASCO IDL Library


DISTARR

[List of Routines] (See ./distarr.pro)

 NAME:
	DISTARR

 PURPOSE:
	This function generates an array whose elements are the Euclidean
	distance from a given point.

 CATEGORY:
	LASCO UTIL

 CALLING SEQUENCE:
	Resut = DISTARR([xsize[,ysize[,xcen[,ycen[,dxs[,dys]]]]]])

 OPTIONAL INPUTS:
	Xsize:	The size of the array along the abscissa.  Default is 1024
	YSIZE:	The size of the array along the ordinate.  Default is equal to xsize
	XCEN:	The position of the center.  Default is half of xsize
	YCEN:	The position of the center.  Default is half of ysize

 KEYWORDS:
	MEM:	Setting this keyword sacrifices some speed for lower memory consumption 
	during routine.  Has no effect on output or side effects, nor does it have any effect if
	either xcen or ycen are float or double.

 OUTPUTS:
	Result:	The euclidean distance from (Xcen, Ycen)

OPTIONAL OUTPUTS:
	Dxs:	The distance from (Xcen,0)
	Dys:	The distance from (0,Ycen)

 PROCEDURE:
  Generates a 2D matrix whose elements are the RMS distance from sun center
  in pixels.  Also returns two matrices whose elements are the signed
  distances in either x or y from sun center

 EXAMPLE:
 To generate a 1024x1024 matrix whose values are the Euclidean distance from (512,512)
	result = distarr()

 To generate a 1024-element by 512-element matrix whose values are the Euclidean
 distance from (X,Y)
	result = distarr(512,1024,X,Y)

 MODIFICATION HISTORY:
 	Written by:	Andrew Hayes, NRL Dec, 1998
	Modified by:	Andrew Hayes, NRL Aug, 2000	Rewritten for greater speed if parameters
		are integers, changed inputs to optional input parameters, now chooses calculation
		method and output type intelligently depending on the type[s] of the input 
		parameters instead of forcing double.


	%W% %H% LASCO IDL LIBRARY


FIND_CLOSEST

[List of Routines] (See ./find_closest.pro)

 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 (preferably) 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. But not necessary.

 MODIFICATION HISTORY:
 	Written by:	Scott Passwaters, NRL, Feb, 1997
	24 Sep 1998, N Rich	changed /LESS keyword to include equal-to
	31 Jan 2000, N Rich	Allow for MOSTLY (except for isolated stray elements) sorted arr, but must still be ascending order
	12 Apr 2005, N.Rich	Return -1 in one case.     

	%W% %H% LASCO IDL LIBRARY


FIND_CLOSEST_ARR

[List of Routines] (See ./find_closest_arr.pro)

 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_ARR, 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 arr2 that is less than arr1
		Otherwise the subscript of arr2 that is closest to arr1 is
		returned.  Notice that the value of arr2 might be greater than 
		arr1 if /LESS is not used.
	MATCH:	Returns 1-to-1 matches for arrays

 RESTRICTIONS:
	The input arrays should be in ascending order.

 MODIFICATION HISTORY:
 	Written by:	Scott Paswaters, NRL, Dec, 1997
	3/7/01, nbr	Fix LESS keyword
	3/16/01,nbr	Add MATCH keyword; use UNIQ

       11/05/01 @(#)find_closest_arr.pro	1.2 LASCO IDL LIBRARY


FIXWRAP

[List of Routines] (See ./fixwrap.pro)

 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


GETENV_SLASH

[List of Routines] (See ./getenv_slash.pro)

 NAME:
	GETENV_SLASH

 PURPOSE:
	Calls GETENV to return the environment variable, and then checks to 
	see if a slash is at the end of the string and appends one if there 
	isn't.

 CATEGORY:
	REDUCE

 CALLING SEQUENCE:
	Result = GETENV_SLASH (Envvar)

 INPUTS:
	Envvar = String of the environment variable

 OUTPUTS:
	Result = Environment variable with a slash

 PROCEDURE:
	If the environment variable is defined, a slash is appended to the 
	string returned by GETENV.

 EXAMPLE:
	s = GETENV_SLASH ('LEB_IMG')
	If $LEB_IMG is defined to be /net/lasco6/data/packets
	then the result would be:    /net/lasco6/data/packets/

 MODIFICATION HISTORY:
	Written    RA Howard, NRL, 1 Nov 1995
	Version 1  RAH, Initial Release
	Version 2  RAH, Use system variable !delimiter
	 8.16.01, NBR - Check existence of !delimiter using datatype
	12.17.01, NBR - Use get_delim.pro instead of '/'

       12/17/01, @(#)getenv_slash.pro	1.4 : NRL LASCO IDL LIBRARY


IMG2DNPERSEC

[List of Routines] (See ./img2dnpersec.pro)

 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. Bias is subtracted. 
	If image is binned, the correct factor is applied. Then divide by exposre time.
		output = (binning correction(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
		REDUCE_STD_SIZE

 MODIFICATION HISTORY:
	Written, RA Howard, NRL, 25 November 1997
	Modified:
		20 Feb 98	RAH	Added exposure factor correction
	21 Nov 01, NBR - Add binning correction with REDUCE_STD_SIZE

       @(#)img2dnpersec.pro	1.3 11/30/01     LASCO IDL LIBRARY


IMG_DIF_MIN

[List of Routines] (See ./img_dif_min.pro)

 NAME:
	IMG_DIF_MIN

 PURPOSE:
	This function returns the non-zero minimum of the two images. 

 CATEGORY:
	UTILITY

 CALLING SEQUENCE:
	Result = IMG_DIF_MIN (Imga,Imgb)

 INPUTS:
	Imga:	First image
	Imgb:	Second image

 OPTIONAL INPUTS:
	None

 KEYWORD PARAMETERS:
	None

 OUTPUTS:
	None.

 SIDE EFFECTS:
	Writes a fits file to $MONTHLY_IMAGES.

 RESTRICTIONS:
	Images must be the same size and non-negative.

 PROCEDURE:
	The images are checked to be the same size.  Zero values are
	checked for.

 EXAMPLE:
	To create the minimum image between image A and B:

		c = IMG_DIF_MIN(a,b)

 MODIFICATION HISTORY:
 	Written by:	R.A. Howard, NRL, 6/8/00


 @(#)img_dif_min.pro	1.1 06/10/00 :LASCO IDL LIBRARY


KDATE

[List of Routines] (See ./kdate.pro)

 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


KDAY

[List of Routines] (See ./kday.pro)

 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


LASCO_GEN_HELP

[List of Routines] (See ./lasco_gen_help.pro)

 NAME:
	LASCO_GEN_HELP

 PURPOSE:
	This procedure goes through all the LASCO IDL directories and
       generates a help file in HTML format of the form help_.html

 CATEGORY:
	
	Utility

 CALLING SEQUENCE:

	LASCO_GEN_HELP

 INPUTS:
       NONE
	
 KEYWORD PARAMETERS:
       NONE

 OUTPUTS:
       HTML Help Files in each directory are generated

 EXAMPLE:

	LASCO_GEN_HELP

 MODIFICATION HISTORY:
 	Written by:	Dennis Wang
       Created: 28 Jan 2001

	@(#)lasco_gen_help.pro	1.1 01/29/01 LASCO IDL LIBRARY


LASER8[1]

[List of Routines] (See ./laser8.pro)

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


LASER8[2]

[List of Routines] (See ./laser8.pro)

 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.


LEG_DISP

[List of Routines] (See ./leg_disp.pro)

 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


LIST_HDR_SUM

[List of Routines] (See ./list_hdr_sum.pro)

 NAME:
	LIST_HDR_SUM

 PURPOSE:
	Output information from headers for easy comparison

 CATEGORY:
	Analysis

 CALLING SEQUENCE:
	list_hdr_sum, filelist [,keywords]

 INPUTS:
	filelist    List of FITS files

 OPTIONAL INPUTS:
	keywords	STRARR of keywords to list in addition to default
	(default is filename, date/time-obs, naxis1,2)
	
 KEYWORD PARAMETERS:
	None

 OUTPUTS:
	Img_hdr.txt-style text file in current directory

 OPTIONAL OUTPUTS:
	None

 MODIFICATION HISTORY:
	Written, N Rich, 04.04.05


 SCCS variables for IDL use
 
 @(#)list_hdr_sum.pro	1.1 05/03/04 :LASCO IDL LIBRARY


M1ANGLE

[List of Routines] (See ./m1angle.pro)

 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


M1COEFF

[List of Routines] (See ./m1coeff.pro)

 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


M1DACS

[List of Routines] (See ./m1dacs.pro)

 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


M1DYNIMG

[List of Routines] (See ./m1dynimg.pro)

 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


M1REVERSE

[List of Routines] (See ./m1reverse.pro)

 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


M1TEES

[List of Routines] (See ./m1tees.pro)

   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


M1WOBBLE

[List of Routines] (See ./m1wobble.pro)

   computes the m1 wobble parameters, A, B, C, D

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


MK_HTML_HELP

[List of Routines] (See ./lasco_mk_html_help.pro)

 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


NUMS2STRING

[List of Routines] (See ./nums2string.pro)

 FUNCTION nums2string

 Converts an array of numbers to a space delimited list of numeric characters

 INPUTS:
	nums 	FIX,FLOAT,BYT ARR

 OUTPUTS:
	numstring	CHAR

 KEYWORDS:
 	DELIM	Set = character to use as delimiter, default is ' '

 AUTHOR:
  Nathan Rich, NRL/Interferometrics, 2001

	@(#)nums2string.pro	1.1, 11/08/01 - NRL IDL LASCO Library


ONE2TWO

[List of Routines] (See ./one2two.pro)

 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.


PLOT_THETAS

[List of Routines] (See ./plot_thetas.pro)

unction plot_thetas, im, xc, yc, th, HDR=hdr, INTRVAL=intrval, RANGE=range, SDIR=sdir, ROOT=root, SAVE=save, PIXELS=pixels, OCC=occ, RSUN=rsun, OVERPLOT=overplot, YTITLE=ytitle, XRANGE=xrange, YRANGE=yrange, THICKNESS=thickness

 Purpose:
 generates values of plots starting at a given center for different thetas

 INPUTS:
  im:   	2D array
  xc, yc:	Center of plot in IDL pixels
  th:		(first) angle to plot

 KEYWORDS
  INTRVAL:	Interval of Thetas to test (ie, 2 means plot every other angle)
  HDR:		LASCO or EIT image header (structure)
  RANGE:	range of angles to test (Degrees). Default is 180.
  SDIR:		Directory to save plots in
  ROOT:		Identifier for plot filenames
  RSUN:	Label in units of solar radii from center (needs HDR set)
  START:	First angle to plot (default is 0, defined as right equator)
  OCC:		Use occulter center instead of sun center (if HDR is set)
  RMAX:	Length of each ray computed; default is sqrt(naxis1)/2
  OVERPLOT:	Use oplot instead of plot
  YTITLE:	Units of values in im (string)

 RESTRICTIONS:
  Must have window 0 for image and window 2 for plot open

 Written by N. Rich, NRL/Interferometrics

 Modified
  8/21/02, N. Rich - Make general rather than using header for center

 08/29/02 @(#)plot_thetas.pro	1.1


POLY_E

[List of Routines] (See ./poly_e.pro)

 NAME:
	POLY_E

 PURPOSE:
	Evaluate a polynomial function of a variable.

 CATEGORY:
	C1 - Operations on polynomials.

 CALLING SEQUENCE:
	Result = POLY_E(X,C,[E])

 INPUTS:
	X:	The variable.  This value can be a scalar, vector or array.

	C:	The vector of polynomial coefficients.  The degree of 
		of the polynomial is N_ELEMENTS(C) - 1.

	E: 	The vector of exponents.

 OUTPUTS:
	POLY_E returns a result equal to:
		 C(0) + c(1) * X + c(2)*x^2 + ...

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Straightforward.

 MODIFICATION HISTORY:
	Andrew Hayes	16 AUG 2000


PS_SETUP

[List of Routines] (See ./ps_setup.pro)

 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
	2000/07/18, NBR - Use printer input for naming GIF file
 
	07/18/00 @(#)ps_setup.pro	1.10 LASCO IDL LIBRARY


SHARPEN

[List of Routines] (See ./sharpen.pro)

 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
	NO_RATIO:	Return straight edge-enhanced image

 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
	99/10/27, N Rich	Add NO_RATIO keyword

	%W% %H% LASCO IDL LIBRARY


STR_SEP2

[List of Routines] (See ./str_sep2.pro)

 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


STR_UNIQUE

[List of Routines] (See ./str_unique.pro)

 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


STV

[List of Routines] (See ./stv.pro)

 NAME:
	STV

 PURPOSE:
	Create a scrolling graphics window for examining large images.
	By default, 1 draw widgets are used.  It displays the actual image with 
	scrollbars that allow sliding
	the visible window.

 CALLING SEQUENCE:
	STV , Image

 INPUTS:
	Image:	The 2-dimensional image array to be displayed.  If this 
		argument is not specified, no image is displayed. The 
		WID keyword can be used to obtain 
		the window number of the draw widget so it can be drawn
		into at a later time.

 KEYWORDS:


	GROUP:	The widget ID of the widget that calls SLIDE_IMAGE.  If this
		keyword is specified, the death of the caller results in the
		death of STV.

	ORDER:	This keyword is passed directly to the TV procedure
		to control the order in which the images are drawn. Usually,
		images are drawn from the bottom up.  Set this keyword to a
		non-zero value to draw images from the top down.

     REGISTER:	Set this keyword to create a "Done" button for SLIDE_IMAGE
		and register the widgets with the XMANAGER procedure.

		The basic widgets used in this procedure do not generate
		widget events, so it is not necessary to process events
		in an event loop.  The default is therefore to simply create
		the widgets and return.  Hence, when register is not set, 
		SLIDE_IMAGE can be displayed and the user can still type 
		commands at the "IDL>" prompt that use the widgets.

	RETAIN:	This keyword is passed directly to the WIDGET_DRAW
		function, and controls the type of backing store
		used for the draw windows.  If not present, a value of
		2 is used to make IDL handle backing store.

 WID:	A named variable in which to store the IDL window number of 
		the sliding window.  This window number can be used with the 
		WSET procedure to draw to the scrolling window at a later 
		time.

	TITLE:	The title to be used for the SLIDE_IMAGE widget.  If this
		keyword is not specified, "STV Image" is used.

	TOP_ID:	A named variable in which to store the top widget ID of the 
		STV hierarchy.  This ID can be used to kill the 
		hierarchy as shown below:

			STV, TOP_ID=base, ...
			.
			.
			.
			WIDGET_CONTROL, /DESTROY, base

     XVISIBLE:	The width of the viewport on the scrolling window.  If this 
		keyword is not specified, 1/2 of display size is used.

     YVISIBLE:	The height of the viewport on the scrolling window. If
		this keyword is not present, 1/2 of display size is used.

 OUTPUTS:
	None.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	Widgets for displaying a very large image are created.
	The user typically uses the window manager to destroy
	the window, although the TOP_ID keyword can also be used to
	obtain the widget ID to use in destroying it via WIDGET_CONTROL.

 RESTRICTIONS:
	Scrolling windows don't work correctly if backing store is not 
	provided.  They work best with window-system-provided backing store
	(RETAIN=1), but are also usable with IDL provided backing store 
	(RETAIN=2).

	Various machines place different restrictions on the size of the
	actual image that can be handled.

 MODIFICATION HISTORY:
	04.01.02, nbr - Written, based on SLIDE_IMAGE.pro

	01/02/04 @(#)stv.pro	1.1


SUMMARY_PLOT

[List of Routines] (See ./summary_plot.pro)

 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


SUNDIST

[List of Routines] (See ./sundist.pro)

 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


TWO2ONE

[List of Routines] (See ./two2one.pro)

 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.


UNIQ_NOSORT

[List of Routines] (See ./uniq_nosort.pro)

 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



UTC2YYMMDD

[List of Routines] (See ./utc2yymmdd.pro)

 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


W256

[List of Routines] (See ./w256.pro)

NAME
	w256

PURPOSE
	To assure an IDL color table with the full 256 colors.

CALLING EXAMPLE
	w256

RESULT
	IDL will use full 256 colors for the rest of the session.
	In order to achieve this the color table of a window is only
	correct when the cursor is on a window.  The outcome here
	is like that of 'Netscape -install'.

RESTRICTIONS
	This will only work if done BEFORE any other windows are
	opened with a "window" or "wdsef" command.  Do it first thing
	upon beginning a session.

HISTORY
	Written by S.Paswaters, NRL, 1997/10/21
	 6/ 6/01, nbr - Add header notes.
	  


WIN2PS

[List of Routines] (See ./win2ps.pro)

 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
 			00/10/18  RAH  Added option to not rescale image, default was to rescale

 SCCS variables for IDL use
 
 %W% %H% :NRL Solar Physics


XREGISTERED

[List of Routines] (See ./xregistered2.pro)

 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


YYMMDD2UTC

[List of Routines] (See ./yymmdd2utc.pro)

 NAME:
	YYMMDD2UTC

 PURPOSE:
	This function converts a date string in the format [YY]YYMMDD[_][HHMMSS]
       into a modified julian date structure

 CATEGORY: UTIL, time

 CALLING SEQUENCE:
	Result = YYMMDD2UTC(Dates)

 INPUTS:
	Dates:	Date string in the format yymmdd, yyyymmdd, or yyyymmdd_hhmmss,
               or 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
   2005.03.17, nbr - allow/use _hhmmss in argument
   2005.03.30, nbr - fix bug that modified argument

	@(#)yymmdd2utc.pro	1.6 03/30/05 LASCO IDL LIBRARY


This page was created by IDL lasco_mk_html_help.pro on Wed Aug 17 12:22:03 2005.