Headers for LASCO IDL Library: MOVIE

Headers for LASCO IDL Library: MOVIE

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


List of Routines


Routine Descriptions

COMBINE_MVI

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

 Project     : SOHO - LASCO/EIT

 Name        : COMBINE_MVI

 Purpose     : Insert frames from one mvi into another to create combined movie.

 Explanation : This procedure combines movies from different telescopes by inserting
		frames from mvi1 inside mvi2.  The cadence is determined by mvi1 (the
		inner field).  The nearest frame in time from mvi2 is found for each
		frame of mvi1.  The mvi1 frame is then CONGRID'd to the pixel size
		of mvi2 (the outer field) and inserted into the mvi2 frame.
               WRUNMOVIE is then called for animation.

 Use         : COMBINE_MVI, mvi1, mvi2, CUTOFF=cutoff, /PROMPT

      Example: IDL> COMBINE_MVI, 'c2.mvi', 'c3.mvi', CUTOFF=5.5

 Inputs      : mvi1 : Filename of mvi file for inner field.
               mvi2 : Filename of mvi file for outer field.

 Outputs     : None.

 Keywords    : /PROMPT	: Set this keyword to be prompted for centers and scale factors.
		      	  Otherwise they are read from .mvi files.
               CUTOFF=cutoff : Set this keyword to the boundary desired between the inner and
				outer fields (Units of Rsun).  Defaults are:
				IF EIT is inner image : cutoff is 1.3
				IF C1  is inner image : cutoff is 2.2
				IF C2  is inner image : cutoff is 5.5
		SPLIT_COLORS: Set this keyword to split color table in
		              output mvi between those in the input mvis.
               INNER : Setting this keyword will CONGRID the outer field image (mvi2) to the 
                       pixel size of the inner field image (mv1). It uses the portion of the
                       original image that corresponds to the new
                       field of view for speed.
               FOV    : Set this keyword to the desired size (in pixels)
               of the final movie. If the final dimensions are larger than 1024^2, the program
               prompts for values. (Default = size of mvi2 < 1024). FOV can either 1- or 
               2-element array.
		HDROUT : Save the movie with outer image header values; default is to use inner image
		NOLABEL: Do not add time stamp 
		LESS: 	If set, outer frame is always after inner frame; otherwise outer frame 
			is closest in time
		MATCH:	Match frames 1-to-1 to smallest array

 Calls       : WRUNMOVIE

 Category    : Image Processing/Display.

 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, Apr 1997.

 Modified    : SEP 03 Apr 97 - Released.
		SPP 10 Oct 97 - Added SPLIT_COLORS keyword and code to
                               allow splitting of color table.
               AV  16 Dec 97 - Added INNER & FOV keywords, shift_calc
                               proc (for clarity).
               SEP 17 Dec 97 - Modified to always include all frames from both movies.
		NBR    Dec 99 - Add HDROUT keyword
		NBR    Aug 00 - Fix label; add NOLABEL keyword; always make outer frame 
				after inner frame
		NBR  9 Mar 01 - Add LESS keyword
		NBR 16 Mar 01 - Add MATCH keyword

 Version     :

 11/30/01 @(#)combine_mvi.pro	1.15 :NRL Solar Physics


DAILY_MOVIE

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

 NAME:
	DAILY_MOVIE

 PURPOSE:
	This procedure supplies a set of standard parameters for the MKMOVIE 
	procedure to easily make a movie for all of the images in a given date

 CATEGORY:
	LASCO DATA ANALYSIS

 CALLING SEQUENCE:
	DAILY_MOVIE, Tel, Dte

 INPUTS:
	Tel:	A string denoting the telescope: 'C1', 'C2', 'C3', 'EIT'
	Dte:	A string giving the date:  '960331'

 OPTIONAL INPUTS:
	Ndy:	The number of days to use in forming the movie.  The default
		is 1 day.

 KEYWORD PARAMETERS:
	DIFF:	If this keyword is set difference images will be generated
	UNSHARP:	If this keyword is set unsharp mask images will be 
		generated, in which the size of the box is set to the value.

 SIDE EFFECTS:
	If a list file in the image directory doesn't exist, one will be
	written in the user's home directory.

 PROCEDURE:
	Performs validity checks on dte and tel inputs.
	Determines if a filename of '*list*' exists in the image directory.

 EXAMPLE:
	To see a movie in difference images for telescope C3 for 1 Apr 96:

		DAILY_IMAGE,'C3','960401',/diff

	To see a movie in unsharp masked images for telescope C3 for 1 Apr 96:

		DAILY_IMAGE,'C3','960401',unsharp=15

 MODIFICATION HISTORY:
 	Written by:	RA Howard, 21 Apr 1996


	@(#)daily_movie.pro	1.3 09/12/97 LASCO IDL LIBRARY


EDITFRAME

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

 Project	: SOHO -LASCO/EIT

 Name		: EDITFRAME

 Purpose	: This tool allows the user to edit a particular image "on the
		  fly," while the WRUNMOVIE3 procedure is running.

 Use		: EDITFRAME, in, out, [moviev]

 Arguments	: in - The input, or original image
		  out - The output, or final image
		  moviev - a structure generated by the WRUNMOVIE3 program,
			containing information about the movie.  If moviev
			is not provided, then certain features of the program,
			such as referencing images by "Current frame", will
			not be supported.

 Calls		: LASCO_READFITS

 Comments	:

 Side effects	: None

 Category	: Image Processing

 Written	: Scott Hawley, NRL Jul 15, 1996

 Version	:

 See Also	: WRUNMOVIE3.PRO


GENERIC_MOVIE

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : GENERIC_MOVIE
               
 Purpose     : Load various data formats into pixmaps and call WRUNMOVIE for animation.
               
 Explanation : This procedure is a generic interface to converting data
		(image files or data cubes) into the LASCO MVI format.
		The user can then save the movie in MVI format and use
		routines such as wrunmovie.pro, combine_mvi.pro, mvi2mpg.pro, 
		put_mvi.pro etc. for MVI manipulation.
               
 Use         : GENERIC_MOVIE, data[, bmin, bmax], /SXT, /MK3, /TRUECOLOR

 Inputs      : data : can be:
		       - 3 dimensional byte array (nx,ny,len)
		       - name of file containing names of images
		       - strarr of names of images
		    	(images can be of type: .fits, .gif, .pict, .tiff)

 Optional Inputs: bmin, bmax : Minimum and maximum DN for BYTSCL.
               
 Outputs     : None.
               
 Keywords    : 
	/SXT	: Data is YOHKOH/SXT FITS files.
	/MK3    : Data is Mauna-Loa Mark3 Coronagraph rpb files.
       /PICT   : Data are PICT files
	PAN=.5  : Resize to half
	LABEL	Set equal to array of labels to put in lower left corner of frames
	/RDIFF	: Do running difference movie
	TRUECOLOR	; Set if images are true color

 Calls       : WRUNMOVIE

 Side effects: Creates multiple pixmaps.
               
 Category    : Image Display/Animation.
               
 See Also    : WMKMOVIE.PRO is a widget front-end to making LASCO/EIT movies.
               
 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, 1996.
               
 Modified    : SEP 16 Dec 97 - Added /SXT keyword
                             - Added /MK3 keyword
               SEP 06 Jan 98 - Added .pict, .tiff support
               DW  21 Jan 99 - Y2K Fix for Yohkoh date
		NBR  9 Apr 99 - Added .jpg support
		NBR 14 May 99 - Add PICT keyword
		NBR 15 Sep 99 - Add PAN keyword
		NBR  7 Jun 01 - Add PNG support
		NBR  3 Jan 02 - Add LABEL keyword
		NBR  1 May 02 - Add RDIFF keyword
		NBR  3 Sep 02 - Add capability for floating point FITS
		RAH 16 SEP 04 - Flag for true color
               NBR 17 Mar 05 - Refine criteria for doing REBIN
               NBR 11 Apr 05 - Use /last keyword for break_file

 Version     : 

 SCCS variables for IDL use
 
 @(#)generic_movie.pro	1.15 04/11/05 :LASCO IDL LIBRARY


GIF2JPG24

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

 NAME:
	GIF2JPG24

 PURPOSE:
	Change GIF format to 24 bit color JPEG

 CATEGORY:
	Image Processing

 CALLING SEQUENCE:

	GIF2JPG24, Gif_image,R,G,B,Jpg_image, JSIZE=[naxis1,naxis2]

 
 INPUTS:
        Gif_image 
        R           red color table
        G           green color table
        B           blue color table

 OPTIONAL INPUTS:
	
 KEYWORD PARAMETERS:
	JSIZE	ARRAY(2)	[horiz,vert] size of output image

 OUTPUTS:
        Jpg_image   byte array (JSIZE(0),JSIZE(1),3) in 24 bit color with color info in 3rd dim

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:
 	To change a GIF to a 1024x1024 JPEG

	GIF2JPG24, Gif_image,R,G,B,Jpg_image,JSIZE=[1024,1024]

 MODIFICATION HISTORY:
 	Written by:	Dennis Wang, 18 Mar 1999
	99/07/12  N. Rich	Make jsize_x & _y optional keyword JSIZE
	01/09/13  N. Rich	Add messages

	@(#)gif2jpg24.pro	1.3 09/13/01 LASCO IDL LIBRARY


GIFDIR2JPG24

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

 NAME:
	GIFDIR2JPG24

 PURPOSE:
 	Converts all the GIFS in gif_dir to 24 bit JPEGs in another directory 

 CATEGORY:
	Image Processing.

 CALLING SEQUENCE:

		GIFDIR2JPG24,Gif_dir,Jpg_dir,Jsize_x,Jsize_y

 INPUTS:
 	 	Gif_dir
         	Jpg_dir
		Jsize_x		horz size for JPEGS
		Jsize_y         vert size for JPEGS

 OPTIONAL INPUTS:
	
 KEYWORD PARAMETERS:

 OUTPUTS:
	Output directory contains a 24 bit color JPEG for each GIF in the input directory

 OPTIONAL OUTPUTS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 EXAMPLE:

		GIFDIR2JPG24,'./gifs','./jpg24',1024,1024

 MODIFICATION HISTORY:
 	Written by:	Dennis Wang, 18 Mar 1999

	@(#)gifdir2jpg24.pro	1.1 03/19/99 LASCO IDL LIBRARY


GIFS2DIFS

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

 Project     : SOHO - LASCO/EIT

 Name        : GIFS2DIFS

 Purpose     : Make Diff Gifs from GIFS

 Use         : IDL> GIFS2DIFS, absoluteinputdir, absoluteoutputdir

 Inputs      : inputdir

 Optional Inputs: None

 Outputs     : GIF, JPG, MPG files

 Keywords    :

 Comments    :	Assumes name of gifs to be YYYYMMDD_HHMM_CAMERA.gif

 Side effects:

 Category    : Image Display.  Animation.

 Written     : Jake Wendt, NRL, February 2002

 Version     : 020508 Jake minor changes
				030715	jake	added PNG capability

 %H% %W% :LASCO IDL LIBRARY


GIFS2MPEG

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

 Project     : SOHO - LASCO/EIT

 Name        : GIFS2MPEG

 Purpose     : Make MPEG or Animated Gifs from Gifs

 Use         : GIFS2MPEG, mpegFileName, gif_match, gifdir, WHIRLGIF=WHIRLGIF, $
		SCALE=scale, REFERENCE=reference, $
		MPEG_DIR=mpeg_dir

 Inputs      : mpegFileName - Name of output file
               gif_match - string (wildcards allowed) used to find input GIF file
               gifdir - directory to search for input GIF files (string)

 Optional Inputs:

 Outputs     :

 Keywords    :  WHIRLGIF - Make Animated GIF using WHIRLGIF
                SCALE -
		 REFERENCE - 
                MPEG_DIR - Name of directory to put MPEG file; default is gifdir
		NFRAMES - set named variable to number of frames used (output)


 Comments    :

 Side effects:

 Category    : Image Display.  Animation.

 Modified:
	990316  NBR	Change whirlgif options to loop indefinitely
	990521 NBr	Change paramfile INPUT
	020204	Jake	Added /SH to all SPAWN
	020225, nbr - Change how files are selected and INPUT_DIR in idl2mpeg.params
       030408 DW	Comments added
	030617, nbr - Make it unnecessary to have write permission in gifdir
	030709, nbr - Fix problem from previous mod
	030715	jake	added PNG keyword
	031010, nbr - Add NFRAMES keyword

 Version     :

 @(#)gifs2mpeg.pro	1.8 10/10/03 :LASCO IDL LIBRARY


HT_HEADER

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

 NAME:
	HT_HEADER

 PURPOSE:
	This procedure writes out the header information for a height-time
	file.  It is used by the movie program and is not intended to be
	used in a standalone fashion.

 CATEGORY:
	MOVIE

 CALLING SEQUENCE:
	HT_HEADER,Moviev

 INPUTS:
	Moviev:	Structure containing the movie header information

 SIDE EFFECTS:
	Creates a height-time file and prints out the preamble

 MODIFICATION HISTORY:
 	Written by:	Scott Hawley, NRL summer student, July 1996

	@(#)ht_header.pro	1.1 09/12/97 LASCO IDL LIBRARY


MAKE_DIFF_MPEG

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

 Project     : SOHO - LASCO/EIT

 Name        : MAKE_DIFF_MPEG

 Purpose     : Make Diff MPEG from existing MVI files

 Use         : IDL>	MAKE_DIFF_MPEG, '020120', '020205'

 Inputs      :

 Optional Inputs:

 Outputs     :

 Keywords    :

 Comments    :

 Side effects:

 Category    : Image Display.  Animation.

 Written     : Jake Wendt, NRL, February 2002

 Version     :	020401	jake	modified cleanup lines to remove files then dirs
		030117	jake	made working directories in /tmp
		030205	jake	switched search dirs for existing mvis
				to search monthdir first
		030715	jake	adding PNG keyword to pass on



	%H% %W% : LASCO IDL LIBRARY


MAKE_IMAGE_EIT

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

UNCTION MAKE_IMAGE_EIT, img, hdr, $
FIXGAPS=fixgaps, $
NOLABEL=nolabel, $
NOBYTESCL=nobytescl, $
FILENAME=filename, $
USEEITPREP=useeitprep, $
RDIFF=rdiff


 Returns scaled EIT image with time label and sets color table for viewing
 image.

 INPUTS:
  img		512x512 or 1024x1024 EIT image array
  hdr		LASCO header structure

 OUTPUTS:
  1024x1024 BYTARR

 KEYWORDS:
  FIXGAPS	If set, replace gaps with previous image (in common block)
  NOLABEL	If set, do not put on time label
  NOBYTESCL	If set, floating point array with no time label
  FILENAME	Set to full filename if image to be read here
  USEEITPREP	Set if wanting to use EIT_PREP, must also use FILENAME
  RDIFF	Set equal to variable which will contain scaled running difference image

 SIDE EFFECTS:
  changes color table

 MODS:

 1999/05/21	N B Rich	Add FIXGAPS keyword, common block
 1999/05/26	N B Rich	Move case statement; make all images 1024x1024
 1999/11/15 	N B Rich	Adapt for Mercury transit images (horiz. strips)
 1999/12	N B Rich	Check for allowable nz
 2000/01	N B Rich	Add NOLABEL keyword
 2000/09/08	N B Rich	Add EIT_NORM_RESPONSE and change bmin/bmax settings
 2000/09/22	n b rich	Divide by exptime and sumcol^2
 2001/01/29    n.b.rich	Change bmin/bmax after updating SSW library
 2001/02/09	n.b.rich	Move reduce_std_size and remove box_refn
 2001/02/12	n.b.rich	Add NOBYTESCL option
 2001.03.01	n.b.rich	Reset bmin,bmax and colortables for new flat field;
				fixed hsize
 2001.03.02	n.b.rich	Fix ind00 again and fix call to EIT_DEGRID
 2001.03.06	n.b.rich	Do ind00 before reduce_std_size
 2001.04.11  	n.b.rich	Add default box_avg values

 20010516		jake	Added autoscaling of images based on median to help
				correct for binned image problems.  Corrected indentations
				on all code.
 2001.06.07	n.b.rich	Omit /ORIG from EIT_DEGRID call for SSW
 20010724		jake	began incorporation of EIT_PREP
 2002.04.08	n.b.rich	Change location of .dat files
 2002.08.05	n.b.rich	Change lasco_hdr2struct to lasco_fitshdr2struct
	030723		jake		rotate image if CROTA1 = 180
 2003.12.22, nbr - Add rdiff keyword

  12/23/03 @(#)make_image_eit.pro	1.11 - IDL NRL LASCO Library


MAKE_VHS_GIF

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

 NAME:
	MAKE_VHS_GIF

 PURPOSE:
	This procedure makes a series of gif files from a movie, 
	stored in mvi format for putting onto a VHS tape

 CATEGORY:
	Movie

 CALLING SEQUENCE:
	MAKE_VHS_GIF,Gif_file


 INPUTS:
	Gif_file:	A string giving the root file name of the gifs:
			It should be no more than 8 characters.  It is
			suggested that the name should end in gif, leaving
			5 characters for the useful information.  The
			files will then have an extension of 001, 002, etc.
			A path can be included at the beginning of the string.

 OPTIONAL INPUTS:
	Movie_file:	The name of the .mvi file.  If this is not present
			you will be allowed to select the file.
	
 KEYWORD PARAMETERS:
	Title:		An optional title to be added to the top of the image.

 OUTPUTS:
	A series of gif files will be written to disk.

 EXAMPLE:
	To create a series of gif files:

		MAKE_VHS_GIF,'c3j96gif',title='SOHO/LASCO  3.7 - 32 Rs'

 MODIFICATION HISTORY:
 	Written by:	R.A. Howard, NRL, 9/25/96

	@(#)make_vhs_gif.pro	1.2 09/12/97 LASCO IDL LIBRARY


MKMOVIE

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : MKMOVIE
               
 Purpose     : Load FITS files into pixmaps and call WRUNMOVIE for animation.
               
 Explanation : This procedure sorts the images by time, reads them, and 
		normalizes to the exposure time of the first image.
		WRUNMOVIE is called to start a widget interface for the 
		animation sequence.  The on_off_diff keyword results in a movie
               where each on line image is displayed with a nearby offband image
               subtracted. Default is to rectify images by CROTA1.
               
 Use         : MKMOVIE, list, bmin, bmax, /TIMES, /DIFF, /NO_NORMAL, /NO_SORT, $
                        UNSHARP=unsharp, PAN=pan, COORDS=coords, BOX=box, $
                        /RATIO, /USE_MODEL,/FLAT_FIELD,/ON_OFF_DIFF,/MASK_OCC,/LG_MASK_OCC
                        /RUNNING_DIFF, /RADIAL, /DEGRID, /FIXGAPS, /LOG_SCL, /SQRT_SCL, $
			 FILL_COL=fill_col, SAVE=save

      Example: IDL> MKMOVIE, 'list960123', -100, 100, /DIFF

      Example: If you want to display BYTARR images straight from the FITS files without
		any scaling use:
               IDL> MKMOVIE, 'list', 0, 255, /NO_NORMAL, /NO_SORT
    
 Inputs      : list : Name of file containing names of FITS files.
		       Or a STRARR of the image names.
               bmin, bmax : Minimum and maximum DN for BYTSCL.
               
 Outputs     : None.
               
 Keywords    : The following keywords apply to all telescopes (C1,C2,C3,EIT)

		DBIAS = amount (DN) to subtract from raw image, in addition to bias
		/VERBOSE   : Print more info about each frame
		LABELPOS   : Set equal to 2-d array containing x-pos and y-pos of lower left
			corner of label printed on each frame; default is [10,10] for full frame
		/NORECTIFY : DO NOT Rectify images to solar north up based on roll value in 
			     $ANCIL_DATA/attitude/roll
		/KEEP	   : Tell wrunmovie not to erase pixmaps
		/TIFF	   : Save movie as TIFF frames
		/BAD_SKIP  : Skip bad frames based on nz median
		/C23	   : Use occulter mask for C2
		/NOCAM	   : Do not print detector name with time
		/HIDE_PYLON: hide pylon based on pixel values 
		/SQUARE    : Makes square 480x480 frames for video (also set /VIDEO)
		/NOEXPCORR : Don't do exposure time correction, but subtract bias
		/OUTER	   : Set along with MASK_OCC to fill in outer mask only
		/STAIND	   : Start with this position in the input file (for output filenames)
		/NX,/NY	   : Output size in pixels (superceded by PAN)
		/VIDEO	   : Generate frames ready to be saved as PICT files for video
		/SDIR       : Directory to save video frames in
		/CREM	   : Remove cosmic rays using REMOVE_CR (2 image) procedure;
			     Set CREM = 2 if you wish to define an area not to do CR removal
		/LOGO	   ; Add LASCO logo to bottom right corner
		/AUTOMAX   : Compute bmin and bmax based on median
		/LEE_FILT   : Apply Leefilt function to filter noise.
               /TIMES     : Set this keyword to display date and time in images.
		/DIFF      : Set this keyword to make a difference movie.  The 
			     first image is subtracted from all subsequent images.
		/RUNNING_DIFF  : Make a difference movie, subracting the preceding image.
		/NO_NORMAL : Don't normalize exposure times to that of the first image or subtract bias
		/NO_SORT   : Don't sort by time in header.
               UNSHARP    : Set this keyword to make a movie of unsharp masked images.
                            The value of the keyword if any is set to the size of the
                            unsharp mask, default=25
                            Example:  A value of 9 would form a 9x9 unsharp mask
		/RATIO     : If using diff or running_diff display data as ratio of image/reference frame
               /MASK_OCC  : applies a sun sized circle and removes the internal part of the image
               /LG_MASK_OCC:applies a sun sized circle and removes the part of the field to 1.2Rsun
                            for C1 (especially good for the longer 100s exposures).  
			     For C3 the pylon is masked
		/LOG_SCL   : Applies ALOG10() function to image before byte scaling
		/SQRT_SCL  : Applies SQRT() function to image before byte scaling
		/FIXGAPS   : Set to 1 to fill data gaps in image with color specified by FILL_COL
		             Set to 2 to fill data gaps in image with values from previous image
		FILL_COL   : Set this keyword to the color index to use for data gaps and occ masks.
		SAVE       : For use in batch mode.  Set this keyword to the name of the .mvi file
			     to save as.  Routine will save movie and then exit.
		PAN        : Default is to resize images to pixel size of the first image.  Set this
			     keyword to perform additional scaling.  Example: set to 0.5 for 2x2 rebinning.
		COORDS     : Set to 4 element array of image coordinates to use relative to 1024x1024 image.
			     Example: COORDS=[0,1023,128,895] for C2 Equatorial Field
		BOX        : Set to 4 element array of image coordinates to use for box normalization 
			     relative to (rectified) 1024x1024 image. Images are scaled relative to average counts
			     in box of first image. Example: BOX=[461,560,641,740]
		REF_BOX    : Set to avg counts specified in BOX otherwise first image is used

             : The following keywords apply only to C1

               /ON_OFF_DIFF: differences each on line image with an image taken at a continuum wavelength
               /FLAT_FIELD : normalizes each image by a door closed image to remove the solar spectrum
               /RADIAL	    : applies a radial filter

             : The following keywords apply only to C2 and C3

		USE_MODEL : If using diff or running_diff use background corona model
                           as base frame.   USE_MODEL=1 for closest average (any_year) monthly model
                                            USE_MODEL=2 for closest monthly model
                                            USE_MODEL=3 for for overall yearly model
					     USE_MODEL= array to do subtraction or ratio with

             : The following keywords apply only to EIT

               /DEGRID	    : applies the degridding algorithm

 Calls       : WRUNMOVIE

 Side effects: Creates multiple pixmaps.
               
 Category    : Image Display.
               
 See Also    : WMKMOVIE.PRO is a widget front-end to this procedure.
               GENERIC_MOVIE.PRO reads in bytescaled fits or gif files and creates a movie.
               
 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, Jan 1996.
               
 Modified    : SEP 29 May 96 - Place frames into multiple pixmaps instead of 1 large
				pixmap because of limitations on window size in IDL.
               SEP  9 Jul 96 - Read in img headers as structures and pass to wrunmovie
               SEP 18 Oct 96 - Add option to pass in STRARR of image names instead of filename.
               SEP 24 Oct 96 - added /RATIO and /USE_MODEL options
               RAH 13 Dec 96 - added check for daily median image which doesn't have bias
               CMK 16 Feb 97 - added all C1 related features and changed the procedure name to mkc1movie2
           RAH/SEP 14 Mar 97 - integrated mkc1movie2 features into mkmovie
               SEP 21 Mar 97 - corrected bias subtraction for LEB summed images
               SEP 01 Oct 97 - added /SUM keyword to OFFSET_BIAS call
               SEP 22 Oct 97 - fixed divide by zero error for /RATIO option
               SEP 31 Oct 97 - Binned images are scaled (/bin^2) for level_05 images only
               SEP 13 Nov 97 - Added /FLAT_FIELD for EIT, added /NEW flag to EIT_DEGRIDN
               RAH 02 Feb 98 - Now normalizes to calculated exposure time (if data exists).
		NBR 06 Nov 98 - Change default fillcol to median(image); change LG_MASK_OCC for c3 to use C3clearmask2.dat
		NBR 16 Dec 98 - Add LEEFILT keyword
		NBR  8 Feb 99 - Add AUTOMAX keyword
		NBR 11 Feb 99 - Move up first call of REDUCE_STD_SIZE
		NBR 17 Feb 99 - Do not divide by lebxsum^2 (done in REDUCE_STD_SIZE)
		NBR 10 Mar 99 - Update AUTOMAX keyword
		NBR 19 Mar 99 - Add LOGO keyword
		NBR 26 Mar 99 - Add DISTORT keyword, update LEE_FILT keyword, print time stats
		NBR  5 Apr 99 - Add CREM keyword before BYTSCL; add VIDEO keyword; refresh
				ref image for longer movies; allow arbitrary final size (NX by NY)
		NBR  9 Apr 99 - Move initialization of yloc 
		NBR 29 Apr 99 - Read obs. times from img_hdr.txt instead of file headers for 
				sorting; read other header info when image is read in instead 
				of at beginning
		NBR 30 Apr 99 - Fix fhsize problem; put AUTOMAX in loop
		NBR  3 May 99 - Fix header/time offset problem when movie starts w/ 2nd frame
		AEE  4 May 99 - Added /SH keyword to spawn command
		NBR  5 May 99 - Move image resize, bias subtraction, ind0/ind00 assignment; 
				Change fhsize, fvsize assignment
		NBR 14 May 99 - Change dumhdr line for determining ind00 in EIT case
 ** diverges from library version
		NBR    May 99 - Add SQUARE keyword; check for img_hdr.txt file; add DBIAS, HIDE_PYLON keywords; add toobig variable to ind00; add NOCAM keyword
		oNBR    Jun 99 - Move rebin/congrid to end; fix hsize,vsize so PAN works for subfields; fix suncen, sec_pix; 
		NBR	Jun 99 - let USE_MODEL be set to model you want to use
		NBR    Jul 99 - Fixed problem with COORDS
		oNBR 27 Aug 99 - IF exptime LT 15 sec then dbias = -7; BAD_SKIP keyword; change win_index incrementation
		NBR    Sep 99 - Move ADD LOGO to before REBIN; use updated EIT_DEGRID and EIT_FLAT
		NBR    Oct 99 - Add RUNNING_DIFF check in FIXGAPS; change c2 values for AUTOMAX; move 'fill gap with
				previous image' to before take ratio; Move USE_SHARP outside of RATIO group and combine
				with UNSHARP (both options use POINT_FILTER and subtract stray light)
		oNBR   Nov 99 -  Move subtract bias to before REDUCE_STD_SIZE; Fix problem with ind00
		NBR   Dec 99 -  Add TIFF keyword; 
		oNBR  Dec 99 - 	use c3clearmask2.fts with C3 LG_MASK_OCC
		NBR   Jan 00 -  Mask edge of all images; 
		oNBR  Jan 00 - 	change !D.N_COLORS to !D.TABLE_SIZE
	NBR	Feb 00 - Change R to P for determining img0_x1 etc.; Move GET_SUN_CENTER to after REDUCE_STD_SIZE
	NBR	Mar 00 - Switch USE_MODEL options ALL and ANY_YEAR; Change HIDE_PYLON and LG_MASK_OCC; fix C1 ON_OFF_DIFF; convert C1 hdr to structure; do not multiply by 100 for C1 log scale
	NBR    Apr 00 - Skip files with READFITS errors
	NBR    Jun 00 - Compute dbias for C3 based on pylon values, corrected for exp time;
			Move CREM to before diff or ratiopl
	NBR    Aug 00 - MK4 compatibility; pylon changes (box_x1,etc and pylon2)
	NBR    Jan 01 - Rebin c3mask and c3 corner box; change AUTOMAX values for daily mvis;
			Implement BIAS keyword with REDUCE_STD_SIZE; futz with ind0 and ind00
	NBR 3/21/01 -	Use /ORIG for degrid
	NBR 3/23/01 -	Don't skip any frames unless BAD_SKIP set (messes up headers)
			Put readfits in REPEAT loop
	NBR 4/6/01  - 	Don't subtract bias in REDUCE_STD_SIZE; move REDUCE_STD_SIZE down
	NBR 4/12/01 - 	Fixed ind0; increased c2 r_occ_out by 0.3
	NBR 6/7/01 - 	Omit ORIG in EIT_DEGRID call to make compatible with new version
	NBR 9/20/01-	Use fvsize instead of vsize when resizing images
	NBR 11/9/01 - 	Don't subtract bias if /NO_NORMAL
	NBR 11/19/01 - 	Use EIT_PREP; subtract bias in REDUCE_STD_SIZE (if not EIT or NO_NORM or monthly)
	NBR 11/20/01 -	Test image times for rolled condition (disabled)
	NBR 12/20/01 - Do rebin after subimage extraction; add FULL keyword
	NBR 01/03/02 - Add RECTIFY keyword
	NBR 01/07/02 - Add caching function; add LABELPOS keyword; VERBOSE keyword
	NBR 02/21/02 - Modify behavior of zero files
	NBR 09/19/02 - Fix parts problem for files in current directory; fixed problem with subfields
	NBR 11/21/02 - Removed file caching
	jake	030717	added lines to read hdr.CROTA1 to determine if image is rolled and compensate
	NBR 03.09.22 - Call wrunmovie with RECTIFIED keyword; correct suncenter and BOX if rectified
	NBR 03.09.25 - Fix DOFULL,img_pan bug
	NBR 03.10.09 - Fix NORECTIFY error
	NBR 04.01.08 - Fix md0 (missing block) error
	NBR 04.03.10 - If fits error, pause instead of stop
 

 SCCS variables for IDL use
 
 Version:	%H% %W% : NRL LASCO IDL Library


MKMOVIE0

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : MKMOVIE0 (obsolete version of mkmovie.pro)
               
 Purpose     : Load FITS files into pixmaps and call WRUNMOVIE for animation.
               
 Explanation : This procedure sorts the images by time, reads them, and 
		normalizes to the exposure time of the first image.
		WRUNMOVIE is called to start a widget interface for the 
		animation sequence.  The on_off_diff keyword results in a movie
               where each on line image is displayed with a nearby offband image
               subtracted.
               
 Use         : MKMOVIE, list, bmin, bmax, /TIMES, /DIFF, /NO_NORMAL, /NO_SORT, $
                        UNSHARP=unsharp, PAN=pan, COORDS=coords, BOX=box, $
                        /RATIO, /USE_MODEL,/FLAT_FIELD,/ON_OFF_DIFF,/MASK_OCC,/LG_MASK_OCC
                        /RUNNING_DIFF, /RADIAL, /DEGRID, /FIXGAPS, /LOG_SCL, /SQRT_SCL, $
			 FILL_COL=fill_col, SAVE=save

      Example: IDL> MKMOVIE, 'list960123', -100, 100, /DIFF

      Example: If you want to display BYTARR images straight from the FITS files without
		any scaling use:
               IDL> MKMOVIE, 'list', 0, 255, /NO_NORMAL, /NO_SORT
    
 Inputs      : list : Name of file containing names of FITS files.
		       Or a STRARR of the image names.
               bmin, bmax : Minimum and maximum DN for BYTSCL.
               
 Outputs     : None.
               
 Keywords    : The following keywords apply to all telescopes (C1,C2,C3,EIT)

		/BAD_SKIP  : Skip bad images based on NZ median
		/DBIAS	   : Adjust image bias by given amount
		/NOEXPCORR : Don't do exposure time correction, but subtract bias
		/OUTER	   : Set along with MASK_OCC to fill in outer mask only
		/STAIND	   : Start with this position in the input file (for output filenames)
		/NX,/NY	   : Output size in pixels (superceded by PAN)
		/VIDEO	   : Generate frames ready to be saved as PICT files for video
		/SDIR       : Directory to save video frames in
		/CREM	   : Remove cosmic rays using REMOVE_CR (2 image) procedure;
			     Set CREM = 2 if you wish to define an area not to do CR removal
		/LOGO	   ; Add LASCO logo to bottom right corner
		/AUTOMAX   : Compute bmin and bmax based on median
		/LEE_FILT   : Apply Leefilt function to filter noise.
               /TIMES     : Set this keyword to display date and time in images.
		/DIFF      : Set this keyword to make a difference movie.  The 
			     first image is subtracted from all subsequent images.
		/RUNNING_DIFF  : Make a difference movie, subracting the preceding image.
		/NO_NORMAL : Don't normalize exposure times to that of the first image.
		/NO_SORT   : Don't sort by time in header.
               UNSHARP    : Set this keyword to make a movie of unsharp masked images.
                            The value of the keyword if any is set to the size of the
                            unsharp mask, default=25
                            Example:  A value of 9 would form a 9x9 unsharp mask
		/RATIO     : If using diff or running_diff display data as ratio of image/reference frame
               /MASK_OCC  : applies a sun sized circle and removes the internal part of the image
               /LG_MASK_OCC:applies a sun sized circle and removes the part of the field to 1.2Rsun
                            for C1 (especially good for the longer 100s exposures).  
			     For C3 the pylon is masked
		/LOG_SCL   : Applies ALOG10() function to image before byte scaling
		/SQRT_SCL  : Applies SQRT() function to image before byte scaling
		/FIXGAPS   : Set to 1 to fill data gaps in image with color specified by FILL_COL
		             Set to 2 to fill data gaps in image with values from previous image
		FILL_COL   : Set this keyword to the color index to use for data gaps and occ masks.
		SAVE       : For use in batch mode.  Set this keyword to the name of the .mvi file
			     to save as.  Routine will save movie and then exit.
		PAN        : Default is to resize images to pixel size of the first image.  Set this
			     keyword to perform additional scaling.  Example: set to 0.5 for 2x2 rebinning.
		COORDS     : Set to 4 element array of image coordinates to use relative to 1024x1024 image.
			     Example: COORDS=[0,1023,128,895] for C2 Equatorial Field
		BOX        : Set to 4 element array of image coordinates to use for box normalization 
			     relative to 1024x1024 image. Images are scaled relative to average counts
			     in box of first image. Example: BOX=[461,560,641,740]
		REF_BOX    : Set to avg counts specified in BOX otherwise first image is used

             : The following keywords apply only to C1

               /ON_OFF_DIFF: differences each on line image with an image taken at a continuum wavelength
               /FLAT_FIELD : normalizes each image by a door closed image to remove the solar spectrum
               /RADIAL	    : applies a radial filter

             : The following keywords apply only to C2 and C3

		/USE_MODEL : If using diff or running_diff use background corona model
			     as base frame.  USE_MODEL=1 for closest average (any_year) monthly model
					     USE_MODEL=2 for closest monthly model
					     USE_MODEL=3 for for overall yearly model

             : The following keywords apply only to EIT

               /DEGRID	    : applies the degridding algorithm

 Calls       : WRUNMOVIE

 Side effects: Creates multiple pixmaps.
               
 Category    : Image Display.
               
 See Also    : WMKMOVIE.PRO is a widget front-end to this procedure.
               GENERIC_MOVIE.PRO reads in bytescaled fits or gif files and creates a movie.
               
 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, Jan 1996.
               
 Modified    : SEP 29 May 96 - Place frames into multiple pixmaps instead of 1 large
				pixmap because of limitations on window size in IDL.
               SEP  9 Jul 96 - Read in img headers as structures and pass to wrunmovie
               SEP 18 Oct 96 - Add option to pass in STRARR of image names instead of filename.
               SEP 24 Oct 96 - added /RATIO and /USE_MODEL options
               RAH 13 Dec 96 - added check for daily median image which doesn't have bias
               CMK 16 Feb 97 - added all C1 related features and changed the procedure name to mkc1movie2
           RAH/SEP 14 Mar 97 - integrated mkc1movie2 features into mkmovie
               SEP 21 Mar 97 - corrected bias subtraction for LEB summed images
               SEP 01 Oct 97 - added /SUM keyword to OFFSET_BIAS call
               SEP 22 Oct 97 - fixed divide by zero error for /RATIO option
               SEP 31 Oct 97 - Binned images are scaled (/bin^2) for level_05 images only
               SEP 13 Nov 97 - Added /FLAT_FIELD for EIT, added /NEW flag to EIT_DEGRIDN
               RAH 02 Feb 98 - Now normalizes to calculated exposure time (if data exists).
		NBR 06 Nov 98 - Change default fillcol to median(image); change LG_MASK_OCC for c3 to use C3clearmask2.dat
		NBR 16 Dec 98 - Add LEEFILT keyword
		NBR  8 Feb 99 - Add AUTOMAX keyword
		NBR 11 Feb 99 - Move up first call of REDUCE_STD_SIZE
		NBR 17 Feb 99 - Do not divide by lebxsum^2 (done in REDUCE_STD_SIZE)
		NBR 10 Mar 99 - Update AUTOMAX keyword
		NBR 19 Mar 99 - Add LOGO keyword
		NBR 26 Mar 99 - Add DISTORT keyword, update LEE_FILT keyword, print time stats
		NBR  5 Apr 99 - Add CREM keyword before BYTSCL; add VIDEO keyword; refresh
				ref image for longer movies; allow arbitrary final size (NX by NY)
		NBR  9 Apr 99 - Move initialization of yloc 
		NBR 29 Apr 99 - Read obs. times from img_hdr.txt instead of file headers for 
				sorting; read other header info when image is read in instead 
				of at beginning
		NBR 30 Apr 99 - Fix fhsize problem; put AUTOMAX in loop
		NBR  3 May 99 - Fix header/time offset problem when movie starts w/ 2nd frame
		AEE  4 May 99 - Added /SH keyword to spawn command
		NBR  5 May 99 - Move image resize, bias subtraction, ind0/ind00 assignment; 
				Change fhsize, fvsize assignment
		NBR 14 May 99 - Changed dumim line for determining ind00 in EIT case; change check for img_hdr.txt file; change coords for MK3; add time to tai_all 
 ** diverges from new version
		NBR 19 May 99 - Fix problem with box_ref when it hits all gap
		NBR  3 Jun 99 - Move rebin/congrid to end; fix hsize,vsize so PAN works for subfields; fix suncen, sec_pix; update AUTOMAX keyword
		NBR 26 Aug 99 - Add DBIAS keyword
	NBR 27 Aug 99 - IF exptime LT 15 sec then dbias = -7; BAD_SKIP keyword; change win_index incrementation
	NBR 15 Oct 99 - Fix initialization of prev
	NBR 22 Oct 99 - Change C2 AUTOMAX settings
	NBR    Nov 99 - Move subtract bias to before REDUCE_STD_SIZE; Fix problem with ind00
	NBR    Jan 00 - Change !D.N_COLORS to !D.TABLE_SIZE
	NBR    Feb 00 - Move GET_SUN_CENTER to after REDUCE_STD_SIZE
	NBR    Mar 00 - Change USE_MODEL options to use ANY_YEAR instead of ALL; fix C1 ON_OFF_DIFF; convert C1 hdr to structure; do not multiply by 100 for C1 log scale
	NBR    Apr 00 - Skip files with READFITS errors
	NBR  1 Aug 00 - Fix USE_MODEL if/then in for loop; modify for MK4 images (img0_x1,x2)
	NBR  3 Aug 00 - Modify for MK4 images (arcs,sec_pixel,dbiasx)


 Version:  09/24/03 @(#)mkmovie0.pro	1.1 - NRL LASCO IDL Library
 	(SCCS variables)
 



MKMOVIEM

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : MKMOVIEM
               
 Purpose     : Load FITS files into pixmaps and call WRUNMOVIEM for animation.
               
 Explanation : This procedure sorts the images by time, reads them, and 
		normalizes to the exposure time of the first image.
		WRUNMOVIEM is called to start a widget interface for the 
		animation sequence.
               
 Use         : MKMOVIEM, list, bmin, bmax, /TIMES, /DIFF, /NO_NORMAL, /NO_SORT, $
                        IMG_REBIN=[nx,ny], IMG_COORDS='(x1:x2,y1:y2)', UNSHARP=unsharp

      Example: IDL> MKMOVIEM, 'list960123', -100, 200, /DIFF, IMG_REBIN=[512,512]
      Example: IDL> MKMOVIEM, 'list960123', 400, 13000, /TIMES, IMG_COORDS='(0:511,*)'

      Example: If you want to display BYTARR images straight from the FITS files without
		any scaling use:
               IDL> MKMOVIEM, 'list', 0, 255, /NO_NORMAL, /NO_SORT
    
 Inputs      : list : Name of file containing names of FITS files.
               bmin, bmax : Minimum and maximum DN for BYTSCL.
               
 Outputs     : None.
               
 Keywords    : /TIMES : Default is to display image names in widget,
			 set this keyword to display TIME_OBS.
		/DIFF  : Set this keyword to make a difference movie.  The 
			 first image is subtracted from all subsequent images.
		/RUNNING_DIFF  : Make a difference movie, subracting the preceding image.
		/NO_NORMAL : Don't normalize exposure times to that of the first image.
		/NO_SORT   : Don't by time in header.
		IMG_REBIN  : Set this keyword to the size you want to REBIN all images to.
			     Example: [512,512] would REBIN a full field, full resolution
			     image down to 512x512.
		IMG_COORDS : Set this keyword to select a partial field of all images.
			     Example: '(*,0:511)' would select the bottom 1/2 of a full
			     field full resolution (1024x1024) image.
               UNSHARP    : Set this keyword to make a movie of unsharp masked images.
                            The value of the keyword if any is set to the size of the
                            unsharp mask, default=25
                            Example:  A value of 9 would form a 9x9 unsharp mask
		DERIV      : Divide difference images by time difference 
			     between frames.  Set value to the number of hours,
			     on average, between frames.
               /NOSTARS   : Attemps to remove stars using POINT_FILTER by Mike Andrews
               /FIXGAPS   : Sets data gaps so they appear as neutral grey in difference images

 Calls       : WRUNMOVIEM, FIXEXP, POINT_FILTER

 Restrictions: IMG_REBIN is applied before IMG_COORDS if both are selected.
               
 Side effects: Creates multiple pixmaps.
               
 Category    : Image Display.
               
 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, Jan 1996.
               
 Modified    : SEP 29 May 96 - Place frames into multiple pixmaps instead of 1 large
				pixmap because of limitations on window size in IDL.
               SEP  9 Jul 96 - Read in img headers as structures and pass to wrunmovie
		SHH 12 Jul 96 - Display each frame after it's processed
				Use FIXEXP function rather than exposure times for image normalization
				Scale images absolutely, rather than using TVSCL
		SHH 23 Jul 96 - Added DERIV keyword 
               SEP 29 Sep 96 - Placed frames in 1024x1024 image window.

 Version     : 3.1

	@(#)mkmoviem.pro	1.1 10/12/96 LASCO IDL LIBRARY


MKMOVIEWLC

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : MKMOVIEWLC
               
 Purpose     : Load FITS files into pixmaps and call WRUNMOVIE for animation.
               
 Explanation : This procedure sorts the images by time, reads them, and 
		normalizes to the exposure time of the first image.
		WRUNMOVIE is called to start a widget interface for the 
		animation sequence.
               
 Use         : MKMOVIEWLC, list, bmin, bmax, /TIMES, /DIFF, /NO_NORMAL, /NO_SORT, $
                        IMG_REBIN=[nx,ny], IMG_COORDS='(x1:x2,y1:y2)', UNSHARP=unsharp, $
                        /RATIO, /USE_MODEL, ROLL=roll, /MASK, /SUNMASK

      Example: IDL> MKMOVIEWLC, 'list960123', -100, 200, /DIFF, IMG_REBIN=[512,512]
      Example: IDL> MKMOVIEWLC, 'list960123', 400, 13000, /TIMES, IMG_COORDS='(0:511,*)'

      Example: If you want to display BYTARR images straight from the FITS files without
		any scaling use:
               IDL> MKMOVIEWLC, 'list', 0, 255, /NO_NORMAL, /NO_SORT
    
 Inputs      : list : Name of file containing names of FITS files.
		       Or a STRARR of the image names.
               bmin, bmax : Minimum and maximum DN for BYTSCL.
               
 Outputs     : None.
               
 Keywords    : /TIMES : Default is to display image names in widget,
			 set this keyword to display TIME_OBS.
		/DIFF  : Set this keyword to make a difference movie.  The 
			 first image is subtracted from all subsequent images.
		/RUNNING_DIFF  : Make a difference movie, subracting the preceding image.
		/NO_NORMAL : Don't normalize exposure times to that of the first image.
		/NO_SORT   : Don't by time in header.
		IMG_REBIN  : Set this keyword to the size you want to REBIN all images to.
			     Example: [512,512] would REBIN a full field, full resolution
			     image down to 512x512.
		IMG_COORDS : Set this keyword to select a partial field of all images.
			     Example: '(*,0:511)' would select the bottom 1/2 of a full
			     field full resolution (1024x1024) image.
               UNSHARP    : Set this keyword to make a movie of unsharp masked images.
                            The value of the keyword if any is set to the size of the
                            unsharp mask, default=25
                            Example:  A value of 9 would form a 9x9 unsharp mask
		/RATIO     : If using diff or running_diff display data as ratio
		/USE_MODEL : If using diff or running_diff use background corona model
			     as base frame.
		ROLL       : Set this keyword to rotate the image by the roll angle.  If
			     set to 1 then read in the roll angle from the date file
		/MASK      : Set this keyword to put a mask at the edge of the field
			     at 9 R (13.4 pixels per radius)
		/SUNMASK   : Set this keyword to put a circle where the sun should be


 Calls       : WRUNMOVIE

 Restrictions: IMG_REBIN is applied before IMG_COORDS if both are selected.
               
 Side effects: Creates multiple pixmaps.
               
 Category    : Image Display.
               
 Prev. Hist. : None.

 Written     : Scott Paswaters, NRL, Jan 1996.
               
 Modified    : SEP 29 May 96 - Place frames into multiple pixmaps instead of 1 large
				pixmap because of limitations on window size in IDL.
               SEP  9 Jul 96 - Read in img headers as structures and pass to wrunmovie
               SEP 18 Oct 96 - Add option to pass in STRARR of image names instead of filename.
               SEP 24 Oct 96 - added /RATIO and /USE_MODEL options
               SEP 14 Nov 96 - Modified to read in solwind wlc images
               RAH 14 May 98 - Modified to roll the image
		NBF  7 Jun 00 - Read separate header files; insert wlc image in full frame; cancel !order=1

 Version: 11/02/01 @(#)mkmoviewlc.pro	1.8 - LASCO NRL IDL Library


MVI2DATA_CUBE

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

 Project     : SOHO - LASCO/EIT

 Name        : MVI2DATA_CUBE

 Purpose     : Convert .mvi movie to data cube and header array

 Use         : IDL> MVI2DATA_CUBE, mvifile, images, headers, /SAVE

 Inputs      : mvifile 	;** name of mvi movie file

 Outputs     : images 		;** 3 dimensional bytarr of images (nx,ny,len)
	        headers		;** array of header structures
** {mvihdr, filename:'',detector:'',time_obs:'',date_obs:'',filter:'',polar:'',sector:'',exptime:0.0}


 Keywords    : /SAVE  ;** saves images, headers, and r,g,b color vectors to IDL saveset (idlsave.dat)

 Category    : Image Conversion.

 Written     : Scott Paswaters, NRL May 1998.

 Modified    : 

 Version     : 1.0

       @(#)mvi2data_cube.pro 1.1 10/12/96 LASCO IDL LIBRARY


MVI2FRAMES

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

 Project     : SOHO - LASCO/EIT

 Name        : MVI2FRAMES

 Purpose     : Convert .mvi movie to GIF, TIFF, or PICT frames.

 Use         : IDL> MVI2FRAMES, mvifile, type, /LOGO, /TIMES, /VIDEO, FITS_HDR=fits_hdr

 Inputs      : mvifile 	;** name of mvi movie file
             : type: 0 = gif
              	      1 = tiff
              	      2 = pict
              	      3 = fits

 Keywords    : /LOGO 		;** add the LASCO logo in lower right corner
               /TIMES 		;** to have the date & time displayed
               /VIDEO 		;** to reduce to video resolution 640x480 or:
               VIDEO=2 	;** to reduce to video resolution 480x480
                FITS_HDR	;** strarr fits hdr of additional keyword/value pairs 
				;** to include with fits files.
               /NAME 		;** default is to name images date_time.ext, set this
				;** keyword to 1 them after the mvi filename001.ext (etc)
				;** or set it to a string to be named string001.ext (etc)

 Side effects: Image files are written to current directory.
               Be sure to have the color table loaded before calling.

 Category    : Image Conversion.

 Written     : Scott Paswaters, NRL Dec. 1997.

 Modified    : SEP  05 Feb 1997 - Mods for mvi version 1 format.
             : SEP  14 Mar 1997 - Name images date_time.ext

 Version     : 2.0

       @(#)mvi2frames.pro 1.1 10/12/96 LASCO IDL LIBRARY


MVI2GIF

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

 Project     : SOHO - LASCO/EIT

 Name        :

 Purpose     : Convert frames of .mvi movie file to individual GIFs

 Use         : IDL> MVI2GIF, InputMVIFilename, /TIMEANDCAM

 Inputs      : inputdir

 Optional Inputs: None

 Outputs     : GIF files

 Keywords    :	TIMEANDCAM	Adds time and cam to filename instead of frame number

 Comments    :

 Side effects:

 Category    : Image Display.  Animation.

 Modified:
	June 2000 - B. Podlipnik
	OCt  2000, N Rich - Load color table from MVI file
	020207	Jake	Added /TIMEANDCAM keyword
	030715	jake	added PNG keyword
	030715	jake	removed PNG rotate during write

 Version     :

;;; 11/02/01 @(#)mvi2gif.pro	1.3 - NRL/LASCO IDL LIBRARY

 07/15/03 @(#)mvi2gif.pro	1.8 :LASCO IDL LIBRARY


MVIPLAY

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : MVIPLAY
               
 Purpose     : Widget tool to display animation sequence.
               
 Explanation : This tool allows the user to view a series of images as
		an animation sequence.  The user can control the direction,
		speed, and number of frames with widget controls.
		Click any mouse button inside draw window to bring forward/hide
		control widget.
               
 Use         : IDL> MVIPLAY [, mvifile, /DISK, /FITSCREEN, START=start, SKIP=skip, LENGTH=length]

		Without any inputs, program will prompt user to select an existing .mvi file.
    Example  : IDL> MVIPLAY

               Or you could have one argument, the .mvi file you want to load.
    Example  : IDL> MVIPLAY, 'mymovie.mvi'

		Use keyword /DISK to play movie from disk instead of loading into RAM.
		This option is useful for viewing large movies on systems with a limited
		amount of RAM.  The maximum speed of the movie will depend on the transfer
		speed of the hard drive or CD-ROM and will be slower than loading into RAM.
    Example  : IDL> MVIPLAY, 'mymovie.mvi', /DISK
    
		Use keyword /FITSCREEN to redimension image to 640x480 (does not work with /DISK)
    Example  : IDL> MVIPLAY, 'mymovie.mvi', /FITSCREEN
    
               Use the keyword SKIP to skip every n frames (good for large movies).
    Example  : IDL> MVIPLAY, SKIP=1         ;* to skip every other frame

               Use the keyword START to start reading movie at frame n (good for large movies).
    Example  : IDL> MVIPLAY, START=100              ;* frame 100 becomes 1st frame of movie

               Use the keyword LENGTH to specify number of frames to read in (good for large movies).
    Example  : IDL> MVIPLAY, START=100, LENGTH=60   ;* to load frames 100-159
    
               Use the keyword TIMES to display date & time on frames (if not already there).
    Example  : IDL> MVIPLAY, /TIMES 	   ; does not work with /DISK keyword. 

               Use the keyword SPEED to preset playback speed. Range is 1-100. Default is 90.
    Example  : IDL> MVIPLAY, SPEED=80 

 Calls       : BREAK_FILE

 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Scott Paswaters, NRL Dec. 2 1996.

 Modified    : SEP  10 Jan 1997 - Added SKIP,START,LENGTH,TIMES keywords.
               SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  04 Apr 1997 - Fixed swapflag for .mvi files written on big_endian workstations
               SEP  22 Sep 1997 - Added current frame scrolling widget.
               SEP  27 Jan 1998 - Added /DISK option for playing from disk.
		NBR   5 May 1999 - Change PICKFILE to DIALOG_PICKFILE
		NBR   5 Apr 2000 - Add /SPEED keyword and change default speed
               NBR   1 Oct 2003 - Update READ_MVI
               RAH  23 Sep 2004 - Mods for mvi version 5 (truecolor)

 Version     : 
	09/23/04 @(#)mviplay.pro	1.9   LASCO IDL LIBRARY

 See Also    : MKMOVIE.PRO


MVIPLAY3[1]

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : MVIPLAY3
               
 Purpose     : Widget tool to display animation sequence.
               
 Explanation : This tool allows the user to view a series of images as
		an animation sequence.  The user can control the direction,
		speed, and number of frames with widget controls.
		Click any mouse button inside draw window to bring forward/hide
		control widget.
               
 Use         : IDL> MVIPLAY3 [, mvifile, /DISK, /FITSCREEN, START=start, SKIP=skip, LENGTH=length]

		Without any inputs, program will prompt user to select an existing .mvi file.
    Example  : IDL> MVIPLAY3

               Or you could have one argument, the .mvi file you want to load.
    Example  : IDL> MVIPLAY3, 'mymovie.mvi'

		Use keyword /DISK to play movie from disk instead of loading into RAM.
		This option is useful for viewing large movies on systems with a limited
		amount of RAM.  The maximum speed of the movie will depend on the transfer
		speed of the hard drive or CD-ROM and will be slower than loading into RAM.
    Example  : IDL> MVIPLAY3, 'mymovie.mvi', /DISK
    
		Use keyword /FITSCREEN to redimension image to 640x480 (does not work with /DISK)
    Example  : IDL> MVIPLAY3, 'mymovie.mvi', /FITSCREEN
    
               Use the keyword SKIP to skip every n frames (good for large movies).
    Example  : IDL> MVIPLAY3, SKIP=1         ;* to skip every other frame

               Use the keyword START to start reading movie at frame n (good for large movies).
    Example  : IDL> MVIPLAY3, START=100              ;* frame 100 becomes 1st frame of movie

               Use the keyword LENGTH to specify number of frames to read in (good for large movies).
    Example  : IDL> MVIPLAY3, START=100, LENGTH=60   ;* to load frames 100-159

               Use the keyword TIMES to display date & time on frames (if not already there).
    Example  : IDL> MVIPLAY3, /TIMES 	   ; does not work with /DISK keyword.

               Use the keyword SPEED to preset playback speed. Range is 1-100. Default is 90.
    Example  : IDL> MVIPLAY3, SPEED=80

 Calls       : BREAK_FILE

 Side effects: None.

 Category    : Image Display.  Animation.

 Written     : Scott Paswaters, NRL Dec. 2 1996.

 Modified    : SEP  10 Jan 1997 - Added SKIP,START,LENGTH,TIMES keywords.
               SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  04 Apr 1997 - Fixed swapflag for .mvi files written on big_endian workstations
               SEP  22 Sep 1997 - Added current frame scrolling widget.
               SEP  27 Jan 1998 - Added /DISK option for playing from disk.
		NBR   5 May 1999 - Change PICKFILE to DIALOG_PICKFILE
		NBR   5 Apr 2000 - Add /SPEED keyword and change default speed
		thejake	011109 - After testing, additions do not seem to have done any harm so adding
					WRUNMOVIEM3, MVIPLAY3, WRITE_DISK_MOVIE3, and READ_MVI3 to library.
					Once an MVI is written with the version 3 software, it will need to
					be read with it as well.


 Version     : 2.2

 See Also    : MKMOVIE.PRO
  07/09/03 @(#)mviplay3.pro	1.3   LASCO IDL LIBRARY


MVIPLAY3[2]

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

 Project     : SOHO - CDS

 Name        :
	BREAK_FILE
 Purpose     :
	Break a filename into its component parts.
 Explanation :
	Given a file name, break the filename into the parts
	of disk/logical, the directory, the filename, the
	extension, and the file version (for VMS)
 Use         :
	BREAK_FILE, FILE, DISK_LOG, DIR, FILNAM, EXT, FVERSION, NODE
 Inputs      :
	file	- The file name
 Opt. Inputs :
	None.
 Outputs     : 
	disk_log- The disk or logical (looks for a ":")
		  This is generally only valid on VMS machines
	dir	- The directory
	filnam	- The filename (excluding the ".")
	ext	- The filename extension (including the ".")
	fversion- The file version (only VMS)
	node	- The Node name (only VMS)
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	None.
 Common      : 
	None.
 Restrictions: 
	VMS:
		Assumes that : always precedes []
	ULTRIX:
		Right now it has trouble with the ultrix option of use
		of "." or ".."
 Side effects: 
	None.
 Category    : 
	Utilities, Operating_system.
 Prev. Hist. : 
	Written 1988 by M.Morrison
	   Aug-91 (MDM) Changed to handle Unix filename convensions
	28-Feb-92 (MDM) * Adjusted to handle arrays
	11-Mar-92 (MDM) - Perform a STRTRIM(x,2) on input string before
			  doing the "break-up"
	 1-Dec-92 (MDM) - Moved code to do filename, extension and version
			  number for both VMS and Unix (previously it
			  did not do version number code for Unix)
	29-Jan-93 (DMZ/MDM) - checked for node in file name
 Written     : 
	M. Morrison, August 1991.
 Modified    : 
	Version 1, William Thompson, GSFC, 23 April 1993.
		Incorporated into CDS library.
	Version 1.1, William Thompson, GSFC, 7 May 1993.
		Added IDL for Windows compatibility.
 Version     : 
	Version 1.1, 7 May 1993.


MVI_SUMMARY

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

RO MVI_SUMMARY, filename, ALL=all, MVI_ONLY=mvi_only

 Keywords:
  /ALL		Show info for each frame, default is MVI only

 Modified:
  2003.08.28, nbr - Add /MVI_ONLY
  2003.09.23, nbr - Make MVI_ONLY the default, add /ALL

  09/24/03, @(#)mvi_summary.pro	1.2 : NRL LASCO Library


PLOT_HT

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

 NAME:
	PLOT_HT

 PURPOSE:
	This procedure is used to display height-time curves. It reads in a
       height-time file created by one of the movie programs and generates
       a plot.

 CATEGORY:
	MOVIE

 CALLING SEQUENCE:
	PLOT_HT

 INPUTS:

 OPTIONAL INPUT PARAMETERS:
	Filename:	If filename is present then it is used immediately

 OUTPUTS:
	A plot is generated on the screen, and optionally a print file is
	generated of the form idlplot.psnnn, where nnn is a sequential
	number.

 OPTIONAL OUTPUT PARAMETERS:

 COMMON BLOCKS:
	com_xplot_ht

 SIDE EFFECTS:
	Initiates the XMANAGER if it is not already running.

 RESTRICTIONS:

 PROCEDURE:
	The various widgets are set up and registered.  The user selects the
	height-time file to be processed.  The file is read in and the data
	points plotted.  The user is then able to fit the data to polynomial
	functions of degree 1,2, or 3.  The plot can be printed.  The speeds
	can be saved to a file.

 MODIFICATION HISTORY:
 	Written by:	Scott Hawley, NRL Summer Student, June 1996
	Version 2	RA Howard, NRL, Modified plot calls to use utplot
	15 Oct 96	RAH, widgetized
       27 Oct 96       RAH, Corrected overplots of interpolated values
                            Set new window number before plotting
       08 Nov 96       RAH, Corrected situation if called without argument
       10 Nov 96       RAH, Corrected Acceleration = 2*fit_coeff
       11 Nov 96       RAH, Added plot of position angles
	25 Jun 02	NBR, Put in obsolete notice.

	@(#)plot_ht.pro	1.7 06/25/02 LASCO IDL LIBRARY


RAD_SPOKE

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

 NAME:
       rad_spoke

 PURPOSE:
       This procedure produces radia-spoke image of a directily observed 
       solar image by LASCO

 CATEGORY:
       DATA ANALYSIS

 CALLING SEQUENCE:
       rad_spoke,image_in,hdr_in,image_rad=image_rad,hdr_rad=hdr_rad

 INPUTS:
       image_in: image with direct solar observation
     
 OPTIONAL INPUTS:
       x0, y0: the Sun's center in pixel unit of the image
       r1, r2: inner and outer radius in pixel unit of the image for transformation   
       th1,th2:starting and ending azimuth angle in degree for transformation
               0 refer to north pole and increase counter-clockwise
       n_r: number of samples in radius in spoken image
       n_th: number of samples in azimuth angle in spoken image
       
 KEYWORDS

 OUTPUTS:
       image_rad: radial-spoke image

 RESTRICTIONS:

 PROCEDURE:
  
 EXAMPLE:
       rad_spoke,image_in,image_rad

 MODIFICATION HISTORY:
       Written by:     J. Zhang, Mar. 1, 2001


READ_HT

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

 NAME:
	READ_HT

 PURPOSE:
	This procedure is used to read height-time files.

 CATEGORY:
	MOVIE

 CALLING SEQUENCE:
	READ_HT,Filename,

 INPUTS:
	Filename:	If filename is present then it is used immediately

 OUTPUTS:
	The procedure returns the contents of the height time file in the
	common block.

 COMMON BLOCKS:
	None

 RESTRICTIONS:
	The file should not have any blank lines.

 PROCEDURE:
   	Reads in the height-time file, stores the height, time and position
	angle into arrays.  Time is converted to tai.

 MODIFICATION HISTORY:
 	Written by:	Scott H. Hawley, NRL Summer Student, June 1996
       02 May 97       RAH, Made into a separate file
	30 Sep 97	RAH, Mods for version 2
	 3 Feb 98	RAH, Correct read of feature description, add array to comments
	 3 Jul 02	NBR, Provide for case of no feature description

 07/03/02 @(#)read_ht.pro	1.8 :LASCO IDL LIBRARY



READ_MVI

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

RO READ_MVI, lu, file_hdr, ihdrs, imgs, swapflag, NO_COLOR=no_color, RGBVEC=rgbvec

 Project     : SOHO - LASCO/EIT

 Name        : READ_MVI

 Purpose     : Read MVI format files

 Use         : IDL> openr,1,'file.mvi'
		IDL> read_mvi, 1, mvihdr, framehdrs, images

 Inputs      : 
	lu	INT	logical unit of MVI file to read

 Optional Inputs:

 Outputs     :
	file_hdr  STRUCT	describes movie
	ihdrs  	BYTE File Array	describes frame headers
	imgs  	BYTE File Array	descrives frame data (images)
	swapflag  BYTE	byte-swap ON (1) or OFF (0)

 Keywords    :
	/NO_COLOR	Do not load color tables in mvi file 
	RGBVEC=[r,g,b]	Returns color table vectors

 Comments    :

 Side effects: creates structure FILE_HDR

 Category    : Image Display.  Animation.

 Added keyword rgbvec to allow color tables from mvi file to be passed back
 to calling routine. SPP (USRA/NRL) 97/10/10.

 Version     :
       @(#)read_mvi.pro	1.7, 09/23/04 : NRL LASCO LIBRARY

 Modifications:
	010711	the jake	Added Version 3 to handle RTHETA Movies
	011109  thejake		After testing, additions do not seem to have done any harm so adding
				WRUNMOVIEM3, MVIPLAY3, WRITE_DISK_MOVIE3, and READ_MVI3 to library.
				Once an MVI is written with the version 3 software, it will need to
				be read with it as well.
	030828, nbr - Incorporate read_mvi3.pro/RTheta header; add version 4 header w/ RECTIFY


READ_MVI3

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

 Project     : SOHO - LASCO/EIT

 Name        : READ_MVI3

 Purpose     :

 Use         : IDL>

 Inputs      :

 Optional Inputs:

 Outputs     :

 Keywords    :

 Comments    :

 Side effects:

 Category    : Image Display.  Animation.

 Added keyword rgbvec to allow color tables from mvi file to be passed back
 to calling routine. SPP (USRA/NRL) 97/10/10.


	010711	the jake	Added Version 3 to handle RTHETA Movies
	011109  thejake		After testing, additions do not seem to have done any harm so adding
				WRUNMOVIEM3, MVIPLAY3, WRITE_DISK_MOVIE3, and READ_MVI3 to library.
				Once an MVI is written with the version 3 software, it will need to
				be read with it as well.




 Version     :

 07/09/03 @(#)read_mvi3.pro	1.3 :LASCO IDL LIBRARY


RT

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

RO RT, tele, RUNNING_DIFF=running_diff, FFV=ffv, LENGTH=length, SKIP=skip

 Procedure to call RTMVIPLAY to play real-time movie

 INPUTS:

 tele:	'eit_195'
	'eit_304'
	'eit_171'
	'eit_284'
	'c1_fexiv'
	'c2'
	'c3'

 KEYWORDS:
  /FFV  for full resolution images (default is 1/2 resolution  ex. 512x512)
  /LENGTH	Set equal to desired length of movie
  /SKIP	Skip every other frame

 Example:  IDL> rt, 'c2'

 MODIFIED:
	nbr, 11/9/01 - Add documentation in header
       Karl, 7/26/04 -- change gif_dir path

	@(#)rt.pro	1.6, 07/26/04 - IDL NRL LASCO Library


RTMOVIE

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : RTMOVIE
               
 Purpose     : Display movie of images as they are received in real time at the EOF.
               
 Explanation : Starts a movie of the previous 48 (~2 days) images.  As new images
		are received at the EOF they are added to the movie in time order.
               
 Use         : IDL> RTMOVIE [, telescope, num_frames, /MPEG ]

 Optional Inputs:
	        telescope   ;string 'c2' or 'c3'  -  default is 'c2'
	        num_frames  ;integer number of images to load  -  default is 48

 Keywords    : /MPEG ;will write out new .mvis and mpeg movies every time a new image is received.

 Calls       : 

 Comments    : Must be running IDL on a machine at the EOF or have /net/lasco6/data mounted.
               
 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Scott Paswaters, NRL Dec. 2 1996.
               
 Version     : RAH, NRL, 2/18/97  Mods for computation of center
               SEP, NRL, 3/25/97  Save .mvi files

	@(#)rtmovie.pro	1.5 09/12/97 LASCO IDL LIBRARY


RTMVI

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : RTMVI
               
 Purpose     : Write GIF images as they are received in real time.
               
 Use         : IDL> RTMVI [, /MPEG, /TV, CAM=['c2','c3','eit','eit_195','eit_171','eit_284','eit_304']]

 Inputs      : None

 Optional Inputs: None

 Outputs     : GIF, JPG, MPG files

 Keywords    :
	NOMPEG	Does not generate .mpg files, and exits after finishing one cycle through all cameras.
	TV	Generate and save GIFs in videodir
	CAM	Set equal to one telescope to process
	DEBUG	Write file transfer durations to ~/cmd_times.lst and certain event times to ~/rt_times.lst
	MPEG_ONLY	Does not generate gif or jpeg images

 Calls       : $SSW/soho

 Comments    : Must be running IDL on a machine with /net/lasco6/data mounted.
		Must setenv RTMVI (replaces MVIS), QL_IMG, WEBDIR, LAST_IMG
               
 Side effects: None.
               
 Category    : Image Display.  Animation.

 Written     : Scott Paswaters, NRL Dec. 2 1996.
               
 Version     : RAH, NRL, 2/18/97  Mods for computation of center
		SEP, NRL, 3/25/97  Save .mvi files
		RAH, NRL, 2/04/98  EIT normalization box changed to bottom of image, and AL +1 filter
				   added as a valid option for the filter wheel (in addition to clear)
		SEP, NRL, 4/06/98  Changed to write GIF images instead of MVI files
		NBR, NRL, 3/22/99  Write JPEG images also
		NBR, NRL, 4/21/99  Fix removal of old JPEG images
		NBR, NRL, 5/17/99  Add RTMVI_COMMON_IMG block; utilize FIXGAPS keyword
		NBR, NRL, 5/27/99  Add /NOMPEG keyword
		DW,  NRL, 6/11/99  Add mpeg_dir variable
		NBR, NRL, 7/22/99  Change call for GIF2JPG24
		NBR, NRL, 7/23/99  Changed mpeg_dir
		NBR, NRL, 8/6/99   Add 13 day mpeg
		DW,  NRL, 8/09/99  Add nrl_mpeg_dir variable
		NBR, NRL, Sep 1999 Reduce TIMER settings; Change movie making interval to 3 hours;
				   Move NOMPEG keyword action
		DW , NRL, 8 Sep 1999 Check each movie directory for old files
		NBR, NRL, 9/20/99  Change order of cameras; Add CAM keyword
		NBR, NRL,  Jan 2000  Make daily mpegs; chmod daily mpg
		NBR, NRL,  Feb 2000  GOTO, next instead of do_movies
		NBR, NRL,  Mar 2000  EIT option for CAM keyword
		NBR, NRL,  May 2000  Add VIDEO and PICT outputs
		NBR, NRL,  Aug 2000  Skip files where exptime LT 6 (to omit C3 Clear of about 5.3sec)
		NBR, NRL, 3/22/01 - Make RT EIT movies (108 frames > 2 days long)
		NBR, NRL, 3/29/01 - Add quit button
		NBR, NRL, 4/9/01  - Skip bad images; do not copy to lasco6
		NBR, NRL, 5/17/01 - Add TV keyword; implement env var usage; disable daily mpg
		GW, NRL, 7/24/01 - Use EIT_PREP
		NBR, NRL, 7/31/01 - Use $LAST_IMG for txtfile
		NBR, NRL, 8/ 6/01 - Set last_ptr for reading txtfile and add
					to common block
		NBR, NRL, 9/ 4/01 - Comment out daily movie part of WRTMVI_EVENT
		jake, NRL, 011220 -	fix indentation of code with TABS
							fix CAPITALIZATION
							began writing WRTMVI_DIFF
		jake, NRL, 020104 - adding diff mpegs
		NBR, NRL, 5/ 1/02 - CD,'' in wrtmvi_event
		nbr, nrl,10/11/02 - Add days2save variable; set at 4; add xtra=2 for C2 and C3
		jake, NRL, 021022 - changed s_file to include differential gifs
		jake, NRL, 021022 - changed s_file back and d_file
		jake, NRL, 021023 - modified RTMVI_COMMON to include d_file
		jake, NRL, 021209 - adding messages to console again, bc somehow got removed
		jake, NRL, 030117 - making Diff stuff every 8 hrs instead of 4 hrs.
		NBR, NRL,  030124 - Allow half-res C2 and C3
		jake, NRL, 030213 - made wrtmvi_diff check last made dif-gif, not first
		jake, NRL, 030227 - making Diff stuff every 24 hrs instead of 8 hrs.
						using RTMVI instead of MVI to keep hera out of loop
		jake, NRL, 030228 - changing to 12 instead of 24, because 24 doesn't work right
		jake, NRL, 030303 - changed back to 24
		jake, NRL, 030303 - added "l" after last 60 because was overflowing variable
		jake, NRL, 030304 - added touch diffs routine to try to keep diffs near midnight only
		jake, NRL, 030321 - added some code to begin archiving 13day realtime mpegs
		jake, NRL, 030414 - modified 13day archive code because difference between
				UTC and local time was sometimes causing 2 files to be saved.
		jake, NRL, 030430 - added WRITE_PNG so can use idl56
		jake, NRL, 030807 - diff image creation begins at 10PM now
		jake, NRL, 030807 - preserving last 100 LASCO images to avoid all realtime gifs
							from being deleted in times with no telemetry
		nbr, NRL, 030912 - Add t argument to WRTMVI_DIFF; increase logging; edit use of first_mvi
		nbr, NRL, 030929 - add debugset to common block; more logging
		nbr, NRL, 031024 - add dompegset, no_img_set to common block; keyword MPEG_ONLY
		nbr, NRL, 031028 - Use n2save to determine how many to delete, set to 200 (*2 for EIT195)
		nbr, NRL, 031030 - Eliminate widgets and make RTMVI a function
		nbr, NRL, 031105 - Fix tai_old bug in WRTMVI_DIFF
               nbr, NRL, 031222 - Change running_diff implementation: rdiff image is computed in make_image_*.pro
               KB, NRL,  040607 - Mods at line 746-ish and 980-ish
		KB, NRL,  040609 - Add missed_count to rtmvi_common. Attempt at fixing 'skipped images' problem.
		KB, NRL,  040610 - Edit line 983 -- stop procedure from looking in wrong directory for some c3 files
		KB, NRL,  040616 - Add code to force a reprocess when GT 8 images are skipped (line 752)
		KB, NRL,  040706 - Tweaked to make sure "skipped image" problem is finally solved...
               KB, NRL,  040929 - Filter out long exposure images


	@(#)rtmvi.pro	1.69 12/22/03 :LASCO IDL LIBRARY


RTMVI020102

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : RTMVI
               
 Purpose     : Write GIF images as they are received in real time.
               
 Use         : IDL> RTMVI [, /MPEG, /TV, CAM=['c2','c3','eit','eit_195','eit_171','eit_284','eit_304']]

 Inputs      : None

 Optional Inputs: None

 Outputs     : GIF, JPG, MPG files

 Keywords    :
	NOMPEG	Does not generate .mpg files, and exits after finishing one cycle through all cameras.
	TV	Generate and save GIFs in videodir
	CAM	Set equal to one telescope to process
	DEBUG	Write file transfer durations to ~/cmd_times.lst and certain event times to ~/rt_times.lst

 Calls       : $SSW/soho

 Comments    : Must be running IDL on a machine with /net/lasco6/data mounted.
		Must setenv MVIS, QL_IMG, WEBDIR, LAST_IMG
               
 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Scott Paswaters, NRL Dec. 2 1996.
               
 Version     : RAH, NRL, 2/18/97  Mods for computation of center
               SEP, NRL, 3/25/97  Save .mvi files
               RAH, NRL, 2/04/98  EIT normalization box changed to bottom of image, and AL +1 filter
				   added as a valid option for the filter wheel (in addition to clear)
               SEP, NRL, 4/06/98  Changed to write GIF images instead of MVI files
		NBR, NRL, 3/22/99  Write JPEG images also
		NBR, NRL, 4/21/99  Fix removal of old JPEG images
		NBR, NRL, 5/17/99  Add RTMVI_COMMON_IMG block; utilize FIXGAPS keyword
		NBR, NRL, 5/27/99  Add /NOMPEG keyword
		DW,  NRL, 6/11/99  Add mpeg_dir variable
		NBR, NRL, 7/22/99  Change call for GIF2JPG24
		NBR, NRL, 7/23/99  Changed mpeg_dir
		NBR, NRL, 8/6/99   Add 13 day mpeg
		DW,  NRL, 8/09/99  Add nrl_mpeg_dir variable
		NBR, NRL, Sep 1999 Reduce TIMER settings; Change movie making interval to 3 hours;
				   Move NOMPEG keyword action
               DW , NRL, 8 Sep 1999 Check each movie directory for old files
		NBR, NRL, 9/20/99  Change order of cameras; Add CAM keyword
		NBR, NRL,  Jan 2000  Make daily mpegs; chmod daily mpg
		NBR, NRL,  Feb 2000  GOTO, next instead of do_movies
		NBR, NRL,  Mar 2000  EIT option for CAM keyword
		NBR, NRL,  May 2000  Add VIDEO and PICT outputs
		NBR, NRL,  Aug 2000  Skip files where exptime LT 6 (to omit C3 Clear of about 5.3sec)
		NBR, NRL, 3/22/01 - Make RT EIT movies (108 frames > 2 days long)
		NBR, NRL, 3/29/01 - Add quit button
		NBR, NRL, 4/9/01  - Skip bad images; do not copy to lasco6
		NBR, NRL, 5/17/01 - Add TV keyword; implement env var usage; disable daily mpg
		GW, NRL, 7/24/01 - Use EIT_PREP
		NBR, NRL, 7/31/01 - Use $LAST_IMG for txtfile
		NBR, NRL, 8/ 6/01 - Set last_ptr for reading txtfile and add
					to common block
		NBR, NRL, 9/ 4/01 - Comment out daily movie part of WRTMVI_EVENT

 %H% %W% :LASCO IDL LIBRARY


RTMVIPLAY

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

 Project     : SOHO - LASCO/EIT

 Name        : RTMVIPLAY

 Purpose     : Widget tool to display animation sequence from gif files.

 Explanation : This tool allows the user to view a series of gif images as
               an animation sequence.  The user can control the direction,
               speed, and number of frames with widget controls.  A directory
		is monitored for new images and they are added to the movie
		in time order.

 Use         : IDL> RTMVIPLAY, match, LENGTH=length, GIF_DIR=gif_dir, IMG_REBIN=img_rebin, 
 			RUNNING_DIFF=running_diff

 Inputs      : match : string to use to match gif files to load.
	           ex : RTMVIPLAY, 'c1_fexiv'
	           ex : RTMVIPLAY, 'c2'
	           ex : RTMVIPLAY, 'c3'
	           ex : RTMVIPLAY, 'eit_195'
	           ex : RTMVIPLAY, 'eit_304'
	           ex : RTMVIPLAY, 'eit_171'
	           ex : RTMVIPLAY, 'eit_284'

 Outputs     : None.

 Keywords    : 
               LENGTH=length     : maximum number of frames to load (default is all).
               GIF_DIR=gif_dir   : directory to read gif images from (default is $MVIS/rtmovie/gifs/ 
                                   or current directory if $MVIS doesn't exist)**
                                   **New default is /net/solardata/sd4/rtmovie/gifs/  -- KB
               IMG_REBIN=img_rebin  : set to dimensions to rebin (or congrid) images to
				     : ex. IMG_REBIN=[512,512]
               /RUNNING_DIFF     : set this flag for a running difference movie

 Calls       :

 Side effects: None.

 Category    : Image Display.  Animation.

 Written     : Scott Paswaters, NRL Apr. 8 1998.

 MODIFIED:
	A. Vourlidas, 11/9/01 - Put WRUNMOVIEM_RT button in widget
	N. Rich, 11/14/01 - CD to olddir if calling wrunmoviem_rt
       Karl B  7/26/04 - changed gif directory to solardata instead of $MVIS
       Karl B  7/26/04 - changed mvidir to /net/mercury/mvi/


 See Also    : MKMOVIE.PRO

       @(#)rtmviplay.pro	1.8, 07/26/04 - NRL LASCO IDL LIBRARY


RTMVIPLAYPNG

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

 Project     : SOHO - LASCO/EIT

 Name        : RTMVIPLAYPNG

 Purpose     : Widget tool to display animation sequence from png files.

 Explanation : This tool allows the user to view a series of png images as
               an animation sequence.  The user can control the direction,
               speed, and number of frames with widget controls.  A directory
		is monitored for new images and they are added to the movie
		in time order.

 Use         : IDL> RTMVIPLAYPNG, match, LENGTH=length, PNG_DIR=png_dir, IMG_REBIN=img_rebin, 
 			RUNNING_DIFF=running_diff

 Inputs      : match : string to use to match png files to load.
	           ex : RTMVIPLAYPNG, 'c1_fexiv'
	           ex : RTMVIPLAYPNG, 'c2'
	           ex : RTMVIPLAYPNG, 'c3'
	           ex : RTMVIPLAYPNG, 'eit_195'
	           ex : RTMVIPLAYPNG, 'eit_304'
	           ex : RTMVIPLAYPNG, 'eit_171'
	           ex : RTMVIPLAYPNG, 'eit_284'

 Outputs     : None.

 Keywords    : 
               LENGTH=length     : maximum number of frames to load (default is all).
               PNG_DIR=png_dir   : directory to read png images from (default is $MVIS/rtmovie/pngs/ 
                                   or current directory if $MVIS doesn't exist)
               IMG_REBIN=img_rebin  : set to dimensions to rebin (or congrid) images to
				     : ex. IMG_REBIN=[512,512]
               /RUNNING_DIFF     : set this flag for a running difference movie

 Calls       :

 Side effects: None.

 Category    : Image Display.  Animation.

 Written     : Scott Paswaters, NRL Apr. 8 1998.

 MODIFIED:
	A. Vourlidas, 11/9/01 - Put WRUNMOVIEM_RT button in widget
	N. Rich, 11/14/01 - CD to olddir if calling wrunmoviem_rt
	jake 030430 - created RTMVIPLAYPNG from RTMVIPLAY
				changed all GIF to PNG
	jake 030509 - idl53 needs pngs rotated


 See Also    : MKMOVIE.PRO

       @(#)rtmviplaypng.pro	1.2, 05/09/03 - NRL LASCO IDL LIBRARY


RTPNG

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

RO RTPNG, tele, RUNNING_DIFF=running_diff, FFV=ffv, LENGTH=length, SKIP=skip

 Procedure to call RTMVIPLAY to play real-time movie

 INPUTS:

 tele:	'eit_195'
	'eit_304'
	'eit_171'
	'eit_284'
	'c1_fexiv'
	'c2'
	'c3'

 KEYWORDS:
  /FFV  for full resolution images (default is 1/2 resolution  ex. 512x512)
  /LENGTH	Set equal to desired length of movie
  /SKIP	Skip every other frame

 Example:  IDL> rt, 'c2'

 MODIFIED:
	nbr, 11/9/01 - Add documentation in header
	jake 030430 - created rtpng from rt
				change all GIF to PNG

	@(#)rtpng.pro	1.1, 05/01/03 - IDL NRL LASCO Library


UPDATE_MPG

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : UPDATE_MPG
               
 Purpose     : Updates 13-day mpegs and writes daily mpegs for yesterday.

 Calls       : 

 Comments    : 
               
 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Nathan Rich, NRL jan. 2000. Based on RTMVI.PRO
               
 Version     :

 
	11/02/01 @(#)update_mpg.pro	1.1 :LASCO IDL LIBRARY


VIEWLIST

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

ro viewlist, list, minv, maxv, DELAY=delay, LOOP=loop, PAN=pan, HALT=halt, $
   RDIFF=rdiff, DIFF=diff, SHOW_KEYWORD=show_keyword, HISTEQUAL=histequal

 View a list of image files, loading 1 at a time.

 INPUT:
  list		STRARR, list of files

 OPTIONAL INPUT:
  minv     min scale value
  maxv     max scale value

 KEYWORDS:
  DELAY	Set to number of seconds between frames
  LOOP		Repeat display of sequence; if =1, then indefinitely
  PAN		rebin/congrid by a factor or fraction
  HALT		advance images with '.cont' at command line
  RDIFF    	Running difference images
  DIFF=n     	Difference with the nth image in list (first is default)
  SHOW_KEYWORD Print value of given FITS keyword before displaying each image
  HISTEQUAL	Display with histogram equalization

 Written 11Jul2002 by N. Rich, NRL/Interferometrics

 04.01.21, nbr - Add PAN
 04.03.25, nbr - Add Halt
 04.10.18, nbr - add diff and rdiff

 @(#)viewlist.pro	1.2 12/21/04 LASCO NRL IDL Library


WRITE_DISK_MOVIE[1]

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

 NAME:
	WRITE_DISK_MOVIE

 PURPOSE:
	This procedure adds an image to a file in the disk movie (MVI) format.

 CATEGORY:
	LASCO MOVIE

 CALLING SEQUENCE:
	WRITE_DISK_MOVIE, Fname, Img, Hdr

 INPUTS:
	Fname:	File name of the movie disk (MVI) file, with full path

	Img:	2D image array to be added to the file

	Hdr:	FITS header for image

 KEYWORD PARAMETERS:
	/NEW:	If set this keyword indicates that a new file is to be created.
		The default is to write to an existing file

	MAXNUM:	If set, this keyword specifies the maximum number of files to
		be loaded into the file.  The default value is 128

	/REPLACE:  	Flag to replace an image rather than append
	REPLACE_INDEX:	Set to index of frame to replace in .mvi file
	/RTHETA		flag indicating r-theta movie
	RTCOORDS	[radius@bottom, radius@top, theta@left, theta@right] 
			coords for making RTHETA movies
	/RECTIFIED	Image was rotated 180 deg so North is up
	TRUECOLOR	Set to indicate that the images are truecolor

 PROCEDURE:
	The disk movie format is:

	file header (each value is 2-byte integer):
			# images in the file
			# columns in each image
			# rows in each image
			# maximum number of images in file
			# bytes in image header
			# version number

	for version 1:	# bytes in file header
	for version 1:	# sunxcen * 10
	for version 1:	# sunycen * 10
	for version 1:	# arc sec per pixel * 100
	for version 3:	# R-theta flag
	for version 3:	# radius at bottom of image (Rsun)
	for version 3:	# radius at top of image (Rsun)
	for version 3:	# theta at left of image (deg, 0@N, CCW+)
	for version 3:	# theta at right of image (deg, 0@N, CCW+)
	for version 4:	# rectified flag (degrees images rotated by)
	for version 5:	# indicates true color
	for version 1:	# red color vector BYTARR(256)
	for version 1:	# green color vector BYTARR(256)
	for version 1:	# blue color vector BYTARR(256)

	img hdr #1:	date of image, string (15)
			time of image, string (15)
			file name, string (15)
			filter wheel, string (10)
			polarizer wheel, string (10)
			detector, string (10)
	img hdr #2
		...
	img #1
	img #2
		...

 EXAMPLE:

	Create a new movie file with img being the first image in the file:

		DISK_MOVIE_FILE, '~/mymovie.mvi', img , hdr, /new, maxnum=20

	Add to an existing movie file:

		DISK_MOVIE_FILE, '~/mymovie.mvi', img , hdr

       @(#)write_disk_movie.pro	1.7, 09/23/04 : NRL LASCO LIBRARY

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 16 Mar 1996

 Modified    : SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  08 Sep 1997 - Added REPLACE option.
			010711	the jake	Added Version 3 to handle RTHETA Movies
		thejake	011109 - After testing, additions do not seem to have done any harm so adding
				WRUNMOVIEM3, MVIPLAY3, WRITE_DISK_MOVIE3, and READ_MVI3 to library.
				Once an MVI is written with the version 3 software, it will need to
				be read with it as well.
		nbr,03.09.10 - 	Incorporate write_disk_movie3.pro; add RECTIFY to mvi v4 header
		rah, 16 Sep 2004 - Add truecolor keyword


WRITE_DISK_MOVIE[2]

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

 NAME:
	WRITE_DISK_MOVIE

 PURPOSE:
	This procedure adds an image to a file in the disk movie format.

 CATEGORY:
	LASCO MOVIE

 CALLING SEQUENCE:
	WRITE_DISK_MOVIE, Fname, Img, Hdr

 INPUTS:
	Fname:	File name of the movie disk file, with full path

	Img:	2D image to be added to the file

	Hdr:	FITS header

 KEYWORD PARAMETERS:
	NEW:	If set this keyword indicates that a new file is to be created.
		The default is to write to an existing file

	MAXNUM:	If set, this keyword specifies the maximum number of files to
		be loaded into the file.  The default value is 128

	/REPLACE:  Flag to replace an image rather than append
	REPLACE_INDEX:Set to index of frame to replace in .mvi file
	RTHETA	flag for making rtheta movies
	RTCOORDS	[radius0, radius1, theta0, theta1] coords for making RTHETA movies

 PROCEDURE:
	The disk movie format is:

	file header:	# images in the file
			# columns in each image
			# rows in each image
			# maximum number of images in file
			# bytes in image header
			# version number

	for version 1:	# bytes in file header
	for version 1:	# sunxcen * 10
	for version 1:	# sunycen * 10
	for version 1:	# arc sec per pixel * 100
	for version 1:	# red color vector BYTARR(256)
	for version 1:	# green color vector BYTARR(256)
	for version 1:	# blue color vector BYTARR(256)

	img hdr #1:	date of image, string (15)
			time of image, string (15)
			file name, string (15)
			filter wheel, string (10)
			polarizer wheel, string (10)
			detector, string (10)
	img hdr #2
		...
	img #1
	img #2
		...

 EXAMPLE:

	Create a new movie file with img being the first image in the file:

		DISK_MOVIE_FILE, '~/mymovie.mvi', img , hdr, /new, maxnum=20

	Add to an existing movie file:

		DISK_MOVIE_FILE, '~/mymovie.mvi', img , hdr

 MODIFICATION HISTORY:
 	Written by:	RA Howard, NRL, 16 Mar 1996

 Modified    : SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  08 Sep 1997 - Added REPLACE option.
			010711	the jake	Added Version 3 to handle RTHETA Movies
		thejake	011109 - After testing, additions do not seem to have done any harm so adding
					WRUNMOVIEM3, MVIPLAY3, WRITE_DISK_MOVIE3, and READ_MVI3 to library.
					Once an MVI is written with the version 3 software, it will need to
					be read with it as well.


	07/09/03 @(#)write_disk_movie3.pro	1.2 : LASCO IDL LIBRARY


WRITE_HT

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

 NAME:
	WRITE_HT

 PURPOSE:
	This procedure writes out the height-time
	file.  It is used by the movie program and is not intended to be
	used in a standalone fashion.

 CATEGORY:
	MOVIE

 CALLING SEQUENCE:
	WRITE_HT,Callt,Htfile,Hdr,R,Pa,Feat,X,Y

 INPUTS:
	Callt:	Parameter indicating whether header or observation 
		information is being written
		0 = header, 1 = observation
	Htfile:	String containing the file name to be written to
	Hdr:	Structure containing the image header information
	R:	Radius of observation in units of solar radii (float)
	Pa:	Position angle of observation in degrees (float)
	X:	Column of observation (pixels)
	Y:	Row of observation (pixels)

 SIDE EFFECTS:
	Appends information to height-time file if existing or opens a new
	one if none exists.

 MODIFICATION HISTORY:
 	Written by:	Scott Hawley, NRL summer student, July 1996
	V2  5/3/97	RAHoward,NRL	Combined all writes to ht-file
	V3  9/30/97	RAHoward,NRL	Defined Version 2 for HT file
	7/25/01, N.Rich - Add CHECK_PERMISSION for htfile and check first line
		of htfile for validity
 
 @(#)write_ht.pro	1.9 07/25/01 :NRL Solar Physics


WRUNMOVIE

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : WRUNMOVIE
               
 Purpose     : Widget tool to display animation sequence.
               
 Explanation : This tool allows the user to view a series of images as
		an animation sequence.  The user can control the direction,
		speed, and number of frames with widget controls.
               
 Use         : IDL> WRUNMOVIE [, arg1 [, NAMES=names [,SKIP=skip]]]

		Use the VIDEO keyword to automatically prepare video-ready format (640x480);
		use with IMG_REBIN if you want to keep full x-field
	  	IDL> WRUNMOVIE, /VIDEO [,/IMG_REBIN]

		Without any inputs, program will prompt user to select an existing .mvi file.
    Example  : IDL> WRUNMOVIE

               Or you could have one argument, the .mvi file you want to load.
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi'

               Or if you have pre-loaded images into pixmaps (like MKMOVIE.PRO does) call:
    Example  : IDL> WRUNMOVIE, win_index, NAMES=names
		Where win_index is an array of the window numbers and names is optionally
		a STRARR() containing names of each frame.
;    
		Use the keyword SKIP to skip every n frames (good for large movies).
    Example  : IDL> WRUNMOVIE, SKIP=1		;* to skip every other frame

		Use the keyword START to start reading movie at frame n (good for large movies).
    Example  : IDL> WRUNMOVIE, START=100		;* frame 100 becomes 1st frame of movie

		Use the keyword LENGTH to specify number of frames to read in (good for large movies).
    Example  : IDL> WRUNMOVIE, START=100, LENGTH=60	;* to load frames 100-159

		Use the keyword TIMES to display detector & date & time on frames (if not already there).
    Example  : IDL> WRUNMOVIE, /TIMES

		Use the keyword NOCAM with TIMES keyword to omit the detector from TIMES display.
    Example  : IDL> WRUNMOVIE, /TIMES, /NOCAM

		Use the keyword COORDS to display subframe of movie images. [x1,x2,y1,y2]
		Note: COORDS is applied before IMG_REBIN if both are selected.
		OR just use /COORDS to select coordinates interactively
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', COORDS=[256,256+511,175,175+255]

		Use the keyword IMG_REBIN to resize movie.  If shrinking by integer factor REBIN 
		is used otherwise CONGRID with linear interpolation is used.
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', IMG_REBIN=[512,512]

		Use the keyword SAVE to just save the movie and exit (for use in batch mode).
    Example  : IDL> WRUNMOVIE, win_index, SAVE='mymovie.mvi'

		Use the keyword DIFF to subtract a base frame from all frames in the movie.
		The base frame is the first frame.  Or you can use the keyword START to set it.
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', /DIFF

		Use the keyword RUNNING_DIFF to create a running difference movie.
		The default is to subtract the previous frame.  Use RUNNING_DIFF=2 to subtract
		2 frames prior from each image.
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', /RUNNING_DIFF

		Use the keyword /COSMIC to removie cosmic rays.
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', /COSMIC

		Use the keyword /FIXGAPS to replace data gaps with data from previous frame
		The default is to assume missing blocks are 32x32, 
		For 1/2 resolution images use BLOCK_SIZE=16 for example
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', /FIXGAPS

		Use the keyword /DRAW_LIMB to draw a circle at the solar limb
    Example  : IDL> WRUNMOVIE, 'mymovie.mvi', /DRAW_LIMB

 OTHER KEYWORDS:
	LOAD	Set to use saved keyword values, if any
	KEEP	Set to not delete pixmaps 
	CHSZ	Set to desired size of time label (default=1.5)
	SPOKE	Display spoked images *** NEEDS WORK ***
	DIF_MIN, DIF_MAX	Set to desired range for scaling difference images; default is +/-70
	RECTIFIED	Set to number of degrees images rotated to put solar north up (affects header only)
	/DORECTIFY	Rotate frames 180 degrees
	/CENRECTIFY	Compute new center for 180-deg-rotation
	/TRUECOLOR	Set to treat images as true color images


 Calls       : 

 Comments    : Use MKMOVIE.PRO to load into pixmaps.
               
 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Scott Paswaters, NRL Feb. 13 1996.
               
 Modified    : SEP  29 May 1996 - Changed to multiple pixmaps for images.
				   Added buttons to save and load movie files (.mvi).
				   Seperated control buttons from display window.
               SEP   9 Jul 1996 - Added keyword to pass image headers.
               SEP   7 Jan 1997 - Added skip keyword.
               SEP   9 Jan 1997 - Added START, LENGTH keywords.
               SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  18 Apr 1997 - Added .mpg output option with 1/2 resolution.
               SEP  16 May 1997 - Added save option and IMG_REBIN option.
               SEP  19 May 1997 - Added COORDS option.
               SEP  27 Jun 1997 - Added permission checks for output.
               SEP  22 Sep 1997 - Added current frame scrolling widget.
               SEP  02 Oct 1997 - Added ability to interactively select subimage coords.
               SEP  18 Nov 1997 - Added /COSMIC  /FIXGAPS and /DRAW_LIMB keywords.
               SEP  11 Dec 1997 - Added button to call WRUNMOVIEM, only save frames first->last
               SEP  08 May 1998 - Added BLOCK_SIZE keyword
               SP   02 Mar 1999 - Added Scroll bars for large images
		NBR  26 Mar 1999 - Added LOGO keyword; Add Save-movie-as-GIFS button
		NBR  09 Apr 1999 - Use short_names for frame names
		NBR     Jul 1999 - Add VIDEO keyword; Add detector to TIMES label
		NBR     Aug 1999 - Add detector to GIF names
		NBR     Sep 1999 - Add NOCAM keyword
               ???  06 FEB 2000 - Add bytscl range for DIFF and RUNNING_DIFF images (DIF_MIN/MAX keywords)
               JIE  14 JUN 2000 - ADD keyword CHSZ to adjust the size of displayed time
               JIE   2 MAR 2000 - ADD keyword SPOKE to display spoked images
	NBR	 3 Oct 2000 - Save gif files in current directory by default
	RAH	18 Oct 2000 - Added option to not rescale a postscript image. Default was to rescale
	NBR	15 Dec 2000 - Allow setting of TIMES keyword to color desired
	NBR	 3 Jan 2001 - Put win_index in common block, add KEEP keyword
	NBR	 4 Jan 2001 - Remove win_index from common block
	NBR	10 Apr 2001 - Change output gif filenames and reconcile diverging versions of this procedure
	NBR	25 Apr 2002 - Change default movie speed
	nbr	 3 sep 2002 - allow user input of root name for saving movie as gifs
	nbr	24 sep 2003 - Add RECTIFIED keyword; add rect to moviev and saving mvis
	nbr	26 Sep 2003 - Add /DORECTIFY, /CENRECTIFY
	nbr 	29 Sep 2003 - Add RECTIFIED to wrunmoviem call
	nbr	 1 Oct 2003 - Fix rect=0
	nbr 	 6 Feb 2004 - Save some keywords via common block
				- IF 24-bit display, loadct,0 after loading mvi
				- use ftvread.pro if saving 1 GIF frame
	nbr	12 Feb 2004 - Fix START; add dolimb to COMMON block
	nbr	26 Feb 2004 - move loadct,0 for 24-bit display
       KB      Aug 19 2004 - Fix "LOAD" bug 
	rah	Sep 16 2004 - Add capability for true color images

 Version     : 
       @(#)wrunmovie.pro	1.27, 09/23/04 : NRL LASCO LIBRARY

 See Also    : MKMOVIE.PRO


WRUNMOVIEM

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : WRUNMOVIEM
               
 Purpose     : Widget tool to display animation sequence.
               
 Explanation : This tool allows the user to view a series of images as
		an animation sequence.  The user can control the direction,
		speed, and number of frames with widget controls.
               
 Use         : IDL> WRUNMOVIEM [, arg1 [, NAMES=names [,/PREVIOUS]]]

		Without any inputs, program will prompt user to select an existing .mvi file.
    Example  : IDL> WRUNMOVIEM

    Example  : IDL> WRUNMOVIEM, /ROLL_PER_FRAME

               Or you could have one argument, the .mvi file you want to load.
    Example  : IDL> WRUNMOVIEM, 'mymovie.mvi'

               Or if you have pre-loaded images into pixmaps (like MKMOVIEM.PRO does) call:
		Where win_index is an array of the window numbers and names is optionally
		a STRARR() containing names of each frame.
    Example  : IDL> WRUNMOVIEM, win_index, NAMES=names
    
		If after exiting WRUNMOVIEM you want to re-load the movie call:
    Example  : IDL> WRUNMOVIEM, /PREVIOUS
    
 Calls       : 

 Comments    : Use MKMOVIEM.PRO to load into pixmaps.
               
 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Scott Paswaters, NRL Feb. 13 1996.
               
 Modified    : SEP  29 May 1996 - Changed to multiple pixmaps for images.
				   Added buttons to save and load movie files (.mvi).
				   Seperated control buttons from display window.
               SEP   9 Jul 1996 - Added keyword to pass image headers.

		SHH  12 Jul 1996 - Enabled display of cursor position in draw window
			 	   Added height-time plotting capability
				   Added Edit Frame option	  
				   Modified effects of mouse buttons
				   Added buttons above draw window
				   Modified display of Control window

               SEP  29 Sep 1996 - Added routines from DAB for applying C3 geometric distortion and
                                  calculating solar radius as function of time.
               SEP  01 Oct 1996 - Added call to C3_DISTORTION for applying C3 geometric distortion

               RAH  01 Nov 1996 - Prior to PLOT_HT call, don't ask for filename

		SHH  09 Jan 1997 - Added "Start H-T" button
				   Calls XEDITFRAME
               SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  21 Mar 1997 - use sun center and arc_sec/pixel if saved in .mvi file.
               SEP  16 May 1997 - added DN output to window, added button to update center.
               SEP  23 Sep 1997 - added active slider widget for current frame.
		NBR  06 Jan 1999 - changed sec_pix check in file_hdr
		DW   11 Jan 1999 - added C2_DISTORTION and roll angle
		NBR  02 Mar 1999 - eliminated sec_pix check for getting sun center 
		NBR 09 Jul 1999  - Add warning if frame headers not saved
		NBR, 05 Mar 2002 - Only compute roll angle once per day; use AVG instead of STAR for roll; extend common block
		NBR, 24 Sep 2003 - Add mvi header roll correction (rect) in moviev; print mvi header; save MVIs with rect
		NBR, 29 Sep 2003 - Add RECTIFIED keyword for call from WRUNMOVIE
		NBR, 20 Oct 2003 - Allow case where xcen is REALLY zero
		KB,  Dec 15,2003 - Added slider so full-res images can be used with smaller screens
               KB,  Sep07, 2004 - When displaying Pos. Ang, if nominal_roll_attitude.dat can't be found, use default values
               AEE, Jan25, 2005 - Generate roll angles (using new database) when reading in frames
                                  and keep around to use later when going back and forth between
                                  frames (to make it quicker). The get_roll_or_xy is called for 
                                  first frame of the movie and also fo multi-day movies when a day 
                                  boundry is crossed. I added keyword ROLL_PER_FRAME to calculate
                                  a roll for each frame if present. Otherwise, default is to calculate
                                  one roll per day instead of one roll per frame.
               AEE, Jan27, 2005 - Calculate one roll per day if wrunmoviem is called from within wrunmovie (since 
                                  movie frames are already readin without calculating rolls in wrunmovie). 

               AEE, Jan31, 2005 - set roll to zero when image header does not have valid date/time.


 Version     : 
 @(#)wrunmoviem.pro	1.27 09/07/04 :LASCO NRL LIBRARY


 See Also    : MKMOVIEM.PRO




WRUNMOVIEM3

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

 project     : SOHO - LASCO/EIT

 Name        : WRUNMOVIEM3

 Purpose     : Widget tool to display animation sequence.

 Explanation : This tool allows the user to view a series of images as
		an animation sequence.  The user can control the direction,
		speed, and number of frames with widget controls.

 Use         : IDL> WRUNMOVIEM [, arg1 [, NAMES=names [,/PREVIOUS]]]

		Without any inputs, program will prompt user to select an existing .mvi file.
    Example  : IDL> WRUNMOVIEM

               Or you could have one argument, the .mvi file you want to load.
    Example  : IDL> WRUNMOVIEM, 'mymovie.mvi'

               Or if you have pre-loaded images into pixmaps (like MKMOVIEM.pro does) call:
		Where win_index is an array of the window numbers and names is optionally
		a STRARR() containing names of each frame.
    Example  : IDL> WRUNMOVIEM, win_index, NAMES=names

		if after exiting WRUNMOVIEM you want to re-load the movie call:
    Example  : IDL> WRUNMOVIEM, /PREVIOUS

 Calls       :

 Comments    : Use MKMOVIEM.pro to load into pixmaps.

 Side effects: None.

 Category    : Image Display.  Animation.

 Written     : Scott Paswaters, NRL Feb. 13 1996.

 Modified    : SEP  29 May 1996 - Changed to multiple pixmaps for images.
				   Added buttons to save and load movie files (.mvi).
				   Seperated control buttons from display window.
               SEP   9 Jul 1996 - Added keyword to pass image headers.

		SHH  12 Jul 1996 - Enabled display of cursor position in draw window
			 	   Added height-time plotting capability
				   Added Edit Frame option
				   Modified effects of mouse buttons
				   Added buttons above draw window
				   Modified display of Control window

               SEP  29 Sep 1996 - Added routines from DAB for applying C3 geometric distortion and
                                  calculating solar radius as function of time.
               SEP  01 Oct 1996 - Added call to C3_DISTORTION for applying C3 geometric distortion

               RAH  01 Nov 1996 - Prior to PLOT_HT call, don't ask for filename

		SHH  09 Jan 1997 - Added "Start H-T" button
				   Calls XEDITFRAME
               SEP  05 Feb 1997 - Mods for mvi version 1 FORMAT.
               SEP  21 Mar 1997 - use sun center and arc_sec/pixel if saved in .mvi file.
               SEP  16 May 1997 - added DN output to window, added button to update center.
               SEP  23 Sep 1997 - added active slider widget for current frame.
		NBR  06 Jan 1999 - changed sec_pix check in file_hdr
		DW   11 Jan 1999 - added C2_DISTORTION and roll angle
		NBR  02 Mar 1999 - eliminated sec_pix check for getting sun center
		NBR 09 Jul 1999  - Add warning if frame headers not saved
		thejake	010705	- begin modification to handle RTHETA movies (Version 3)
		thejake	011109 - After testing, additions do not seem to have done any harm so adding
	nbr, 25 Aug 2003 - Remove #s

					WRUNMOVIEM3, MVIPLAY3, WRITE_DISK_MOVIE3, and READ_MVI3 to library.
					Once an MVI is written with the version 3 software, it will need to
					be read with it as well.

 Version     : 3.1


 See Also    : MKMOVIEM.pro

	%H% %W% : LASCO IDL LIBRARY



WRUNMOVIEM_RT

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

 Project     : SOHO - LASCO/EIT
                   
 Name        : WRUNMOVIEM_RT
               
 Purpose     : Widget tool to display animation sequence.
               
 Explanation : This tool allows the user to view a series of images as
		an animation sequence.  The user can control the direction,
		speed, and number of frames with widget controls.
               
 Use         : IDL> WRUNMOVIEM_RT [, arg1 [, NAMES=names [,/PREVIOUS]]]

		Without any inputs, program will prompt user to select an existing .mvi file.
    Example  : IDL> WRUNMOVIEM_RT

               Or you could have one argument, the .mvi file you want to load.
    Example  : IDL> WRUNMOVIEM_RT, 'mymovie.mvi'

               Or if you have pre-loaded images into pixmaps (like MKMOVIEM.PRO does) call:
		Where win_index is an array of the window numbers and names is optionally
		a STRARR() containing names of each frame.
    Example  : IDL> WRUNMOVIEM_RT, win_index, NAMES=names
    
		If after exiting WRUNMOVIEM_RT you want to re-load the movie call:
    Example  : IDL> WRUNMOVIEM_RT, /PREVIOUS
    
 Calls       : 

 Comments    : Use MKMOVIEM.PRO to load into pixmaps.
               
 Side effects: None.
               
 Category    : Image Display.  Animation.
               
 Written     : Scott Paswaters, NRL Feb. 13 1996.
               
 Modified    : SEP  29 May 1996 - Changed to multiple pixmaps for images.
				   Added buttons to save and load movie files (.mvi).
				   Seperated control buttons from display window.
               SEP   9 Jul 1996 - Added keyword to pass image headers.

		SHH  12 Jul 1996 - Enabled display of cursor position in draw window
			 	   Added height-time plotting capability
				   Added Edit Frame option	  
				   Modified effects of mouse buttons
				   Added buttons above draw window
				   Modified display of Control window

               SEP  29 Sep 1996 - Added routines from DAB for applying C3 geometric distortion and
                                  calculating solar radius as function of time.
               SEP  01 Oct 1996 - Added call to C3_DISTORTION for applying C3 geometric distortion

               RAH  01 Nov 1996 - Prior to PLOT_HT call, don't ask for filename

		SHH  09 Jan 1997 - Added "Start H-T" button
				   Calls XEDITFRAME
               SEP  05 Feb 1997 - Mods for mvi version 1 format.
               SEP  21 Mar 1997 - use sun center and arc_sec/pixel if saved in .mvi file.
               SEP  16 May 1997 - added DN output to window, added button to update center.
               SEP  23 Sep 1997 - added active slider widget for current frame.
		NBR  06 Jan 1999 - changed sec_pix check in file_hdr
		DW   11 Jan 1999 - added C2_DISTORTION and roll angle
		NBR  02 Mar 1999 - eliminated sec_pix check for getting sun center 
		NBR 09 Jul 1999  - Add warning if frame headers not saved
	A. Vourlidas, 11/9/01 - Modified from WRUNMOVIEM to allow HT measurements from GIF movies

 See Also    : MKMOVIEM.PRO

 	@(#)wrunmoviem_rt.pro	1.1, 11/14/01 - NRL LASCO IDL LIBRARY



XEDITFRAME

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

 Project       : SOHO -LASCO/EIT

 Name          : XEDITFRAME

 Purpose       : This tool allows the user to edit a particular image "on the
                 fly," while the WRUNMOVIEM procedure is running, using a widget
		  interface.

 Use           : XEDITFRAME, in, out, [moviev]

 Arguments     : InImg - The input, or original image
                 FinalImg - The output, or final image
                 moviev - a structure generated by the WRUNMOVIE3 program,
                       containing information about the movie.  If moviev
                       is not provided, then certain features of the program,
                       such as referencing images by "Current frame", will
                       not be supported.

 Calls         : LASCO_READFITS, POINT_FILTER, GET_FILENAME
	    	  GETSUPERBASENAME   (currently included in xeditframe.pro)	

 Comments      : 
		  The field widgets require the user to press RETURN in order for changes
		  to take effect.
		  Much of the "overhead" in this program is for the "Undo" feature,
		  which necessitates extra bookkeeping.

	 	 The resulting image is = (Primary)*Normalization - (Base), which is then
		  clipped at saturation points (cutoffs) provided by the user.

		"Super Base Frame" should probably be changed to a term easily
		  recognized by LASCO team members.  Procedure GETSUPERBASENAME
		 needs to be extended significantly.

		 "Remove Stars" currently operates on both primage & base images
		 simultaneously, and only does so when the "Remove Stars" button is
		 pressed.  For example, if primary and base images are loaded and
		 "remove stars" is selected, and then a different primary image is loaded,
	 	 remove stars will need to be run again -- but then the base image will
		 have been operated on TWICE.

		 On the "Primary Image" and "Base Image" buttons: If you want to 
		 "re-select" a given button (i.e. load the original image again even
		 though "Original Image" is already selected), you need to click
		 on a different option (e.g. "None") and then click back to the selection
		 you want.

 Side effects  : XEDITFRAME disables all other widgets (e.g. WRUNMOVIEM's interface)
		  until it is finished.

 Category      : Image Processing

 Written       : Scott Hawley, NRL Jan 09, 1996 (from editframe.pro, SHH Jul 12, 1996)

 Modified	: N. Rich	971211	Change EDIT_GETFILENAME function to use
					GET_FILENAME procedure--retrieves final data
					if it exists
	03.09.23, NRich - If moviev.rect THEN rotate image

 Version       : 

 See Also      : WRUNMOVIEM.PRO
 
 @(#)xeditframe.pro	1.7 09/24/03 :NRL Solar Physics


XPLOT_HT

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

 NAME:
	XPLOT_HT

 PURPOSE:
	This procedure is used to display height-time curves. It reads in a
       height-time file created by one of the movie programs and generates
       a plot.

 CATEGORY:
	MOVIE

 CALLING SEQUENCE:
	XPLOT_HT

 INPUTS:

 OPTIONAL INPUT PARAMETERS:
	Filename:	If filename is present then it is used immediately

 OUTPUTS:
	A plot is generated on the screen, and optionally a print file is
	generated of the form idlplot.psnnn, where nnn is a sequential
	number.

 OPTIONAL OUTPUT PARAMETERS:

 COMMON BLOCKS:
	com_xplot_ht

 SIDE EFFECTS:
	Initiates the XMANAGER if it is not already running.

 RESTRICTIONS:

 PROCEDURE:
	The various widgets are set up and registered.  The user selects the
	height-time file to be processed.  The file is read in and the data
	points plotted.  The user is then able to fit the data to polynomial
	functions of degree 1,2, or 3.  The plot can be printed.  The speeds
	can be saved to a file.

 MODIFICATION HISTORY:
 	Written by:	Scott H. Hawley, NRL Summer Student, June 1996
	Version 2	RA Howard, NRL, Modified plot calls to use utplot
	15 Oct 96	RAH, widgetized
       27 Oct 96       RAH, Corrected overplots of interpolated values
                            Set new window number before plotting
       08 Nov 96       RAH, Corrected situation if called without argument
       10 Nov 96       RAH, Corrected Acceleration = 2*fit_coeff
       11 Nov 96       RAH, Added plot of position angles
       04 Apr 97       RAH, Force first smoothed time to be at least first observed time
	10 Jan 96	SHH, Added custom curve fit
			     Protected against null filenames 
       10 Apr 97       RAH, Permit negative velocities to be plotted
       30 Sep 97       RAH, Modified call to READ_HT
       03 Oct 97       SEP, added ability to save to .ps file
       10 Dec 97       SEP, added user & timestamp to .ps file and hardcopy
       24 Dec 97       RAH, Plot time start includes the extrapolated time to limb
       03 Feb 98       RAH, Plot individual feature codes
       10 Aug 98       RAH, Add path name to file name

 @(#)xplot_ht.pro	1.16 07/18/00 :LASCO IDL LIBRARY


XSTARTHT

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

 NAME:
	XSTARTHT

 PURPOSE:
	This procedure is used to start the CME measurements

 CATEGORY:
	CME

 CALLING SEQUENCE:
	XSTARTHT

 INPUTS:

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:

 OPTIONAL OUTPUT PARAMETERS:

 COMMON BLOCKS:
	com_xstartht
	com_height_time

 SIDE EFFECTS:
	Initiates the XMANAGER if it is not already running.

 RESTRICTIONS:

 PROCEDURE:

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

 @(#)xstartht.pro	1.2 09/12/97 :NRL Solar Physics


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