IBSORT $SSW/gen/idl/util/ibsort.pro
[Previous] [Next]
 Project     :	
	SSW
 Name        :
	IBSORT
 Purpose     :
	Sorts integer arrays into ascending order.
 Explanation :
	Function to sort data into ascending order, uses histogram
	and reverse indices to maintain original order when values are equal.
	Input must be integers, or longwords because it uses a bin size
	of 1 to do the histogram.

 Use         :
	result = ibsort( array )

 Inputs      :
	Array - array to be sorted

 Opt. Inputs :	None.

 Outputs     :
	result - sort subscripts are returned as function value

 Opt. Outputs:


 Keywords    :


 Calls       :	None.
 CALLED BY:
	HSI_ANNSEC_BPROJ_WEIGHT_MAP [1], HSI_ANNSEC_BPROJ_WEIGHT_MAP [2]
 Common      :	None.

 Restrictions:	None.

 Side effects:	None.

 Category    :	Utilities, Array

 Prev. Hist. :
	Faster bsort made available by powerful sort engine of histogram
	Meant to replace bsort for integer arrays.

 Written     :	Richard.Schwartz@gsfc.nasa.gov, July 2002


id_esc $SSW/gen/idl/string/id_esc.pro
[Previous] [Next]
 NAME:
	id_esc
 PURPOSE:
	To bijectively map character strings to identifiers, allowing
	(for example) FITS header strings to be used as structure 
	tag names.
 METHOD:
	Illegal characters are turned into escape sequences.  An 
	escape sequence consists of a pair of identifier-legal characters
	FOLLOWED by the (identifier-legal) character '$'.  The unusual 
       escape structure (with the marker following the sequence)
	is to allow the first character of the tag to always be an
	alphabetical character.  There is a special escape ('zz$'), 
	the 0th entry in the data arrays in the id_escape common block,
	whose only purpose is to be an alphabetical character at the start
	of an identifier if necessary.
 CALLS: ***
	ISVALID [1], ISVALID [2], ISVALID [3], id_esc_init
 CALLED BY:
	fits_interp, fitshead2struct, save_idl_routines, sswstruct_fill [1]
 EXAMPLE:
	print,id_esc(['3-days_left',"date_obs","time-obs"])
	zz$3_d$days_left date_obs time_d$obs
 AUTHOR:
	Craig DeForest
 HISTORY:
	Written 16-Jan-98
 USAGE:
	tagname = fitstagesc(fitsname)
 INPUTS:
	The string to be escaped, or an array of 'em
 RETURNS:
	The escaped string, or an array of 'em


id_esc_init $SSW/gen/idl/string/id_esc_init.pro
[Previous] [Next]
 NAME:
	id_esc_init
 PURPOSE:
 	Initialize the common blocks used by id_esc and id_unesc
 CALLED BY:
	id_esc, id_unesc
 HISTORY:
	Written 16-Jan-98, Craig DeForest
	Added uppercase escape sequences, 20-Jan-98, CED
       14-Feb-1998 - S.L.Freeland - nlm->n_elements
	26-Jan-1999 - C.E.DeForest - changed escape codes to UPPERCASE
		because IDL (may its creators plumb the depths of the inferno)
		always returns UPPERCASE for structure tags.  This fixes 
		a bug in fits_interp.
 METHOD:
	Identifiers may have A-Z, 0-9, $, and _ in them.  We use the '$'
	as a marker for two-digit escape sequences that indicate the 
	unusable characters.  Most of the printable ones have sort-of-mnemonic
	escape sequences defined in a nice array below.  The unprintable
	and high-end ones, we handle with two-digit hexadecimal codes. 
	All this stuff just generates a string array ('targets') that 
	contains one of each kind of character that needs escaping, and 
	another string array('escapes') that contains the two-letter code
	for each of the unusable characters.
 SEE ALSO: id_esc, id_unesc


id_unesc $SSW/gen/idl/string/id_unesc.pro
[Previous] [Next]
 NAME:
	id_unesc
 PURPOSE:
	Convert identifiers escaped with id_esc back into strings.
 USAGE:
	string = id_unesc(identifier)
 INPUT:
	The escaped string (identifier) to convert back to a regular string.
 OUTPUT: 
	The original string
 CALLS: ***
	ISVALID [1], ISVALID [2], ISVALID [3], id_esc_init
 CALLED BY:
	fitshead2struct, struct2fitshead
 HISTORY: 
	Written 16-Jan-98
       14-Feb-1998 - S.L.Freeland - nlm->n_elements
 AUTHOR:
	Craig DeForest
 METHOD:
	We have to work around IDL's awful, sick, and twisted string
	handling.  We break the string into an array of characters
	to find the '$' characters (escape sequences are two alphanumeric
	(or '_') characters followed by '$'), and then convert the 
	complete three-character sequence back into its original target
	character using the information in the id_escape common block.
	At the end, we patch the modified array back into a string.


IDL_RELEASE $SSW/gen/idl/system/idl_release.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : IDL_RELEASE
               
 Purpose     : check if IDL release version within specified range
               
 Category    : system
               
 Explanation : 
               
 Syntax      : IDL> a=idl_release(lower=lower,upper=upper)
    
 CALLED BY:
	ADD_TAG [1], ADD_TAG [2], BOOST_TAG, BOX_CURSOR2, COMBINE_STRUCT, CUM_SUM
	HSI_ANNSEC_BPROJ [1], HSI_ANNSEC_BPROJ [3], HSI_ANNSEC_PROFILE [1]
	HSI_ANNSEC_PROFILE [2], HXRS__DEFINE, IMAGE_TOOL, JOIN_STRUCT [2], MK_PLAN_FORM
	PLOT_CDS_POINT [1], PLOT_CDS_POINT [2], REM_TAG [2], RM_FILE, SCANPATH
	SCOPE_CURSOR, TEST_OPEN2, TIMER_VERSION, UNIX_SPAWN, USE_VAX_FLOAT, WIN_SPAWN, XACK
	XCALENDAR, XCAT, XKILL, XTEXT, db_gbo, hsi_where_arr, is_open, xlinflx
 Examples    :

 Inputs      : None
               
 Opt. Inputs : 
               
 Outputs     : 1/0 if IDL version is within specified range

 Opt. Outputs: None
               
 Keywords    : LOWER = lower version to check
               UPPER = upper version to check
               INCLUSIVE = make check inclusive
               VERS = IDL version

 CALLS: ***
	EXIST
 Common      : None
               
 Restrictions: None
               
 Side effects: None.
               
 History     : Version 1,  27-Feb-1997,  D M Zarro.  Written

 Contact     : DZARRO@SOLAR.STANFORD.EDU


IDL_ROUTINE $SSW/gen/idl/help/idl_routine.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       IDL_ROUTINE

 PURPOSE:
       Create a string array of names of all IDL internal routines

 EXPLANATION:
       Called by WHICH (version 3)

 CALLING SEQUENCE:
       IDL_ROUTINE, routine_names

 INPUTS:
       None.

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       ROUTINE_NAMES -- A string array containing names of all IDL internal
                        routines

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       None.

 CALLS: ***
	CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], DELVARX [1], DELVARX [2]
	DELVARX [3], DELVARX [4], STR_SEP, concat_dir [4], delvarx [5]
 COMMON BLOCKS:
       None.

 RESTRICTIONS:
       A text file named 'idl.routines' must be present in a directory of
       IDL's !path.

 SIDE EFFECTS:
       None.

 CATEGORY:

 PREVIOUS HISTORY:
       Written September 21, 1994, by Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:

 VERSION:
       Version 1, September 21, 1994


idl_server_command $SSW/gen/idl/http/idl_server_command.pro
[Previous] [Next]
   Name: idl_server_command

   Purpose: spawn an rpc command to an idl/www server

   Input Parameters:
      command - the IDL command to send to the server (default='help')
      servip - IP of server (default is current machine)

   Keyword Parameters:
      rpcid - id of server (default '0X2010CAFE' per RSI default)
      snapshot - if set, default command saves binary image of current 
                 server routines
                 in $SSW/site/seutp/data/idlwww.!version.release
                 [used for binary server startups]

   Calling Sequence:
      IDL> idl_server_command,command [,serverIP] [,/snapshot] [rpcid=rpcid]

   Calling Example:
      IDL> idl_server_command,'retall'            ; send retall to this 
      IDL> idl_server_command,'help','penumbra.nascom.nasa.gov' ; server on
                                                                ; diff IP

 CALLS: ***
	BOX_MESSAGE, CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], FILE_EXIST [2]
	concat_dir [4], data_chk [1], data_chk [2], file_exist [1], file_exist [3]
	get_host [1], get_host [2], ssw_bin
 CALLED BY:
	idl_server_control
   History:
      Circa Jan 1, 1999 - S.L.Freeland
      3-August-2000 - S.L.Freeland - document, use 'ssw_bin' client if needbe


idl_server_control $SSW/gen/idl/http/idl_server_control.pro
[Previous] [Next]
   Name: idl_server_control

   Purpose: operate on an IDL server (kill, restart, commmand..)

   Input Parameters:
      NONE:

   Output:
      function returns success status

   Keyword Parameters:
      pid (OUTPUT) - process IDS of server jobs (-1 if none running)
      running (switch) - if set, return run status (true if server running)
      kill (switch) - if set, kill server jobs
      restart (switch) - if set, restart server (implies KILL first)
      start_command - optional server start script -
          default uses SSW priority order = [machine->site->gen]
      testing - (switch) - if set, show what would happen (but dont do it)
      commands - optional command(s) to send to server.
                 if switch, use $SSW/site/setup/start_server.command (file)

   Calling Sequence:
      IDL> status=idl_server_control( [/kill] [/restart] [pid=pid] , $
                                      [commands=commands]
 CALLS:


IDL_STARTUP_WINDOWS $SSW/gen/idl/ssw_system/IDL_STARTUP_WINDOWS.pro
[Previous] [Next]
   Name: IDL_STARTUP_WINDOWS

   Purpose: Initial startup file for Windows

   Input Parameters:
               None
   Calling Examples:

               Should be called as prefered startup file

   Restrictions:
               WINDOWS only
               Must be called as initial startup file
   History:
        1-Jun-1999 - R.D.Bentley  - Created
        9-Jun-1999 - S.L.Freeland - renamed IDL_WINDOWS_STARTUP=>IDL_STARTUP_WINDOWS
       18-Mar-2000 - R.D.Bentley  - added gen/idl_libs; reordered the path assembly
       23-Mar-2000 - R.D.Bentley  - fixed typo from 18/3 edit
       17-Apr-2000 - R.D.Bentley  - removed $ from initial env. var. checks
                                    delvar on variables used to make path
       09-May-2000 - (RDB) - small code reorder...
       26-Jul-2000 - (RDB) - added default definition of SSW_SITE


IDL_VALIDNAME $SSW/gen/idl_libs/astron/misc/idl_validname.pro
[Previous] [Next]
 NAME: 
  IDL_VALIDNAME()

 PURPOSE: 
   Modify a string if necessary, so that it can used as a IDL variable name.
   
 EXPLANATION:
   Duplicates the intrinsic V6.0 function IDL_VALIDNAME() with the 
       CONVERT_ALL keyword, for  pre-V6.0 compatibility
   IDL_VALIDNAME performs the following:
   (1) All non-alphanumeric characters (except '_' and '$') are converted
       to underscores
   (2) If the first character is not alphabetic or a '_' or a '!' then an 
       underscore is preprended to the string
   (3) If the string is an IDL reserved word (e.g. 'endif') then an 
       underscore is preprended to the string.

 CALLING SEQUENCE: 
    result = IDL_VALIDNAME( str, /Convert_all ) 

 INPUT: 
      str - Scalar string to be converted to a valid variable name. 

 OUTPUT:
      result - the input string modified, if necessary, according to the
           3 rules above, so that it can be used as a valid IDL variable.
 OPTIONAL INPUT KEYWORDS:
    /CONVERT_ALL -- Does nothing, but ensures compatibility with V6.0
          intrinsic call IDL_VALIDNAME(/CONVERT_ALL)
 PROCEDURES USED:
     None.

 EXAMPLES:
      (1) IDL> print,idl_validname('switch',/convert_all)
          _switch           ;IDL reserved keyword

      (2) IDL> print,idl_validname('2mass',/convert_all)
          _2mass            ;1st character must be alphabetic

      (3) IDL> print,idl_validname('date$',/convert_all)
          date$             ;no change, input string already valid
 MODIFICATION HISTORY: 
         Written by W. Landsman  SSAI  October 2003


ieee2vax [1] $SSW/gen/idl/genutil/ieee2vax.pro
[Previous] [Next]
 NAME:
    ieee2vax
 PURPOSE:
    To convert Unix IDL floating/double to VAX IDL data types.
 CALLING SEQUENCE:
    ieee2vax, variable
 PARAMETERS:
    variable - The data variable to be converted.  This may be a scalar
	 or an array.
 CALLED BY:
	sun2vax [1], sun2vax [2], word_conv [1], word_conv [2], yoh_ieee2vax [1]
	yoh_ieee2vax [2]
 RESTRICTIONS:
	Only tested for data from IEEE standard Unix machines (e.g. SUN0
 MODIFICATION HISTORY:
	Version 1	By John Hoegy		13-Jun-88
	04-May-90 - WTT:  Created CONV_UNIX_VAX from VAX2SUN, reversing floating
			  point procedure.
       09-Sep-91 - TRM:  Caniballized CONV_UNIX_VAX
	19-May-93 - MDM:  Replace call to SWAP with a call to BYTEORDER


IEEE_TO_HOST [1] $SSW/gen/idl/system/ieee_to_host.pro
[Previous] [Next]
 NAME:
     IEEE_TO_HOST
 PURPOSE:
     Translate an IDL variable from IEEE-754 to host representation 
 EXPLANATION:
     The variable is translated from IEEE-754 (as used, for
     example, in FITS data ), into the host machine architecture.

     Duplicates most of the functionality of the SWAP_ENDIAN_INPLACE procedure
     introduced in V5.6, with the addition of the IDLTYPE keyword.
 CALLING SEQUENCE:
     IEEE_TO_HOST, data, [ IDLTYPE = , ]

 INPUT-OUTPUT PARAMETERS:
     data - any IDL variable, scalar or vector.   It will be modified by
             IEEE_TO_HOST to convert from IEEE to host representation.  Byte 
             and string variables are returned by IEEE_TO_HOST unchanged

 OPTIONAL KEYWORD INPUTS:
     IDLTYPE - scalar integer (1-15) specifying the IDL datatype according
               to the code given by the SIZE function.     This keyword
               is usually when DATA is a byte array to be interpreted as
               another datatype (e.g. FLOAT).

 CALLS: ***
	CONV_UNIX_VAX, SINCE_VERSION [1], SINCE_VERSION [2]
 CALLED BY:
	DBEXT_IND [1], DBEXT_IND [2], DBEXT_IND [3], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBINDEX [1], DBINDEX [2], DBINDEX [3], DBOPEN [1], DBOPEN [2]
	DBOPEN [3], DBWRT [1], DBWRT [2], DBWRT [3], DB_ENT2HOST [1], DB_ENT2HOST [2]
	DB_ENT2HOST [3], FITSFILE__DEFINE [2], FXBREAD [1], FXBREAD [2], FXBREAD [3]
	FXBREADM, FXREAD [1], FXREAD [2], GOES_3HOUR, GRS_EXTRACT, HESSI Packet Read [2]
	HSI_LOAD_STRUCT, HSI_PACKET2DETECTOREVENT, HSI_RD_RASPMT, HXRBS_ESC, MRDFITS [1]
	MRDFITS [2], PICK_LINE, READFITS [1], READFITS [2], READFITS [3], READFITSL
	READ_FULL_ATT, READ_MONTH_CAT, READ_RESULTS2, SUM_IMAGE_HEAD, bin_read
	hsi_ras_rdeph [1], hsi_ras_rdeph [2], hsi_rd_subcoll_response_table
	load_struct
 EXAMPLE:
       A 2880 byte array (named FITARR) from a FITS record is to be 
       interpreted as floating and converted to the host representaton:

       IDL> IEEE_TO_HOST, fitarr, IDLTYPE = 4     

 METHOD:
       The BYTEORDER procedure is called with the appropriate keyword

 MODIFICATION HISTORY:
      Written, W. Landsman   Hughes/STX   May, 1992
      Converted to IDL V5.0   W. Landsman   September 1997
      Under VMS check for IEEE -0.0 values   January 1998
      VMS now handle -0.0 values under IDL V5.1    July 1998
      Added new integer datatypes  C. Markwardt/W. Landsman  July 2000
      Post-V5.1 version, no VMS negative zero check  W. Landsman July 2001
      Use size(/type)  W. Landsman December 2002
      Use /SWAP_IF_LITTLE_ENDIAN keyword for 64bit types W. Landsman Feb 2003


IEEE_TO_HOST [2] $SSW/gen/idl_libs/astron/misc/ieee_to_host.pro
[Previous] [Next]
 NAME:
     IEEE_TO_HOST
 PURPOSE:
     Translate an IDL variable from IEEE-754 to host representation 
 EXPLANATION:
     The variable is translated from IEEE-754 ("big-endian" as used, for
     example, in FITS data ), into the host machine architecture.

     Duplicates most of the functionality of the SWAP_ENDIAN_INPLACE procedure
     introduced in V5.6, with the addition of the IDLTYPE keyword.
 CALLING SEQUENCE:
     IEEE_TO_HOST, data, [ IDLTYPE = , ]

 INPUT-OUTPUT PARAMETERS:
     data - any IDL variable, scalar or vector.   It will be modified by
             IEEE_TO_HOST to convert from IEEE to host representation.  Byte 
             and string variables are returned by IEEE_TO_HOST unchanged

 OPTIONAL KEYWORD INPUTS:
     IDLTYPE - scalar integer (1-15) specifying the IDL datatype according
               to the code given by the SIZE function.     This keyword
               is usually when DATA is a byte array to be interpreted as
               another datatype (e.g. FLOAT).

 CALLS: ***
	CONV_UNIX_VAX, SINCE_VERSION [1], SINCE_VERSION [2]
 CALLED BY:
	DBEXT_IND [1], DBEXT_IND [2], DBEXT_IND [3], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBINDEX [1], DBINDEX [2], DBINDEX [3], DBOPEN [1], DBOPEN [2]
	DBOPEN [3], DBWRT [1], DBWRT [2], DBWRT [3], DB_ENT2HOST [1], DB_ENT2HOST [2]
	DB_ENT2HOST [3], FITSFILE__DEFINE [2], FXBREAD [1], FXBREAD [2], FXBREAD [3]
	FXBREADM, FXREAD [1], FXREAD [2], GOES_3HOUR, GRS_EXTRACT, HESSI Packet Read [2]
	HSI_LOAD_STRUCT, HSI_PACKET2DETECTOREVENT, HSI_RD_RASPMT, HXRBS_ESC, MRDFITS [1]
	MRDFITS [2], PICK_LINE, READFITS [1], READFITS [2], READFITS [3], READFITSL
	READ_FULL_ATT, READ_MONTH_CAT, READ_RESULTS2, SUM_IMAGE_HEAD, bin_read
	hsi_ras_rdeph [1], hsi_ras_rdeph [2], hsi_rd_subcoll_response_table
	load_struct
 EXAMPLE:
       A 2880 byte array (named FITARR) from a FITS record is to be 
       interpreted as floating and converted to the host representaton:

       IDL> IEEE_TO_HOST, fitarr, IDLTYPE = 4     

 METHOD:
       The BYTEORDER procedure is called with the appropriate keyword

 MODIFICATION HISTORY:
      Written, W. Landsman   Hughes/STX   May, 1992
      Converted to IDL V5.0   W. Landsman   September 1997
      Under VMS check for IEEE -0.0 values   January 1998
      VMS now handle -0.0 values under IDL V5.1    July 1998
      Added new integer datatypes  C. Markwardt/W. Landsman  July 2000
      Post-V5.1 version, no VMS negative zero check  W. Landsman July 2001
      Use size(/type)  W. Landsman December 2002
      Use /SWAP_IF_LITTLE_ENDIAN keyword for 64bit types W. Landsman Feb 2003
      Do not use XDR keywords to BYTEORDER for much improved speed
                               W. Landsman   April 2006
      Update cosmetic typo for structures W. Landsman  October 2006


igamma2 [1] $SSW/gen/idl/util/igamma2.pro
[Previous] [Next]
 NAME:
       igamma2
 PURPOSE:
      compute incomplete gamma function
 CALLING SEQUENCE:
      z=igamma2(a,x)
 INPUTS:
      a = positive exponent
      x = independent variable (array or scalar; max value lt 35)
 OUTPUTS:
      z = integral from 0 to X of EXP(-T) T^(A-1) for A > 0.
 CALLS: ***
	GAMMA
 CALLED BY:
	GAMINC [1], GAMINC [2], GAMINC [3]
 MODIFICATION HISTORY:     
      DMZ (ARC) Aug'92
      Adapted from Numerical Recipes in C (p.171)


ihy_db $SSW/gen/idl/synoptic/ihy_db.pro
[Previous] [Next]
 Project     : IHY

 Name        : ihy_db

 Purpose     : IDL database for International Heliophysical Year Participants 

 Category    : Database

 Inputs      : See component routines

 Outputs     : Database save file in $IHY_DB

 Keywords    : See component routines

 CALLS: ***
	ANYTIM2TAI, ANYTIM2UTC [1], ANYTIM2UTC [2], APPEND_ARR, APPLY_LOCK, ARR2STR [1]
	Arr2Str [2], BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3], BSORT [1], BSORT [2]
	BSORT [3], BSORT [4], CHECK_LOCK, CHKLOG [1], CHKLOG [2], CHMOD, CLEAR_STRUCT
	CLOSE_LUN, CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], COPY_STRUCT [1]
	COPY_STRUCT [2], COPY_STRUCT [3], DELVARX [1], DELVARX [2], DELVARX [3]
	DELVARX [4], ERR_STATE, ESPAWN, EXIST, GBO_SERVER, GET_CALLER, GREP, IHY_ADD, IHY_CACHE
	IHY_CHECK, IHY_CLEAR, IHY_COM, IHY_DEF, IHY_GET, IHY_HELP, IHY_LIST, IHY_LOAD, IHY_LOCK
	IHY_LOCKED, IHY_LOCK_FILE, IHY_MAP, IHY_MERGE, IHY_NEXT, IHY_OUTPUT, IHY_PRINT
	IHY_PRINTF, IHY_PRINT_SEARCH, IHY_PURGE, IHY_REMDUP, IHY_RESTORE, IHY_SAVE
	IHY_SEARCH, IHY_SERVER, IHY_SET, IHY_SHOW, IHY_TIME, IHY_UNLOCK, IHY_UPDATE, IHY_USE
	IHY_VALID, IS_BLANK, IS_STRING, LOC_FILE [1], LOC_FILE [2], LOC_FILE [3]
	MATCH_STRUCT, MKLOG, NEXT_GBO, NUM2STR, PRINT_CONTENT, PRINT_HTML, RD_ASCII [1]
	RD_ASCII [2], RM_LOCK, STR2ARR [1], STR2ARR [2], STR2LINES, STR_FORMAT
	TAG_EXIST [1], TAG_EXIST [2], TEST_DIR, TRIM, TRIM2, UNIQ [1], UNIQ [2], UNIQ [3]
	VALID_TIME, break_file [4], concat_dir [4], delvarx [5], get_uniq, is_number [1]
	is_number [2], is_struct, stc_compress, stc_uniq, stc_where, str_cut
	str_replace [1], str_replace [2], where_arr [1], where_arr [2]
 History     : 2-Aug-1999,  D.M. Zarro.  Written
             : 6-July-2004, B.J. Thompson, modified for IHY

 Contact     : BARBARA.J.THOMPSON@NASA.GOV


IHY_READ $SSW/gen/idl/synoptic/ihy_read.pro
[Previous] [Next]
 Project     : HESSI

 Name        : IHY_READ

 Purpose     : Read IHY database via a socket

 Category    : sockets 

 Syntax      : IDL> ihy_read,db

 Keywords    : ERR = error string
             
 CALLS: ***
	CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], DELVARX [1], DELVARX [2]
	DELVARX [3], DELVARX [4], GET_TEMP_DIR, LOC_FILE [1], LOC_FILE [2], LOC_FILE [3]
	SOCK_COPY, TEMPORARY2, concat_dir [4], delvarx [5]
 Restrictions: IDL 5.4 or greater

 History     : Written 26 July 2004, D. Zarro (L-3Com/GSFC)

 Contact     : dzarro@solar.stanford.edu


iionbal [1] $SSW/gen/idl/spectra/iionbal.pro
[Previous] [Next]
  NAME:
    iionbal
  PURPOSE:
    Return interpolated ionization fractions.
  CALLING SEQUENCE:
    ion_abun = iionbal(bal_data,Te6)
    ion_abun = iionbal(bal_data,Te6,Stages,Elem=Elem)
  INPUTS:
    bal_data	= Data structure contain data read from the ascii data
			file with the routine rd_ionbal
    Te6	= Vector of electron temperatures in units of 1.e6 K
    Stages	= Vector of ionization stages.  (XVIII = 18, etc.)

  OUTPUTS:
    The functional result is a 2-d array containing the fractional ion 
    abundances:
           ion_abun = fltarr(N_elements(Te6),N_elements(Stages))
  OPTIONAL OUTPUT KEYWORDS:
    Element	= The element (which is obtained from the last word in Head)
    Stages	= The stages returned (in case stages is no defined on input)
 CALLS: ***
	SPLINE
 CALLED BY:
	get_ionbal [1], get_ionbal [2]
  MODIFICATION HISTORY:
     4-sep-93, J. R. Lemen (LPARL), Written


IM_CONV_COORD $SSW/gen/idl/image/im_conv_coord.pro
[Previous] [Next]
 Project     :	SOHO - CDS

 Name        :	IM_CONV_COORD

 Purpose     :	Convert between different image coordinate systems.

 Category    :	Image display

 Explanation :	

 Syntax      :	IM_CONV_COORD, X, Y, /from_keyword, /to_keyword

 Examples    :	The following example converts a cursor postion from a widget
		event into a pixel position within the image.

		X = EVENT.X
		Y = EVENT.Y
		IM_CONV_COORD, X, Y, /DEVICE, /TO_IMAGE

 Inputs      :	X, Y	= Input coordinates to convert

 Opt. Inputs :	None.

 Outputs     :	X, Y	= The output coordinates are returned in the same
			  parameters.

 Opt. Outputs:	None.

 Keywords    :	Choose one of the following keywords to select the input data
		type.

		DATA	  = Set this keyword if the input coordinates are in
			    data space.
		DEVICE	  = Set this keyword if the input coordinates are in
			    device space.
		NORMAL	  = Set this keyword if the input coordinates are in
			    normalized space.
		IMAGE	  = Set this keyword if the input coordinates are in
			    image pixel space.

		And choose one of the following to select the output data type.

		TO_DATA   = Set this keyword if the output coordinates are to
			    be in data space.
		TO_DEVICE = Set this keyword if the output coordinates are to
			    be in device space.
		TO_NORMAL = Set this keyword if the output coordinates are to
			    be in normalized space.
		TO_IMAGE  = Set this keyword if the output coordinates are to
			    be in image pixel space. 

		Additional keywords:

		DISABLE	  = If set, then TVSELECT not used.


 Calls       : ***
	GET_TV_SCALE
 Common      :	

 Restrictions:	

 Side effects:	

 Prev. Hist. :	

 History     :	

 Contact     :	


IM_KEYWORD_SET $SSW/gen/idl/image/im_keyword_set.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : 
	IM_KEYWORD_SET()
 Purpose     : 
	Checks whether an image display keyword/flag is set.
 Explanation : 
	Decides whether a particular SERTS image display keyword is set, or
	whether the equivalent element in the !IMAGE structure is set.  Use
	this in place of KEYWORD_SET.
 Use         : 
	Result = IM_KEYWORD_SET( Keyword, !IMAGE.Keyword )
 Inputs      : 
	KEYWORD		= Keyword to be checked.
	IMAGE_KEYWORD	= Associated element in the !IMAGE structure variable.
 Opt. Inputs : 
	None.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	None.
 CALLED BY:
	BSCALE, EXPAND_TV, FORM_VEL, SCALE_TV, VEL_STRETCH, WDISPLAY
 Common      : 
	None.
 Restrictions: 
	Should only be used internally to the SERTS image display routines.

	In general, the SERTS image display routines use several non-standard
	system variables.  These system variables are defined in the procedure
	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
	user's IDL_STARTUP file.

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

 Side effects: 
	None.
 Category    : 
	Utilities, Image_display.
 Prev. Hist. : 
	William Thompson, June 1991.
 Written     : 
	William Thompson, GSFC, June 1991.
 Modified    : 
	Version 1, William Thompson, GSFC, 13 May 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 13 May 1993.


image2gifanim $SSW/gen/idl/http/image2gifanim.pro
[Previous] [Next]
 ----------------------------------------------------------------------------
   Name: image2gifanim

   Purpose: convert an image file sequence (gif, jpeg) to gif animation

   ======================================================================
   INTERFACE: - SEE IMAGE2MOVIE FOR INTERFACE DETAILS, RESTRICTIONS, etc.
   ======================================================================

 CALLS: ***
	image2movie
   History:
      5-mar-1997 (SLF) - Just made this a call to image2movie

 ----------------------------------------------------------------------------


image2movie $SSW/gen/idl/http/image2movie.pro
[Previous] [Next]
   Name: image2movie   

   Purpose: convert an image file sequence (3d, gif, jpeg) to mpeg or gif animation
    
   URL Reference: http://www.lmsal.com/solarsoft/ssw_movie_making.html

   Input Parameters:
       filelist - list of gif or jpeg image files (generally chronological order)
             -OR- 3D data cube
       r,g,b    - optional color table (default is from files or assigned)
   
   Keyword Parameters:
      movie_name - output file name (default is derived) (extension =.gif or.mpg)
                   (default written to $path_http/movies)
      outsize - specify frame size (default is size in image)
      goes - if set, merge goes lightcurve / timeline
      thumbnail - if set, generate a movie thumbnail
      thumbfile - (input/output) thumbnail file name 
      thumbsize - if set, thumbnail frame size (def=64)
      nothumbnail - if set, dont make thumbnail (/THUMBNAIL now the default)
      uttimes   - UT times of images [ array of lenght(nfiles) ]
                  Can automatically derive from file name ...YYMMDD.HHMM[SS]...
      deltat    - relative times between images (in place of absolute uttimes)
                  (array of length(nfiles) or switch (/deltat) to imply unity
      scratchdir - if defined, use this directory for temporary files
                   (defaults to '$SSW_MOVIE_SCRATCH' or $path_http/movie_scratch')
      html_array (output) - html descripter and link to insert in html document
                            (if thumbnail, this is included as a SRC link)
      inctar     - switch - if set and uttimes supplied, include time range
                            in output HTML_ARRAY
      tperline - (still only) - thumbnails per line
      out_style / fmt_time (synonyms) - time-> label format
                  (via get_infox. See anytim.pro OUT_STYLE options)
                              {ECS,CCSDS,YOHKOH...}                  
      loop -  switch, gif animate only - set loop flag in gif header

      gif,mpeg,java,still - (exclusive) specify output format 
      context - name of GIF movie context image (ex FD w/movie FOV annotated)
      ctitle - optional title for optional context image
      verbatim - if FILELIST supplied and /VERBATIM , do not regenerate temporary files
      notlabel - if set, dont time stamp thumbnails
      notfilm  - if set, dont put film perferations on film thumbnail.

   Calling Sequence:
      IDL> image2movie ,infiles, /gif_animate [,r,g,b, outsize=XY, KEYWORDS..]
      IDL> image2movie ,infiles, /mpeg        [,r,g,b, outsize=XY, KEYWORDS..]
      IDL> image2movie ,data3D, /mpeg         [,r,g,b, outsize=XY, KEYWORDS..]

   Calling Examples:
      IDL> image2movie, filelist,/gif [,/loop]         ; gif animate (w/defaults)
      IDL> image2movie, fileslist,/mpeg	        ; mpeg        (w/defaults)
      IDL> image2movie, fileslist,/java	        ; java        (w/defaults)
      IDL> image2movie, data3D,   /java	  ; same using 3D data cube
      IDL> image2movie, filelist,outsize=256           ; rebin 
      IDL> image2movie, filelist, r,g,b                ; new color table
      IDL> image2movie, filelist, table=NN, gamma=.nn  ; same, use IDL table

      IDL> image2movie, filelist, labels=labelarray                ; label
      IDL> image2movie, filelist, uttimes=timearr, /label          ; label w/time
      IDL> image2movie, filelist, uttimes=timearr, /goes, /label   ; add GOES

      IDL> image2movie, filelist,/thumbnail, html_array=html_array ; HTML link
      IDL> image2movie, data, uttimes=timearr, /java               ; data->files->movie

 CALLED BY:
	EIT_MKMOVIE, SXT_QLOOK, image2gifanim, image2mpeg, mk_lasteit_movie, special_movie
	sxt_ssn2fits [1]
   History:
     16-nov-1995 (SLF) - convert sxt2mpeg -> image2mpeg (semi-generic)
     29-jul-1996 (SLF) - avoid function/variable conflict (mkthumb)
     10-feb-1997 (SLF) - add LABEL keyword and function
      4-mar-1997 (SLF) - use ssw_bin.pro to find executables - documentation
      5-mar-1997 (SLF) - combine image2gifanim&image2mpeg-> image2movie
                         Cleanup, add Documentation
      6-mar-1997 (SLF) - add HTML_ARRAY output (insert in html documnent)
     15-mar-1997 (SLF) - add INCTIME keyword, adjust HTML_ARRAY output slightly
     18-mar-1997 (SLF) - add FMT_TIME/OUT_STYLE (synonyms) for time-label style
                         add THUMBSIZE parameter (->mkthumb.pro)
     15-jul-1997 (SLF) - add /JAVA switch (call DMZ jsmovie.pro)
     21-jul-1997 (SLF) - swing mode option for java option
     22-jul-1997 (SLF) - add /STILL option (ok, not a movie option, but most
                         of the function is the same...)
     21-oct-1997 (SLF) - allow direct data cube input
     27-oct-1997 (SLF) - permit mpeg parameter file in $SSW_SETUP
     28-oct-1997 (SLF) - work around anytim(/date,/trunc,out='ECS') bug
     29-oct-1997 (SLF) - suppress some diagnostics, add /truncate to anytim)
      2-Mar-1998 (SLF) - fix path problem with mpeg (caused an rgb problem)
     14-Apr-1998 (SLF) - made SCRATCHDIR more robust
     12-Oct-1998 (SLF) - add CONTEXT keyword and function - restore use
                         of DMZ default JS template html file
      1-Jun-1999 (SLF) - add VERBATIM keyword and function, add /RANGE to jsmovie
     12-Aug-1999 (SLF) - dont override MOVIE_DIR with $path_http(!)
                         Add seconds to scratch filenames (avoid file name conflicts)
     14-Sep-1999 (SLF) - add some documentation, pointer to SSW movie URL
     17-Nov-1999 (SLF) - add /NOTFILM and /NOTLABEL - use 'ssw_deltat'
     14-Jan-2000 (SLF) - eliminate blank thumbnail frames (permit duplicates)
     17-Jan-2000 (SLF) - truncate diagnostic movie commands 
      09-May-2003, William Thompson - Use ssw_strsplit instead of strsplit
  
 CALLS: ***
	ARR2STR [1], Arr2Str [2], BOX_MESSAGE, BREAK_FILE [1], BREAK_FILE [2]
	BREAK_FILE [3], CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], CONGRID [1]
	CONGRID [2], CONGRID [3], FILE_EXIST [2], FMT_TIMER [1], FMT_TIMER [2], JSMOVIE
	LOADCT, READ_GIF, STRETCH, TIME2FILE, WDEF [1], WDEF [2], WRITE_GIF, anytim [1]
	anytim [2], anytim [3], anytim [4], anytim [5], anytim2ints [1], anytim2ints [2]
	break_file [4], concat_dir [4], curdir [1], curdir [2], data2files, data_chk [1]
	data_chk [2], extract_fid, file_append [1], file_append [2], file_exist [1]
	file_exist [3], file_size [1], file_size [2], fmt_tim [1], fmt_tim [2]
	get_logenv [1], get_logenv [2], grid_data [1], grid_data [2], http_names
	int2secarr [1], int2secarr [2], last_nelem, line_table, mkthumb, prstr [1]
	prstr [2], rd_tfile [1], rd_tfile [2], ssw_bin, ssw_deltat, ssw_strsplit
	str2html [1], str2html [2], str2html [3], str_replace [1], str_replace [2]
	strjustify, strspecial [1], strspecial [2], strtab2html, ut_time [1], ut_time [2]
	zbuff2file [1], zbuff2file [2]
   Restrictions:
      need executables  'whirlgif'                       (gif animations) -OR-
                        'mpeg_encode' and 'giftopnm'     (mpeg) 
                       [distributed in $SSW/packages/binaries/... for most OS]
                       [SEE ssw_bin for info on executables in SSW environment]

      If file names do not include UT TIME (...YYMMDD.HHMM...), it is advisable
      to pass in a DELTA-T or UTTIMES array (or use /deltat if you dont care)


image2mpeg $SSW/gen/idl/http/image2mpeg.pro
[Previous] [Next]
 ----------------------------------------------------------------------------
   Name: image2mpeg

   Purpose: convert an image file sequence (gif, jpeg) to mpeg movie
   
   ======================================================================= 
   INTERFACE: - SEE IMAGE2MOVIE FOR INTERFACE DETAILS, RESTRICTIONS, etc.
   ======================================================================= 

 CALLS: ***
	image2movie
   History:
      5-mar-1997 (SLF) - Just made this a call to image2movie
 ----------------------------------------------------------------------------


IMAGE_DECONVOLVE $SSW/gen/idl/image/image_deconvolve.pro
[Previous] [Next]

function image_deconvolve,datain,psfin,sigmain,guess=guess, $
                          maxiterations=maxiter,double=double, $
                          uselog=uselogin, positive=positive, $
                          quiet=quietin, mask=maskin, float=float, $
                          usepsfcorr=usepsfcorrin, $
                          useautocorr=useautocorrin, chi2limit=chi2limitin, $
                          memweight=memweight, usepoisson=usepoissonin, $
                          chi2aim=chi2aimin, fixmemweight=fixmemweight, $
                          flux=fluxin,fftguess=fftguess

NAME:
     IMAGE_DECONVOLVE
PURPOSE:
     Deconvolve a PSF from an image
CATEGORY:
CALLING SEQUENCE:
     new_image = image_deconvolve(image,psf,sigma)
INPUTS:
     image = raw image
     psf = PSF centered on floor(nx/2),floor(ny/2)
     sigma = error estimate for image (must be positive and non-zero)
OPTIONAL INPUT PARAMETERS:
KEYWORD PARAMETERS
     guess = initial guess (default = image)
     /fftguess = Use the direct FFT inversion as the initial guess.  The
                 inversion is returned in teh guess keyword, overwriting
                 the contents of guess.
     maxiterations = maximum number of iterattions (def = 100)
     /double = use double precision in the FFT's (DEFAULT)
     /float = use single precision in the FFT's (faster but less robust)
     /uselog = Iterate the log of the image to provide an absolute positivity
               constraint.
     /positive = Apply crude positivity constraint.  Can cause failure to 
                 converge.  Ignored if /uselog is set.  If neither /positive
                 not /uselog is set, then the deconvolved image is allowed to 
                 go negative.
     flux = Try to force flux to be conserved by adding a condition that 
            the residuals are balanced (i.e. sum to zero).  The value of 
            flux is the weight given to the condition, start at 1.0 and work
            work your way up or down from there (bigger means more weight on
            this condition).
            There is no guarantee that the flux conservation will succeed.
            Note that masked areas are allowed to float and are not included
            in the flux calculation.
     /quiet = Do not print diagnostics or plot intermediate images.
     mask = index vector of pixels in image that should be NOT be included in the
            GOF calculation.  If not set, all pixels are used.  Slows down the
            calculation, so should not be used unless necessary.
     /usepsfcorr = add a term to force the correlation of the residual and the
                   PSF to be flat.  This is sometimes useful for avoiding
                   overcorrections. 
     chi2limit = limit for chi^2.  When this value is reached the iteration
                 is terminated.
     chi2aim = The value of chi^2 that the algorithm should aim for.  The
               weight is dynamically adjusted to get chi^2 to this value.
               there's no guarantee it will succeed, however.  Default = 1.0.
     /usepoisson = Use poisson statistics instead of Gaussian statistics.
                   In this case sigma isn't really used, but you have to 
                   put in something reasonalbe to make the displays look
                   right.  Also if /usepsfcorr is set, sigma is used in the
                   gradient calculation even when /usepoisson is set.
     memweight = Initial weight of the entropy terms.  Will be adjusted by
                 the algorithm to make chi^2=chi2aim.  Default = 1.0.
     /fixmemweight = Force memweight to reamain fixed at the value given by
                     the memweight keyword.  Try setting this if the
                     algorithm fails to converge.
OUTPUTS:
 CALLS: ***
	FFTCONVOL, IMAGE_DECON_FUNC, MINF_CONJ_GRAD
 CALLED BY:
	SXT_IMAGE_DECONVOLVE, TRACE_UNDIFFRACT
COMMON BLOCKS:
SIDE EFFECTS:
RESTRICTIONS:
     The deconvolution is done with the FFT so the dimension of the input
     data should be a power of two for speed.

     The iteration is done on the log of the image to give a strict
     positivity constraint.  Hence, if the data is anywhere equal to zero,
     the zero values are changed to 1. 
PROCEDURE:
     Uses a simple (and slow!) maximum entropy technique.  Iterates the log
     of the image for a positivity constraint with the /uselog keyword set.
MODIFICATION HISTORY:
     T. Metcalf 1999-Sep-21
     T. Metcalf 1999-Oct-01  Added /uselog and /positive.
     T. Metcalf 2000-Feb-09  Added /quiet keyword
     T. Metcalf 2000-Mar-01  Added /float and made /double the default.
     T. Metcalf 2000-Mar-07  Changed the weighting of the entropy term
     T. Metcalf 2000-Mar-21  New implementation of usepsfcorr
     T. Metcalf 2000-Mar-23  Fixed bug in entropy gradient
     T. Metcalf 2000-Mar-24  Added /usepoisson, chi2aim keywords.
     T. Metcalf 2000-Mar-31  Added memweight and /fixmemweight keywords and
                             allow a crude search for the best value of the
                             MEM weighting by attempting to reach a final
                             chi^2 value given by the chi2aim keyword.  Also
                             changed the implementation of the usepsfcorr
                             term slightly.
     T. Metcalf 2000-Sep-15  Added /flux keyword.
     T. Metcalf 2001-Jan-10  Fixed calculation of flux when mask is set.
     T. Metcalf 2001-Jan-16  Added check for sigma > 0.0
     T. Metcalf 2001-Jan-24  Added /fftguess keyword
     T. Metcalf 2001-Jan-29  The main code now uses the C-statistic when 
                             /usepoisson is set.  The image_decon_func always
                             used this anyway, but the change makes the
                             MEM Lagrange multiplier calculation better with
                             /usepoisson.
     T. Metcalf 2002-Oct-25  Slight modification to the way
                             /usepsfcorr works.  (Now use the central
                             value).


IMAGE_REGISTER $SSW/gen/idl/image/image_register.pro
[Previous] [Next]
 NAME:
	IMAGE_REGISTER
 PURPOSE:
	Widget-based program to determine the geometric registration 
       between two images of the same scene. Uses affine transformations 
       to calculate relative scaling, rotation, displacement, and shear.

 CALLING SEQUENCE:
	image_register,im1,im2,x,xp
 INPUTS:
	im1 - image 1, defined as the "reference image"
       im2 - image 2, image to be aligned/scaled/rotated to image 1.
             
 OUTPUT:
	x   - vector of points [2,N] where [0,N] are the x-values of
             reference tie points selected by the user and [1,N} are
             the y-values. 
	xp  - vector of identical points located by the user in image2.

 KEYWORDS:
       center - not implemented yet.

       output - STRING filename. If set, program writes X and XP to 
                the file specified by the string filename.

 USEAGE:
       Upon calling, a widget with four display areas opens. In the 
       left half of the widget the reference image (im1) is displayed
       with a 4X zoom in the zoom window. In the right half, im2 is
       similarly displayed. The user selects a point in im1 using 
       the mouse and the left button. The user then finds this exact
       same point in im2 and selects it using the mouse. For a robust
       solution, usually more than 10 points are required.

       If an incorrect selection is made, use the EDIT>Undo Selection
       menu item.
  
       To see the points selected use the DISPLAY>selections menu
       item.

       To print the current solution in the active IDL window, use
       the TRANSFORM>affine menu selection. Repeat this step periodically
       during the selection process to see if the solution is converging.
       In some cases, mis-paired points may cause the solution to
       converge to erroneous values; this requires a restart of the 
       procedure.

 NOTES:
       Uses AFFINE_SOLVE.PRO to determine the affine transformation

 REVISION HISTORY:
	Written    T. Berger              20-April-1998
 CALLS:


IMAGE_TOOL $SSW/gen/idl/image_tool/image_tool.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       IMAGE_TOOL

 PURPOSE:
       User interface of SOHO Pointing Tool and synoptic/summary database

 CALLING SEQUENCE:
       IMAGE_TOOL [, fits_file] [, point_stc=point_stc] [, start=start]
                  [, min=min, max=max] [, /reset] [, group=group] [,/modal]

 INPUTS:
       None required.

 OPTIONAL INPUTS:
       FITS_FILE -- String scalar or array, list of FITS image files

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       POINT_STC -- If present, it has to be a pointing structure that has
                    the following tags:

          INSTRUME   - Code specifying the instrument; e.g., 'C' for CDS
          G_LABEL    - Generic label for the pointing; e.g., 'RASTER'
          X_LABEL    - Label for X coordinate of pointing; e.g., 'INS_X'
          Y_LABEL    - Label for Y coordinate of pointing; e.g., 'INS_Y'
          DATE_OBS   - Date/time of beginning of observation, in TAI format
          N_POINTINGS- Number of pointings to be performed by IMAGE_TOOL
          POINTINGS  - An array (with N_POINTINGS elements) of pointings to
                       be handled by IMAGE_TOOL. It has the following tags:

                       POINT_ID - A string scalar for pointing ID
                       INS_X    - X coordinate of pointing area center in arcs
                       INS_Y    - Y coordinate of pointing area center in arcs
                       WIDTH    - Area width (E/W extent)  in arcsec
                       HEIGHT   - Area height (N/S extent) in arcsec
                       OFF_LIMB - An interger with value 1 or 0 indicating
                                  whether or not the pointing area should
                                  be off limb

          N_RASTERS  - Number of rasters for each pointing (this is
                       irrelevant to the SUMER)
          RASTERS    - A array (N_RASTERS-element) of structure that
                       contains raster size and pointing information
                       (this is irrelevant to the SUMER). It has the
                       following tags:

                       POINTING - Pointing handling code; valid
                                  values are: 1, 0, and -1
                       INS_X    - Together with INS_Y, the pointing to use
                                  when user-supplied values are not
                                  allowed.  Only valid when POINTING=0
                                  (absolute) or POINTING=-1 (relative to
                                  1st raster).
                       INS_Y    - ...
                       WIDTH    - Width (E/W extent) of the raster, in arcs
                       HEIGHT   - Height (N/S extent) of the raster, in arcs

          Note that values of POINT_STC structure can be returned to the
          caller of IMAGE_TOOL if the MODAL kyeword is set, or it is returned
          as a UVALUE of a massenger of a calling widget.

       AUTO_PLOT - Keyword used with POINT_STC. When Image Tool (and
                   Pointing Tool) is running and is called again with a new
                   POINT_STC and with AUTO_PLOT set, the
                   corresponding pointing area(s) will be plotted
                   automatically.

       START -- Start time of a study, in TAI format; defaults to
                current date and time. Note: If POINT_STC is passed
                in and POINT_STC.DATE_OBS represents a valid TAI,
                START will be overwritten by POINT_STC.DATE_OBS.
       MIN   -- Minimum value of the image
       MAX   -- Maximum value of the image
       GROUP -- ID of the widget which serves as a group leader
       MODAL -- Set this keyword to make IMAGE_TOOL a blocking widget program
       RESET -- If set, all images saved in image stack will be removed
       FOV   -- A field of view (FOV) structure having the following tags:

                X - array, X coordinates of the FOV, in arcsecs
                Y - array, Y coordinates of the FOV, in arcsecs

 CALLS: ***
	ADD_PSYS, ANYTIM2TAI, ANYTIM2UTC [1], ANYTIM2UTC [2], BLANK, CNVT_COORD [1]
	CNVT_COORD [2], CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], COPY_STRUCT [1]
	COPY_STRUCT [2], COPY_STRUCT [3], CW_BSELECTOR2, CW_LOADCT, DATATYPE [1]
	DATATYPE [2], DATATYPE [3], DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4]
	DPRINT, EIT_SYS, EXIST, EXPTV, FILE_EXIST [2], FLASH_MSG, FREE_POINTER, GET_CALLER
	GET_DFONT [1], GET_DFONT [2], GET_SOHO_ROLL, GET_TV_SCALE, GET_UTC, HAVE_PROC
	IDL_RELEASE, IS_BLANK, ITOOL_ADJ_CTABLE, ITOOL_BUTTON_REFRESH, ITOOL_COPY_TO_PIX
	ITOOL_DISPLAY, ITOOL_DISP_2ND, ITOOL_DISP_PLUS, ITOOL_ICON_PLOT
	ITOOL_LIMBFITTER, ITOOL_LOAD_IMAGE, ITOOL_MAGNIFIER, ITOOL_MARK_ICON
	ITOOL_NEW_CSI, ITOOL_NOAA, ITOOL_OVERLAYER, ITOOL_PICKFILE, ITOOL_PLOT_AXES
	ITOOL_POINT_PLOT, ITOOL_PTOOL, ITOOL_REFRESH, ITOOL_SOLAR_GRID
	ITOOL_UPDATE_ICONBT, MATCH_STRUCT, MK_POINT_STC, MULTI_FILE_BUTTON, NINT [1]
	NINT [2], NUM2STR, OPLOT_NAR [1], OPLOT_NAR [2], ORIENT_MARK, OS_FAMILY, POPUP_MSG
	PT_FOV_RESET, SETWINDOW [1], SETWINDOW [2], SINCE_VERSION [1], SINCE_VERSION [2]
	STRIP_DIRNAME [1], STRIP_DIRNAME [2], TAI2UTC, TRIM, TVDEVICE, UPDATE_ROT_BUTTON
	USE_EARTH_VIEW, USE_SOHO_VIEW, UTC2DOY, UTC2TAI, XACK, XHOUR, XKILL, XMANAGER_RESET
	XMENU [1], XMENU [2], XREGISTERED2, XSEL_LIST [1], XSEL_LIST [2], concat_dir [4]
	delvarx [5], file_exist [1], file_exist [3], is_number [1], is_number [2]
 CALLED BY:
	DSP_POINT, DSP_RASTER, MK_CDS_PLAN, MK_SOHO, XCAT, dsp_fov, mdi_imagetool
 COMMON BLOCKS:
       @IMAGE_TOOL_COM, CROSS_HAIR

 RESTRICTIONS:
       Cannot be run two copies simultaneously (guaranteed by the call to
       'XREGISTERED')

 SIDE EFFECTS:
       IDL color table may be changed or modified

 CATEGORY:
       Image processing, science planning

 PREVIOUS HISTORY:
       Written August 29, 1994, by Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       See image_tool.log

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


IMAGE_TOOL_COM $SSW/gen/idl/image_tool/image_tool_com.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       IMAGE_TOOL_COM

 PURPOSE:
       Common blocks for IMAGE_TOOL

 CATEGORY:
       Planning, Image_tool

 PREVIOUS HISTORY:
       Written January 13, 1995, Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       
 VERSION:
       Version 1, January 13, 1995, 1995


IMAGE_TOOL_EVENT $SSW/gen/idl/image_tool/image_tool_event.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       IMAGE_TOOL_EVENT

 PURPOSE:
       Event handler of image tool

 CATEGORY:
       image tool

 EXPLANATION:

 SYNTAX:
       image_tool_event, event

 INPUTS:
       EVENT - Event structure

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       None.

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3]
	CHK_DIR [1], CHK_DIR [2], CNVT_COORD [1], CNVT_COORD [2], CONCAT_DIR [1]
	CONCAT_DIR [2], CONCAT_DIR [3], CONGRID [1], CONGRID [2], CONGRID [3], DELVARX [1]
	DELVARX [2], DELVARX [3], DELVARX [4], DISP_TXT, DROT_MAP, FILE_EXIST [2], FLASH_MSG
	FREE_POINTER, GET_POINTER, GET_UTC, GREP, HAS_ERROR, HIST_EQUAL, IMAGE_TOOL_HLP
	ITOOL2MAP, ITOOL_ADJ_CTABLE, ITOOL_BUTTON_REFRESH, ITOOL_COMPOSITE
	ITOOL_COPY_TO_PIX, ITOOL_CROSS_HAIR, ITOOL_DIFF_ROT, ITOOL_DISPLAY
	ITOOL_DISP_PLUS, ITOOL_DISP_ROT, ITOOL_DRAW, ITOOL_DRAW_ICON, ITOOL_ICON_PLOT
	ITOOL_IMG_MATCH, ITOOL_INSIDE_LIMB, ITOOL_LOAD_IMAGE, ITOOL_MARK_ICON
	ITOOL_OVERLAYER_EVENT, ITOOL_PICKFILE, ITOOL_PICKFILE_EVENT, ITOOL_REFRESH
	ITOOL_RESTORE, ITOOL_RESTORE_PIX, ITOOL_SELECT_IMG, ITOOL_SOLAR_GRID
	ITOOL_SWITCHER, ITOOL_UPDATE_ICONBT, ITOOL_WRITE_FITS, ITOOL_XCHG_STACK
	ITOOL_XY, ITOOL_ZOOMINOUT, LIMBFIT_EVENT, MATCH_STRUCT, MK_HELP_STC, MK_IMG_ICON
	MULTI_FILE_BUTTON, NUM2STR, ORIENT_MARK, PB0R, POPUP_MSG, PS [1], PS [2], PSCLOSE [1]
	PSCLOSE [2], PSPLOT [1], PSPLOT [2], PT_FOV_RESET, PT_PTOOL_EVENT, REVERSE, ROT
	ROT_XY, SAVEIMAGE, SETWINDOW [1], SETWINDOW [2], SET_CURSOR_SIZE, SET_POINTER
	SIGRANGE [1], SIGRANGE [2], SOHO_VIEW, STR2ARR [1], STR2ARR [2], STRIP_DIRNAME [1]
	STRIP_DIRNAME [2], TAI2UTC, TRIM, TVZOOM2, UPDATE_ROT_BUTTON, USE_EARTH_VIEW
	USE_SOHO_VIEW, UTC2DOY, UTC2TAI, VALID_NUM [1], VALID_NUM [2], VALID_NUM [3]
	VALID_POINTER, WIDG_HELP, WIDG_TYPE, X2JPEG, X2PS, XACK, XANSWER, XDOC, XGET_UTC, XHOUR
	XINPUT, XKILL, XLOAD, XPS_SETUP, XSET_COLOR, XSET_VALUE, XSHOW_HELP, XSTRUCT, XTEXT
	XTEXT_RESET, break_file [4], concat_dir [4], delvarx [5], file_exist [1]
	file_exist [3]
 COMMON:
       @image_tool_com, cross_hair

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, January 29, 1997, Liyun Wang, NASA/GSFC. Written
          Extracted from image_tool.pro
       Version 2, February 11, 1997, Liyun Wang, NASA/GSFC
          Implemented following options: 1) to spawn an image window
          and to quit with image window retained; 2) to rotate points
          on central meridian
       Version 3, March 6, 1997, Liyun Wang, NASA/GSFC
          Implemented differential rotation indicator for any constant
             longitudinal points and points at the same Solar X value
       Version 4, March 20, 1997, Liyun Wang, NASA/GSFC
          Modified not to refresh image window after receiving a new study
       Version 5, April 1, 1997, Liyun Wang, NASA/GSFC
          Allowed OBS_TIME field to be editable
       Version 6, April 15, 1997, Liyun Wang, NASA/GSFC
          Called XGET_SYNOPTIC with current OBS_TIME
       Version 7, June 12, 1997, Liyun Wang, NASA/GSFC
          Changed call from CROSS_HAIR to ITOOL_CROSS_HAIR
	Version 8, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
	Version 9, Zarro (SM&A/GSFC), 7 Oct 1999, changed stack order such
               that last viewed image is at bottom of stack
	Version 10, T. Kucera, GSFC, 2 Apr. 2001, converted from GIF to JPEG

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


IMAGE_TOOL_HLP $SSW/gen/idl/image_tool/image_tool_hlp.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       IMAGE_TOOL_HLP

 PURPOSE:
       Print selected help message for a given uvalue of a widget

 EXPLANATION:

 CALLING SEQUENCE:
       image_tool_hlp, uvalue

 INPUTS:
       UVALUE - User value of a widget created from an widget event

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       None.

 CALLS: ***
	GREP, ITOOL_REFRESH, XKILL, XSHOW_HELP
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
 COMMON BLOCKS:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:

 PREVIOUS HISTORY:
       Written May 15, 1995, Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       Version 1, created, Liyun Wang, NASA/GSFC, May 15, 1995
       Version 2, October 27, 1995, Liyun Wang, NASA/GSFC
          Modified to cope with the cursor tracking option

 VERSION:
       Version 2, October 27, 1995


IMAGELIB $SSW/gen/idl/image/imagelib.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : 
	IMAGELIB
 Purpose     : 
	Defines variables/common blocks for the SERTS IMAGE library.
 Explanation : 
	Adds system variable !IMAGE.
 Use         : 
	IMAGELIB
 Inputs      : 
	None.
 Opt. Inputs : 
	None.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	None.
 CALLED BY:
	ADD_PSYS, EIT_DISPLAY, EIT_POSTAGE, eit_ratio, ssw_setup_windows
 Common      : 
	None.
 Restrictions: 
	This routine should be called only once, preferably in the startup
	procedure.  DEVICELIB should also be called, because these routines use
	some of the routines from the graphics devices utilities subdirectory.
 Side effects: 
	System variables may be changed to their default values.
 Category    : 
	Utilities, Image_display.
 Prev. Hist. : 
	William Thompson, 5 December 1991.
	WIlliam Thompson, 10 November 1992, added !BCOLOR.
 Written     : 
	William Thompson, GSFC, 5 December 1991.
 Modified    : 
	Version 1, William Thompson, GSFC, 23 June 1993.
		Incorporated into CDS library.  Removed overlap with DEVICELIB
		routine.
       Version 2, William Thompson, GSFC, 3-Jan-2006
               Added tag BOTTOM
 Version     : 
	Version 2, 3-Jan-2006


IMCONTOUR $SSW/gen/idl_libs/astron/astro/imcontour.pro
[Previous] [Next]
 NAME:
       IMCONTOUR
 PURPOSE:
       Make a contour plot labeled with astronomical coordinates.
 EXPLANATION:
       The type of coordinate display is controlled by the keyword TYPE
       Set TYPE=0 (default) to measure distances from the center of the image
       (IMCONTOUR will decide whether the plotting units will be in
       arc seconds, arc minutes, or degrees depending on image size.)
       Set /TYPE for standard RA and Dec labeling

       By using the /NODATA keyword, IMCONTOUR can also be used to simply
       provide astronomical labeling of a previously displayed image.
 CALLING SEQUENCE
       IMCONTOUR, im, hdr,[ /TYPE, /PUTINFO, XDELTA = , YDELTA =, _EXTRA = 
                            XMID=, YMID= ]

 INPUTS:
       IM - 2-dimensional image array
       HDR - FITS header associated with IM, string array, must include
               astrometry keywords.   IMCONTOUR will also look for the
               OBJECT and IMAGE keywords, and print these if found and the 
               PUTINFO keyword is set.

 OPTIONAL PLOTTING KEYWORDS:
       /TYPE - the type of astronomical labeling to be displayed.   Either set
               TYPE = 0 (default), distance to center of the image is
               marked in units of Arc seconds, arc minutes, or degrees

               TYPE = 1 astronomical labeling with Right ascension and 
               declination.

       /PUTINFO - If set, then IMCONTOUR will add information about the image
               to the right of the contour plot.  Information includes image
               name, object, image center, image center, contour levels, and
               date plot was made

       XDELTA, YDELTA - Integer scalars giving spacing of labels for TYPE=1.  
               Default is to label every major tick (XDELTA=1) but if 
               crowding occurs, then the user might wish to label every other
               tick (XDELTA=2) or every third tick (XDELTA=3)

       XMID, YMID - Scalars giving the X,Y position from which offset distances
               will be measured when TYPE=0.   By default, offset distances 
               are measured from the center of the image.

       Any keyword accepted by CONTOUR may also be passed through IMCONTOUR
       since IMCONTOUR uses the _EXTRA facility.     IMCONTOUR uses its own
       defaults for the XTITLE, YTITLE XMINOR, YMINOR, and SUBTITLE keywords
       but these may be overridden.

 NOTES:
       (1) The contour plot will have the same dimensional ratio as the input
           image array
       (2) To contour a subimage, use HEXTRACT before calling IMCONTOUR
       (3) Use the /NODATA keyword to simply provide astronomical labeling
           of a previously displayed image.
       (4) The IMCONTOUR display currently does not indicate the image 
           rotation in any way, but only specifies coordinates along the 
           edges of the image 

 CALLS: ***
	ADSTRING, CHECK_FITS [1], CHECK_FITS [2], CONS_DEC, CONS_RA, EXTAST, GETROT
	GSSS_STDAST, SXPAR [1], SXPAR [2], SXPAR [3], TICLABELS, TICPOS, TICS, TIC_ONE, UNIQ [1]
	UNIQ [2], UNIQ [3], XY2AD, XYAD
 EXAMPLE:
       Overlay the contour of an image, im2, with FITS header, h2, on top
       of the display of a different image, im1.   Use RA, Dec labeling, and
       seven equally spaced contour levels.    The use of a program like
       David Fanning's TVIMAGE  http://www.dfanning.com/programs/tvimage.pro
       is suggested to properly overlay plotting and image coordinates.  The
       /Keep_aspect_ratio keyword must be used.

       IDL> tvimage,im1,/keep_aspect, position = pos
       IDL> imcontour,im2,h2,nlevels=7,/Noerase,/TYPE,position = pos

 PROCEDURES USED:
       CHECK_FITS, EXTAST, GETROT, TICPOS, TICLABEL, TIC_ONE, TICS, XYAD
       CONS_RA(), CONS_DEC(), ADSTRING()

 REVISION HISTORY:
       Written   W. Landsman   STX                    May, 1989
       Fixed RA,Dec labeling  W. Landsman             November, 1991
       Fix plottting keywords  W.Landsman             July, 1992
       Recognize GSSS headers  W. Landsman            July, 1994
       Removed Channel keyword for V4.0 compatibility June, 1995
       Add _EXTRA CONTOUR plotting keywords  W. Landsman  August, 1995
       Add XDELTA, YDELTA keywords  W. Landsman   November, 1995
       Use SYSTIME() instead of !STIME                August, 1997
       Remove obsolete !ERR system variable W. Landsman   May 2000 
       Added XMID, YMID keywords to specify central position (default is still
          center of image)  W. Landsman               March 2002     
       Recognize Galactic coordinates, fix Levels display when /PUTINFO set
           W. Landsman                May 2003
       Correct conversion from seconds of RA to arcmin is 4 not 15.
       	M. Perrin					July 2003
       Fix integer truncation which appears with tiny images WL  July 2004
       Changed some keyword_set() to N_elements WL  Sep 2006
       


IMDBASE $SSW/gen/idl_libs/astron/database/imdbase.pro
[Previous] [Next]
 NAME:
     IMDBASE
 PURPOSE:
     Find the sources in an IDL database that are located on a given image.

 CALLING SEQUENCE:
    imdbase, hdr, catalogue, [list, ALT=, XPOS= ,YPOS=, XRANGE= ,YRANGE= , 
                       SUBLIST = ]  

 INPUTS:
    hdr - FITS image header containing astrometry, and the NAXIS1,
               NAXIS2 keywords giving the image size
    catalogue - string giving name of catalogue in database
              Database must contain the (preferably indexed)
              fields RA (in hours) and DEC.   Type DBHELP for a 
              list of the names of available catalogues.

 OPTIONAL OUTPUT PARAMETER:
    LIST - A long vector containing the entry numbers of sources found
           within the image.   This vector can then be used with other
           database procedures, e.g. to print specified fields (DBPRINT)
           or subselect with further criteria (DBFIND)

 OPTIONAL OUTPUT KEYWORD PARAMETER:
     XPOS - REAL*4 vector giving X positions of catalogue sources found 
            within the image
     YPOS - REAL*4 vector giving Y positions of catalogue sources found 
            within the image

 OPTIONAL INPUT KEYWORD PARAMETERS
       ALT -  single character 'A' through 'Z' or ' ' specifying an alternate 
              astrometry system present in the FITS header.    The default is
              to use the primary astrometry or ALT = ' '.   If /ALT is set, 
              then this is equivalent to ALT = 'A'.   See Section 3.3 of 
              Greisen & Calabretta (2002, A&A, 395, 1061) for information about
              alternate astrometry keywords.
     XRANGE - 2 element vector giving the X range of the image to consider.
              The default is to search for catalogue sources within the entire
             image
     YRANGE - 2 element vector giving the Y range of the image to consider.
     SUBLIST - vector giving entries in the database to consider in the
               search.  If not supplied, or set equal to -1, then all entries
               are considered.

 NOTES:
     If an output list vector is not supplied, then the found objects are
     diplayed at the terminal.

 EXAMPLE:
      Find all existing IUE SWP observations within the field of the STSDAS
      disk file FUV0435FC.  Subselect those taken with the SWP camera

      SXHREAD,'fuv0435fc',H             ;Read header from disk
      IMDBASE,H,'IUE',list              ;Find IUE obs. within image 
      LIST2 = DBFIND('CAM_NO=3',LIST)   ;Subselect on SWP images

 CALLS: ***
	AD2XY, DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBFIND [1], DBFIND [2], DBFIND [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPRINT [1], DBPRINT [2], DBPRINT [3]
	DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1], DB_ITEM_INFO [2]
	DB_ITEM_INFO [3], EXTAST, GET_EQUINOX, GSSSADXY, GSSSXYAD, HPRECESS, SXPAR [1]
	SXPAR [2], SXPAR [3], XY2AD
 SIDE EFFECTS:
      The IDL database is left open upon exiting IMDBASE.
 NOTES:
      IMDBASE checks the description of the RA item in the database for the
      string '1950'.    If found, the database RA and Dec are assumed to be 
      in equinox B1950.   Otherwise they are assumed to be in ICRS or J2000. 

 SYSTEM VARIABLES:                                                
      The non-standard system variable !TEXTOUT is required for use with the
      database procedures.   

 PROCEDURES USED:
      AD2XY, DBEXT, DB_ITEM, DB_ITEM_INFO(), DBOPEN, DBFIND(), EXTAST, 
      GET_EQUINOX(), GSSSADXY, GSSSXYAD, HPRECESS, SXPAR(), XY2AD 
 REVISION HISTORY:
      Written W. Landsman            September, 1988
      Added SUBLIST keyword          September, 1991
      Updated to use ASTROMETRY structures    J.D. Offenberg, HSTX, Jan 1993
      Conversion for precession fixed.   R.Hill, HSTX, 22-Apr-93
      Check RA description for equinox   W. Landsman  Aug 96
      Converted to IDL V5.0   W. Landsman   September 1997
      Call HPRECESS if header equinox does not match DB  W. Landsman Oct. 1998
      Assume Equinox J2000 if not explicitly B1950 W. Landsman Jan. 2005
      Added ALT keyword W. Landsman  April 2005


IMF $SSW/gen/idl_libs/astron/astro/imf.pro
[Previous] [Next]
 NAME:
       IMF
 PURPOSE:
       Compute an N-component power-law logarithmic initial mass function 
 EXPLANTION:
       The function is normalized so that the total mass distribution 
       equals one solar mass.

 CALLING SEQUENCE:
       psi = IMF( mass, expon,  mass_range )

 INPUTS:
       mass - mass in units of solar masses (scalar or vector)
               Converted to floating point if necessary
       expon - power law exponent, usually negative, scalar or vector
               The number of values in expon equals the number of different
               power-law components in the IMF
               A Saltpeter IMF has a scalar value of expon = -1.35
       mass_range - vector containing the mass upper and lower limits of the 
               IMF and masses where the IMF exponent changes.   The number 
               of values in mass_range should be one more than in expon.   
               The values in mass_range should be monotonically increasing.

 OUTPUTS
       psi - mass function, number of stars per unit logarithimic mass interval
               evaluated for supplied masses

 NOTES:
       The mass spectrum f(m) giving the number of stars per unit mass 
       interval is related to psi(m) by  m*f(m) = psi(m).    The normalization
       condition is that the integral of psi(m) between the upper and lower
       mass limit is unity.

 EXAMPLE:
       (1) Print the number of stars per unit mass interval at 3 Msun 
               for a Salpeter (expon = -1.35) IMF, with a mass range from 
               0.1 MSun to 110 Msun.

               IDL> print, imf(3, -1.35, [0.1, 110] ) / 3

       (2) Lequex et al. (1981, A & A 103, 305) describes an IMF with an
               exponent of -0.6 between 0.007 Msun and 1.8 Msun, and an
               exponent of -1.7 between 1.8 Msun and 110 Msun.    Plot
               the mass spectrum f(m)

               IDL> m = [0.01,0.1,indgen(110) + 1 ]  ;Make a mass vector
               IDL> expon = [-0.6, -1.7]       ;Exponent Vector
               IDL> mass_range = [ 0.007, 1.8, 110]    ;Mass range
               IDL> plot,/xlog,/ylog, m, imf(m, expon, mass_range ) / m

 METHOD
       IMF first calculates the constants to multiply the power-law 
       components such that the IMF is continuous at the intermediate masses, 
       and that the total mass integral is one solar mass.  The IMF is then 
       calculated for the supplied masses.   Also see Scalo (1986, Fund. of
       Cosmic Physics, 11, 1)

 PROCEDURES CALLED:
       None
 REVISION HISTORY:
       Written    W. Landsman              August, 1989  
       Set masses LE mass_u rather than LT mass_u  August, 1992
       Major rewrite to accept arbitary power-law components   April 1993
       Convert EXPON to float if necessary  W. Landsman     March 1996
       Converted to IDL V5.0   W. Landsman   September 1997
       Remove call to DATATYPE, V5.3 version  W. Landsman  August 2000


img_summary [1] $SSW/gen/idl/display/img_summary.pro
[Previous] [Next]
NAME:
	img_summary
PURPOSE:
	To display summary information of an image.  Display the image
	along with histograms and line plots, plus other text info
SAMPLE CALLING SEQUENCE:
	img_summary, img
	img_summary, img, 'Main Title Example', ['comment1', 'comment2']
	img_summary, img, margin=2, brightest=8, dimmest=8
	img_summary, img, tit, comments, hc=hc, qstop=qstop, $
		scl_min=scl_min, scl_max=scl_max, log_scale=log_scale, $
		brightest=brightest, dimmest=dimmest, $
		margin=margin, progver=progver2

INPUT:
	img	- The image to be summarized
OPTIONAL INPUT:
	tit	- The title to be displayed
	comments- A string array of comments to display
 CALLS: ***
	ARR2STR [1], Arr2Str [2], CONGRID [1], CONGRID [2], CONGRID [3]
	IMG_SUMMARY_PIXLST, SETPS, STDEV, deriv_arr [1], deriv_arr [2], font_size [1]
	font_size [2], mk_refbar [1], mk_refbar [2], pprint [1], pprint [2], tv2 [1]
	tv2 [2], xyouts2 [1], xyouts2 [2]
 CALLED BY:
	dpc_img_summary, img_sumtr2, mdipict, xdisp_fits, xdisp_trace [1], xdisp_trace [2]
	xdisp_trace2, xdisp_trace3
OPTIONAL KEYWORD INPUT:
	hc	- If set, make a hardcopy (do not display to the screen)
	scl_min	- The minimum to use for stretching
	scl_max	- The maximum to use for stretching
	log_scale- If set, display the second form of the image in log
		  scaling (rather than +/- 1 sigma)
	qstop	- If set, stop for debugging
	brightest - If defined, print out information on the brightest
		  pixel locations and their values.  The number of
		  values displayed is the value which is passed in.
	margin	- If defined, print the min/max/avg/dev for the image
		  less "margin" pixels on the left/right/top/bottom
		  (ie: margin=1 says ignore first/last columns/lines)
	progver	- The outside program name and version
HISTORY:
	Written 5-Apr-94 by M.Morrison
V1.1	 5-Apr-94 (MDM) - Changed options/format slightly
			- Modified histogram to stretch if max-min < 2
V1.2	 6-Apr-94 (MDM) - Added "brightest" option
V1.3	 7-Apr-94 (MDM) - Allowed "title" to be an array
V1.4	19-Apr-94 (MDM) - Added MARGIN keyword option
			- Added printing information on number of pixels
			  included in the expanded scale
			- Added (0,0) label for the images
			- Added PROGVER keyword option
			- Added plotting histogram of +/-1 sigma when
			  the +/- 2 sigma is pretty much the same as
			  the full range
V1.41	20-Apr-94 (MDM) - Small format change
V1.5	22-Apr-94 (MDM) - Corrected error in the second image scaling
			  (+/- 1 sigma).  Variable name conflict
V1.51	22-Apr-94 (MDM) - Corrected calculation of average of all
			  rows and columns when using margin (it was
			  doing it for the whole image before)
			- Modified to use "midev" instead of "idev"
			  for +/- 1 sigma scaling of image when
			  margin is used.
			- Scale the expanded histogram using "midev"
V1.52	25-Apr-94 (MDM) - Modified to call FONT_SIZE when going to an
			  X-window
V1.53	29-Apr-94 (MDM) - Modified to only call FONT_SIZE if not PS
V1.54	14-Jun-94 (MDM) - Corrected error for case when MARGIN is not used
V1.60	22-Feb-96 (MDM) - Added DIMMEST option
			- Added sample calling sequence to header
			- Corrected error where MARGIN range was using Full 
			  image min (reported incorrect range)
V1.61	 6-Mar-96 (MDM) - Corrected to display the image properly when it
			  is not square
V1.62	11-Jul-96 (MDM) - Added Z output option
V1.63	24-Oct-96 (MDM) - Modified use TV2, /INIT for all output types
			  (rather than the case statement)
V1.64	 6-Nov-96 (MDM) - Moved "save_device" and "save_color" to
			  outside the conditional for "hc"
			- Added "/int" to set_plot,'ps'
			- Added top=!d.table_size-1 to bytscl
			- Modified to only call "pprint" if /hc is set
V1.65	 6-Nov-96 (MDM)	- Modified to use "setps"
V1.70	 6-Dec-96 (MDM) - Modified plotting of lines and columns to
			  not exclude the "margin" pixels, rather to 
			  just set the plot range to be the portion
			  excluding the margin.
V1.80	16-Apr-97 (MDM) - Added protection for out of bounds for
			  margin option
V2.00	08-Apr-98, William Thompson, GSFC
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
			(version number was not updated in PROGVER)
V2.01	22-Jul-98 (MDM) - Made the font size for Z buffer be 0.8


IMLIST $SSW/gen/idl_libs/astron/image/imlist.pro
[Previous] [Next]
 NAME:
      IMLIST        
 PURPOSE:
      Display pixel values on an image surrounding a specified X,Y center.
 EXPLANATION:
      IMLIST is similar to TVLIST but the center pixel is supplied directly by
      the user, rather than being read off of the image display

 CALLING SEQUENCE:
      IMLIST, Image, Xc, Yc, [ TEXTOUT = , DX = , DY = ,WIDTH = ,DESCRIP = ]

 INPUTS:
      Image - Two-dimensional array containing the image 
      Xc  -   X pixel value at which to center the display, integer scalar 
      Yc -    Y pixel value at which to center the display, integer scalar 

 OPTIONAL INPUTS KEYWORDS:
      TEXTOUT - Scalar number (1-7) or string which determines output device.
               (see TEXTOPEN) The following dev/file is opened for output.

               textout=1       TERMINAL using /more option
               textout=2       TERMINAL without /more option
               textout=3       <program>.prt
               textout=4       laser.tmp
               textout=5       user must open file
               textout=7       same as 3 but text is appended to <program>.prt
                               if file already exists
               textout = filename (default extension of .prt)

       DX     -Integer scalar giving the number of pixels inthe  X direction 
               to be displayed.  If omitted then DX = 18 for byte images, and 
               DX = 14 for integer images.  IMLIST will display REAL data 
               with more significant figures if more room is available to 
               print.  

       DY    - Same as DX, but in Y direction.  If omitted, then DY = DX 
       WIDTH - Integer scalar giving the character width of the output device.
               Default is 80 characters.
       DESCRIP =  Scalar string which will be written as a description over
               the output pixel values.   If DESCRIP is not supplied, and the
               output device specified by TEXTOUT is not a terminal, then the
               user will be prompted for a description.
       OFFSET - 2 element numeric vector giving an offset to apply to the 
               display of the X,Y coordinates of the image (e.g. if the 
               supplied image array is a subarray of a larger image).
 OUTPUTS:
       None.

 CALLED BY:
	GCNTRD, TVLIST
 PROCEDURE:
       Corresponding region of image is then displayed at
       the terminal.   If necessary, IMLIST will divide all pixel values
       in a REAL*4 image by a (displayed) factor of 10 to make a pretty format.

 SYSTEM VARIABLES:
       If the keyword TEXTOUT is not supplied, then the non-standard system
       variable !TEXTOUT will be read.    (The procedure ASTROLIB can be
       used to add the non-standard system variables.)

 CALLS: ***
	ASTROLIB, F_FORMAT, TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3], TEXTOPEN [1]
	TEXTOPEN [2], TEXTOPEN [3]
 RESTRICTIONS:
       IMLIST may not be able to correctly format all pixel values if the
       dynamic range of the values near the center pixel is very large

 EXAMPLE:
       Display the pixel values of an image array IM in the vicinity of 254,111

       IDL> imlist, IM, 254, 111

 PROCEDURES USED
       TEXTOPEN, F_FORMAT(), TEXTCLOSE
 REVISION HISTORY:
       Written,    W. Landsman             June, 1991
       Added DESCRIP keyword    W. Landsman      December, 1991
       Treat LONG image as integer when possible, call TEXTOPEN with /STDOUT
       keyword, W. Landsman   April, 1996
       Use SYSTIME() instead of !STIME  August 1997
       Converted to IDL V5.0   W. Landsman   September 1997
       Recognize new integer types, added OFFSET keyword  W. Landsman Jan. 2000
       Replace DATATYPE() with size(/TNAME)  W. Landsman Nov. 2001
       Handle NAN values in output display W. Landsman June 2004


IN_EAST $SSW/gen/idl/system/in_east.pro
[Previous] [Next]
 Project     : HESSI     
                   
 Name        : IN_EAST
               
 Purpose     : check if east of Royal Greenwich Observatory, UK
               
 Category    : time utility
               
 Syntax      : IDL> print,in_east()

 Inputs      : None
               
 Outputs     : 1/0 if east or west of Royal Greenwich Observatory in UK
               
 Keywords    : None
               
 History     : 6-Nov-2002, Zarro (EER/GSFC)  Written
     
 Contact     : dzarro@solar.stanford.edu


IN_RANGE $SSW/gen/idl/util/in_range.pro
[Previous] [Next]
 Project     : RHESSI
                   
 Name        : IN_RANGE
               
 Purpose     : check if all input data values are with a selected data range
               
 Category    : utility
               
 Syntax      : IDL> out=in_range(input,array)
    
 Inputs      : INPUT = array of values to check
               ARRAY = target array of values
               
 Outputs     : 1 - if at all input points inside array ranges
               0 - if at least one point is outside

 CALLS: ***
	EXIST
 CALLED BY:
	hsi_image_fitsread
 History     : 8-Oct-02, Zarro (LAC/GSFC) - written

 Contact     : DZARRO@SOLAR.STANFORD.EDU


INDD [1] $SSW/gen/idl/genutil/indd.pro
[Previous] [Next]
 NAME:		INDD
 PURPOSE:	Return index of array A(i) for which
		A(i-1) < B <= A(i) 
 CATEGORY:
 CALLING SEQUENCE: indx = indd(A, B) 
 INPUTS:	A = an array whose value is monotonically increasing
		B = threshold value
 OUTPUTS: 	Function result = indx of array A(i) to satisfy the
 		conditon  A(i-1) < B <= A(i)
 CALLED BY:
	ACGAUNT [1], ACGAUNT [2]
 COMMON BLOCKS: none
 SIDE EFFECTS:  none
 RESTRICTIONS:  none
 PROCEDURE:	straightforward


index2fov $SSW/gen/idl/ssw_util/index2fov.pro
[Previous] [Next]
   Name: index2fov

   Purpose: FOVs for input index(s) - optionally EXTREMEs of multiple FOVs
  
   Input Parameters:
      index - vector of SSW structures (inc pointing and time standards..)

   Output Parameters:
      east, west, north, south - image edges in arcseconds

   Keyword Parameters:
      extremes - (input) - switch, if set, outputs are for "composite"
                           (used for mosaic building, for example)
      heliographic - input - switch, if set, outputs are heliographic
      l1/soho - (input) switches - synonym for L1 in arcmin2hel call
                             (default=heliocentric in arcsec)
      center_fov - (output) - if /extremes, then "composite" fov center
      size_fov   - (output) - if /extremes, then "composite" fov nx,ny

 CALLS: ***
	BOX_MESSAGE, STR2ARR [1], STR2ARR [2], anytim [1], anytim [2], anytim [3]
	anytim [4], anytim [5], gt_tagval [1], gt_tagval [2], required_tags
 CALLED BY:
	ssw_build_trace, ssw_fov_context, trace_build_mosaic3
   History:
      Circa 1999 - S.L.Freeland - for mosaic building - Extremes of multi FOV
      10-Feb-2003 - S.L.Freeland - /HELIO extensions (need arcmin2hel mod??) 


INDEX2MAP $SSW/gen/idl/mapping/index2map.pro
[Previous] [Next]
 Project     : SOHO, YOHKOH

 Name        : INDEX2MAP

 Purpose     : Make an image map from index/data pair

 Category    : imaging

 Syntax      : index2map,index,data,maparr

 Inputs      : index - vector of 'index' structures (per mreadfits/fitshead2struct)
               data  - 2D or 3D

 Outputs     : maparr - 2D or 3D array of corresponding 'map structures'

 Keywords    : soho - if set, force SOHO-view (default uses index.TELESCOP if present)
               sub  - if switch, interactively select subfield
                      if 4 element vector, assume => [x1,x2,y1,y2] 
               outsize - new output dimensions
               positive - set negative points to zero

 CALLS: ***
	ADD_PROP, CONGRID [1], CONGRID [2], CONGRID [3], DATATYPE [1], DATATYPE [2]
	DATATYPE [3], DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], EXIST, EXPTV
	FITSHEAD2WCS, GET_FITS_PAR, IS_STRING, MERGE_STRUCT, NUM2STR, PR_SYNTAX, STR2ARR [1]
	STR2ARR [2], STRUP, TAG_EXIST [1], TAG_EXIST [2], TRIM, TVSUBIMAGE, UNIQ [1], UNIQ [2]
	UNIQ [3], delvarx [5], is_struct
 CALLED BY:
	FITS2MAP [1], FITS2MAP [2], HSI_FITS2MAP [1], INDEX2OMAP, MK_MDI_MAP_EARTH
	MK_SOHO_MAP_EARTH, SOCK_MAP, SXT__DEFINE, region_mark, ssw_build_trace
	ssw_fov_context, ssw_subimage, ssw_track_fov, todays_targets
	trace_movie_context
 History     : Written, 14 February 1998, S.L. Freeland (LSAL)
               Embellished, 22 March 1998, D. Zarro (SAC/GFSC)
		27-Aug-98  rdb  Use xcen and ycen if tags present
		Added some temporary fixes - TRACE compliance
		15-Nov-98, Zarro (SM&A) - added call to GET_FITS_PAR
		9-Mar-99, Zarro (SM&A) - added RCENTER
               28-Apr-99, Zarro (SM&A) - removed RCENTER if not in FITS header 
               (let MAKE_MAP handle it internally)
               11-Jan-00, Zarro (SM&A) - added extra checks for image type
               12-Jan-00, Zarro (SM&A) - added FILTER and SORT
               4-Mar-00, Zarro (SM&A) - added INHERIT keyword to save
               INDEX as a property of MAP
               15-Mar-00, Zarro (SM&A) - added new roll center check
               23-Mar-00, Zarro (SM&A) - fixed  INHERIT
               28-Mar-00, Zarro (SM&A) - allowed INDEX to be string header input
               20-Aug-00, Zarro (EIT/GSFC) - moved ROLL checks from here 
               to GET_FITS_PAR
               20-Sep-00, Zarro (EIT/GSFC) - added additional check for
               string INDEX input
               13-Sep-01, Zarro (EITI/GSFC) - added /NO_COPY
               8-Jan-02, Zarro (EITI/GSFC) - default to EARTH_VIEW
               22-May-03, Zarro (EER/GSFC) - default to image center
                          for zero roll image
               22-Mar-04, Zarro (L-3Com/GSFC) - moved all time checks
                          to GET_FITS_TIME
               Call FITSHEAD2WCS to support FITS files using PC or CD matrices
                       21-Apr-2005, William Thompson, GSFC
                       26-Apr-2005, Add ERRMSG in FITSHEAD2WCS call.
                       09-May-2005, Fix bug with multiple images

 Contact     : dzarro@solar.stanford.edu


INDEX2OMAP $SSW/gen/idl/objects/index2omap.pro
[Previous] [Next]
 Project     : HESSI

 Name        : INDEX2OMAP

 Purpose     : convert INDEX/DATA to object maps

 Category    : imaging, FITS, objects

 Syntax      : index2omap,index,data,omap

 Inputs      : INDEX = index structure array
               DATA = data array
               APPEND = append to existing list object

 Outputs     : OMAP = map object linkedlist 

 CALLS: ***
	INDEX2MAP, TRIM, VALID_OMAP, data_chk [1], data_chk [2]
 History     : Written, 22 April 2000, D.M. Zarro (SM&A/GSFC)

 Contact     : dzarro@solar.stanford.edu


input [1] $SSW/gen/idl/genutil/input.pro
[Previous] [Next]
NAME:
	input
PURPOSE:
	Prompt the user for input and allow a default
	answer.  If the user simply types <CR>, then
	the default answer is used.  The procedure can
	also check that the answer falls within a range
	of values
INPUT:
	str	- A string containing the question/prompt
		  This value can be a string array, but that
		  is only to type several lines for the question.
		  There is only one answer.
OUTPUT:
	ans	- The answer
OPTIONAL INPUT:
	default_in - The default answer
	min_range - The smallest acceptable answer
	max_range - The largest accesptable answer

 CALLS: ***
	type_conv [1], type_conv [2]
 CALLED BY:
	ACOPY [1], CANCEL_PRELIM, DPE_GUESS, FILT4_SIM, HXTPIXON, HXT_QLOOK
	MDI_SUMMARY_SUB1, NET_DIR_DIFF, PLOT_BSC [1], PLOT_BSC [2], PREP_HXTDAT, RdTap [1]
	RdTap [2], RdTap [3], SIMPLE_TV2, STEPPER [3], STEPPER [4], SXT_CADENCES, ars2_plan
	compare_resp, dbase2disk, delete_week [1], delete_week [2], doc_library2 [1]
	doc_library2 [2], dsn_check [1], dsn_check [2], dsn_input, fort2hxi [1]
	fort2hxi [2], gbo_obs_coord, get_dn_rate [1], get_dn_rate [2], get_fname
	get_hxt_pos, getm1ans, go_lasdisk golaserdisk, go_lasdisk2 golaserdisk, go_nvs4
	go_nvs5, go_rdtap [1], go_rdtap [2], go_teem [1], go_teem [2], go_teem_nn, go_teem_t
	hard_center, hardcopy [1], hardcopy [2], hist_count, hist_summary, hxt_multimg
	hxt_sources, make_32 [2], mdilaser, mk_cd [1], mk_cd [2], mk_movie [1], mk_movie [2]
	mk_nvs_movie, mk_op_file, mk_orbit_sum, mk_ptv_movie, mk_vcr, modvolume_inf [1]
	modvolume_inf [2], nvsstat, op_get_special, op_times, plot_new_respon, prep_gendat
	prep_week [1], prep_week [2], set_printer [1], set_printer [2], set_printer [5]
	set_sci160k_dir, sxt_defroi, sxt_obs_coord [1], sxt_obs_coord [2], term_score2
	tim2dset [1], tim2dset [2], tim2tfss, timeline, valid_pass4 [1], valid_pass4 [2]
	video_menu, wmenu_sel [1], wmenu_sel [2], wmenu_sel_set [1], wmenu_sel_set [2]
	xcheckip, yo_height
	NOTE:
	   If output type is string, and there are 4 parameters, 
	   then the output is converted to uppercase
HISTORY:
	Written 1988 by M.Morrison


input_time [1] $SSW/gen/idl/genutil/input_time.pro
[Previous] [Next]
NAME:
	input_time   
PURPOSE:
	To allow a user to interactively enter a start and end time.
OUTPUT:
	time1	- The first time/date in the 7-element time convension
		  (hh,mm,ss,msec,dd,mm,yy)
				OR
		  in the structure format with .TIME and .DAY
		  (this second format is used with the /struct option)
	time2	- The end time/date in the 7-element time convension
                               OR
                 in the structure format with .TIME and .DAY
                 (this second format is used with the /struct option)
OPTIONAL INPUT:
	one	- If present, only request one time
	print	- If present, print the times selected (for
		  verification)
	check	- If present, request that the user "ok" the input
	sample	- If present, print the sample time strings
	struct	- If present, have the output be a structure type
		  variable.
 CALLS: ***
	Ex2Int [1], Ex2Int [2], MAKE_STR [1], MAKE_STR [2], fmt_tim [1], fmt_tim [2]
	int2secarr [1], int2secarr [2], timstr2ex [1], timstr2ex [2], yesnox [1]
	yesnox [2]
HISTORY:
	Written 11-Dec-91 by M.Morrison


INQ_GEN [1] $SSW/gen/idl/genutil/inq_gen.pro
[Previous] [Next]
 NAME:
 	INQ_GEN

 PURPOSE:
	Provide summary of SXT generic file	

 CALLING SEQUENCE:
	INQ_GEN, filename [,file_lun]

 INPUTS:
	FILENAME - string containing generic file name
	LUN      - logical unit, terminal if not present	

 COMMON BLOCKS;
	NONE

 RESTRICTIONS - prliminary - just does a RD_GEN and idl help of 
	data structures, final version should not have to read data

 CALLS: ***
	PRINT_TEXT [1], PRINT_TEXT [2], RD_GEN [1], RD_GEN [2]
 MODIFICATION HISTORY:
	Version 0 - SLF, 3/5/91


INRANGE [1] $SSW/gen/idl/fund_lib/jhuapl/inrange.pro
[Previous] [Next]
 NAME:
       INRANGE
 PURPOSE:
       Find multiples of given step just inside given range.
 CATEGORY:
 CALLING SEQUENCE:
       inrange,stp, x1, x2, t1, t2, [tics]
 INPUTS:
       stp = Step size.					in.
       x1, x2 = Range limits.				in.
 KEYWORD PARAMETERS:
 OUTPUTS:
       t1, t2 = Multiples of STP just inside range.	out.
       tics = optional array of tic values.		out.
 CALLS: ***
	MAKEX [1], MAKEX [2], MAKEX [3], NEAREST [1], NEAREST [2], NEAREST [3], REVERSE
 CALLED BY:
	TNAXES [1], TNAXES [2], TNAXES [3]
 COMMON BLOCKS:
 NOTES:
 MODIFICATION HISTORY:
       R. Sterner. 10 Nov, 1988.
       Johns Hopkins University Applied Physics Laboratory.

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


insert [1] $SSW/gen/idl/genutil/insert.pro
[Previous] [Next]
NAME:
	insert
PURPOSE:
	To insert a smaller array into a larger array
	IDL Ver 2 does not have it (Ver 1 did)
INPUT/OUTPUT:
	array_out - Array into which the smaller array
		    should be inserted
INPUT:
	array_in  - Array to be inserted
	ist1	  - Indicie in the large array where
		    "array_in" is to be inserted.
	ist2	  -
	ist3	  -
 CALLED BY:
	Get Names, Init Selection, Init_Data, Initialize Selection [1], Insert Plot
	Insert in the Selection, Load Plot, Load Selection, Remove from the Selection
	Search Plot, Select All, Selection, Store_Plot, bcs_emiss   was bcs_counts
HISTORY:
	Written Aug-91 by M.Morrison


Int2Ex [1] $SSW/gen/idl/genutil/int2ex.pro
[Previous] [Next]
  Name:
	Int2Ex
  Purpose:
	Convert days since 1979 and milliseconds of day into 
	conventional date and time.
  Calling Sequence:
	Int2Ex, msod, ds79, time
  Inputs:
	msod= 4-byte integer: milliseconds of the day
	ds79= 2-byte integer: number of days since 1-Jan-1979
  Output:
	time= 7 element integer array containing, in order,
		hr min sec msec day mon yr
	error - set on error in arguments
  Keywords:
	NOMOD - returns four digit output for year column in external format by NOT taking
	the year mod 100.
 CALLS: ***
	DAYCNV [1], DAYCNV [2], DAYCNV [3]
 CALLED BY:
	ADDTIME [1], ADDTIME [2], ALIGN_AR, ANAL_STIMS, AdjUsrTim, BCS_24HR_PLOT [1]
	BCS_24HR_PLOT [3], BCS_BROWSE24, BCS_CONT [1], BCS_CONT [2], BCS_CREATE_CAT
	BCS_MULTI [1], BCS_MULTI [2], DATAGET3_GRS, DATAGET3_HXS, FIND_CAL [1]
	FIND_CAL [2], GET_SDA, Idx2List, LIST_BDA, MANY_DAYS, OUT_GRSPHL1, OUT_GRSPHL2
	OUT_HXSPH, PLOT_GRSPCH, PLOT_GRSPCL, PLOT_GRSPHH, PLOT_GRSPHL, PLOT_HXSPC
	PLOT_HXSPH, SELECT_24HR, SET_XHR, SPLINE_LC, WBS_DB, YOHKOH_EVENTS, anytim [1]
	anytim [2], anytim [3], anytim [4], anytim [5], anytim2ex [1], anytim2ex [2]
	bcs_bpcfs, chk_flares [1], chk_flares [2], contacts [1], contacts [2], dd792ex
	ex2week [1], ex2week [2], fidmap, file_summary, filetimes [1], filetimes [2]
	get_sirius [1], get_sirius [2], grs_plot, gt_day [1], gt_day [2], gt_time [1]
	gt_time [2], gtab_file, mk_fem [1], mk_fem [2], mk_fem_aoslos [1]
	mk_fem_aoslos [2], mk_fem_file [1], mk_fem_file [2], mk_orbit [1], mk_orbit [2]
	mk_week_file [1], mk_week_file [2], pr_evn [2], pr_fem, pr_gbe, pr_gev, pr_nel
	rd_week_file [1], rd_week_file [2], rd_week_file [3], rd_week_file [4]
	rdbda_smm, tim2dset [1], tim2dset [2], tim2file [1], tim2file [2], time_add1s
	time_addxa, weekid [2], ydb_exist [2], yolist
  Side Effects:
	Results are always in the form of a 2-dimensional array,
	even if input is scalar.
  Restrictions:
	None
  History:
	version 1.0, was adopted from Int2Ex.FOR (SMM software), 
	written by GAL, 15-Feb-1991 
       16-nov-92, Modified, JRL:  Made loop variable I*4 for the case of
				   a large input variable.
	31-oct-93, ras, eliminated loop for yr,month,day by using jdcnv
	16-nov-93, ras, added error keyword
	12-sep-97, richard.schwartz@gsfc.nasa.gov, added nomod keyword
	to fully support longword input for ds79 and changed action
	of scalar block of code to be consistent with column vector action.
	Version 7, richard.schwartz@gsfc.nasa.gov, 9-sep-1998. 
		Revised documentation.


int2sec [1] $SSW/gen/idl/genutil/int2sec.pro
[Previous] [Next]
Name:
	int2sec
Purpose:
	To convert the "standard" internal
	representation array into a time series
	vector in seconds.
Input:
	time_arr - A structure array with the
		fields .TIME and .DAY
			(OR)
		A 2xN array with the MSOD variable first, and the DS79
		variable second (see example).  It
		is assumed that they are the same length
			(OR)
		A 7xN array which hold the 7-element external 
		representation of time.
Output:
	returns a single array with the number 
	of seconds past the reference value 1 assumed to be for 01-jan-1979.
 CALLS: ***
	Ex2Int [1], Ex2Int [2], gt_day [1], gt_day [2], gt_time [1], gt_time [2]
 CALLED BY:
	anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
Examples:
	d = int2secarr( roadmap )
	d = int2secarr( [msod,ds79] )

History:
	Modified from int2secarr to treat 1-Jan-79 as epoch reference time
	RAS, 93-6-7


int2secarr [1] $SSW/gen/idl/genutil/int2secarr.pro
[Previous] [Next]
Name:
	int2secarr
Purpose:
	To convert any time format into a time series vector in seconds.
Input:
	time_arr - A structure array with the
		fields .TIME and .DAY
			(OR)
		A 2xN array with the MSOD variable first, and the DS79
		variable second (see example).  It
		is assumed that they are the same length
			(OR)
		A 7xN array which hold the 7-element external 
		representation of time.
	time_ref - OPTIONAL, the reference time from
		which to calculate the number of
		seconds that have passed.  If it is
		missing, time_arr(0) is used
		(the first value in the array)
		It is a structure with .TIME and .DAY
			(OR)
		A two element array with the first element
		being the MSOD, and the second being DS79
			(OR)
               A 7xN array which hold the 7-element external
               representation of time.
Output:
	returns a single array with the number 
	of seconds past the reference value.
 CALLS: ***
	anytim2ints [1], anytim2ints [2]
 CALLED BY:
	ALIGN1BIGGRAM, ALIGN_AR, AR_SPECTRUM, BCS_24HR_PLOT [1], BCS_24HR_PLOT [3]
	BUILD_SSX, CHECK_SFC_PNT, DISPLOI_MON5K, DO_TEEM, DSN_DMP_FINDER, ECL_FRAC, EUTPLOT
	FIND_FAST_DATA, Fix_bsd_header v12, GET_POINTS, GET_SSX_SLICE, GET_SUBARR2
	GET_TRACUBE, GO_FIND_LIM2, GO_FIND_LIMB, HXA2HXAXY [1], HXA2HXAXY [2], HXTIMG2INTS
	HXT_AUTOIMG, HXT_LCURVE, IRUHXA2SXT, IRUHXASCAN2SXT [1], IRUHXASCAN2SXT [2]
	IRUHXA_FIT [1], IRUHXA_FIT [2], IRU_FILT, LAY1GKM, MDI_SUMMARY_SUB1, MK_SSX
	NET_DIR_DIFF, OUTPLOT [1], OUTPLOT [2], OUTPLOT [3], PLOT_BSC [1], PLOT_BSC [2]
	PP_MWLT2SXT, PROM_ON_DISK, QUICKSTRAY [2], QUICK_DPE, RD_AR, SXT_OBSRPT, SXT_QLOOK
	StEnIdx, TIM2UPOS, TRACE_CUBE_POINTING, TRACE_MDI_ALIGN, TR_FLAT_SUB, TV_SSX
	TV_SYNOP, UPDATE_SXT_CO_INDEX, UTPLOT [1], UTPLOT [2], UTPLOT [3], UTPLOT [4]
	UTPLOT [5], ada2str, adjust_times, ads_into_att, ads_into_pnt, align_hxi, ars2_plan
	atr2hxa_dbase, auto_toban, bcs_clock_fix, box_lc_plot, build_timarr [1]
	build_timarr [2], cam_run_sum, check_sci5k_trunc, chk_flares [1], chk_flares [2]
	choose_interval, choose_sfc, cnvt [2], contact_num [1], contact_num [2]
	contacts [1], contacts [2], daily_forecast [2], dedupe_sort, disp_sci160k [1]
	disp_sci160k [2], disp_sci5k, divyup, do_ads, do_tr_reformat, dps_fname2time
	dps_proc_lev0_hk, early_mid_late, event_movie [1], event_movie [2], evt_grid
	fem_grid [1], fem_grid [2], file_info2 [1], file_info2 [2], fit_bsc_plot, gbo_pfi
	get1gbo, get1hk_info [1], get1hk_info [2], get_ar, get_att, get_dc_image [2]
	get_dc_image [3], get_dc_rate, get_dc_warm, get_del_pnt, get_hxt_pos
	get_ksc_holiday, get_leak_image [1], get_leak_image [2], get_leak_image [3]
	get_newsoon, get_orb_epoch, get_roll, get_sdm_val, get_seq_tab, get_suncenter2
	get_sunset, go_get_sirius, go_nvs4, go_teem_plots, goes3sec_copy, goes_plot [1]
	goes_plot [2], goes_plot [3], goes_plot [4], goes_plot [5], goes_teem, goes_widget
	goesem_eqn [1], goest_eqn [1], grs_plot, gt_iru, hk_time_sort, hxi_interp
	hxt_chsums, hxt_impulsivness, image2movie, input_time [1], input_time [2]
	interpol_yoh, iperr_sea, jitter_gif_xyimg, killold [1], killold [2]
	lc_array1 formerly actonpro, lcbsd, lcur_plot [1], lcur_plot [2], leak_sub [1]
	leak_sub [2], leak_sub [3], list_nrt_times, mdi_imagetool, mk_desat, mk_evn [1]
	mk_evn [2], mk_fem [1], mk_fem [2], mk_gif_mag_index, mk_gsn_obs, mk_gsn_obs_s1
	mk_hst_summary, mk_imgsum_html, mk_mdi_iap, mk_mo_log, mk_obs_str, mk_orbit [1]
	mk_orbit [2], mk_pnt, mk_sdc [2], mk_sdc [3], mk_sdc [4], mk_sfc [1], mk_sfc [2]
	mk_sfd [1], mk_sfd [2], mk_sfd [3], mk_sfd [4], mk_sff_pair [1], mk_sff_pair [2]
	mk_sfw, mk_sl [1], mk_sl [2], mk_sot, mk_soup_hcat, mk_ssc [1], mk_ssc [2]
	mk_timarr [1], mk_timarr [2], mk_trace_i1, mk_week1_file, mon_health [1]
	mon_health [2], monthly_summary, mplot_nar, mwlt_select, mwlt_tape2jpeg
	nearest_fid [1], nearest_fid [2], new_disp_sci5k [1], new_disp_sci5k [2]
	new_mon_health [1], new_mon_health [2], op_get_event [1], op_get_event [2]
	op_term_score, oplot_nts, pl_monitor_center, plot_ar_pfi, plot_door_open, plot_evn
	plot_fem, plot_fft, plot_img_cadence, plot_lcur [1], plot_lcur [2], plot_nar [1]
	plot_nar [2], plot_ssl, plot_sxl [1], plot_sxl [2], plot_trav [1], plot_trav [2]
	plot_trav [3], plotbft [1], plotbft [2], plott_bda_dp, plott_hi_sum, plott_low_sum
	plott_med1_sum, plott_med2_sum, ploty [1], ploty [2], pr_evn [2], pr_pnt_hist
	pr_sxtobs, pr_trav_summ, rd_dpc_table, rd_fdss, rd_hist_dbase [1]
	rd_hist_dbase [2], rd_hk [1], rd_hk [2], rd_old_obs, rd_pnt_hist
	rd_raw_station_plan, rd_selsisi, rd_srspas, rd_ssl, rd_station_plan
	rd_therm_rs232, rd_week_file [1], rd_week_file [2], rd_week_file [3]
	rd_week_file [4], redo_disploi, redo_mon_sci5k, ref_day_plot, reslot, rot_pix2
	run_dsnfil, save_event [1], save_event [2], search_obs, sel_dc_image [1]
	sel_dc_image [2], sel_dc_image [3], sel_timrange [1], sel_timrange [2]
	selsis_week, seq_frame_info, seq_run_sum [1], seq_run_sum [2], show_contacts
	show_hxafid, show_obs2, show_obs3, show_obs4, sleazy_rot, sol_rot [2], soon_cadence
	soon_catstat, soon_table, sort_index [1], sort_index [2], soup_obs2
	ssw_check_contrib, ssw_track_fov, sxl_select, sxt2mpeg, sxt_cmd_pnt, sxt_fsp
	sxt_interp [1], sxt_interp [2], sxt_mwave, sxt_prep [1], sxt_prep [2]
	sxt_prep [3], sxt_tfl, sxt_tflx, sxt_thfsp, sxt_uvf_info [1], sxt_uvf_info [3]
	sxthxt_fsp, sxtpnt_sum, sxtth_hxt, telem_sum, term_times, termlite, tim2dset [1]
	tim2dset [2], tim2match [1], tim2match [2], tim2match [3], tim2orbit [1]
	tim2orbit [2], tim2pass, tim2tfss, tim_bin, time_interp, time_smooth, timeavg [1]
	timeavg [2], timegrid, timeline, topsdb [1], topsdb [2], tprofiles
	tr_mech_summary_img month, track_h2a [1], track_h2a [2], track_h2a [3]
	ut_time [1], ut_time [2], v_orbital, web_seq, weekid [2], wrt1orbit [1]
	wrt1orbit [2], wrt_fits_bin_exten [2], wrt_sci160k_img, xfem_grid, xread_hist
	xset_chain [1], xset_chain [2], xso_search, ydb_exist [2], yoyo_man2
Examples:
	d = int2secarr( roadmap )
	d = int2secarr( roadmap, roadmap(100) )
	d = int2secarr( [msod,ds79] )

History:
	written 12-Oct-91 by M.Morrison
	13-Nov-91 MDM - Changed to be able to work with nested structures
			(called GT_TIME and GT_DAY)
	16-Nov-91 MDM - Changed to also accept 7-element format (in
			addition to 2-element and structure
	 5-Mar-92 MDM - Changed to also accept a string convention of
			time for the reference time.
	20-Jul-93 MDM - Removed much code and replaced with calls to ANYTIM2INTS
		      - Allowed two vectors of arrays to be passed
        3-Jan-95 MDM - Changed to use DOUBLE instead of FLOAT
                       because when using a reference time of
                       1-Jan-79, the resolution/accuracy for dates
                       in 1994 is less than 20 seconds!!


INT2UTC $SSW/gen/idl/time/int2utc.pro
[Previous] [Next]
 Project     :	SOHO - CDS

 Name        :	INT2UTC()

 Purpose     :	Converts CDS internal time to calendar format.

 Explanation :	This procedure takes the UTC calendar time in "internal" format
		(Modified Julian Day number, and time of day in milliseconds),
		and converts it to a calendar format, either as a structure or
		as a string.  For notes on other time formats, see file
		aaareadme.txt.

 Use         :	Result = INT2UTC( INT )
		Result = INT2UTC( INT, /CCSDS )
		Result = INT2UTC( INT, /ECS )

 Inputs      :	INT	= The UTC date/time as a data structure with the
			  elements:

				MJD	= The Modified Julian Day number
				TIME	= The time of day, in milliseconds
					  since the start of the day.

			  Both are long integers.

 Opt. Inputs :	None.

 Outputs     :	The result of the function will be a structure containing the
		tag elements YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, and
		MILLISECOND.

		Alternatively, if the CCSDS switch is set, then the result will
		be the calendar date in the format recommended by the
		Consultative Committee for Space Data Systems (ISO 8601), e.g.

			"1988-01-18T17:20:43.123Z"

		Or if the ECS switch is set, then the result will be a calendar
		date in the format used by the EOF Core System, e.g.

			"1988/01/18 17:20:43.123"

		Note that this isn't exactly the ECS string format, because the
		ECS does not use fractional seconds.  However, if /ECS is
		combined with /TRUNCATE, then the following output will result

			"1988/01/18 17:20:43"

		which matches what the ECS expects to see.

		Using the keyword /VMS writes out the time in a format similar
		to that used by the VMS operating system, e.g.

			"18-Jan-1988 17:20:43.123"

		A variation of this is obtained with the /STIME keyword, which
		emulates the value of !STIME in IDL.  It is the same as using
		/VMS except that the time is only output to 0.01 second
		accuracy, e.g.

			"18-Jan-1988 17:20:43.12"

		The keywords /DATE_ONLY and TIME_ONLY can be used to extract
		either the date or time part of the string.

 Opt. Outputs:	None.

 Keywords    :	CCSDS	  = If set, then the output is in CCSDS format, as
			    explained above.

		ECS	  = If set, then the output is in ECS format, as
			    explained above.

		VMS	  = If set, then the output will be in VMS format, as
			    described above.

		STIME	  = If set, then the output will be in STIME format, as
			    described above.

		Only one of the above keywords can be set.  If none of them are
		set, the the time is output in external format.  The following
		keywords are only valid if one of the above keywords is set.

		TRUNCATE  = If set, then the time will be truncated to 1 second
			    accuracy.  Note that this is not the same thing as
			    rounding off to the nearest second, but is a
			    rounding down.

		DATE_ONLY = If set, then only the date part of the string is
			    returned.

		TIME_ONLY = If set, then only the time part of the string is
			    returned.

		UPPERCASE = If set, then the month field in either the VMS or
			    STIME format is returned as uppercase.

		NOZ	  = When set, the "Z" delimiter (which denotes UTC
			    time) is left off the end of the CCSDS/ISO-8601
			    string format.  It was decided by the FITS
			    committee to not append the "Z" in standard FITS
			    keywords.

		The following keyword is always valid.

		ERRMSG	  = If defined and passed, then any error messages 
			    will be returned to the user in this parameter 
			    rather than being handled by the IDL MESSAGE 
			    utility.  If no errors are encountered, then a null
			    string is returned.  In order to use this feature,
			    the string ERRMSG must be defined first, e.g.,

				ERRMSG = ''
				MJD = INT2UTC ( INT, ERRMSG=ERRMSG )
				IF ERRMSG NE '' THEN ...

 Calls       : ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], MJD2DATE, TAG_EXIST [1], TAG_EXIST [2]
	UTC2STR
 CALLED BY:
	ANYTIM2UTC [1], ANYTIM2UTC [2], CDS2JD, CDS_VEL_SLICE [2], CF_GIS1A, CF_GIS1B
	CF_GIS1C, CF_GIS2A [1], CF_GIS4A, CF_GIS4B, CF_GIS4C, CHECK_EXT_TIME, GET_UTC
	GIS_UTPLOT, GT_START, LOCAL_DIFF, TAI2UTC, UTC2DOY, UTC2STR, anytim2jd
 Common      :	None.

 Restrictions:	None.

 Side effects:	The result of an array with a single element may be a scalar.
		If an error occurs and the ERRMSG keyword has been set, the
		result returned from INT2UTC is an integer scalar of value -1.

 Category    :	Utilities, Time.

 Prev. Hist. :	None.  However, the concept of "internal" and "external" time
		is based in part on the Yohkoh software by M. Morrison and G.
		Linford, LPARL.

 Written     :	William Thompson, GSFC, 20 September 1993.

 Modified    :	Version 1, William Thompson, GSFC, 21 September 1993.
		Version 2, William Thompson, GSFC, 14 November 1994
			Changed .DAY to .MJD
		Version 3, William Thompson, GSFC, 20 December 1994
			Added keywords TRUNCATE, DATE_ONLY, TIME_ONLY
		Version 4, Donald G. Luttermoser, GSFC/ARC, 28 December 1994
			Added the keyword ERRMSG.  Added check to the structure
			tag names in INT.
		Version 5, William Thompson, GSFC, 25 January 1995
			Changed to call intrinsic ROUND instead of NINT.  The
			version of NINT in the Astronomy User's Library doesn't
			automatically select between short and long integers as
			the CDS version does.
		Version 6, Donald G. Luttermoser, GSFC/ARC, 30 January 1995
			Added ERRMSG keyword to internally called procedures.
			Made the error handling procedure more robust.  Note
			that this routine accepts both scalar and vector 
			input.
		Version 7, William Thompson, GSFC, 14 March 1995
			Added keywords VMS, STIME, UPPERCASE
		Version 8, William Thompson, GSFC, 17 September 1997
			Added keyword NOZ.
               Version 9, William Thompson, GSFC, 25-Oct-2005
                       Interpret any structure with tags MJD and TIME as CDS
                       internal time.

 Version     :	Version 9, 25-Oct-2005


INT_STRETCH $SSW/gen/idl/image/int_stretch.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : 
	INT_STRETCH
 Purpose     : 
	Stretch one of two combined intensity color tables.
 Explanation : 
	Stretch one of the two combined image display color tables so the full
	range runs from one color index to another.

	New red, green, and blue vectors are created by linearly interpolating
	the vectors in the COMBINE_COLORS common block from LOW to HIGH.
	Vectors in the COMBINE_COLORS common block are not changed.

	If NO parameters are supplied, the original (lower or upper) color
	tables are restored.

 Use         : 
	INT_STRETCH, LOW, HIGH  [, GAMMA ]

	The following example shows how to put one intensity image I1 using
	color table #3 next to another image I2 using color table #5, and then
	stretch the two color tables independently.
 
	LOADCT,3				;Select first color table
	COMBINE_COLORS,/LOWER			;Save lower color table
	LOADCT,5				;Select second color table
	COMBINE_COLORS				;Combine the color tables
	PUT,I1,1,2,/COMBINED,/LOWER		;Display first image on left
	PUT,I2,2,2,/COMBINED			;And second image on right
	INT_STRETCH,10,150,/LOWER		;Stretch the first color table
	INT_STRETCH,30,200			;Stretch the second

 Inputs      : 
	LOW	= The lowest pixel value to use.  If this parameter is omitted,
		  0 is assumed.  Appropriate values range from 0 to the number
		  of available colors-1.
	HIGH	= The highest pixel value to use.  If this parameter is
		  omitted, the number of colors-1 is assumed.  Appropriate
		  values range from 0 to the number of available colors-1.
 Opt. Inputs : 
	GAMMA	= Gamma correction factor.  If this value is omitted, 1.0 is
		  assumed.  Gamma correction works by raising the color indices
		  to the GAMMA power, assuming they are scaled into the range 0
		  to 1.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	LOWER	= If set, then the lower color table is stretched, rather than
		  the upper one.
	DISABLE	= If set, then TVSELECT is not called.
	CHOP	= If this keyword is set, color values above the upper
		  threshold are set to color index 0.  Normally, values above
		  the upper threshold are set to the maximum color index.
 Calls       : ***
	TVSELECT, TVUNSELECT
 CALLED BY:
	XLOAD
 Common      : 
	COLORS	    = The common block that contains R, G, and B color tables
		      loaded by LOADCT, HSV, HLS and others.
	COMBINE_COL = The common block containing the upper and lower color
		      tables, as loaded by COMBINE_COLORS.
 Restrictions: 
	The upper and lower color tables must be loaded by COMBINE_COLORS
	before calling INT_STRETCH.

	In general, the SERTS image display routines use several non-standard
	system variables.  These system variables are defined in the procedure
	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
	user's IDL_STARTUP file.

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

 Side effects: 
	The values of the current color tables in common block COLORS is
	changed.
 Category    : 
	Utilities, Image_display.
 Prev. Hist. : 
	William Thompson, Oct. 1992, from STRETCH by David M. Stern.
 Written     : 
	William Thompson, GSFC, October 1992.
 Modified    : 
	Version 1, William Thompson, GSFC, 4 May 1993.
		Incorporated into CDS library.
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
 Version     : 
	Version 2, 8 April 1998


INTER_MAP $SSW/gen/idl/mapping/inter_map.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : INTER_MAP

 Purpose     : interpolate an image map onto a new coordinate system

 Category    : imaging

 Explanation : 

 Syntax      : imap=inter_map(map,rmap)

 CALLED BY:
	MERGE_MAP
 Examples    :

 Inputs      : MAP = image map structure
               RMAP = reference map with coordinates 

 Opt. Inputs : None

 Outputs     : IMAP = interpolated map

 Opt. Outputs: None

 Keywords    : ERR = error strings

 CALLS: ***
	GET_MAP_XP, GET_MAP_YP, PR_SYNTAX, REPACK_MAP, REP_TAG_VALUE, VALID_MAP
	interp2d [1], interp2d [2], interp2d [3]
 Common      : None

 Restrictions: None

 Side effects: None

 History     : Written 22 August 1997, D. Zarro, SAC/GSFC

 Contact     : dzarro@solar.stanford.edu


interp1d [1] $SSW/gen/idl/util/interp1d.pro
[Previous] [Next]
 NAME:
   interp1d
 PURPOSE:
   Perform fast linear 1d interpolation 

   Uses the IDL INTERPOLATE procedure, which requires an equally spaced grid.
   If X0 is not equally spaced, will generate an equally spaced grid first and
   then use INTERPOLATE to do the interpolation.

 CALLING SEQUENCE:
   result = interp1d(x0,y0,x1)
   result = interp1d(x0,y0,x1,dx,missing=missing)
   result = interp1d(x0,y0,x1,missing=missing)
   result = interp1d(x0,y0,x1,/interp)		; Use spline interpolation to 
						; generate equally spaced grid
 INPUTS:
   X0	= The absicissae values for Y0.
   Y0  = The function to interpolate
   x1	= The abscissae values for the result.
 OPTIONAL INPUTS:
   dx  = The step size in X for equally spaced data.  If given,
	  will eliminate a check to see that X0 is equally spaced.
	  This is the fastest way to call this routine.
 OPTIONAL INPUT KEYWORDS:
   missing = Value to points which have X1 gt max(X0) or X1 lt min(X0)
   interp  = If set will call spline to construct linear grid if dx is
             not specified.
 OPTIONAL OUTPUT KEYWORDS:
   dx  = If dx is not specified, dx = abs(total(X0-X0(1:*))) / (n_elements(X0)-1)
   new_Y = New values interpolated at dx spacing
 Returned:
   result = a vector N_elements(X1) long 

 CALLED BY:
	sxt_flux [1], sxt_flux [2], sxt_flux [3], width_1d
 PROCEDURE:
   This routine interpolates faster than interpol because it makes use of
   the fact that the data interpolated by the IDL INTERPOLATE function
   must be evenly spaced.

   If dx is specified as the fourth paramter, directly interpolate.
   If dx is not specified, compute std = std(x0(1:*)-x0, dx).  If
         (std/dx) is lt 1.e-5, interpolate the result.
   If dx is not specified and (std/dx) is greater than 1.e-5 then:
      1. Construct a new grid starting at x0(0) and going in dx step sizes.
      2. Call dspline to construct a linear grid
      3. Then interpolate.
 CALLS: ***
	DOC_LIBRARY, DSPLINE, STDEV
 RESTRICTIONS:
   No extrapolation is performed.  If extrapolation is desired, use the
   IDL user library INTERPOL routine.
 HISTORY:
   31-aug-94, J. R. Lemen LPARL, Written.


INTERP2 $SSW/gen/idl/image/interp2.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : 
	INTERP2()
 Purpose     : 
	Performs a two-dimensional interpolation on IMAGE.
 Explanation : 
	An average is made between the four nearest neighbors of the point to 
	be interpolated to.
 Use         : 
	OUTPUT = INTERP2( IMAGE, X, Y )
 Inputs      : 
	IMAGE	= Image to be interpolated.
	X	= X coordinate position(s) of the interpolated point(s).
	Y	= Y coordinate position(s) of the interpolated point(s).
 Opt. Inputs : 
	None.
 Outputs     : 
	The function returns a one-dimensional array of the interpolated 
	points.
 Opt. Outputs: 
	None.
 Keywords    : 
	MISSING	 = Value flagging missing pixels.  Any such pixels are not
		   included in the interpolation.  If any interpolation point
		   is surrounded only by missing pixels, then the output value
		   for that point is set to MISSING.
 Calls       : ***
	FLAG_MISSING, GET_IM_KEYWORD, IS_NOT_MISSING
 CALLED BY:
	PROF
 Common      : 
	None.
 Restrictions: 
	IMAGE must be two-dimensional.

	In general, the SERTS image display routines use several non-standard
	system variables.  These system variables are defined in the procedure
	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
	user's IDL_STARTUP file.

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

 Side effects: 
	None.
 Category    : 
	Utilities, Image_display.
 Prev. Hist. : 
	W.T.T., Oct. 1987.
	W.T.T., Jan. 1991.  Changed FLAG to keyword BADPIXEL.
	William Thompson, August 1992, renamed BADPIXEL to MISSING.
	William Thompson, 5 May 1993, fixed bug when Y > first dim. of IMAGE.
 Written     : 
	William Thompson, October 1987.
 Modified    : 
	Version 1, William Thompson, GSFC, 13 May 1993.
		Incorporated into CDS library.
       Version 2, 11-May-2005, William Thompson, GSFC
               Handle NaN values, and otherwise modernize
 Version     : 
	Version 2, 11-May-2005


interp2d [1] $SSW/gen/idl/util/interp2d.pro
[Previous] [Next]
 NAME:
   interp2d
 PURPOSE:
   Perform bilinear 2d interpolation using the IDL intrinsic 
   interpolate procedure
 CALLING SEQUENCE:
   result = interp2d(A,x0,y0,x1,y1)
   result = interp2d(A,x0,y0,x1,y1,/grid)
   result = interp2d(A,x0,y0,x1,y1,/regular,/cubic)
   result = interp2d(A,x0,y0,x1,y1,missing=missing)
 INPUTS:
   A	= 2d array to interpolate
   x0	= Values that correspond to A(0,0), A(1,0), ...
   y0  = Values that correspond to A(0,0), A(0,1), ...
   x1	= New X values at which A should be interpolated
   y1  = New Y values at which A should be interpolated
 OPTIONAL INPUTS:
   nxny = [nx,ny] Vector of length 2 which specifies the size of
         the regular linearized grid produced with trigrid.  The
         default is nxny = [51,51].  If the size of A is much larger
	  than 51 by 51, greater accuracy may be obtained by having
         nxny = [n_elements(A(*,0),n_elements(A(0,*))]
 OPTIONAL INPUT KEYWORDS:
   grid= If set, return an n_elements(X1) by n_elements(y1) grid
   missing = Value to points which have X1 gt max(X0) or X1 lt min(X0)
		and the same for Y1.
   quintic = If set, use smooth interpolation in call to trigrid
   regular = If set, do not call trigrid -- x0 and y0 must be linear.
   cubic   = If set, use cubic convolution
   extrapolate = If set, then extrapolate beyond boundary points
   bin = set to bin data prior to interpolation.
         (e.g. bin=2 interpolate every second pixel)
 Returned:
   result = a vector N_elements(X1) long 
      or, if /grid is set
   result = an array that is N_elements(X1) by N_elements(Y1)

 CALLED BY:
	DROT_MAP, DROT_RASTER, GRID_MAP, HSI_XY2ANNSEC [1], HSI_XY2ANNSEC [2], INTER_MAP
	ITOOL_DIFF_ROT, ROT_MAP, collexc [1], collexc [2], eit_temp, hsi_sim_random_2d
	temp_random_fn_a
 PROCEDURE:
   First call the IDL intrinsic routines TRIANGULATE & TRIGRID to make
	sure that X0 and Y0 are linear (if /regular is not set).
   Then call the IDL intrinsic INTERPOLATE to do bilinear interpolation.
 RESTRICTIONS:
   X0 and Y0 must be linear functions.
   A must be a 2-d array
 HISTORY:
    9-mar-94, J. R. Lemen LPARL, Written.
   20-Jan-95, JRL, Added the REGULAR & CUBIC keywords
   6-Sept-97, Zarro, GSFC, allowed for 2-d (X-Y) coordinate inputs
  22-Apri-99, Zarro, SM&A/GSFC - added /trigrid and made /regular
              the default (much faster).
  14-apr-2001, jmm, jimm@ssl.berkeley.edu, fixed bug for triangulate
               option, changed reform statements to rebin, /sample
  20-May-2004, Zarro (L-3Com/GSFC) - made /regular the default (again)
  10-Jan-2005, Zarro (L-3Com/GSFC) - changed () to []


INTERP2INTEG $SSW/gen/idl/util/interp2integ.pro
[Previous] [Next]
 PROJECT:
       SDAC

 NAME: 
	INTERP2INTEG

 PURPOSE:
	This function integrates over the limits on an interpolated array.

 CATEGORY:
	GEN, MATH, UTILITY, NUMERICAL

 CALLING SEQUENCE:
	Integral = INTERP2INTEG( Xlims, Xdata, Ydata)

 CALLS: ***
	AVG [1], AVG [2], FIND_IX, INTERPOL, INT_TABULATED, UNIQ [1], UNIQ [2], UNIQ [3]
	edge_products
 INPUTS:help,uselog
       Xlims - The limits to integrate over. May be an array of 2 x n sets of limits where
	the intervals are contiguous and ordered, i.e. xlims(1,i) equals xlims(0,i+1)
	Xlims may also be an ordered set of values in a 1-d vector defining contiguous intervals.
	Xdata, Ydata - Define the tabulated function to integrate over. Xdata may be a 2xN array
	and will take the arithmetic average to obtain a 1-d array.

 OPTIONAL INPUTS:
	

 OUTPUTS:
       none explicit, only through commons;

 OPTIONAL OUTPUTS:
	none

 KEYWORD INPUTS:

	LOG    - If set, use log/log interpolation.
 CALLED BY:
	Energy_res [2], F_NUCLEAR, HESSI FRAMEWORK TEMPLATE CLASS [2]
	HESSI FRAMEWORK TEMPLATE CLASS [3], HSI_DECIM_CORRECTION [1]
	HSI_DECIM_CORRECTION [2], HSI_DRM_MOD CLASS, HSI_DRM_MOD_CONTROL__DEFINE
	MK_MER_CONT, Shers_load [1]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	Complex data types not permitted and not checked.
	Xlims in 2xN form are assumed contiguous and not checked.

 PROCEDURE:
	The data are interpolated into the interval defined by Xlims and then integrated.

 MODIFICATION HISTORY:
	RAS, 2-apr-1996
	Version 2, richard.schwartz@gsfc.nasa.gov, 7-sep-1997, more documentation
	Version 3, richard.schwartz@gsfc.nasa.gov, 16-apr-1998, converted to multiple intervals.


interp_arr [1] $SSW/gen/idl/util/interp_arr.pro
[Previous] [Next]
 NAME:
   interp_arr
 PURPOSE:   
	Linearly interpolate the two input arrays to the requested time.

 CALLING SEQUENCE:
   New_arr = interp_arr(img1 ,img2, Time1, Time2, Time3)
   New_arr = interp_arr(img1 ,img2, Time1, Time2, Time3, unc_img1, unc_img2, unc_arr)

 INPUTS:
   img1,img2	= Two images that will be linearly interpolated
   Time1, Time2= The times corresponding to img1, img2 in any standard
		  Yohkoh standard time format.
   Time3	= The time to which the returned image should be interpolated

 OPTIONAL INPUTS:
   unc_img1, unc_img2 = uncertainties in img1 and img2, both must be
   		  passed in if the uncertainty is to be calculated

 OPTIONAL OUTPUT:
   unc_arr = the array of uncertainties in the final image

 CALLS: ***
	ADDTIME [1], ADDTIME [2], anytim2ex [1], anytim2ex [2]
 CALLED BY:
	hxi_interp, interp_img, sxt_interp [1], sxt_interp [2]
 MODIFICATION HISTORY:
  9-oct-92, Written, G. A. Linford (and J.R. Lemen)
  29-sep-95, jmm, Added uncertainty calculation
  16-apr-2003 jmm, Corrected uncertainty calculation


INTERP_IMAGE $SSW/gen/idl/display/interp_image.pro
[Previous] [Next]
 PROJECT:
       HESSI

 NAME:
       INTERP_IMAGE()

 PURPOSE:
       Function to congrid an image within a specific coordinate system.
       Used primarily with the specplot__define utility, more
       precisely spectro_plot_obj, but it could probably
       be used elsewhere too. In fact it's a kind of generalization
       of congrid, where we assiume 

 CATEGORY:
       gen/display


 CALLING SEQUENCE:
       result =  interp_image( image, xaxis, yaxis, nx, ny, $
                 [, /YLOG] [, /SMOOTH] , $
                 [xrange = xrange] [, yrange = yrange]
 INPUTS:
       image- a two dimentional axis containing the image to map
       xaxis, yaxis- the vectors containing the axis values
       nx, ny- then number of pixels of the resulting array

       you need to pass the range too -- check x/y range keywords

 OUTPUTS:
       result - a 2d array with the dimensions nx, ny

 KEYWORDS:
       smooth - tells that the image result shoudl be interpolated
       xrange, yrange- the range on which the values should be mapped
                       to. this helps to take care of the fact that
                       the axis passed contain mean bin values and
                       the plot nneds to extend them in case of small
                       numbero of channels, for instance.
       ylog - tells that the y axis will be displayed in log scale

 CALLS: ***
	INTERPOL, INTERP_AXIS
 CALLED BY:
	spectro_plot2
 HISTORY:
       july 2004 - added the xrange / yrange kwds to deal correctly
                   with the case of small number of elements.
       april 2004:  based on a program of davin


INTERPOL8 $SSW/gen/idl/util/interpol8.pro
[Previous] [Next]
 NAME:
	INTERPOL8

 PURPOSE:
	Linearly interpolate vectors with a regular or irregular grid.

 CATEGORY:
	E1 - Interpolation

 CALLING SEQUENCE:
	Result = INTERPOL8(V, N) 	;For regular grids.

	Result = INTERPOL8(V, X, U)	;For irregular grids.

 INPUTS:
	V:	The input vector can be any type except string.

	For regular grids:
	N:	The number of points in the result when both input and
		output grids are regular.  The output grid absicissa values
		equal FLOAT(i)/N_ELEMENTS(V), for i = 0, n-1.

	Irregular grids:
	X:	The absicissae values for V.  This vector must have same # of
		elements as V.  The values MUST be monotonically ascending 
		or descending.

	U:	The absicissae values for the result.  The result will have 
		the same number of elements as U.  U does not need to be 
		monotonic.
	
 OPTIONAL INPUT PARAMETERS:
	None.
 KEYWORDS:
	CUBIC -uses cubic interpolation option in INTERPOLATE

 OUTPUTS:
	INTERPOL returns a floating-point vector of N points determined
	by linearly interpolating the input vector.

	If the input vector is double or complex, the result is double 
	or complex.
 CALLS: ***
	FIND_IX, F_DIV
 CALLED BY:
	HSI_EVENTLIST_TO_SPECTROGRAM [2]
 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Result(i) = V(x) + (x - FIX(x)) * (V(x+1) - V(x))

	where 	x = i*(m-1)/(N-1) for regular grids.
		m = # of elements in V, i=0 to N-1.

	For irregular grids, x = U(i).
		m = number of points of input vector.

 MODIFICATION HISTORY:
	Based on INTERPOL but speeded up using FIND_IX and INTERPOLATE.
	richard.schwartz@gsfc.nasa.gov, 7-sep-1997.


IPRINT $SSW/gen/idl/util/iprint.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : IPRINT

 Purpose     : Print array with counter, e.g. 1) value

 Category    : Utility

 Explanation : 
                            
 Syntax      : IDL> iprint,array

 Inputs      : ARRAY = array to print

 Opt. Inputs : PAGE = no of lines per page

 Outputs     : Terminal output

 Opt. Outputs: None

 Keywords    : None

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], EXIST
 CALLED BY:
	FIFO__DEFINE, GEN__DEFINE, MAP_LIST__DEFINE, OLIST__DEFINE, OVSA__DEFINE
 Common      : None

 Restrictions: None

 Side effects: None

 History     : Version 1,  25-May-1997,  D.M. Zarro.  Written

 Contact     : DZARRO@SOLAR.STANFORD.EDU


IRAFDIR $SSW/gen/idl_libs/astron/disk_io/irafdir.pro
[Previous] [Next]
 NAME:
	IRAFDIR
 PURPOSE:
	Provide a brief description of the IRAF images on a directory
 CALLING SEQUENCE:
	IRAFDIR, [ directory, TEXTOUT = ]

 OPTIONAL INPUT PARAMETERS:
	DIRECTORY - Scalar string giving file name, disk or directory to 
		be searched 

 OPTIONAL INPUT KEYWORD:
	TEXTOUT - specifies output device (see TEXTOPEN)
		textout=1	TERMINAL using /more option
		textout=2	TERMINAL without /more option
		textout=3	<program>.prt
		textout=4	laser.tmp
		textout=5      user must open file
		textout=7       Append to existing <program>.prt file
		textout = 'filename' (default extension of .prt)

 OUTPUT PARAMETERS:
	None

 PROCEDURE:
	FINDFILE is used to find all '.imh' files in the directory. 
	The object name and image size (NAXIS1, NAXIS2) are extracted
	from the header. Each header is also searched for the parameters
	DATE-OBS (or TDATEOBS), TELESCOP (or OBSERVAT), EXPTIME.
  
 CALLS: ***
	ASTROLIB, EXPAND_TILDE [1], EXPAND_TILDE [2], FDECOMP [1], FDECOMP [2]
	FDECOMP [3], PATH_SEP, REMCHAR [1], REMCHAR [2], REMCHAR [3], TEXTCLOSE [1]
	TEXTCLOSE [2], TEXTCLOSE [3], TEXTOPEN [1], TEXTOPEN [2], TEXTOPEN [3]
 RESTRICTIONS:
	(1) Some fields may be truncated since IRAFDIR uses a fixed format 
		output
	(2) No more than 2 dimension sizes are displayed 
 SYSTEM VARIABLES:
	If 'textout' keyword is not specified to select an output device,
	!TEXTOUT will be the default.    This non-standard system variable
	can be added using the procedure ASTROLIB.

 PROCEDURE CALLS:
	EXPAND_TILDE(), FDECOMP, REMCHAR, TEXTOPEN, TEXTCLOSE
 MODIFICATION HISTORY:
	Written, K. Venkatakrishna, ST Systems Corp, August 1991
	Work for IRAF V2.11 format   W. Landsman   November 1997
	Assume since V5.5 use file_search W. Landsman   Sep 2006


IRAFRD $SSW/gen/idl_libs/astron/disk_io/irafrd.pro
[Previous] [Next]
 NAME:
     IRAFRD
 PURPOSE:
       Read an IRAF (.imh) file into IDL image and header arrays.
 EXPLANATION:
       The internal IRAF format changed somewhat in IRAF V2.11 to a machine
       independent format, with longer filename allocations.  This version 
       of IRAFRD should be able to read either format. 

 CALLING SEQUENCE:
       IRAFRD, im, hdr, filename, [/SILENT ]  

 OPTIONAL INPUT:
       FILENAME -  Character string giving the name of the IRAF image 
               header.  If omitted, then program will prompt for the 
               file name.  IRAFRD always assumes the header file has an 
               extension '.imh'.    IRAFRD will automatically locate the
               ".pix" file containing the data by parsing the contents of 
               the .imh file.   (If the parse is unsuccesful, then IRAFRD looks
               in the same directory as the .imh file.)
 OUTPUTS:
       IM - array containing image data
       HDR - string array containing header.  Basic information in the
               IRAF header is converted to a FITS style header

 OPTIONAL INPUT KEYWORDS:
       /SILENT  - If this keyword is set and non-zero, then messages displayed
               while reading the image will be suppressed.  

 CALLS: ***
	FDECOMP [1], FDECOMP [2], FDECOMP [3], GETTOK [1], GETTOK [2], GETTOK [3]
	GETTOK [4], IS_IEEE_BIG [1], IS_IEEE_BIG [2], PATH_SEP, SXADDPAR [1], SXADDPAR [2]
	SXADDPAR [3], SXPAR [1], SXPAR [2], SXPAR [3]
 RESTRICTIONS:
       (1)  Image size and history sections of the IRAF header are copied 
               into the FITS header HDR.  Other information (e.g. astrometry)
               might not be included unless it is also in the history section
       (2)  IRAFRD ignores the node name when deciphering the name of the
               IRAF ".pix" file.
       (3)  Certain FITS keywords ( DATATYPE, IRAFNAME) may appear more than
               once in the output name
       (4)  Does not read the DATE keyword for the new (V2.11) IRAF files
 NOTES:
       IRAFRD obtains dimensions and type of image from the IRAF header.

 PROCEDURES CALLED:
       FDECOMP, SXADDPAR, SXPAR()

 MODIFICATION HISTORY:
       Written W. Landsman, STX January 1989
       Converted to IDL Version 2.  M. Greason, STX, June 1990
       Updated for DecStation compatibility   W. Landsman   March 1992
       Don't leave an open LUN  W. Landsman   July 1993
       Don't overwrite existing OBS-DATE  W. Landsman  October 1994
       Don't bomb on very long FITS headers W. Landsman  April 1995
       Work on Alpha/OSF and Linux      W. Landsman     Dec 1995
       Remove /VMSIMG keyword, improve efficiency when physical and
               image dimensions differ   W. Landsman     April 1996
       Don't use FINDFILE (too slow)     W. Landsman     Oct 1996
       Read V2.11 files, remove some parameter checks W. Landsman Nov. 1997
       Fixed problem reading V2.11 files with long headers Jan. 1998
       Accept names with multiple extensions    W. Landsman   April 98 
       Test for big endian machine under V2.11 format W. Landsman Feb. 1999
       Don't read past the end of file for V5.4 compatilibity  W.L.  Jan. 2001
       Convert to square brackets W.L   May 2001
       Assume since V5.4, remove SPEC_DIR()   W. L.   April 2006


IRAFWRT $SSW/gen/idl_libs/astron/disk_io/irafwrt.pro
[Previous] [Next]
 NAME:
     IRAFWRT
 PURPOSE:
     Write IDL data in IRAF (OIF) format (.imh and .pix files).
 EXPLANATION:
     Does the reverse of IRAFRD.    IRAFWRT writes the "old" IRAF format
     used prior to v2.11.   However, this "old" format is still readable by
     the current version of IRAF.

 CALLING SEQUENCE: 
    IRAFWRT, image, hdr, filename, [ PIXDIR = ]

 INPUTS:
     image - array containing data
     hdr   - The  corresponding FITS header.   Use MKHDR to create a minimal
             FITS header if one does not already exist.
     filename - Scalar string giving the name of the file to be written 
             Should not include the extension name, which will be supplied 
             by IRAFWRT.
 OUTPUTS:
     None

 OPTIONAL KEYWORD INPUT:
      PIXDIR - scalar string specifying the directory into which to write
              the IRAF pixel (.pix) file.   The default is to write the pixel
              file to the same directory as the header (.imh) file

 SIDE EFFECTS:
      Image array and  FITS header are written to IRAF pixel file 
               'filename'.pix and header file 'filename'.imh

 EXAMPLE:
       Write an empty 50 x 50 array of all zeros to an IRAF file named 'EMPTY'

       IDL> im = intarr( 50, 50)         ;Create empty array
       IDL> mkhdr, hdr, im               ;Create a minimal FITS header
       IDL> irafwrt, im, hdr, 'empty'    ;Write to a IRAF file named 'empty'

 PROCEDURE:
       IRAFWRT gets information about the data - image dimensions, size, 
       datatype, maximum and minimum pixel values - and writes it into
       the binary part of the header. The ASCII part of the header
       is directly copied after deleting records with certain keywords 
       A pixel file is created, with a header in the first 1024 bytes

 RESTRICTIONS:
       (1) The files are not created by IRAFWRT are not identical to those 
               created by the IRAF routine rfits.    However, the files 
               created by IRAFWRT appear to be compatible with all the IRAF 
               routines tested so far.
       (2)  IRAFWRT has been tested on a limited number of data types
       (3)  IRAFWRT has only been tested on Unix and VMS systems.

 PROCEDURES CALLED:
       FDECOMP, IS_IEEE_BIG(), ISARRAY(), REPCHR(), STRN(), SXDELPAR, SXPAR()
 MODIFICATION HISTORY:
       Written K. Venkatakrishna, STX February 1992
       VMS compatibility    W. Landsman      April 1992
       Work with headers without DATE-OBS or ORIGIN           August 1992
       Preserve HISTORY records with other FITS records       March 1995    
       Fix case where a minimal FITS header supplied          August 1995
       Work under Alpha/OSF and Linux                         Dec.   1995
       Make sureheader has 80 char lines, use IS_IEEE_BIG()   May    1997
       Converted to IDL V5.0   W. Landsman   September 1997
       Don't apply strlowcase to .pix name   W. Landsman      April 1999
       Work with double precision            W. Landsman      May 1999
       Minimize use of obsolete !ERR         W. Landsman      Feb. 2000
       Assume since V5.5, remove VMS support W. Landsman       Sep. 2006


is_alive [1] $SSW/gen/idl/system/is_alive.pro
[Previous] [Next]
   Name: is_alive

   Purpose: check health of remote host

   Input Parameters:
      node - node name or number 

   Calling Sequence:
      status=is_alive(node [,/vms])

   Calling Examples:
      if is_alive('nodename') then...
      if is_alive('123.45.6.78') then ...
      if is_alive('name::') then ...		; colons to designate DECNET

 CALLS: ***
	ARR2STR [1], Arr2Str [2], FILE_EXIST [2], STR2ARR [1], STR2ARR [2], file_exist [1]
	file_exist [3], is_member [1], is_member [2], tbeep [1], tbeep [2], tbeep [3]
 CALLED BY:
	CHECK_FTP, FTP__DEFINE, SMART_FTP, ftp_copy [1], ftp_copy [2], is_bestnode [1]
	is_bestnode [2], mo_prep, ydb_install [1], ydb_install [2]
   History:
       5-May-94 (SLF) written
      10-May-94 (SLF) added history documentation
      28-feb-95 (SLF) add /usr/sbin/ping / OSF case
       2-Aug-95 (MDM) - added additional method for seeing if the node is
			 responding (so this would work on SGI)
		       - added /QSTOP
      17-May-96 (BNH) - Added /sbin/ping (FreeBSD/linux case)
      22-May-96 (BNH) - Fixed bugs I added with this case
      26-jun-96 (SLF) - HP 9000 (hp-ux


IS_BATCH $SSW/gen/idl/system/is_batch.pro
[Previous] [Next]
 Project     : HESSI

 Name        : IS_BATCH

 Purpose     : return 1/0 if in batch mode or not

 Category    : System

 Syntax      : IDL> batch=is_batch()

 Inputs      : None

 Keywords    : None

 Outputs     : 1/0 if in batch mode or not

 CALLS: ***
	HAVE_TAG, OS_FAMILY, TRIM
 CALLED BY:
	GET_PID, UNIX_SPAWN
 History     : 24-March-2000, Zarro (SM&A/GSFC) - written
               24-Feb-2002, Zarro (EITI/GSFC) - added check for FSTAT.interactive
                9-Jan-2006, Zarro (L-3Com/GSFC) - fixed use of fstat()

 Contact     : DZARRO@SOLAR.STANFORD.EDU


is_bestnode [1] $SSW/gen/idl/genutil/is_bestnode.pro
[Previous] [Next]
   Name: is_bestnode

   Purpose: quick and dirty search for 'best' node in nodelist
            (best nodes are 'alive' and lowest CPU/Memory load or process count)

   Input Parameters:
      nodelist - string array of nodenames to check

   Keyword Parameters:
      nprocess    - if set, use non-root process count [default]
      cpuload     - if set, use minimum cpuload        [not yet implemented]
      memload     - if set, use minimum memory load    [not yet implemented]
      remove      - if set, remove the 'best' from the nodelist
 		     (used for succesive calls from a given program to spread 
		     the load around)
      defnodes    - if set, use nodelist defined by env $SITE_BATCHNODES
      goodorder   - (output) - all members of nodelist in order of 'bestness'
				(best first, worst last)
   Output:
      function returns the 'best' node name (or local node if it is best)

   Calling Sequence:
      best=is_bestnode(nodelist [,/nprocess, /cpuload, /memload, $
		 	           goodorder=goodorder , /defnodes]
   Calling Examples:
      rsh,is_bestnode(['flare13','flare7','isass1']), rshcommand
         [checks 3 node plus local node, and calls 'rsh' with the best]

      best=is_bestnode(/defnodes , goodorder=goodorder)
         [uses nodelist defined by $SITE_BATCHNODES; goodorder (output) 
         [contains the nodelist sorted by decresing 'bestness'; ie, best node
	  [first, worst node last]

 CALLED BY:
	go_batch [1], go_batch [2]
   History:
      26-Sep-1994 (SLF) - written to select best host for background tasks
      27-Sep-1994 (SLF) - dont allow zero processes (Problem TBD)
      29-sep-1994 (SLF) - fixed problem where rsh to local node resulted in
			   "Cant make Pipe" (use spawn instead of rsh for local)
      30-sep-1994 (SLF) - added GOODORDER output keyword

   Category:
      system, distributed processing, general utility

 CALLS: ***
	ARR2STR [1], Arr2Str [2], MESASGE, STR2ARR [1], STR2ARR [2], data_chk [1]
	data_chk [2], file_append [1], file_append [2], get_host [1], get_host [2]
	get_logenv [1], get_logenv [2], is_alive [1], is_alive [2], prstr [1], prstr [2]
	rem_elem [1], rem_elem [2], rsh
   Restrictions:
      Since this is based on a 'ps' snapshot, no written guarantees...
      only non-root process count for now


IS_BLANK $SSW/gen/idl/string/is_blank.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : IS_BLANK
               
 Purpose     : return true is input is blank string
                             
 Category    : string utility
               
 Syntax      : IDL> a=is_blank(input)
    
 Inputs      : INPUT= input string to check
                              
 Outputs     : 1/0 if blank/nonblank
                            
 CALLS: ***
	IS_STRING
 CALLED BY:
	APPEND_SDB, APPLY_LOCK, CACHE_DATA, CACHE_LIST, CHECK_LOCK, CHMOD, CRONTAB
	EIS_CAT [1], EIS_CAT [2], EIS_FITS_URL [1], EIS_FITS_URL [2], EIS_GET_HDR [1]
	EIS_GET_HDR [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2], EIS_LIST_MAIN [1]
	EIS_LIST_MAIN [2], EIS_SOCK_FIND [1], EIS_SOCK_FIND [2], EIT_COPY, EIT_GBO
	EIT__DEFINE, ESPAWN, EXP_DBASE, EXP_ZDBASE, FILE2FID, FILE_CONTENT, FILE_COPY2
	FILE_SINCE, FIND_COMPRESSED, FITS__DEFINE, FIX_DIR_NAME, FIX_EXTRA
	FREE_VAR__DEFINE, FTP__DEFINE, GET_PID, GET_SOHO_ROLL, HAVE_FILES, HAVE_NETWORK
	HAVE_PROC, HEL2XY, HFITS__DEFINE, HSI_FIND_FILE, HSI_SOCK_FILE, HSI_SOCK_FIND
	HTML_DECHUNK, HTTP__DEFINE, IMAGE_TOOL, IS_DIR, ITOOL_GETFILE, LOAD_PATH, LOCAL_NAME
	LOC_FILE [2], MAKE_MAP, MAP__DEFINE, MK_DIR, MK_SUB_DIR, MK_TEMP_FILE, MRD_HEAD
	OBS__DEFINE, OVSA_LTC_DEFINE, PRINT_CONTENT, RD_GOES_SDAC, READER__DEFINE
	RECOMPILE, REM_TAG [1], REP_FITS_HEAD, REP_TAG_NAME, RM_FILE, SET_CDS_SDB
	SHOW_SYNOP__DEFINE, SITE__DEFINE, SOAP__DEFINE, SOCK_COPY, SOCK_DOWNLOAD
	SOCK_FILES, SOCK_FIND, SOCK_FITS, SOCK_LIST, SOCK_OPEN, SOCK_RPC, SOCK_RUN, SOCK_SAME
	SOCK_SERVER, SOCK_SIZE, SOCK_SSW, STR_FORMAT, STR_TRAIL, SYNOP_DB__DEFINE
	SYNOP_DEFINE, SYNOP_PATH, TEST_OPEN, TEST_OPEN2, TRACE_JSMOVIE, UNIQ_KEY, UNIX_SPAWN
	URL_GET, UTPLOT__DEFINE, VALID_FITS, VSO_GET, VSO__DEFINE, WHERE_VAL, WRITE_DIR, XACK
	XCRON, XYPLOT__DEFINE, YMD2DATE, db_gbo, expand_dirs, fix_path, get_ymd, hsi_gbo, ihy_db
	is_open, stc_uniq, stc_where, str_cut, str_key, strip_crt, synop_link, uncompress
 History     : 15-Aug-2000, Zarro (EIT/GSFC)

 Contact     : dzarro@solar.stanford.edu


IS_CLASS $SSW/gen/idl/objects/is_class.pro
[Previous] [Next]
 Project     : HESSI

 Name        : IS_CLASS

 Purpose     : check if an object is an instance of the specified class.  Calls RSI's OBJ_ISA
	but here, if object argument isn't an object, doesn't halt.

 Category    : utility objects

 Explanation : checks the argument is an object, and if so, then if it is an instance of the
	specified class

 Syntax      : IDL> answer=is_class(object, class)

 CALLED BY:
	GOES__DEFINE, HESSI MONITOR RATE  CLASS DEFINITION, SHOW_SYNOP__DEFINE
	SPEX_DRM__DEFINE, SPEX_FIT__DEFINE, SPEX_GEN__DEFINE, SPEX__DEFINE
	XYPLOT__DEFINE, hsi_chk_obj, hsi_image_fitsread, hsi_imagefile_2_plotman
	hsi_obs_summary__define [1], hsi_obs_summary__define [2], hsi_plot_flux
	hsi_show_flare_on_image, hsi_spectrum_fitsread, hsi_ui_img, hsi_ui_mon
	hsi_ui_obs, hsi_ui_ql, hsi_ui_qlimage, plot_goes_ospex
 Examples    : if  is_class (object, 'hsi_image') then object -> plot

 Inputs      :		OBJECT - object to check
						CLASS = class name

 Opt. Inputs : None

 Outputs     : 1/0 if object is/isn't an instance of class

 Opt. Outputs: None

 Keywords    : ERROR - blank string, or text of error message
						QUIET - if set, don't print error message

 Restrictions: None

 Side effects: None

 History     : Written 17 Aug 2000, Kim Tolbert

 Contact     : kim.tolbert@gsfc.nasa.gov
 Modifications:
    31-Jan-2001, Kim - Changed size(xxx,/dim) to n_elements(xxx) because 5.4 returns 0 for scalar


IS_COMPRESSED $SSW/gen/idl/system/is_compressed.pro
[Previous] [Next]
 Project     : HESSI

 Name        : IS_COMPRESSED

 Purpose     : returns true if file has .Z or .gz ext

 Category    : utility I/O

 Syntax      : IDL> chk=is_compressed(file)

 Inputs      : FILE = input filename(s)

 Outputs     : 1/0 if compressed or not
 
 Optional Outputs: TYPE = 'gz' or 'Z' 

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], STR_MATCH
 CALLED BY:
	EIS_GET_HDR [1], EIS_GET_HDR [2], FITS__DEFINE, HXRS__DEFINE, MESOLA__DEFINE
	MRD_HEAD, RD_ASCII_C, SHOW_SYNOP__DEFINE, gzip
 History     : Written 2 July 2000, D. Zarro, EIT/GSFC

 Contact     : dzarro@solar.stanford.edu


IS_DIGIT $SSW/gen/idl/util/is_digit.pro
[Previous] [Next]
 Project     :	SOHO - CDS/SUMER

 Name        :	IS_DIGIT

 Purpose     :	Determine if a character is a digit [0 - 9].

 Explanation :	This function checks every character of a string, or every
               element of an array passed to it to determine if it is an
               ASCII digit, that is [0 - 9].  If it is a digit then the 
               function returns 1 (TRUE) for that element, otherwise the
               function returns 0 (FALSE).

 Use         :	RESULT = IS_DIGIT (STR)

		STR = "7 MARY 3"
		IF MAX (IS_DIGIT (STR)) THEN PRINT, "String contains a digit" $
		ELSE PRINT, "String does not contian a digit"

               IDL>String contains a digit


 Inputs      :	STR	 = String of characters, or an array whose elements
                          are within the range 0 to 255.  If an earray with
                          with elements outside this range is passed to the 
                          to the function, then each element is forced into
                          this range. e.g. elements less then 0 are 0 and 
                          elements greater then 255 are changed to 255.

 Opt. Inputs :	None.

 Outputs     :	None.

 Opt. Outputs:	None.

 Result      : a byte array with as many elements as the array or string that
               was passed to this function in the parameter STR.  Every 
               element in the resultant array will be set to 1 (TRUE) if the 
               corresponding element or character is an ascii digit,
               otherwise it will be set to 0 (FALSE).

 Keywords    :	None.

 Calls       : ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3]
 CALLED BY:
	EIS_CAT [1], EIS_CAT [2], GET_SECTION_NO, READ_MERGED_DSN
 Common      :	None.

 Restrictions:	None.

 Side effects:	None.

 Category    :	Planning, science

 Prev. Hist. :	This procedure is based on C function of the same name.

 Written     :	Ron Yurow, 6 November 1995

 Modified    :	Version 1, Ron Yurow, 6 November 1995
		Version 2, Ron Yurow, 28 February 2003
		Changed VAR_TYPE to DATATYPE for compatability with SSW.

 Version     :	Version 2, 28 February 2003


IS_DIR $SSW/gen/idl/system/is_dir.pro
[Previous] [Next]
 Project     : HINODE/EIS

 Name        : IS_DIR

 Purpose     : Test if input is a valid directory

 Inputs      : DIR  = directory name to test

 Outputs     : None

 Keywords    : See IS_DIR2

 Version     : Written 12-Nov-2006, Zarro (ADNET/GSFC)
                  - uses better FILE_TEST

 Contact     : dzarro@solar.stanford.edu
 CALLS:
 CALLED BY
	APPEND_SDB, CHECK_ANOMALY, CLEAN_PATH, DO_EIT_SCALING, EIS_CAL_MKCALDATA [1]
	EIS_CAL_MKCALDATA [2], EIT__DEFINE, ENVIRONMENT [1], ENVIRONMENT [3], FILE2FID
	FTP_BBSO, FTP_KISF, FTP_MLSO_IMAGES, FTP_MWSO, FTP_NOBE, FTP_SYNOP, FTP__DEFINE
	GET_GEV, GET_NAR, GET_SSWDB, GOES__DEFINE, HAVE_FILES, HESSI_DATA_PATHS [1]
	HSI_FIND_FILE, HSI_LOC_FILE, HSI_SOCK_FILE, HXRS__DEFINE, IS_LINK, ITOOL_PKFILE_BS
	ITOOL_RD_FITS, LIST_DIR, LIST_FILE, LOAD_EIT_COLOR, LOAD_PATH, LOC_FILE [2]
	MDI_COPY, MDI_GBO, MDI_LATEST, MK_DIR, MK_TEMP_DIR, RD_GOES_SDAC, READ_EIT_FILE
	RM_FILE, SET_CDS_FITS, SET_CDS_SDB, SHOW_SYNOP__DEFINE, SPECPLOT__DEFINE
	SYNOP_DEFINE, TIFF2GIF, XDETECTOR [1], XFILES [1], XFILES [2], XMAP [1], XMAP [2]
	XMKFITS [1], XMKFITS [2], expand_dirs, html_get_files, mdi_link, mdi_write_genxcat
	rd_week_file [2], read_ftp, uncompress, weekid [2], xpickfile, xwhisker [1]
	xwhisker [2], ydb_exist [2]


IS_DIR2 $SSW/gen/idl/system/is_dir2.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : IS_DIR2
               
 Purpose     : platform/OS independent check if input name is a 
               valid directory.
                             
 Category    : system utility
               
 Explanation : uses 'cd' and 'catch'
               
 Syntax      : IDL> a=is_dir(name)

 Inputs      : NAME = directory name to check
               
 Outputs     : 1/0 if success/failure
               
 Keywords    : OUT = full name of directory
             : COUNT = # of valid directories
             : EXPAND = expand input using chklog
             
 CALLED BY:
	IS_DIR, TEST_DIR2, TEST_OPEN2, WRITE_DIR2
 Restrictions: Needs IDL version .ge. 4. Probably works in Windows
               
 CALLS: ***
	CHKLOG [1], CHKLOG [2], EXIST, FIX_DRIVE, OS_FAMILY, REM_TMP, is_number [1]
	is_number [2]
 Side effects: None
               
 History     : Written, 6-June-1999, Zarro (SM&A/GSFC)
               Modified, 2-Dec-1999, Zarro - add check for NFS /tmp_mnt
               Modified, 3-Jan-2002, Zarro - added check for input
                directory as environment variable
               Modified, 26-May-2002, Zarro - extended check for input
                directory as environment variable
               Modified, 20-Jan-2003, Zarro - removed check for input
                directory as environment variable for Unix
               Modified, 7-Sep-2005, Zarro (L-3Com/GSFC) - made /expand
                the default
               Modified, 15-Nov-2006, Zarro (ADNET/GSFC) - renamed to IS_DIR2

 Contact     : dzarro@solar.stanford.edu


is_fits [1] $SSW/gen/idl/fits/is_fits.pro
[Previous] [Next]
     IS_FITS determines whether a file is in fits format

DESCRIPTION:  
     IS_FITS reads the primary header unit from a file and searches
     for the keyword 'SIMPLE'.  If SIMPLE = T then the file is 
     determined to be a fits file and result = 1.  The keyword 
     'EXTENSIONS' is then searched for; if it is found then then
     next header unit is read in and the value of the 'XTENSION'
     keyword is returned in the optional parameter 'extension'. If
     'EXTENSIONS' is not found then 'extension' is left blank.
     

CALLING SEQUENCE:  
     RESULT = IS_FITS ( filename, [extension] )

ARGUMENTS (I = input, O = output, [] = optional):
     RESULT        O   integer    Contains 1 for each file that is in
                                  fits format, SIMPLE = 'T'
     FILENAME      I   string     File name to be checked
     EXTENSION    [O]  string     Contains the extension type if 
                                  the fits file contains 'XTENSION'
                                  keyword

WARNINGS:

 CALLED BY:
	EIT_DISPLAY, EIT_IMAGE, EIT_MKMOVIE, EIT_PREP, MOVIE_MAKER, eit_dump, eit_lzsort
	read_eit
EXAMPLE:
	To check if file 'filename' is fits format use the following:

	    status = is_fits('filename') 

	The return status = 1 if it is a fits file and 0 if not.  No 
	information on extensions is returned.

	To determine if a file is a valid fits extension file and what
	type if extension it is, then include the optional 'extension'
	keyword:

	    status = is_fits('filename', extension)

	In this case status = 1 if the file is a valid fits file.  The
	keyword extension = 'BINTABLE' if the file is fits Binary
	Table Extension.  If no extensions were found then extension
	is left blank.  !ERROR will be returned as 0 for no errors and
	as 1 if the file was not found.
#
 CALLS: ***
	SXPAR [1], SXPAR [2], SXPAR [3]
COMMON BLOCKS:
     None

PROCEDURE (AND OTHER PROGRAMMING NOTES): 

PERTINENT ALGORITHMS, LIBRARY CALLS, ETC.:
	Uses a call to SXPAR to find keyword values.
  
MODIFICATION HISTORY:
     Written by Dave Bazell,  General Sciences Corp.  4 Feb 1993 spr 10477
     Modified by Dalroy Ward, General Sciences Corp. 24 Mar 1993 spr
              modified routine to handle headers longer than one record
     13-Aug-2000, Zarro (EIT/GSFC) - added more stringent test for
     non-zero dimensions

.TITLE
 Routine IS_FITS


IS_IEEE_BIG [1] $SSW/gen/idl/system/is_ieee_big.pro
[Previous] [Next]
 NAME:
	IS_IEEE_BIG
 PURPOSE:
	Determine if the current machine uses IEEE, big-endian numbers.
 EXPLANATION:
       (Big endian implies that byteorder XDR conversions are no-ops).
 CALLING SEQUENCE:
	flag = is_ieee_big()
 INPUT PARAMETERS:
       None
 RETURNS:
       1 if the machine appears to be IEEE-compliant, 0 if not.
 CALLED BY:
	CHECKSUM32, CH_WRITE_FITS, DBEXT [2], DBUPDATE [1], IRAFRD, MRDFITS [1], MRDFITS [2]
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
	None
 RESTRICTIONS:
 PROCEDURE:
       The first byte of the two-byte representation of 1 is examined.
       If it is zero, then the data is stored in big-endian order.
 MODIFICATION HISTORY:
       Written 15-April-1996 by T. McGlynn for use in MRDFITS.
	13-jul-1997	jkf/acc	- added calls to check_math to avoid
				  underflow messages in V5.0 on Win32 (NT).
	Converted to IDL V5.0   W. Landsman   September 1997
       Follow RSI and just do a single test  W. Landsman   April 2003


IS_IEEE_BIG [2] $SSW/gen/idl_libs/astron/misc/is_ieee_big.pro
[Previous] [Next]
 NAME:
	IS_IEEE_BIG
 PURPOSE:
	Determine if the current machine uses IEEE, big-endian numbers.
 EXPLANATION:
       (Big endian implies that byteorder XDR conversions are no-ops).
 CALLING SEQUENCE:
	flag = is_ieee_big()
 INPUT PARAMETERS:
       None
 RETURNS:
       1 if the machine appears to be IEEE-compliant, 0 if not.
 CALLED BY:
	CHECKSUM32, CH_WRITE_FITS, DBEXT [2], DBUPDATE [1], IRAFRD, MRDFITS [1], MRDFITS [2]
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
	None
 RESTRICTIONS:
 PROCEDURE:
       The first byte of the two-byte representation of 1 is examined.
       If it is zero, then the data is stored in big-endian order.
 MODIFICATION HISTORY:
       Written 15-April-1996 by T. McGlynn for use in MRDFITS.
	13-jul-1997	jkf/acc	- added calls to check_math to avoid
				  underflow messages in V5.0 on Win32 (NT).
	Converted to IDL V5.0   W. Landsman   September 1997
       Follow RSI and just do a single test  W. Landsman   April 2003


IS_LENDIAN $SSW/gen/idl/system/is_lendian.pro
[Previous] [Next]
 NAME:
    IS_LENDIAN.PRO


 PURPOSE:
    Many routines (WRITEFITS, ANAFRD, etc) depend on the endianness
    of the hardware platform.  This routine centralizes this in one
    place so new platforms may be added at will.


 CALLING SEQUENCE:
    little_endian_flag = is_endian()

 
 INPUTS:
    None.  is_endian checks !version.os for the platform.


 OUTPUTS:
    little_endian_flag = 1     ; Machine is little endian
                       = 0     ; Machine is big endian


 CALLED BY:
	make_into_bytarr, rdwrt [1], rdwrt [2], rdwrt [3], tr_wrt_fits_i1 [2]
 MODIFICATION HISTORY:
    18-Jun-97 - (BNH) - Written (mostly from SLF)
    
    29-nov-2006 - S.L.Freeland - do this by calculation, not list
                  for maintenance simplification and auto-extension
                  Plagerized from $SSW_EIS/...little_endian.pro


IS_LINK $SSW/gen/idl/system/is_link.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : IS_LINK

 Purpose     : check if file name is actually a link

 Category    : Help system

 Explanation : spawns  'ls -l' to check for links

 Syntax      : IDL> link = is_link(file,out=out)

 Inputs      : FILE = string file name

 Opt. Inputs : None

 Outputs     : link = 1/0 if link or not

 Opt. Outputs: None

 Keywords    : OUT = translated file name

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], ESPAWN, EXIST, IS_DIR, OS_FAMILY, TRIM
 Restrictions: UNIX only

 History     : Written, 22-March-2000,  D.M. Zarro (SM&A)

 Contact     : DZARRO@SOLAR.STANFORD.EDU


IS_MAP_LIST $SSW/gen/idl/objects/is_map_list.pro
[Previous] [Next]
 Project     : HESSI

 Name        : IS_MAP_LIST

 Purpose     : check if input object was inherited from a MAP_LIST

 Category    : utility objects

 Syntax      : IDL> check=is_map_list(obj)

 Inputs      : OBJECT = object variable

 Outputs     : 1/0 if is or isn't

 CALLS: ***
	OBJ_PARENTS
 History     : Written 18 April 2001, D. Zarro (EITI/GSFC)

 Contact     : dzarro@solar.stanford.edu


is_member [1] $SSW/gen/idl/util/is_member.pro
[Previous] [Next]
   Name: is_member

   Purpose: check set membership (element(s) IN set?), return boolean

   Input Parameters:
      elements - item(s) to check
      set - array (set) to check  (use keyword if not specified)

   Keyword_Parameters:
      swap_os - return true if current OS requires byte swapping
      wc - if set, just check for pattern match

   Calling Sequence:
      truth=is_member(element, set)	; user specified values
      truth=is_member(/swap_os)	; built in tests via keywords

   Calling Examples:
      IF is_member(/swap_os) THEN  			; check current OS
      IF is_member(name,['n1','n2','n3']) THEN		; is name in namelist?
      IF is_member(pattern,'n1,n2,n3']) THEN           ; same as above
      IF is_member(name,namelist,/ignore_case) THEN    ; case insensitive
      IF is_member(pattern,list,/wc) THEN		; pattern match?

 CALLS: ***
	data_chk [1], data_chk [2]
 CALLED BY:
	HESSI PACKET CLASS DEFINITION, SPEX__DEFINE
	STRATEGY HOLDER TOOLS ABSTRACT CLASS, UPDATE_LINE_TEMPLATES
	check_process [1], check_process [2], dbase2disk, decode_gev, disk_hog [1]
	disk_hog [2], diskfree [1], diskfree [2], eit_colors, files2data, fit_comp_kw
	fits2time [1], fits2time [2], fits2time [3], ftp_copy2sites, go_yo_prod_batch
	gt2exe [1], gt2exe [2], gt_pix_size, gtt_mnem, hsi_imagefile_2_plotman
	hsi_obs_source__define, hsi_params_2_top_struct, hsi_params_write_pro
	idl_server_control, is_alive [1], is_alive [2], keyword_db, mk_ssc_batch [1]
	mk_ssc_batch [2], mk_syn_sfc [1], mk_syn_sfc [2], mk_week_file [1]
	mk_week_file [2], mo_patch, mtcmd [1], mtcmd [2], plotman
	pprint OBSOLETE  See SPRINTPRO [1], pprint [1], rd_week_file [1]
	rd_week_file [2], rd_week_file [3], rd_week_file [4], ssw_contrib_ok2online
	ssw_ct2rgb, ssw_javamovie, ssw_start_rpcserver, str_istype, str_subset, sxt2file
	time_window, timeline, topsdb [1], topsdb [2], tr_hsm_fix, trace_dph2struct [1]
	trace_special_movie [1], trace_special_movie [2], trace_special_movie [3]
	trace_special_movie2, tvmulti, wdeletes, web_seq, weekid [2], xso_butevents [1]
	xso_butevents [2], ydb_exist [2]
   History:
      11-Apr-1994 (SLF) [reduce duplicate code, self-documenting code]
      25-oct-1994 (SLF) add WC keyword and function 
	3-oct-1995 (SLF) add linux to sawap_os
       1-nov-1996 (SLF) allow SET to be scaler string (comma delimited)
      29-nov-2006 (SLF) return 'is_lendian()' in specific case of /SWAP_OS
                        (restore single point maint and auto-extension)


IS_METHOD_ADDED $SSW/gen/idl/objects/is_method_added.pro
[Previous] [Next]
 Project     : HESSI

 Name        : IS_METHOD_ADDED

 Purpose     : check if a method has been added to a class

 Category    : utility objects

 Explanation : checks output of help,/rout for CLASS::METHOD

 Syntax      : IDL> added=is_method_added(method,class)

 Inputs      : METHOD = scalar string method name
               CLASS = scalar string class or object name

 Outputs     : 1/0 if added/not added

 CALLED BY:
	ADD_METHOD
 History     : Written 30 Aug 2000, D. Zarro, EIT/GSFC

 Contact     : dzarro@solar.stanford.edu
               31-Aug-2001, Kim.  Use stregex to ensure that 
               correct class/method is searched for
               (e.g.  previously, searching for fits::clone found lfits::clone)


IS_MISSING $SSW/gen/idl/util/is_missing.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : IS_MISSING()

 Purpose     : Returns whether or not array pixels are missing

 Explanation : Returns a vector array containing a boolean value signalling
               missing pixels, i.e. those pixels with a non-finite value
               (e.g. NaN), or equal to a missing pixel flag value.

 Use         : Result = IS_MISSING( ARRAY, <keywords> )

 Inputs      : ARRAY	= Array to examine for missing pixels.

 Opt. Inputs : None.

 Outputs     : Result of function is an array containing 1 for missing pixels,
               and 0 for good pixels.

 Opt. Outputs: None.

 Keywords    : MISSING = Value flagging missing pixels.

 Calls       : None.
 Common      : None.

 Restrictions: None.

 Side effects: None.

 Category    : Utilities

 Prev. Hist. : None.

 Written     : William Thompson, GSFC, 29 April 2005

 Modified    : Version 1, William Thompson, GSFC, 29 April 2005

 Version     : Version 1, 29 April 2005


IS_NONZERO $SSW/gen/idl/util/is_nonzero.pro
[Previous] [Next]
 PROJECT:
	SSW
 NAME:
	IS_NONZERO

 PURPOSE:
	This function returns zero if the argument is undefined or all zeroes.

 CATEGORY:
	Util

 CALLING SEQUENCE:
	test = is_nonzero( a )

 CALLS:
	none
 INPUTS:
       Arg - argument to test.

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none explicit, only through commons;

 OPTIONAL OUTPUTS:
	none

 KEYWORDS:
	none
 CALLED BY:
	HSI_SPECTROGRAMCHAN_OVERLAP_FIX, HSI_SPECTROGRAM_DECIM_CORRECT
	HSI_SPECTROGRAM_DECIM_TABLE, SPECTROGRAM CLASS DEFINITION
	hsi_spectrogramACCBIN [2], hsi_spectrogram__define [1]
	hsi_spectrogram__define [2], hsi_spectrogram__define [3]
	hsi_spectrogram__get_obs [1], hsi_spectrogram__livetime [1]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	Argument may only be undefined or of numeric type.

 PROCEDURE:
	none

 MODIFICATION HISTORY:
	20-dec-02, Version 1, richard.schwartz@gsfc.nasa.gov


IS_NOT_MISSING $SSW/gen/idl/util/is_not_missing.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : IS_NOT_MISSING()

 Purpose     : Returns whether or not array pixels are missing

 Explanation : Returns a vector array containing a boolean value signalling
               good pixels, i.e. those pixels with a finite value (e.g. not
               NaN), and not equal to a missing pixel flag value.

 Use         : Result = IS_NOT_MISSING( ARRAY, <keywords> )

 Inputs      : ARRAY	= Array to examine for missing pixels.

 Opt. Inputs : None.

 Outputs     : Result of function is an array containing 0 for missing pixels,
               and 1 for good pixels.

 Opt. Outputs: None.

 Keywords    : MISSING = Value flagging missing pixels.

 Calls       : None.
 CALLED BY:
	ASMOOTH, AVERAGE, CROSS_CORR2, INTERP2
 Common      : None.

 Restrictions: None.

 Side effects: None.

 Category    : Utilities

 Prev. Hist. : None.

 Written     : William Thompson, GSFC, 29 April 2005

 Modified    : Version 1, William Thompson, GSFC, 29 April 2005

 Version     : Version 1, 29 April 2005


is_number [1] $SSW/gen/idl/util/is_number.pro
[Previous] [Next]
NAME:
	is_number
PURPOSE:
	Test string (or array of strings) to see if it is a number
SAMPLE CALLING SEQUENCE:
	out = is_number(inarray)
	print, is_number(v)
	print, is_number('xx')
	out = is_number('66.6e')
INPUT:
	inarray - The string(s) to test
OUTPUT:
	out	- Boolean array (0 means not a string, 1 means it is)
METHOD:
	Use READS and trap on any errors with ON_IOERROR
 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], IS_NUMBER2, SINCE_VERSION [1]
	SINCE_VERSION [2]
 CALLED BY:
	ARCMIN2HEL2, CACHE__DATA, CDS_ASRUN_POINT, CHAN_DEFINE, CLOSE_LUN, DATA_PATHS
	DROT_MAP, EIS_CHECK_POINT [1], EIS_CHECK_POINT [2], EIS_DROT_FOV [1]
	EIS_DROT_FOV [2], EIS_FOV [1], EIS_FOV [2], EIS_IMAGE_TOOL [1]
	EIS_IMAGE_TOOL [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2], EIS_POINT_STC [1]
	EIS_POINT_STC [2], EIS_VALID_POINT [1], EIS_VALID_POINT [2], EIT_COPY, EIT_GBO
	EIT__DEFINE, FID2TIME, FID__DEFINE, FIFO__DEFINE, FILE_SINCE, FILT_EVENTS
	FIND_COMPRESSED, FITS WRITER CLASS, FITS2TIFF, FITS__DEFINE, FIX_DATE, FTP_MWSO
	FTP__DEFINE, GET_GEV, GET_NAR, GET_TAG_INDEX, GET_TAG_VALUE, GET_XWIN [1]
	GOES_FITS_FILES, GOES_SAT, GOES__DEFINE, HAVE_NETWORK, HEL2ARCMIN [1]
	HESSI IMAGE STRATEGY CLASS DEFINITION, HFITS__DEFINE, HTTP__DEFINE, IMAGE_TOOL
	IS_DIR2, IS_WOPEN, JSMOVIE2, LAROBS_COPY, LATEST_IMAGE, LIST_NAR, MAKE_MAP
	MAP_LIST__DEFINE, MAP__DEFINE, MDI_COPY, MDI_GBO, MDI_LATEST, MK_SOHO_TARGET
	MRD_HEAD, OLIST__DEFINE, OVSA_LTC_DEFINE, PLOT_HELIO [1], PLOT_HELIO [2], PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	POINT SPREAD FUNCTION CLASS DEFINITION, PRINT_CONTENT, PRINT_GEV, PRINT_HTML
	PRINT_NAR, RATIO_PLOTTER [1], RDWRT_BUFF, RD_ASCII_BUFF, RD_ASCII_BYTE, RD_BUFF
	RD_GOES_SDAC, READ_KAP_ITEM, REM_TAG [2], REP_TAG_NAME, REP_TAG_VALUE, ROT_XY
	SHOW_SYNOP__DEFINE, SITE__DEFINE, SMART_FTP, SOCK_OPEN, SOXS_DRM, SPECPLOT__DEFINE
	SPEX_DRM__DEFINE, STACK__DEFINE, SXI_GBO, SXI_SERVER, SYNOP_DEFINE, TRACE_COPY
	TRACE_GBO, UPDATE_CAMPAIGN, UPDATE_MM, UTPLOT__DEFINE, VALID_TIME, WALK_DOM, WSHOW2
	XCALENDAR, XCRON, XPOPUP, XYPLOT__DEFINE, binning__define, byte2str, db_gbo
	fitshead2struct, get_xwin [2], gt2exe [1], gt2exe [2], hsi_gbo
	hsi_image__getaxis [2], hsi_image_raw__define, hsi_params_write_pro, ihy_db
	is_open, ospex_params_write_pro, ratio_plotter [2], rd_egse_hk_txt
	rd_raw_station_plan, read_ftp, soxs_czt_photopeak, soxs_photopeak, spectro_plot2
	spex_data__define, ssw_getcme_cdaw, ssw_sec_aktxt2struct, str_cut, str_subset
	trace_cat, trace_get1www_image, trace_last_movie [1], trace_last_movie [3]
	trace_scale, wrt_buff
HISTORY:
	Written 29-Oct-97 by M.Morrison
       Modified 29-Jun-99, Zarro (SM&A/GSFC) - added check for undefined input
       Modified 29-Sep-00, Zarro (EIT/GSFC) - added check for invalid inputs
       Modified 21-jun-05, Csillaghy (UAS Switzerland)- added call to is_number2


is_number [2] $SSW/gen/idl/util/is_number2.pro
[Previous] [Next]
NAME:
	is_number
PURPOSE:
	Test string (or array of strings) to see if it is a number
SAMPLE CALLING SEQUENCE:
	out = is_number(inarray)
	print, is_number(v)
	print, is_number('xx')
	out = is_number('66.6e')
INPUT:
	inarray - The string(s) to test
OUTPUT:
	out	- Boolean array (0 means not a string, 1 means it is)
METHOD:
	Use READS and trap on any errors with (ON_IOERROR earlier) now with catch       
 CALLS: ***
	IS_NUMBER2
 CALLED BY:
	ARCMIN2HEL2, CACHE__DATA, CDS_ASRUN_POINT, CHAN_DEFINE, CLOSE_LUN, DATA_PATHS
	DROT_MAP, EIS_CHECK_POINT [1], EIS_CHECK_POINT [2], EIS_DROT_FOV [1]
	EIS_DROT_FOV [2], EIS_FOV [1], EIS_FOV [2], EIS_IMAGE_TOOL [1]
	EIS_IMAGE_TOOL [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2], EIS_POINT_STC [1]
	EIS_POINT_STC [2], EIS_VALID_POINT [1], EIS_VALID_POINT [2], EIT_COPY, EIT_GBO
	EIT__DEFINE, FID2TIME, FID__DEFINE, FIFO__DEFINE, FILE_SINCE, FILT_EVENTS
	FIND_COMPRESSED, FITS WRITER CLASS, FITS2TIFF, FITS__DEFINE, FIX_DATE, FTP_MWSO
	FTP__DEFINE, GET_GEV, GET_NAR, GET_TAG_INDEX, GET_TAG_VALUE, GET_XWIN [1]
	GOES_FITS_FILES, GOES_SAT, GOES__DEFINE, HAVE_NETWORK, HEL2ARCMIN [1]
	HESSI IMAGE STRATEGY CLASS DEFINITION, HFITS__DEFINE, HTTP__DEFINE, IMAGE_TOOL
	IS_DIR2, IS_WOPEN, JSMOVIE2, LAROBS_COPY, LATEST_IMAGE, LIST_NAR, MAKE_MAP
	MAP_LIST__DEFINE, MAP__DEFINE, MDI_COPY, MDI_GBO, MDI_LATEST, MK_SOHO_TARGET
	MRD_HEAD, OLIST__DEFINE, OVSA_LTC_DEFINE, PLOT_HELIO [1], PLOT_HELIO [2], PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	POINT SPREAD FUNCTION CLASS DEFINITION, PRINT_CONTENT, PRINT_GEV, PRINT_HTML
	PRINT_NAR, RATIO_PLOTTER [1], RDWRT_BUFF, RD_ASCII_BUFF, RD_ASCII_BYTE, RD_BUFF
	RD_GOES_SDAC, READ_KAP_ITEM, REM_TAG [2], REP_TAG_NAME, REP_TAG_VALUE, ROT_XY
	SHOW_SYNOP__DEFINE, SITE__DEFINE, SMART_FTP, SOCK_OPEN, SOXS_DRM, SPECPLOT__DEFINE
	SPEX_DRM__DEFINE, STACK__DEFINE, SXI_GBO, SXI_SERVER, SYNOP_DEFINE, TRACE_COPY
	TRACE_GBO, UPDATE_CAMPAIGN, UPDATE_MM, UTPLOT__DEFINE, VALID_TIME, WALK_DOM, WSHOW2
	XCALENDAR, XCRON, XPOPUP, XYPLOT__DEFINE, binning__define, byte2str, db_gbo
	fitshead2struct, get_xwin [2], gt2exe [1], gt2exe [2], hsi_gbo
	hsi_image__getaxis [2], hsi_image_raw__define, hsi_params_write_pro, ihy_db
	is_open, ospex_params_write_pro, ratio_plotter [2], rd_egse_hk_txt
	rd_raw_station_plan, read_ftp, soxs_czt_photopeak, soxs_photopeak, spectro_plot2
	spex_data__define, ssw_getcme_cdaw, ssw_sec_aktxt2struct, str_cut, str_subset
	trace_cat, trace_get1www_image, trace_last_movie [1], trace_last_movie [3]
	trace_scale, wrt_buff
HISTORY:
	Written 29-Oct-97 by M.Morrison
       Modified 29-Jun-99, Zarro (SM&A/GSFC) - added check for undefined input
       Modified 29-Sep-00, Zarro (EIT/GSFC) - added check for invalid inputs
       Modified 21-jun-05, Csillaghy (UAS Switzerland) -- make sure it does
                           not crash when 'information' or 'nan...' are
                           passed. Also, move from on_ioerror to catch.


is_open $SSW/gen/idl/system/is_open.pro
[Previous] [Next]
 NAME:
       is_open
 PURPOSE:
       check if a file unit is open
 CALLING SEQUENCE:
       chk=is_open(file)
 INPUTS:
       file = file to check
 OUTPUTS:
       chk = 1 (open) or 0 (closed)
 KEYWORDS:
       unit = file unit number
 CALLS: ***
	CHKLOG [1], CHKLOG [2], DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], GREP
	IDL_RELEASE, IS_BLANK, STR2ARR [1], STR2ARR [2], delvarx [5], is_number [1]
	is_number [2]
 CALLED BY:
	ALLOW_GIF, RM_FILE, SEND_PRINT, ssw_post_query, xps [1], xps [2]
 PROCEDURE:
       uses fstat (now uses HELP)
 HISTORY:
       Written Jun'94 (DMZ,ARC)
       Modified, Zarro (SM&A/GSFC), 8 Oct 1999
        -- more accurate use of grep


is_ps $SSW/gen/idl/system/is_ps.pro
[Previous] [Next]
   Name: is_ps

   Purpose: boolean function - is file a PostScript File?

   Input Parameters:
      filename - file name to check
   
   Calling Sequence:
      truth=is_ps(filename)
 CALLS: ***
	file_size [1], file_size [2]
 CALLED BY:
	SEND_PRINT
   History:
      14-apr-1997 - S.L.Freeland 


IS_SCALAR $SSW/gen/idl/util/is_scalar.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : IS_SCALAR
               
 Purpose     : return true if input is a true scalar (e.g. 1 instead of [1])
                             
 Category    : utility
               
 Syntax      : IDL> a=is_scalar(input)
    
 Inputs      : INPUT = input variable to check
                              
 Outputs     : 0/1 if scalar/nonscalar
             
 History     : 4-Apr-2005, Zarro (L-3Com/GSFC)

 Contact     : dzarro@solar.stanford.edu


is_ss [1] $SSW/gen/idl/genutil/is_ss.pro
[Previous] [Next]
     IS_SS determines whether a file is a valid IDL save set

DESCRIPTION:  
     IS_SS attempts to open FILENAME and read the first two bytes.
     IDL save sets have the first two bytes set to 83 and 84 so we 
     check the values of these bytes and return a 1 if the test is
     positivie and a 0 if either one is negative.

CALLING SEQUENCE:  
     RESULT = IS_SS(filename)

ARGUMENTS (I = input, O = output, [] = optional):
     RESULT        O   int        Return value = 1 if FILENAME is 
                                  determined to be an IDL save set
                                  and 0 if it is not.
     FILENAME      I   str        Name of file to be checked        

WARNINGS:
	This algorithm is based on the first two bytes of the save
	set record begin equal to 83 and 82.  It has been observed
	that IDL save sets start with these bytes.  Invalid results
	will occur if  RSI changes this convention (possible) or if
	a non-IDL save set starts with 83 82 (also possible).

 CALLED BY:
	EIT_DISPLAY
EXAMPLE:
	To determine if 'file' is a valid IDL save set use:

	   status = is_ss('file')

	Status = 1 if it is a save set and 0 if it is not.
#
COMMON BLOCKS:
     None

PROCEDURE (AND OTHER PROGRAMMING NOTES): 

PERTINENT ALGORITHMS, LIBRARY CALLS, ETC.:
     None
  
MODIFICATION HISTORY:
     Written by Dave Bazell,  General Sciences Corp. 4 Feb 1993 spr 10463

.TITLE
 Routine IS_SS


IS_SSW $SSW/gen/idl/system/is_ssw.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : IS_SSW
               
 Purpose     : return true if current IDL environment is SSW
                             
 Category    : system utility
               
 Syntax      : IDL> a=is_ssw()
    
 Inputs      : None
                              
 Outputs     : 1/0 is under SSW or not
               
 History     : 23-Jan-2003, Zarro (EER/GSFC)

 Contact     : dzarro@solar.stanford.edu


IS_STRING $SSW/gen/idl/string/is_string.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : IS_STRING
               
 Purpose     : return true is input is a non-blank string
                             
 Category    : string utility
               
 Syntax      : IDL> a=is_string(input)
    
 Inputs      : INPUT_STR = input variable to check
                              
 Outputs     : 0/1 if blank/nonblank

 Keywords    : return true (1), even if string is blank
               
 Opt. Outputs: NONBLANK = noblank copies of input
               (if input is array, then nonblanks are filtered out)
             
 CALLED BY:
	ADD_TAG [1], ALLOW_FONT, APPEND_SDB, BOOST_TAG, CACHE_DATA, CACHE__DATA
	CDS_ASRUN_POINT, CHAN_DEFINE, COALIGN_FITS, CSCALE, DO_EIT_MAP, DROT_MAP
	EIS_ENV_INI [1], EIS_ENV_INI [2], EIS_FITS_COORD [1], EIS_FITS_COORD [2]
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_RD_FITS [1]
	EIS_ITOOL_RD_FITS [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2]
	EIS_LIST_MAIN [1], EIS_LIST_MAIN [2], EIT_COPY, EIT_PREP, EIT_QUALITY [1]
	EIT_QUALITY [2], EIT__DEFINE, EXP_DBASE, FIFO__DEFINE, FITS WRITER CLASS
	FITS2TIFF, FITSHEAD2WCS, FIX_EXTRA, FREE_VAR, FTP__DEFINE, GET_FITS_TIME
	GET_SOHO_ROLL, GET_TAG_INDEX, GOES__DEFINE, HAVE_NETWORK
	HESSI CALIBRATED EVENTLIST CLASS DEFINITION [1]
	HESSI CALIBRATED EVENTLIST CLASS DEFINITION [2]
	HESSI CALIBRATED EVENTLIST CLASS DEFINITION [5]
	HESSI EVENTLIST CLASS DEFINITION, HESSI IMAGE CLASS DEFINITION [1]
	HESSI IMAGE FILE CLASS DEFINITION [1]
	HESSI IMAGE STRATEGY CLASS DEFINITION, HFITS__DEFINE, HSI_CLOCK_DRIFT
	HSI_FIND_FILE, HSI_LOCATE_FLARE [2], HSI_LOCATE_FLARE [4]
	HSI_SOH_TYPE_CONVERSION, HTTP__DEFINE, HXRS__DEFINE, INDEX2MAP, IS_BLANK
	LAROBS_COPY, LIST_FILE, LIST_GEV, LIST_NAR, LOC_FILE [2], LOC_FILE_NEW, MAP__DEFINE
	MDI_COPY, MDI__DEFINE, MK_DFONT, MK_FILE, MK_LINK, MK_SOHO_TARGET, MK_TEMP_FILE
	NEAR_TIME, NOBE__DEFINE, OBJ_EVENT, OBJ_STRUCT, OVSA_LTC_DEFINE, PAIR_STRUCT
	PARSE_TIME, PLOT_CDS_POINT [1], PLOT_CDS_POINT [2], PLOT_MAP, PRINT_HTML
	PROGMETER, RDWRT_BUFF, RD_SPIRIT, REM_TAG [1], REM_TAG [2], REP_STRUCT_NAME
	REP_TAG_NAME, REP_TAG_VALUE, ROT_FITS_HEAD, RSTN__DEFINE, SET_CDS_SDB
	SHOW_SYNOP__DEFINE, SITE__DEFINE, SOAP__DEFINE, SOCK_COPY, SOCK_DOWNLOAD
	SOCK_FIND, SOCK_LIST, SOCK_MAP, SOCK_PING, SOCK_RUN, SOCK_SSW, SPECPLOT__DEFINE
	SPEX_DRM__DEFINE, SPEX__DEFINE, SPLIT_STRUCT, STRIP_STRUCT, STRUCTURE TO VOTABLE
	SYNOP_DB__DEFINE, SYNOP_DEFINE, SYSTIM, TEST_DIR2, TEST_OPEN2, TIME2FID, TRACE_COPY
	TRACE_JSMOVIE, UTPLOT__DEFINE, VALID_TIME, VSO__DEFINE, WCS2MAP, XYPLOT__DEFINE
	YMD2DATE, db_gbo, expand_dirs, file__define, fitshead2struct, fix_path, goes_oplot
	gzip, hsi_cld_sav_init, hsi_clk_delta_calc, hsi_clock_drift_redo
	hsi_clock_drift_soc, hsi_filedb_sort, hsi_flare_position_image [1]
	hsi_flare_position_image [2], hsi_full_sun_image [1], hsi_full_sun_image [2]
	hsi_gbo, hsi_get_packet_length, hsi_image__getaxis [2], hsi_image_plot
	hsi_image_raw__define, hsi_locate_flare [1], hsi_locate_flare [3]
	hsi_mult_qspec, hsi_new_spec_bck, hsi_one_qlook_image, hsi_one_qlook_spectrum
	hsi_plot_flux, hsi_qlook_call_ospex [1], hsi_qlook_call_ospex [2]
	hsi_qlook_image, hsi_qlook_spectrum, hsi_ui_img, hsi_ui_img_doimage [1]
	hsi_ui_img_doimage [2], hsi_ui_ql, hsi_write_decimation_settings, ihy_db
	plotman, rem_blanks, spectro_plot2, spectrogram__define, spex_data__define
	spex_gen_strategy_holder, spex_image__define, stc_sum, str_near, struct_subset
	sxi_latest
	to return information about a function which can consist of multiple
	uncompress, vso_format, xpickfile
 History     : 17-Nov-1999, Zarro (SM&A/GSFC)
                5-Feb-2003, Zarro (EER/GSFC) - added /BLANK

 Contact     : dzarro@solar.stanford.edu


is_struct $SSW/gen/idl/struct/is_struct.pro
[Previous] [Next]
 Project     :	HESSI

 Name        :	is_struct

 Purpose     :	returns, 1/0 if valid/invalid input structure

 Category    :	Structure handling

 Syntax      : IDL> output=is_struct(input)

 Inputs      :	INPUT = input structure array

 Outputs     :	OUTPUT = 1/0

 Written     : Zarro (EITI/GSFC), 17 Sept 2001

 Contact     : dzarro@solar.stanford.edu
 CALLED BY
	ADD_TAG [1], BBSO__DEFINE, CACHE_DATA, CACHE_LIST, COMBINE_STRUCT, CONCAT_STRUCT
	DO_EIT_MAP, EIS_CHECK_POINT [1], EIS_CHECK_POINT [2], EIS_ENV_INI [1]
	EIS_ENV_INI [2], EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2]
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_STC [1]
	EIS_ITOOL_STC [2], EIS_LIMB_FOV [1], EIS_LIMB_FOV [2], EIS_LIST_MAIN [1]
	EIS_LIST_MAIN [2], EIS_VALID_POINT [1], EIS_VALID_POINT [2], EIT_COPY, EIT_GBO
	EIT_PARTIAL, EIT__DEFINE, ESPAWN, ETHZ__DEFINE, FITS__DEFINE, FIX_EXTRA
	GET_DROT_DUR, GET_FITS_CDELT, GET_FITS_CEN, GET_FITS_TIME, GET_MAX_TAG
	GOES__DEFINE, HAVE_NETWORK, HAVE_PROC
	HESSI EVENTLIST SIMULATION CLASS DEFINITION
	HESSI IMAGE CLASS DEFINITION [1], HESSI IMAGE FILE CLASS DEFINITION [1]
	HESSI IMAGE STRATEGY CLASS DEFINITION
	HESSI MONITOR RATE  CLASS DEFINITION, HESSI SIMULATION CLASS DEFINITION
	HFITS__DEFINE, HSI_LOCATE_FLARE [2], HSI_LOCATE_FLARE [4], HSI_MODEL_TO_SCORE
	HSI_QLOOK_ASPECT, HSI_SIM11, HSI_SSR_FILL_PER_ORBIT [2]
	HSI_TOHBAN_FLARE_COUNTER, HSI_tplot2any, HTTP__DEFINE, Hsi_contact2fits [1]
	Hsi_contact2fits [2], Hsi_daily_catalog [2], INDEX2MAP, JOIN_STRUCT [1]
	LATEST_IMAGE, MAP__DEFINE, MDI_GBO, MDI__DEFINE, MERGE_STRUCT, MK_DIR, OBJ_DISSECT
	OBS__DEFINE, OSRA__DEFINE, OVSA_LTC_DEFINE, PAD_TAG, PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	PLOT_MAP_DEFINE, RD_GOES, REM_TAG [1], REP_STRUCT_NAME, REP_TAG_NAME
	REP_TAG_VALUE, ROT_FITS_HEAD, RSTN__DEFINE, SHOW_SYNOP__DEFINE, SITE__DEFINE
	SOCK_MAP, SPECPLOT__DEFINE, SPEX_FITINT__DEFINE, SPEX_GEN__DEFINE
	SPIRIT__DEFINE, SPLIT_STRUCT, STRIP_STRUCT, SXI_GBO, SYNOP_DEFINE, TRACE_COPY
	TRACE_GBO, VALID_WCS, XYPLOT__DEFINE, YMD2DATE, accum_counts [1], accum_counts [2]
	db_gbo, get_def_times, hsi_atten_state, hsi_badpak_test, hsi_cld_sav_init
	hsi_clk_delta_calc, hsi_clock_drift_redo, hsi_clock_drift_soc
	hsi_data_recovery_fraction, hsi_do_qlook_image [1], hsi_do_qlook_image [2]
	hsi_filedb_read [1], hsi_filedb_read [2], hsi_filedb_sort, hsi_flare2time
	hsi_flare_id_check, hsi_flare_list2ar, hsi_flare_list__define [1]
	hsi_flare_list__define [2], hsi_flare_list_data_concat
	hsi_flare_list_fill [1], hsi_flare_list_fill [2]
	hsi_flare_position_image [1], hsi_flare_position_image [2]
	hsi_full_sun_image [1], hsi_full_sun_image [2], hsi_gbo
	hsi_image__getaxis [2], hsi_locate_flare [1], hsi_locate_flare [3]
	hsi_mult_flare_list_inp, hsi_night_bck, hsi_obs_summ_flag__define
	hsi_obs_summ_rate__define, hsi_obs_summ_soc__define, hsi_obs_summ_timarr
	hsi_ok_intv [1], hsi_ok_intv [2], hsi_one_qlook_image, hsi_one_qlook_spectrum
	hsi_orbpar4bck, hsi_pak2decimation_settings, hsi_params_2_top_struct
	hsi_pmtras_ok, hsi_print_decimation_state, hsi_qlook__define
	hsi_qlook_call_ospex [1], hsi_qlook_call_ospex [2], hsi_qlook_concat
	hsi_qlook_image, hsi_qlook_spectrum, hsi_read_all_flare_list
	hsi_replace_flare_list, hsi_show_flags [2], hsi_sim_par_2_model
	hsi_ssr_fill_per_orbit [1], hsi_test_files, hsi_test_qlook, hsi_ui_img
	hsi_ui_ql, hsi_whole_flare_list, hsi_write_all_flare_list
	hsi_write_decimation_settings, hsi_write_txt_flare_list, ihy_db, obj_init
	plotman, spectro_plot, spex_bk__define, spex_bkint__define, spex_bksub__define
	spex_data__define, str_key, struct_subset


is_winnt $SSW/gen/idl/system/is_winnt.pro
[Previous] [Next]
 Project     : HESSI

 Name        : is_winnt

 Purpose     : check if current Windows OS is NT

 Category    : windows system

 Syntax      : IDL> i=is_winnt()

 Inputs      : None

 Outputs     : 1/0 if is or isn't

 CALLS: ***
	ESPAWN, OS_FAMILY, STR_MATCH
 CALLED BY:
	HESSI ROLL_DB CLASS DEFINITION
 History     : Written 20 June 2000, D. Zarro, EIT/GSFC

 Contact     : dzarro@solar.stanford.edu


IS_WOPEN $SSW/gen/idl/display/is_wopen.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : IS_WOPEN
               
 Purpose     : platform/OS independent check if current window
               is available
                             
 Category    : system utility graphics
               
 Explanation : uses 'wshow' and 'catch'
               
 Syntax      : IDL> a=is_wopen(id)
                                        
 Inputs      : ID = window index
               
 Outputs     : 1/0 if yes/no
                   
 CALLED BY:
	ALLOW_FONT, MK_PLAN_PLOT, PLOT_HELIO [1], PLOT_HELIO [2], plotman_reset
 Restrictions: Works best in version 5
               
 CALLS: ***
	ALLOW_WINDOWS, WSHOW2, is_number [1], is_number [2]
 Side effects: None
               
 History     : Version 1,  4-Nov-1999, Zarro (SM&A/GSFC)
               Modified, 19-Jun-01, Zarro (EITI/GSFC) - fixed Z-buffer support
               Modified, 13-Dec-01, Zarro (EITI/GSFC) - added ALLOW_WINDOWS check

 Contact     : dzarro@solar.stanford.edu


ISARRAY [1] $SSW/gen/idl/fund_lib/jhuapl/isarray.pro
[Previous] [Next]
 NAME:
       ISARRAY
 PURPOSE:
       Tests if the argument is an array.
 CATEGORY:
 CALLING SEQUENCE:
       flag = isarray(a)
 INPUTS:
       a = variable to test.                                in
 KEYWORD PARAMETERS:
 OUTPUTS:
       flag = test result: 0 if not array, else non-zero.   out
 CALLED BY:
	MOONPOS, NUTATE, POSANG, RECPOL [1], RECPOL [2], RECPOL [3], RTMVI [1], STRSEC [1]
	STRSEC [2], qView_Save2File
 COMMON BLOCKS:
 NOTES:
 MODIFICATION HISTORY:
       R. Sterner  20 Mar, 1986.
       Checked for undefined variables.  RES 25 Aug, 1989.
       Johns Hopkins Applied Physics Lab.

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


ISARRAY [2] $SSW/gen/idl_libs/astron/jhuapl/isarray.pro
[Previous] [Next]
 NAME:
       ISARRAY
 PURPOSE:
       Tests if the argument is an array.
 CATEGORY:
 CALLING SEQUENCE:
       flag = isarray(a)
 INPUTS:
       a = variable to test.                                in
 KEYWORD PARAMETERS:
 OUTPUTS:
       flag = test result: 0 if not array, else non-zero.   out
 CALLED BY:
	MOONPOS, NUTATE, POSANG, RECPOL [1], RECPOL [2], RECPOL [3], RTMVI [1], STRSEC [1]
	STRSEC [2], qView_Save2File
 COMMON BLOCKS:
 NOTES:
 MODIFICATION HISTORY:
       R. Sterner  20 Mar, 1986.
       Checked for undefined variables.  RES 25 Aug, 1989.
       Johns Hopkins Applied Physics Lab.

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


ISMEUV $SSW/gen/idl_libs/astron/astro/ismeuv.pro
[Previous] [Next]
 NAME:
       ISMEUV
 PURPOSE:
       Compute the continuum interstellar EUV optical depth 

 EXPLANATION:
       The EUV optical depth is computed from the photoionization of
       hydrogen and helium.

 CALLING SEQUENCE:
       tau = ISMEUV( wave, Hcol, [ HeIcol, HeIIcol, /Fano ]

 INPUTS:
       wave - Vector of wavelength values (in Angstroms).   Useful range is
               40 - 912 A; at shorter wavelengths metal opacity should be
               considered, at longer wavelengths there is no photoionization.
       Hcol - Scalar specifying interstellar hydrogen column density in cm-2.
                 Typical values are 1E17 to 1E20.

 OUTPUT:
       tau - Vector giving resulting optical depth, same number of elements 
               as wave, non-negative values.   To obtain the attenuation of 
               an input spectrum, multiply by exp(-tau).

 OPTIONAL INPUTS:
       HeIcol - Scalar specifying neutral helium column density in cm-2.    
               Default is 0.1*Hcol (10% of hydrogen column)
       HeIIcol - Scalar specifying ionized helium column density in cm-2
               Default is 0 (no HeII)

 OPTIONAL INPUT KEYWORDS:
       /FANO - If this keyword is set and non-zero, then the 4 strongest 
               auto-ionizing resonances of He I are included.   The shape 
               of these resonances is given by a Fano profile - see Rumph, 
               Bowyer, & Vennes 1994, AJ, 107, 2108.  If these resonances are
               included then the input wavelength vector should have
               a fine (>~0.01 A) grid between 190 A and 210 A, since the
               resonances are very narrow.
 CALLS: ***
	POLY
 EXAMPLE:
       (1) One has a model EUV spectrum with wavelength, w (in Angstroms) and 
       flux,f .  Plot the model flux after attenuation by 1e18 cm-2 of HI, 
       with N(HeI)/N(HI) = N(HeII)/N(HI) = 0.05

       IDL> Hcol = 1e18
       IDL> plot, w, f*exp(-ismeuv(w, Hcol, .05*Hcol, .05*Hcol))

       (2)  Plot the cross-section of HeI from 180 A to 220 A for 1e18 cm-2
               of HeI, showing the auto-ionizing resonances.   This is 
               Figure 1 in Rumph et al. (1994)

       IDL> w = 180 + findgen(40000)*0.001        ;Need a fine wavelength grid
       IDL> plot, w, ismeuv(w, 0, 1e18, /Fano)          

 NOTES:
       (1) The more complete program  ismtau.pro at 
           http://hea-www.harvard.edu/PINTofALE/pro/ extends this work
           to shorter wavelengths and includes metal and molecular hydrogen
           opacities
       (2) This program only compute continuum opacities, and for example,
           the He ionization edges at 504 A  and 228 A are blurred by
           converging line absorptions (Dupuis et al. 1995. ApJ, 455, 574)
           
 HISTORY:
       Written,    W. Landsman                  October, 1994
       Adapted from ism.c at anonymous ftp site cea-ftp.cea.berkeley.edu
       by Pat Jelinsky, Todd Rumph & others.
       Converted to IDL V5.0   W. Landsman   September 1997
       Avoid underflow messages, support double prec.  W. Landsman October 2003


ISVALID [1] $SSW/gen/idl/util/isvalid.pro
[Previous] [Next]
 NAME:
	ISVALID
 PURPOSE:
	Returns validity flag for its argument
 CALLING SEQUENCE:
	result = isvalid(variable)
 INPUTS:
	variable: the variable to be tested
 OPTIONAL INPUT PARAMETERS:
	(none)
 KEYWORD PARAMETERS:
	(none)
 CALLED BY:
	CALC_LOI_ROLL, COORD [2], COORD [3], DISPLOI_MON5K, FIELDLINE, FOT_ROLL, GETV4TYPE
	MAKE_DIPOLES, MAKE_SYNOP, PIX2V4, PLOT_PTLIST, ROLL_PLOT, SUNEARTHDIST, V4, V42PIX
	V4DIFF_ROT, V4HELP, V4MCART, V4MSPH, V4PRINT, V4UNITS, V4XCARR2HEL, V4XCART2SPH
	V4XHEL2CARR, V4XS2SC, V4XS2SRS [1], V4XSC2HC [1], V4XSC2HC [2], V4XSC2HEC, V4XSC2S
	V4XSPH2CART, V4_RESOLVE_XFORM, ZCLIP, ZCONTAINS, ZDEGR, ZDEROTATE, ZGETPLUME, ZGRID
	ZHOVER, ZMKHDR, ZPAD, ZPRINTSUN, ZUNPAD, cartdist, cube_interp, datify, disp_sci160k [1]
	disp_sci160k [2], dpcstr [1], dpcstr [2], equalize_rasters, find_launchpoints
	fixinate_eit, fixinate_lasco, fixinate_trace, getct, hao_hdr, id_esc, id_unesc
	local_mag_extrap, make_grid_sphere, mdialign, mon_sci5k, plot_loi_mmad, radial_bkg
	redo_disploi, redo_mon_sci5k, struct_eq, trace_field, unpack_trace, wmatch, zaspect
	zbytscl, zcorralign, zcurs_ok, zd4, zdeheliographinize, zdiff_rot, zhelio2xy
	zheliographinize, zintervals, zmagoverlay, zmatch, zmontage, zmovie, zmovify
	zmovinate, zpb0r [1], zpb0r [2], zscale, zsi, zstructify, ztrack, zunits, zunspike
	zunwrap, zxy2helio
 RESTRICTIONS:
	None I know of....
 MODIFICATION HISTORY:
	Created by Craig DeForest, 4/13/1995


ITOOL2MAP $SSW/gen/idl/image_tool/itool2map.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL2MAP()

 PURPOSE:
       Convert ITOOL data structure into MAP or vice versa

 CATEGORY:
       Image Tool, Map

 SYNTAX:
       RESULT = itool2map(image, csi=csi)
       RESULT = itool2map(map, csi=csi, /reverse)

 INPUTS:
       IMAGE  - 2D image array, or MAP structure (see MAKE_MAP).

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT - A Map structure with tags DATA, XP, YP, TIME, DUR,
                ID, and SOHO if keyword REVERSE is not set; otherwise
                a 2D image array.
                If an error occurs (ERROR is not null), RESULT will
                be -1.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       CSI     - Coordinate system info structure (basic
                 form). Required as an input parameter when
                 converting from ITOOL to MAP; needed as an output
                 parameter when converting from MAP to ITOOL. See
                 itool_new_csi.pro for detailed definition of a CSI.

       ERROR   - Named variable containing possible error message
       REVERSE - Set this keyword to convert MAP structure into image
                 array and CSI structure suitable for ITOOL

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], CNVT_COORD [1], CNVT_COORD [2], DATATYPE [1]
	DATATYPE [2], DATATYPE [3], GET_MAP_PROP, GREP, ITOOL_NEW_CSI, MAKE_MAP
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
 COMMON:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 8, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_ADJ_CTABLE $SSW/gen/idl/image_tool/itool_adj_ctable.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_ADJ_CTABLE

 PURPOSE: 
       Adjust color table interactively through a draw widget

 CATEGORY:
       Image_tool, utility
 
 SYNTAX: 
       itool_adj_ctable, event
       itool_adj_ctable, /initialize

 INPUTS:
       EVENT - Draw widget event structure

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       INITIALIZE - Initialize some of parameters required

 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1]
	EIS_IMAGE_TOOL_EVENT [2], EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2], IMAGE_TOOL
	IMAGE_TOOL_EVENT, ITOOL_LOAD_IMAGE
 COMMON:
       CTABLE4ITOOL, COLORS (defined in use-library LOADCT)

 RESTRICTIONS: 
       The draw widget must create button events
       after 

 SIDE EFFECTS:
       Color table is modified

 HISTORY:
       Version 1, March 13, 1996, Liyun Wang, NASA/GSFC. Written
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_BUTTON_REFRESH $SSW/gen/idl/image_tool/itool_button_refresh.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_BUTTON_REFRESH

 PURPOSE: 
       Make sure all buttons appear properly

 CATEGORY:
       image tool
 
 SYNTAX: 
       itool_button_refresh

 INPUTS:
       None.

 OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], EXIST, WIDGET_CONTROL2
 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1]
	EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL, IMAGE_TOOL_EVENT, ITOOL_LIMBFITTER
	ITOOL_OVERLAYER, ITOOL_ZOOMMER
 HISTORY:
       Version 1, January 29, 1997, Liyun Wang, NASA/GSFC. Written
          Extracted from image_tool.pro
       Version 2, March 20, 1997, Liyun Wang, NASA/GSFC
          Modified to allow quiting Image_tool when Pointing Tool is running

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_COMPOSITE $SSW/gen/idl/image_tool/itool_composite.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_COMPOSITE()

 PURPOSE:
       Make composite image array out of two image arrays

 CATEGORY:
       Image Tool

 SYNTAX:
       result = itool_composite(image1, csi1, image2, csi2)

 INPUTS:
       IMAGE1 - 2D array of base image
       IMAGE2 - 2D array of secondary image
       CSI1   - CSI structure for IMAGE1
       CSI2   - CSI structure for IMAGE2

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT - 2D byte-scaled array, composite image

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       CT1 - ID of IDL colar table (0-43) for IMAGE1, default to 3
       CT2 - ID of IDL colar table (0-43) for IMAGE2, default to 1

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], ITOOL_IMG_MATCH, MASK_MATRIX
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
	ITOOL_OVERLAYER
 COMMON:
       None.

 RESTRICTIONS:
       IMAGE2 must be differentially rotated to match the imaging
       time of the base image IMAGE1

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 12, 1997, Liyun Wang, NASA/GSFC. Written
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_COPY_TO_PIX $SSW/gen/idl/image_tool/itool_copy_to_pix.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_COPY_TO_PIX

 PURPOSE: 
       Copy current main plot window to a pixmap window for later use

 CATEGORY:
       IMAGE_TOOL
 
 SYNTAX: 
       itool_copy_to_pix

 INPUTS:
       None.

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLS: ***
	GREP
 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1]
	EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], IMAGE_TOOL
	IMAGE_TOOL_EVENT, ITOOL_DISP_ROT, ITOOL_LIMBFITTER, ITOOL_OVERLAYER, ITOOL_PTOOL
	MAKE_AUTO_FIT, MAKE_MANUAL_FIT, MK_LIMBFIT_BS, MK_POINT_BASE, UPDATE_FITLIMB
 COMMON:
       @image_tool_com

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, June 12, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_CROSS_HAIR $SSW/gen/idl/image_tool/itool_cross_hair.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_CROSS_HAIR

 PURPOSE:
       Plot a rectangle or cross hair on the current plotting device.

 EXPLANATION:
       This routine plots a rectangle or a cross hair on the current plotting
       device. The size and location of the rectangle or cross hair are saved
       in the common block CROSS_HAIR so that when it is called the next
       time, the previous rectangle or cross hair can be erased from the
       device screen.

 CALLING SEQUENCE:
       ITOOL_CROSS_HAIR, cx, cy [, width, height [, unit]]

 INPUTS:
       CX     - X position of the cursor center, in device pixels
       CY     - Y position of the cursor center, in device pixels

 OPTIONAL INPUTS:
       WIDTH  - Width of the rectangle, in device pixels
       HEIGHT - Height of the rectangle, in device pixels

       If WIDTH and HEIGHT are not passed in, a cross hair will be used.

       UNIT   - Integer scalar indicating what units to be for boxed cursor.
                1: device pixels, 2: image pixcels, and 3: arcseconds
       CSI    - Coordinate system info structure; required if UNIT is 2 or 3
       LENGTH - Length of line segment of the cross hair in device
                pixels. Default: 40
       COLOR  - Index of color used to draw the cross hair. Default color
                used: !d.table_size-1
       THICK  - Thickness of the cross hair, default: 1
       LINES  - Line style used for drawing the cross hair. Default: 0
                (solid line)

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       KEEP -- If set, the cursor will remain on the plotting screen
               until the whole screen is erased.
       BOXED_CURSOR - Plot boxed cursor if set and if WIDTH and HEIGHT are
                      given 
       PIXMAP - a structure with tags of XSIZE, YSIZE and ID of a
                pixmap window from which a previous plot is copied
                to current window before cursor is drawn 

 CALLS: ***
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], ITOOL_RESTORE_PIX, delvarx [5]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
	ITOOL_DISP_ROT, ITOOL_DRAW, ITOOL_LIMBFITTER, MAKE_AUTO_FIT, MAKE_MANUAL_FIT
	MK_LIMBFIT_BS, UPDATE_FITLIMB
 COMMON BLOCKS:
       ITOOL_CROSS_HAIR

 RESTRICTIONS:
       If the PIXMAP structure is passed in, pixmap.id must be the pixmap
       window id, and the window must contain the recent plot of the
       current window plot. pixmap.xsize and pixmap.ysize must be
       compatible with the size of current window.  

 SIDE EFFECTS:
       A cross hair is plotted on the current device. 

       If the keyword PIXMAP is not passed in, when the routine is
       called next time, the previous cross hair is erased and a new
       one is plotted. If the KEEP keyword is set, the cursor will
       not be erased next time this routine is called. The only way
       to remove it from the device is to redraw the plotting. 
 
       If PIXMAP is passed in as a keyword, current window will be
       replaced with the content of a pixmap window whose id is pixmap.id.

 CATEGORY:
       Utilities, graphics

 PREVIOUS HISTORY:
       Written October 4, 1994, by Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       Version 2, Liyun Wang, NASA/GSFC, November 8, 1994
          Added the KEEP keyword
       Version 3, Liyun Wang, NASA/GSFC, May 11, 1995
          Added BOXED_CURSOR keyword to enable plotting boxed cursor
          Changed cross-hair cursor from "+" shape to "x"
       Version 4, February 26, 1996, Liyun Wang, NASA/GSFC
          Fixed a bug that unit-width or unit-height boxed cursor was
             not properly plotted
       Version 5, March 13, 1996, Liyun Wang, NASA/GSFC
          Changed cross-hair cursor from "x" shape back to "+"
       Version 6, June 11, 1997, Liyun Wang, NASA/GSFC
          Added PIXMAP keyword
          Renamed from cross_hair to itool_cross_hair
	Version 7, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 VERSION:
	Version 7, 8 April 1998


ITOOL_DIFF_ROT $SSW/gen/idl/image_tool/itool_diff_rot.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_DIFF_ROT()

 PURPOSE:
       Coalign and differentially rotate a solar image to a new time

 CATEGORY:
       Image Tool

 EXPLANATION:

 SYNTAX:
       Result = itool_diff_rot(image, csi)

 INPUTS:
       IMAGE - 2D array containing the original solar image
       CSI   - Coordinate system info structure of the IMAGE (made
               via ITOOL_SET_CSI); modified upon success

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT - 2D array containing rotated solar image

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       NEWTIME - Target time to which the image is rotated. If not
                 passed, current system time is assumed.
       NEW_CSI - Modified CSI structure for RESULT
       MISSING - data value to set for bad pixels (or off-limb points)
       ERROR   - Named variable containing possible error message
       NOREMAP - Set this keyword to just return rotated CSI without
                 remapping    

 CALLS: ***
	ANYTIM2TAI, ANYTIM2UTC [1], ANYTIM2UTC [2], DATATYPE [1], DATATYPE [2]
	DATATYPE [3], GET_UTC, ITOOL_GRID_XY, ITOOL_XY, ROT_XY, UTC2TAI, interp2d [1]
	interp2d [2], interp2d [3]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
	ITOOL_OVERLAYER
 COMMON:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 3, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_DISP_ROT $SSW/gen/idl/image_tool/itool_disp_rot.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_DISP_ROT

 PURPOSE: 
       Plot diff. rotation indicator over the displayed image

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       itool_disp_rot, rot_code

 INPUTS:
       ROT_CODE - Type of rotation (1 -- 5)

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], CNVT_COORD [1], CNVT_COORD [2], DIFF_ROT [1]
	DIFF_ROT [2], FLASH_MSG, ITOOL_COPY_TO_PIX, ITOOL_CROSS_HAIR, ITOOL_RESTORE_PIX
	ITOOL_ROTPLOT, ROTATE_LIMB, SETWINDOW [1], SETWINDOW [2]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
 COMMON:
       @image_tool_com

 RESTRICTIONS: 
       A point must be selected and must be inside the solar limb 

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 9, 1997, Liyun Wang, NASA/GSFC. Written
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_DRAW $SSW/gen/idl/image_tool/itool_draw.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_DRAW

 PURPOSE:
       Handling draw events from the main graphics window

 CATEGORY:
       image tool

 SYNTAX:
       itool_draw, event

 INPUTS:
       EVENT - Event structure

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       None.

 CALLS: ***
	CNVT_COORD [1], CNVT_COORD [2], CURSOR_INFO, DELVARX [1], DELVARX [2], DELVARX [3]
	DELVARX [4], ITOOL_CROSS_HAIR, ITOOL_DRAW_DRAG, SETWINDOW [1], SETWINDOW [2]
	WIDGET_CONTROL2, delvarx [5]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
 COMMON:
       @image_tool_com

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, January 29, 1997, Liyun Wang, NASA/GSFC. Written
          Extracted from image_tool.pro
       Version 2, March 6, 1997, Liyun Wang, NASA/GSFC
          Implemented differential rotation indicator for any constant
             longitudinal points and points at the same Solar X value
       Version 3, June 12, 1997, Liyun Wang, NASA/GSFC
          Changed call from CROSS_HAIR to ITOOL_CROSS_HAIR
       Version 4, September 15, 1997, Liyun Wang, NASA/GSFC
          Modified such that cross-hair or boxed cursor is plotted
             only in manual tracking mode
          Eliminated plotting permanent cursor via middle button

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_DRAW_DRAG $SSW/gen/idl/image_tool/itool_draw_drag.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_DRAW_DRAG

 PURPOSE:
       Handles press and drag events of draw widget

 CATEGORY:
       Draw widget event handler

 SYNTAX:
       itool_draw_drag, event, xrange=xrange, yrange=yrange, status=status
       IF status THEN [handles xrange and yrange...]

 INPUTS:
       EVENT - widget event structure

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       PIXMAP - Structure of pixel map with tags indicating ID of
                pixmap source, size of pixel map to be restored. If
                passed, graphics saved on pixmap will be restored to
                current window (!d.window) as means of erasing
                previous box drawing
       COLOR  - Index of color to be used for drawing the box
       STATUS - A integer flag indicating whether the selection has
                been made (1) or not (0)
       XRANGE - Named varibale containing X range (in device coord)
                of the "selected" box
       YRANGE - Named varibale containing Y range (in device coord)
                of the "selected" box
       BOX    - A Nx2 array containing X and Y positions of a
                rectangle or polygon in device coordinates. If
                passed, pressing and dragging left button will move
                this box around.

 CALLS: ***
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], delvarx [5]
 CALLED BY:
	ITOOL_DRAW, ITOOL_OVERLAYER
 COMMON:
       ITOOL_DRAG - common block for internal use

 RESTRICTIONS:
       Only works for devices that supports COPY keyword (X, WIN,
       SUN, and MAC) if PIXMAP keyword is passed in

 SIDE EFFECTS:
       Contents on current window (!d.window) get replaced.

 HISTORY:
       Version 1, August 19, 1997, Liyun Wang, NASA/GSFC. Written
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_DRAW_ICON $SSW/gen/idl/image_tool/itool_draw_icon.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_DRAW_ICON

 PURPOSE: 
       Event handler for draw_icon events

 CATEGORY:
       image tool
 
 SYNTAX: 
       itool_draw_icon, event

 INPUTS:
       EVENT - Event structure

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLS: ***
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], ITOOL_ICON_PLOT
	ITOOL_MARK_ICON, ITOOL_OVERLAY_BT, ITOOL_RESTORE, ITOOL_SELECT_ICON
	ITOOL_XCHG_STACK, MK_IMG_ICON, SETWINDOW [1], SETWINDOW [2], VALID_POINTER, XHOUR
	delvarx [5]
 CALLED BY:
	IMAGE_TOOL_EVENT
 COMMON:
       @image_tool_com

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, January 29, 1997, Liyun Wang, NASA/GSFC. Written
          Extracted from image_tool.pro

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_EIT_DEGRID $SSW/gen/idl/image_tool/itool_eit_degrid.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_EIT_DEGRID()

 PURPOSE: 
       Degrid an EIT full-resolution, full field-of-view image

 CATEGORY:
       Image_tool, misc
 
 SYNTAX: 
       Result = itool_eit_degrid(image, header)

 INPUTS:
       IMAGE  - 2-d array, full-resolution, full field-of-view EIT image
       HEADER - FITS header of the image file

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       NO_COPY - set to not make dual copies of input image
                 (only use if output image replaces input image) 

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3]
	FILE_EXIST [2], JUNK_FIND_KEYWORD, TRIM, concat_dir [4], file_exist [1]
	file_exist [3]
 CALLED BY:
	DO_EIT_SCALING
 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, March 23, 1996, D.M. Fecit. Written
       Version 2, April 22, 1996, Liyun Wang, NASA/GSFC
          Renamed from EIT_DEGRID and incorporated into the CDS software tree
       Version 3, August 15, 1996, Liyun Wang, NASA/GSFC
          Modified from July 22, 1996 version of eit_degrid.pro (in 
             $SSW_EIT/idl/anal)
       Version 4, June 4, 1998, Zarro (SAC/GSFC) - added /NO_COPY
	Version 5, 30-Jul-1998, William Thompson, GSFC
		Added check to make sure degrid data file exists.
	Version 6, 30-Jul-1998, Zarro, SAC/GSFC
		Added extra initial check for SSW_EIT definition

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_EIT_SCALE $SSW/gen/idl/image_tool/itool_eit_scale.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_EIT_SCALE()

 PURPOSE:
       Rescale an image based on EIT image scaling algorithm

 CATEGORY:
       Image, utility

 EXPLANATION:

 SYNTAX:
       Result = itool_eit_scale(image)
 INPUTS:
       IMAGE   - 2D image array; may be rescaled
       HEADER  - String vector holding header of EIT FITS file

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT  - Rescaled image array

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       MIN_VAL    - Named output variable, new miminum value in IMAGE
       MAX_VAL    - Named output variable, new maxinum value in IMAGE
       COLOR_ONLY - Set this keyword to just get EIT color table
       NO_PREP    - Set to inhibit calling EIT_PREP

 CALLS: ***
	CSCALE, DO_EIT_SCALING, DPRINT, LOAD_EIT_COLOR
 CALLED BY:
	ITOOL_LOAD_IMAGE
 COMMON:
       None.

 RESTRICTIONS:
       Environment variable SSW_EIT must be properly defined to get
       EIT routines and color tables 

 SIDE EFFECTS:
       Input IMAGE array is rescaled.

 HISTORY:
       Version 1, March 8, 1996, Liyun Wang, NASA/GSFC. Written
       Version 2, April 22, 1996, Liyun Wang, NASA/GSFC
          Applied degridding algoritum before rescaling
       Version 3, September 30, 1996, Liyun Wang, NASA/GSFC
          Added COLOR_ONLY keyword
       Version 4, October 23, 1997, Liyun Wang, NASA/GSFC
          Calls EIT_DEGRID directly if SSW_EIT is defined
	Version 5, 31-Oct-1997, William Thompson, GSFC
	   Make sure that EIT_DEGRID is actually in the path.
	Version 6, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
       Version 7, Zarro (SAC/GSFC) - saved check for EIT_DARK in common
       Version 8, 1-Jun-98, Zarro (SAC/GSFC) - added call to DO_EIT_SCALING

 CONTACT: 
       dzarro@solar.stanford.edu


ITOOL_GET_SRC $SSW/gen/idl/image_tool/itool_get_src.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_GET_SRC()

 PURPOSE: 
       Get 4-char image origin code

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       Result = itool_get_src(header)

 INPUTS:
       HEADER - Header of FITS file that contains the image data

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - Image origin code (4-char or null)

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       FILE   - Name of the FITS file
       ERROR  - Named variable containing any error message

 CALLS: ***
	BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3], FXPAR [1], FXPAR [2], GREP
	ITOOL_IMG_SRC, break_file [4]
 CALLED BY:
	ITOOL_SET_CSI
 COMMON:
       ITOOL_SRC_COM

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 5, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_GET_TIME $SSW/gen/idl/image_tool/itool_get_time.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_GET_TIME()

 PURPOSE:
       Get date and time of obs. from FTIS header in CCSDS format.

 EXPLANATION:
       Make effort trying to extract date and time of observation from the
       header of FITS image file. It searches for the following keywords
       in the FITS header:

          DATE_OBS -- in CCSDS format (a keywork proposed for the SOHO
                      project)
          DATE-OBS -- in DD/MM/YY format. If not present, current date will
                      be returned, and a warning message is issued.
          TIME-OBS -- in hh:mm:ss format. If not present, current time will
                      be returned, and a warning message is issued.
          UTSTOP  -- in seconds from 01/01/70 00:00
          UTSTART  -- in seconds from 01/01/70 00:00
          ENDTIME  -- in seconds from 01/01/70 00:00
          STARTIME -- in seconds from 01/01/70 00:00
          YEAR     -- Year number
          MONTH    -- Month of year
          DAY      -- Day of month
          HOUR     -- Hour of day
          MINUTE   -- Minute of hour
          SECOND   -- Second of minute

 CALLING SEQUENCE:
       ITOOL_GET_TIME, header, utc

 INPUTS:
       HEADER -- Header of a FITS file

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       UTC -- String of date and time of observation in CCSDS format

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       QUIET -- Suppress any error message if set.
       FILE  -- Name of FITS file. If passed, used as the last
                resource to determine imaging time

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DMY2YMD, FILE2TIME, FIND_WITH_DEF [1]
	FIND_WITH_DEF [2], FIND_WITH_DEF [3], FXKVALUE, FXPAR [1], FXPAR [2], GET_UTC
	LEAPSEC_1972, NUM2STR, REPCHAR, SEC2TAI, STR_SEP, TAI2UTC, TRIM
 CALLED BY:
	ITOOL_SET_CSI
 COMMON BLOCKS:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       Science planning

 PREVIOUS HISTORY:
       Written September 21, 1994, by Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
      Liyun Wang, NASA/GSFC, September 27, 1994
         Added keyword QUIET.
      Liyun Wang, NASA/GSFC, October 7, 1994
         Added checkings for image files from Mees SO
      Version 2, Liyun Wang, NASA/GSFC, December 21, 1994
         Made it work with data from Mt. Wilson
      Version 3, Liyun Wang, NASA/GSFC, April 19, 1995
         Made it capable of dealing with time format of HH.MM.SS    
      Version 4, August 28, 1997, Liyun Wang, NASA/GSFC
         Added FILE keyword such that if passed it is used as the
            last resource to get imaging time 
      Version 5, 1998 June 5, Zarro (SAC/GSFC) - added call to FILE2TIME

 VERSION:
       Version 5


ITOOL_GET_TYPE $SSW/gen/idl/image_tool/itool_get_type.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_GET_TYPE()

 PURPOSE: 
       Get 5-char image type code

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       Result = itool_get_type(header)

 INPUTS:
       HEADER - Header of FITS file that contains the image data

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - Image type code (5-char or null)

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       FILE   - Name of the FITS file
       ERROR  - Named variable containing any error message

 CALLS: ***
	BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3], FXPAR [1], FXPAR [2], GREP
	ITOOL_IMG_TYPE, break_file [4]
 CALLED BY:
	ITOOL_SET_CSI
 COMMON:
       ITOOL_TYPE_COM

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 5, 1997, Liyun Wang, NASA/GSFC. Written
       Version 2, 1998 June 5, Zarro (SAC/GSFC) -- added TRACE type

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_GETFILE $SSW/gen/idl/image_tool/itool_getfile.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_GETFILE()

 PURPOSE: 
       Get list of files for given dates and path

 CATEGORY:
       IMAGE_TOOL, utility
 
 SYNTAX: 
       Result = itool_getfile(start, stop, path)

 INPUTS:
       START - Starting date, in YYYY/MM/DD format
       STOP  - End date, in YYYY/MM/DD format
       PATH  - Complete directory path in which data reside

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - String array or scalar, containing the file list

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       COUNT      - Number of files returned
       DLOG       - Modified dlog
       START_DATE - Modified start date
       END_DATE   - Modified end date

 CALLS: ***
	ANYTIM2TAI, ANYTIM2UTC [1], ANYTIM2UTC [2], BREAK_FILE [1], BREAK_FILE [2]
	BREAK_FILE [3], BSORT [1], BSORT [2], BSORT [3], BSORT [4], CONCAT_DIR [1]
	CONCAT_DIR [2], CONCAT_DIR [3], DATE_CODE, DPRINT, FID2TIME, IS_BLANK, LOC_FILE [1]
	LOC_FILE [2], LOC_FILE [3], STR2ARR [1], STR2ARR [2], break_file [4]
	concat_dir [4]
 CALLED BY:
	GET_SYNOPTIC, ITOOL_PICKFILE, XGET_SYNOPTIC
 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, January 15, 1997, Liyun Wang, NASA/GSFC. Written
       Version 2, May 20 1998, Zarro (SAC/GSFC) - added call to RSTRMID
       Version 3, July 23 2001, Zarro (EITI/GSFC) - sped up file search

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_GETXY_FIELD $SSW/gen/idl/image_tool/itool_getxy_field.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_GETXY_FIELD()

 PURPOSE: 
       

 CATEGORY:
       
 
 EXPLANATION:
       
 SYNTAX: 
       Result = itool_getxy_field(event)

 CALLED BY:
	EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], ITOOL_PTOOL, MK_POINT_BASE
 EXAMPLES:
       
 INPUTS:
       EVENT - Event structure

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, May 5, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_GRID_XY $SSW/gen/idl/image_tool/itool_grid_xy.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_GRID_XY

 PURPOSE: 
       

 CATEGORY:
       
 
 EXPLANATION:
       
 SYNTAX: 
       itool_grid_xy, 

 CALLED BY:
	ITOOL_DIFF_ROT
 EXAMPLES:
       
 INPUTS:
       

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 25, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_IMG_MATCH $SSW/gen/idl/image_tool/itool_img_match.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_IMG_MATCH()

 PURPOSE:
       Make the given image array match the base image

 CATEGORY:
       Image Tool

 SYNTAX:
       itool_img_match, image_2nd, csi_2nd, csi=csi

 INPUTS:
      IMAGE_2ND - 2D image array to be modified
      CSI_2ND   - CSI structure for IMAGE_2ND

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
      IMAGE_2ND - Modified image array that matches the base image
      CSI_2ND   - Modified CSI structure for IMAGE_2ND

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       CSI    - CSI structure of the base image; required
       IMAGE  - 2d data array of the base image; required only if the
                DEVICE keyword is set
       DEVICE - Set this keyword to adjust both base and secondary
                images to device resolution (useful for interlacing)
       EXTEND - Set this keyword to extend (or shrink) IMAGE_2ND to
                make the same size as the base image
       XRANGE - X position range of secondary image on based image
       YRANGE - Y position range of secondary image on based image
       ERROR  - Error message

 CALLS: ***
	CNVT_COORD [1], CNVT_COORD [2], CONGRID [1], CONGRID [2], CONGRID [3]
	EXTEND_MATRIX
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
	ITOOL_COMPOSITE, ITOOL_OVERLAYER
 COMMON:
       None.

 RESTRICTIONS:
       IMAGE_2ND must be differentially rotated to match the imaging
       time of the base image (via ITOOL_DIFF_ROT)

 SIDE EFFECTS:
       Input IMAGE_2ND and CSI_2ND are modified; if DEVICE keyword
       is set, base IMAGE and CSI can be modified

 HISTORY:
       Version 1, September 2, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_IMG_SRC $SSW/gen/idl/image_tool/itool_img_src.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_IMG_SRC()

 PURPOSE: 
       Return a string of an appropriate image source for a given code

 CATEGORY:
       image_tool, utility
 
 EXPLANATION:
       
 SYNTAX: 
       Result = itool_img_src(str)
       Result = itool_img_src(/stc)

 INPUTS:
       STR - String scalar, 4-char image source code

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - Full name of the image source if STC keyword not set; 
                Strcuture array containing image source codes and
                corresponding labels if STC keyword is set

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       STC    - Set this keyword to return only a structure array
                containing image source codes and corresponding labels.

 CALLS: ***
	GREP
 CALLED BY:
	EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2], ITOOL_GET_SRC, ITOOL_LOAD_IMAGE
	ITOOL_OVERLAYER, ITOOL_RD_GIF
 COMMON:
       ITOOL_SRC_COM

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, March 12, 1996, Liyun Wang, NASA/GSFC. Written
       Version 2, July 30, 1996, Liyun Wang, NASA/GSFC
          Added Kiepenheuer Institute and Pic du Midi Observatory
       Version 3, August 29, 1997, Liyun Wang, NASA/GSFC
          Added Kanzelhohe Solar Observatory

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_IMG_TYPE $SSW/gen/idl/image_tool/itool_img_type.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_IMG_TYPE()

 PURPOSE:
       Return a full label of an appropriate image type

 CATEGORY:
       image_tool, utility

 EXPLANATION:

 SYNTAX:
       Result = itool_img_type(str)

 INPUTS:
       STR - String scalar, 5-char image type code

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT - Full name of image type if STC keyword not set; 
                Strcuture array containing image source codes and
                corresponding labels if STC keyword is set

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       STC    - Set this keyword to return only a structure array
                containing image type codes and corresponding labels.

 CALLS: ***
	GREP
 CALLED BY:
	EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2], ITOOL_GET_TYPE, ITOOL_LOAD_IMAGE
	ITOOL_OVERLAYER, ITOOL_RD_GIF
 COMMON:
       ITOOL_TYPE_COM

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, March 12, 1996, Liyun Wang, NASA/GSFC. Written
       Version 2, March 28, 1996, Liyun Wang, NASA/GSFC
          Added a new image type: 'Magnetogram, Longitudinal Component'
       Version 3, May 24, 1996, Liyun Wang, NASA/GSFC
          Added SOHO CDS synoptic image types
       Version 4, December 13, 1996, Liyun Wang, NASA/GSFC
          Added SOHO UVCS image types
       Version 5, July 21, 1997, Liyun Wang, NASA/GSFC
          Added a few more UVCS image types
       Version 6, June 8, 1998, Zarro (SAC/GSFC) - added TRACE type

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_INSIDE_LIMB $SSW/gen/idl/image_tool/itool_inside_limb.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_INSIDE_LIMB()

 PURPOSE:
       Detect if points defined by ppx and ppy are within the limb

 CATEGORY:
       Utility, Image Tool

 SYNTAX:
       result = itool_inside_limb(ppx, ppy, csi=csi)

 INPUTS:
       PPX - X position of points in data pixels
       PPY - Y position of points in data pixels

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT - 1 if all points are within the limb, otherwise 0. For
                syntax errors, a -1 is returned

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       CSI   - Coordinate system info structure; required
       INDEX - Indices of points remaining inside the limb 
       ERROR - Error message; a null string if no error occurs

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
	MK_POINT_BASE
 COMMON:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, April 3, 1996, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_LIMBFITTER $SSW/gen/idl/image_tool/itool_limbfitter.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_LIMBFITTER

 PURPOSE:
       Widget interface of limb-fitter for Image Tool

 CALLING SEQUENCE:
       child = itool_limbfitter(parent)

 INPUTS:
       PARENT - ID of parent widget upon which the limbfit widget is built

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       CHILD  - ID of the base widget being built and leter on remapped

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       FONT   - Font name to be used for labelling

 CALLS: ***
	CNVT_COORD [1], CNVT_COORD [2], CURSOR_INFO, CW_FIELD, DELVARX [1], DELVARX [2]
	DELVARX [3], DELVARX [4], FLASH_MSG, ITOOL_BUTTON_REFRESH, ITOOL_COPY_TO_PIX
	ITOOL_CROSS_HAIR, ITOOL_DISPLAY, ITOOL_OVERLAY_BT, ITOOL_REFRESH, ITOOL_SWITCHER
	LIMBFIT_CLEANUP, LIMBFIT_EVENT, LIMB_INFO, MAKE_AUTO_FIT, MAKE_MANUAL_FIT
	MK_DFONT, NL_LSQFIT, NUM2STR, PB0R, RESET_LIMBFIT, SETWINDOW [1], SETWINDOW [2]
	UPDATE_FITLIMB, XSHOW_HELP, delvarx [5]
 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], IMAGE_TOOL
 COMMON BLOCKS:
       LIMB_FITTING - Internal common block used by this routine and
                      LIMBFIT_EVENT
       Others       - Included in image_tool_com.pro

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       Image Tool

 PREVIOUS HISTORY:
       Written January 25, 1995, Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       Version 1, created, Liyun Wang, NASA/GSFC, January 25, 1995
       Version 2, Liyun Wang, NASA/GSFC, February 28, 1995
          Added elliptical limb fitting option
       Version 3, Liyun Wang, NASA/GSFC, April 27, 1995
          Added the FONT keyword
       Version 4, October 27, 1995, Liyun Wang, NASA/GSFC
          Modified to cope with the cursor tracking option
       Version 5, November 2, 1995, Liyun Wang, NASA/GSFC
          Modified to cope with image icon stacking
       Version 6, June 11, 1997, Liyun Wang, NASA/GSFC
          Changed call from CROSS_HAIR to ITOOL_CROSS_HAIR

 VERSION:
       Version 6, June 11, 1997


ITOOL_LOAD_IMAGE $SSW/gen/idl/image_tool/itool_load_image.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_LOAD_IMAGE

 PURPOSE:
       Load in a FITS or GIF file and try to determine the CSI structure

 SYNTAX:
       itool_load_image, image_file, group=group

 INPUTS:
       IMAGE_FILE -- Name of the image file to be loaded

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:

 KEYWORDS:
       COLUMN - Column number of data in FITS binary tabel. If passed, it
                will call CDS_IMAGE to load the image in that column directly
       GROUP  - ID of the widget that serves as a group leader
       ERR    - string scalar indicating any error message. A null string
                is returned if no error occurs
       STATUS - 0/1, status flag indicating failure/sucess of operation

 EFFECT:
       Following variables in the common blocks are updated: csi,
          image_arr, cur_min, cur_max, image_min, image_max, header_cur

 CATEGORY:
       Image Tool

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], CONCAT_STRUCT, COPY_STRUCT [1], COPY_STRUCT [2]
	COPY_STRUCT [3], DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], DPRINT, EXIST
	FILE_EXIST [2], FLASH_MSG, FREE_POINTER, GREP, ITOOL_ADJ_CTABLE, ITOOL_DISPLAY
	ITOOL_DISP_PLUS, ITOOL_EIT_SCALE, ITOOL_ICON_PLOT, ITOOL_IMG_SRC, ITOOL_IMG_TYPE
	ITOOL_NEW_CSI, ITOOL_RD_FITS, ITOOL_RD_GIF, ITOOL_REFRESH, ITOOL_TRACE_SCALE
	ITOOL_UPDATE_ICONBT, ITOOL_XCHG_STACK, LOADCT, MAKE_POINTER, MK_IMG_ICON
	MULTI_FILE_BUTTON, SETWINDOW [1], SETWINDOW [2], SET_POINTER, SOHO_VIEW
	STRIP_DIRNAME [1], STRIP_DIRNAME [2], STRUP, TRIM, UTC2DOY, VALID_GIF, VALID_JPEG
	XACK, delvarx [5], file_exist [1], file_exist [3]
 CALLED BY:
	IMAGE_TOOL, IMAGE_TOOL_EVENT
 COMMON:
       @image_tool_com

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, January 29, 1997, Liyun Wang, NASA/GSFC.
          Extracted from image_tool.pro
       Version 2, June 11, 1997, Liyun Wang, NASA/GSFC
          Fixed problem of not scaling EIT images if the FITS file
             does not conform with the SOHO filenaming convention
	Version 3, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
	Version 4, Zarro (SAC/GSFC), 8-Jun-1998, added TRACE color scaling
       Version 5, Zarro (SM&A/GSFC), 7-Oct-1999, reversed stack order

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_MAKE_FH $SSW/gen/idl/image_tool/itool_make_fh.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_MAKE_FH()

 PURPOSE: 
       Make a valid FITS header array based on given CSI structure

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       Result = itool_make_fh(csi)

 INPUTS:
       CSI - Coordinate system info structure

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - String vector containing minimum FITS header with
                required FITS keywords

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], FXADDPAR [1], FXADDPAR [2]
 CALLED BY:
	ITOOL_WRITE_FITS
 COMMON:
       None.

 RESTRICTIONS: 
       Only make FITS header for 2D data

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 5, 1997, Liyun Wang, NASA/GSFC. Written
       Version 2, 10-Jul-2003, William Thompson, GSFC
               Write CROTA1,CROTA2 instead of non-standard CROTA
               Write both DATE_OBS and DATE-OBS

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_MODIFY_FH $SSW/gen/idl/image_tool/itool_modify_fh.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_MODIFY_FH

 PURPOSE:
       Modify header of given FITS file

 CATEGORY:
       IMAGE TOOL

 SYNTAX:
       itool_modify_fh, file, image, header, csi, error=error

 EXAMPLES:

 INPUTS:
       FILE   - Name of FITS file
       IMAGE  - data array
       HEADER - Original FITS header
       CSI    - CSI structure, containing coordinate related
                information which is supposed to be different from
                that in FITS header

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       ERROR - A named variable containing possible error messages

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], FITS_DATATYPE, FXHMODIFY [1]
	FXHMODIFY [2], FXHREAD [1], FXHREAD [2], FXWRITE [1], FXWRITE [2], TEST_OPEN
 COMMON:
       None.

 RESTRICTIONS:
       Write privilege required to update FITS header in the file

 SIDE EFFECTS:
       If data type of array IMAGE does not match BITPIX value, IMAGE
       is converted into the data type compatible with BITPIX

 HISTORY:
       Version 1, August 13, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_NEW_CSI $SSW/gen/idl/image_tool/itool_new_csi.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:	
       ITOOL_NEW_CSI()

 PURPOSE:
       Create a new CSI (coordinate system info) structure

 CALLING SEQUENCE: 
       csi = itool_new_csi()

 INPUTS:
       None.

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       CSI -- Coordinate system information structure that contains some
              basic information of the coordinate systems involved. It should
              have the following tags:

              DAXIS1   - X size of the displayed image in device pixels
              DAXIS2   - Y size of the displayed image in device pixels
              DRPIX1   - Location of the first image pixel along X axis, in
                         units of device pixels (0 based)
              DRPIX2   - Location of the first image pixel along Y axis, in
                         units of device pixels (0 based)
              DDELT1   - The rate of change for the image pixels along
                         axis X per unit change in device pixels,
                         evaluated at the reference point DRPIX1 
                         (ratio of NAXIS1/DAXIS1)
              DDELT2   - The rate of change for the image pixels along
                         axis Y per unit change in device pixels,
                         evaluated at the reference point DRPIX2 
                         (ratio of NAXIS2/DAXIS2)
              BITPIX   - Standard FITS keyword for data type   
              NAXIS1   - The image size in X direction in image pixels
              NAXIS2   - The image size in Y direction in image pixels
              ORIGIN   - Origin of image, in standard 4-char code
              IMAGTYPE - Type of image, in standard 5-char code
              CRPIX1   - Location of reference pixel along X axis, in
                         units of the counting index (image pixel, 1 based)
              CRPIX2   - Location of reference pixel along Y axis, in
                         units of the counting index (image pixel, 1 based)
              CRVAL1   - Value of the physical coordinate given by
                         CTYPE1 (usually arcsec) on X axis at the
                         reference point
              CRVAL2   - Value of the physical coordinate given by
                         CTYPE2 (usually arcsec) on Y axis at the
                         reference point
              CDELT1   - The rate of change for the physical
                         coordinate along axis X per unit change in
                         the counting index, evaluated at the
                         reference point (usually: arcsec/pixel)
              CDELT2   - The rate of change for the physical
                         coordinate along axis Y per unit change in
                         the counting index, evaluated at the
                         reference point (usually: arcsec/pixel)
              CTYPE1   - Name of the physical coordinate for axis X
                         (string), default to 'Solar X'
              CTYPE2   - Name of the physical coordinate for axis Y
                         (string), default to 'Solar Y'
              CROTA    - Rotation angle, in degrees, of CCW from
                         solar north polar direction (+solar_y)
              REFLECT  - True (1) if image is flipped upside down
                         (south pole up); else False (0)   
              DATE_OBS - Date/time of date acquisition, in ECS UTC
                         format (default to current date/time)
              FLAG     - indicator with value 0 or 1 showing if the solar
                         coodinate system is established. 1 is yes.
              RADIUS   - Solar disc radius in arcsecs, initialized to 960.0
   
       Note 1: DAXIS1, DAXIS2, DRPIX1, DRPIX2, DDELT1, and DDELT2 are
               device dependent and also depend on display of image 
   
       Note 2: By FITS standards, CRPIXn is in the range of (1, NAXISn), 
               not (0, NAXISn-1). This is why DRVALn is always set to 1.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS: 
       BASIC - Set this keyword to return the basic CSI structure
               (without device dependent tags)

 CALLS: ***
	GET_UTC
 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2]
	IMAGE_TOOL, ITOOL2MAP, ITOOL_LOAD_IMAGE, ITOOL_RD_GIF, ITOOL_SET_CSI
 COMMON BLOCKS:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       Image_tool, utility

 HISTORY:
       Version 1, June 2, 1995, Liyun Wang, NASA/GSFC. Written
       Version 2, April 1, 1996, Liyun Wang, NASA/GSFC
          Added RADIUS tag in output structure
       Version 3, August 12, 1997, Liyun Wang, NASA/GSFC
          Changed CSI tag names to conform with the FITS standards
          Added BASIC keyword

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_OVERLAYER $SSW/gen/idl/image_tool/itool_overlayer.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_OVERLAYER()

 PURPOSE:


 CATEGORY:


 EXPLANATION:

 SYNTAX:
       Result = itool_overlayer()

 CALLED BY:
	IMAGE_TOOL
 EXAMPLES:

 INPUTS:
       PARENT - Widget ID of base widget acting as parent

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT - ID of child widget on which the tool is built

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       None.

 CALLS: ***
	CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], CONGRID [1], CONGRID [2]
	CONGRID [3], DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], FILE_EXIST [2]
	GET_POINTER, HAS_ERROR, ITOOL_BUTTON_REFRESH, ITOOL_COMPOSITE, ITOOL_COPY_TO_PIX
	ITOOL_DIFF_ROT, ITOOL_DISPLAY, ITOOL_DISP_2ND, ITOOL_DISP_PLUS, ITOOL_DRAW_DRAG
	ITOOL_IMG_MATCH, ITOOL_IMG_SRC, ITOOL_IMG_TYPE, ITOOL_OVERLAYER_EVENT
	ITOOL_OVERLAY_BT, ITOOL_OV_IMAGE, ITOOL_SELECT_ICON, ITOOL_SELECT_IMG
	ITOOL_SWITCHER, ITOOL_XY, MATCH_STRUCT, MK_DFONT, SETWINDOW [1], SETWINDOW [2]
	UTC2TAI, XLOAD, concat_dir [4], delvarx [5], file_exist [1], file_exist [3]
 COMMON:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 5, 1997, Liyun Wang, NASA/GSFC. Written
	Version 2, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_PICKFILE $SSW/gen/idl/image_tool/itool_pickfile.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_PICKFILE()

 PURPOSE:
       Return a string array of SOHO synoptic or summary image file names

 EXPLANATION:
       ITOOL_PICKFILE searches for filenames of the SOHO synoptic images from
       variety of sources or SOHO summary images. The search path is
       determined by environmental variable SYNOP_DATA or
       SUMMARY_DATA. If neither of the env variables is defined,
       user's home directory will be used as the search path. All
       synoptic and summary data files have to be named inthe format
       of '*yymmdd.*', where the wild card character * can be 1 or
       more characters.

 CALLING SEQUENCE:
       Results = ITOOL_PICKFILE([start] [,stop] [source=source] [group=group])

 INPUTS:
       None required.

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       Results -- String containing filename selected from the directory
                  specified by the SYNOP_DATA env. variable (or user's home
                  directory if SYNOP_DATA is not set), based on the source of
                  file indicated by the SOURCE keyword. A null string will be
                  returned if no appropriate file is selected. Please
                  note that if the keyword INITIALIZE is set,
                  RESULTS will be a structure named SYNOP_SRC that
                  has the following tags:

          NAME    - Name of image sources (if TYPE is not set) or name
                    of image types (if TYPE is set).
          DIRNAME - Directory names under SYNOP_DATA in which image
                    files reside

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       INITIALIZE -- If set, does nothing but initialize the common block
       START --  Date string in YYYY/MM/DD format, beginning date
                 from which the image data base is searched. Default:
                 1990/01/01
       STOP  --  Date string in  YYYY/MM/DDformat, end date for which the
                 image data base is searched. If absent, current (system)
                 date is assumed.
       SOURCE_IDX --  Index number of image source to be searched.
                      For synoptic data, the current image sources are:

                0 -- Yohkoh Soft-X Telescope
                1 -- Big Bear Solar Observatory
                2 -- Kitt Peak National Observatory
                3 -- Learmonth Observatory, Australia
                4 -- Mt. Wilson Observatory
                5 -- Space Environment Lab
                6 -- Holloman AFB
                7 -- Mees Solar Observatory
                8 -- Sacramento Peak Observatory
                9 -- Nobeyama Solar Radio Observatory
               10 -- Other Institutes

       GROUP   -- ID of the widget that functions as a group leader
       SUMMARY -- Set this keyword for SOHO summary data. If not set,
                  SOHO synoptic data will be assumed.
       MODAL   -- Set this keyword to make this program a blocking
                  widget program

 CALLS: ***
	ANYTIM2TAI, ANYTIM2UTC [1], ANYTIM2UTC [2], CONCAT_DIR [1], CONCAT_DIR [2]
	CONCAT_DIR [3], CW_BSELECTOR2, DATE_CODE, DELVARX [1], DELVARX [2], DELVARX [3]
	DELVARX [4], DPRINT, EXIST, FLASH_MSG, GET_SOURCE_STC, GET_UTC, ITOOL_GETFILE
	ITOOL_PICKFILE_EVENT, ITOOL_PK_UPDATE, MK_DFONT, REP_TAG_VALUE
	SINCE_VERSION [1], SINCE_VERSION [2], STRIP_DIRNAME [1], STRIP_DIRNAME [2]
	VALID_TIME, XHOUR, XKILL, XMANAGER, XPICKFILE2_EVENT, XPICKFILE_EVENT, XREALIZE
	concat_dir [4], delvarx [5]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL
	IMAGE_TOOL_EVENT
 COMMON BLOCKS:
       FOR_ITOOL_PK_UPDATE (used internally by built-in routines)

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       Science planning

 PREVIOUS HISTORY:
       Written September 19, 1994, by Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       Liyun Wang, NASA/GSFC, October 5, 1994
          Modified so that the file extension name does not have to be
          ".fits"
       Version 2, Liyun Wang, NASA/GSFC, October 12, 1994
          Added keyword TYPE to allow choosing images based on image type
       Version 3, Liyun Wang, NASA/GSFC, November 21, 1994
          Made the list selected if it is the only one
       Version 4, Liyun Wang, NASA/GSFC, December 29, 1994
          Removed the .tags tag, and renamed the .value tag to .dirname in
             the SOURCES structure;
       Version 5, Liyun Wang, NASA/GSFC, February 1, 1995
          Made it work for files with the SOHO filename convention
       Version 6, Liyun Wang, NASA/GSFC, February 13, 1995
          Made it work under VMS (requires the "new" version of
             CONCAT_DIR that can concatinate two directories under VMS).
       Version 7, Liyun Wang, NASA/GSFC, March 30, 1995
          Added the Help button
       Version 8, Liyun Wang, NASA/GSFC, April 19, 1995
          Added Mauna Loa Solar Obs of HAO site
       Version 9, Liyun Wang, NASA/GSFC, May 9, 1995
          Got rid of common blocks in main routine and event handler
          Remembers the last image source and selected items
          Returns a structure (with tag names NAME and DIRNAME) when
             the keyword INITIALIZE is set
       Version 10, Liyun Wang, NASA/GSFC, May 25, 1995
          Replaced image source names with the cw_bselector widget
       Version 11, July 21, 1995, Liyun Wang, NASA/GSFC
          Replaced call to FINDFILE with LOC_FILE to avoid limitation
             of number of files being read in
       Version 12, February 15, 1996, Liyun Wang, NASA/GSFC
          Changed keyword TYPE to SUMMARY
          Xresource option disabled for IDL 3.5 and earlier
       Version 13, March 27, 1996, Liyun Wang, NASA/GSFC
          Added interface to SOHO private data directory
       Version 14, April 22, 1996, Liyun Wang, NASA/GSFC
          Improved file name list (truly list files according to time)
       Version 15, June 17, 1996, Liyun Wang, NASA/GSFC
          Used FIND_FILE to fix built-in FINDFILE() problem
       Version 16, July 1, 1996, Liyun Wang, NASA/GSFC
          Speeded up the file searching process by adding more specific
             filter pattern
       Version 17, August 9, 1996, Liyun Wang, NASA/GSFC
          Fixed a bug occuring when switching between summary and
             private database
       Version 18, November 27, 1996, Liyun Wang, NASA/GSFC
          Sorted listed entries by date as well as by time
       Version 19, December 6, 1996, Liyun Wang, NASA/GSFC
          Made it more tolerent to date strings. Whatever ANYTIM2UTC
             accepts will be fine now
       Version 20, January 15, 1997, Liyun Wang, NASA/GSFC
          Modified to use ITOOL_GETFILE (which is also used by GET_SYNOPTIC)
       Version 21, August 18, 1997, Liyun Wang, NASA/GSFC
          Renamed from XGET_SYNOPTIC to ITOOL_PICKFILE
          Added interface to XPICKFILE for loading personal file
          Added option to turn on/off auto load files
       Version 22, October 22, 1997, Liyun Wang, NASA/GSFC
          Modified such that double click the same filename list item
          within 1 sec will load the image automatically
       Version 23, January 16, 1998, Zarro, SAC/GSFC
          Added ability to search for TRACE and Yohkoh Synoptic data 
          in Yohkoh weekly directories
       Version 24, June 10, 1998, Zarro, SAC/GSFC
          Added check for invalid file selection
       Version 25, July, 2001, Zarro, EITI/GSFC
          Restored check for invalid time selections


ITOOL_PKFILE_BS $SSW/gen/idl/image_tool/itool_pkfile_bs.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_PKFILE_BS

 PURPOSE:
       To create pickfile widget upon a given parent base in IMAGE_TOOL

 CATEGORY:
       Utility, widget, image_tool

 EXPLANATION:

 SYNTAX:
       itool_pkfile_bs, parent, child

 EXAMPLE:
       itool_pkfile_bs, parent, child, filter = '*.gif *.fits'

 INPUTS:
       PARENT - ID of the parent base widget on which the pickfile
                widget is built

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       CHILD  - ID of the child widget (i.e, the application)

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       GET_PATH- Set to a named variable. Returns the path at the
                 time of selection.

       PATH    - The initial path to select files from.  If this keyword is
                 not set, the current directory is used.

       FILTER  - A string value for filtering the files in the file
                 list.  This keyword is used to reduce the number of
                 files to choose from. The user can modify the
                 filter. Example filter values might be "*.pro" or "*.dat".

       FONT    - Name of font to be used in the widget

 CALLS: ***
	CHKLOG [1], CHKLOG [2], CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], DPRINT
	EXIST, GET_DFONT [1], GET_DFONT [2], IS_DIR, ITOOL_PKFILE_EVENT, IT_GETDIRS
	IT_GETFILES, IT_VALID_DIR, OS_FAMILY, XHOUR, concat_dir [4]
 COMMON:
       ITOOL_PKFILE

 RESTRICTIONS:
       Does not recognize symbolic links to other files in UNIX.
       Multiple filter patterns are not recognized in VMS system

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, November 1, 1995, Liyun Wang, GSFC/ARC
          Modified from PICKFILE v 1.7 1994/05/02 19:25:51
       Version 2, February 23, 1996, Liyun Wang, GSFC/ARC
          Modified such that the side effect of current IDL working
             directory being changed via the PATH widget is removed
       Version 3, February 26, 1996, Liyun Wang, GSFC/ARC
          Directory for personal data is default to the one pointed to
             PERSONAL_DATA if this env variable is defined
       Version 4, September 5, 1996, Liyun Wang, NASA/GSFC
          Fixed a bug that returns files not necessarily in displayed
             path when changing filter field

 CONTACT:
       Liyun Wang, GSFC/ARC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_PLOT_AXES $SSW/gen/idl/image_tool/itool_plot_axes.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_PLOT_AXES

 PURPOSE:
       Plot axes and labels around the current displayed image

 EXPLANATION:

 CALLING SEQUENCE:
       itool_plot_axes, csi=csi

 INPUTS:
       CSI - Coordinate system info structure

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       None.

 CALLS: ***
	ITOOL_RANGE, TVAXIS
 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], IMAGE_TOOL
 COMMON BLOCKS:
       ITOOL_AXES_COM (used by PT_REFRESH_BASE in mk_point_base.pro)

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:

 PREVIOUS HISTORY:
       Written March 13, 1995, Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       Version 1, created, Liyun Wang, NASA/GSFC, March 13, 1995
       Version 2, Liyun Wang, NASA/GSFC, April 11, 1995
          Made data coordinate system established after calling this routine
       Version 3, August 28, 1996, Liyun Wang, NASA/GSFC
          Used XRANGE and YRANGE keywords (instead of ORIGIN and
             SCALE) in call to TVAXIS for better accuracy

 VERSION:
       Version 3, August 28, 1996


ITOOL_POINT_PLOT $SSW/gen/idl/image_tool/itool_point_plot.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_POINT_PLOT

 PURPOSE: 
       Plot all pointing area in Pointing Tool

 CATEGORY:
       Image Tool, Pointing Tool
 
 SYNTAX: 
       itool_point_plot

 CALLED BY:
	EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], IMAGE_TOOL, ITOOL_PTOOL, MK_POINT_BASE
 HISTORY:
       Version 1, July 30, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_PTOOL $SSW/gen/idl/image_tool/itool_ptool.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_PTOOL

 PURPOSE:
       Make a widget base for pointing for an appropriate SOHO instrument

 EXPLANATION:
       This routine creates a widget interface based on a given "parent"
       base in IMAGE_TOOL for the pointing purpose. Events genereated from
       this widget set is handled by routine PT_PTOOL_EVENT. It requies a
       pointing structure be defined (in the common block included in
       image_tool_com.pro) for a given instrument. This pointing structure
       should include the following tags:

          MESSENGER  - ID of widget in the caller that triggers a
                       timer event in the planning tool to signal the
                       completion of pointing; must be a widget that
                       does not usually generate any event
          INSTRUME   - Code specifying the instrument; e.g., 'C' for CDS
          SCI_SPEC   - Science specification
          STD_ID     - Study ID
          G_LABEL    - Generic label for the pointing; e.g., 'RASTER'
          X_LABEL    - Label for X coordinate of pointing; e.g., 'INS_X'
          Y_LABEL    - Label for Y coordinate of pointing; e.g., 'INS_Y'
          DATE_OBS   - Date/time of beginning of observation, in TAI format
          DO_POINTING- An integer of value 0 or 1 indicating whether pointing
                       should be handled at the planning level (i.e., by
                       IMAGE_TOOL)
          N_POINTINGS- Number of pointings to be performed by IMAGE_TOOL
          POINTINGS  - A structure array (with N_POINTINGS elements) of type
                       "DETAIL_POINT" to be handled by IMAGE_TOOL. It has the
                       following tags:

                       POINT_ID - A string scalar for pointing ID
                       INS_X    - X coordinate of pointing area center in arcs
                       INS_Y    - Y coordinate of pointing area center in arcs
                       WIDTH    - Area width (E/W extent)  in arcsec
                       HEIGHT   - Area height (N/S extent) in arcsec
                       OFF_LIMB - An interger with value 1 or 0 indicating
                                  whether or not the pointing area should
                                  be off limb

          N_RASTERS  - Number of rasters for each pointing (this is
                       irrelevant to the SUMER)
          RASTERS    - A structure array (N_RASTERS-element) of type
                       "RASTER_POINT" that contains raster size and pointing
                       information (this is irrelevant to the SUMER). It has
                       the following tags:

                       POINTING - Pointing handling code; valis
                                  values are: 1, 0, and -1
                       INS_X    - Together with INS_Y, the pointing to use
                                  when user-supplied values are not
                                  allowed.  Only valid when POINTING=0
                                  (absolute) or POINTING=-1 (relative to
                                  1st raster).
                       INS_Y    - ...
                       WIDTH    - Width (E/W extent) of the raster, in arcs
                       HEIGHT   - Height (N/S extent) of the raster, in arcs

 CALLED BY:
	IMAGE_TOOL
      Note: For the case of CDS, pointings.width, pointings.height,
            pointings.ins_x, and pointings.ins_y should match the first
            raster's rasters.width, rasters.height, rasters.ins_x, and
            rasters.ins_y, respectively.

 CALLING SEQUENCE:
       ITOOL_PTOOL, parent, child [,font=font]

 INPUTS:
       PARENT - ID of parent widget upon which the pointing widget is built

 OPTIONAL INPUTS:
       FONT   - Font name to be used for labelling

 OUTPUTS:
       CHILD  - ID of the base widget being built and leter on remapped

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       None.

 CALLS: ***
	CNVT_COORD [1], CNVT_COORD [2], DATATYPE [1], DATATYPE [2], DATATYPE [3]
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], DHELP, DIFF_ROT [1]
	DIFF_ROT [2], DPRINT, FLASH_MSG, FLASH_PLOTS, FXPAR [1], FXPAR [2], GET_DFONT [1]
	GET_DFONT [2], ITOOL_COPY_TO_PIX, ITOOL_GETXY_FIELD, ITOOL_PNT_SEND
	ITOOL_POINT_PLOT, ITOOL_REFRESH, ITOOL_RESTORE_PIX, ITOOL_SWITCHER, JUSTIFY
	MK_DFONT, NUM2STR, PT_BUTTON_UPDATE, PT_FOV_DSHAPE, PT_FOV_RESET, PT_FOV_SHAPE
	PT_FOV_UPDATE, PT_PTOOL_EVENT, PT_REFRESH_BASE, PT_ROTATE_POINT, ROT_XY
	SETWINDOW [1], SETWINDOW [2], TAI2UTC, UTC2TAI, VALID_CDS_POINT, WIDGET_CONTROL2
	XACK, XANSWER, XSHOW, XSHOW_HELP, delvarx [5], widget_valid
 COMMON BLOCKS:
       FOR_POINTING - Internal common block used by this routine and
                      ITOOL_PTOOL
       Others       - Included in image_tool_com.pro

 CATEGORY:
       Planning, pointing

 PREVIOUS HISTORY:
       Written January 23, 1995, Liyun Wang, NASA/GSFC
          Separated from the origina code of IMAGE_TOOL

 MODIFICATION HISTORY:
       Version 2, Liyun Wang, NASA/GSFC, March 8, 1995
          Added indicator showing if a selected pointed area is pointed
          Added Warnings if there is any pointing area remain unpointed
       Version 3, Liyun Wang, NASA/GSFC, March 31, 1995
          Added undo feature
       Version 4, Liyun Wang, NASA/GSFC, April 27, 1995
          Added the FONT keyword
       Version 5, November 2, 1995, Liyun Wang, NASA/GSFC
          Modified to cope with image icon stacking
       Version 6, November 17, 1995, Liyun Wang, NASA/GSFC
          Added validity check for CDS
       Version 7, December 27, 1995, Liyun Wang, NASA/GSFC
          Added pointing for MK_SOHO
       Version 8, April 17, 1996, Liyun Wang, NASA/GSFC
          Fixed a bug that caused the program crash when switching
             studies with different pointing numbers
       Version 9, August 19, 1996, Liyun Wang, NASA/GSFC
          Corrected an error in plotting rasters with relative pointings
       Version 10, December 18, 1996, Liyun Wang, NASA/GSFC
          Modified such that the time projection is turned off if
             raster is placed off the limb
       Version 11, February 12, 1997, Liyun Wang, NASA/GSFC
          Fixed a bug causing text widgets remaining inactive when
             studies with variable pointings are received
       Version 12, February 18, 1997, Liyun Wang, NASA/GSFC
          Added fields SCI_SPEC and ID in pointing tool
       Version 13, April 1, 1997, Liyun Wang, NASA/GSFC
          Fixed a bug occurred during plotting off_limb rasters
	Version 14, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays
       Modified, 12-Jan-2006, Zarro (L-3Com/GSFC) - added /NO_QUIT keyword


ITOOL_RANGE $SSW/gen/idl/image_tool/itool_range.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_RANGE

 PURPOSE:
       Get solar X and Y range of a given image

 CATEGORY:
       Image Tool

 SYNTAX:
       itool_range, csi, xrange=xrange, yrange=yrange

 INPUTS:
       CSI - CSI structure of the concerned image

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       XRANGE - 2-element array for solar X range (in arc seconds)
       YRANGE - 2-element array for solar Y range (in arc seconds)

 CALLS: ***
	CNVT_COORD [1], CNVT_COORD [2]
 CALLED BY:
	ITOOL_PLOT_AXES
 COMMON:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 25, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_RD_FITS $SSW/gen/idl/image_tool/itool_rd_fits.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_RD_FITS

 PURPOSE:
       Driver program of FXREAD and CDS_IMAGE to read any FITS file

 EXPLANATION:

 CALLING SEQUENCE:
       itool_rd_fits, data_file, image, header, min=min, max=max, $
                      image_max=image_max, image_min=image_min $
                      [,errmsg=errmsg]

 INPUTS:
       DATA_FILE - name of FITS file

 OPTIONAL INPUTS:
       COLUMN - Column number of data in FITS binary table. This parameter
                has no effect on "plain" FITS files, and will cause CDS_IMAGE
                to be called directly with its value if passed.
       GROUP  - Group ID of the group leader.

 OUTPUTS:
       IMAGE  - A 2-D image array
       HEADER - Header of the image

 OPTIONAL OUTPUTS:
       DATA_INFO - A structure that indicates name and column number of all
                   images contained in one FITS file. This is generally for
                   FITS files with a binary table. It show have the following
                   tags:

                      BINARY  - Integer scalar with value 1/0 indicating if
                                the data_file contains binary table or not
                      COL     - Integer vector that indicates all column
                                numbers for the data
                      LABEL   - String vector showing the label of data in
                                each column
                      CUR_COL - Current column of data being read

       CSI     - Part of CSI structure. It's important to get this structure

 KEYWORD PARAMETERS:
       IMAGE_MIN - Minimum value of the image array
       IMAGE_MAX - Maximum value of the image array
       ERRMSG    - Error message returned (null string if no error)
       STATUS    - Flag (0/1) of failure/success

 CALLS: ***
	ADD_PATH [1], ADD_PATH [2], Bell, CDS_IMAGE, DATATYPE [1], DATATYPE [2]
	DATATYPE [3], DPRINT, FILEPATH, FIND_COMPRESSED, FXBCLOSE [1], FXBCLOSE [2]
	FXBFIND [1], FXBFIND [2], FXBOPEN [1], FXBOPEN [2], FXBOPEN [3], FXHREAD [1]
	FXHREAD [2], FXPAR [1], FXPAR [2], FXREAD [1], FXREAD [2], GET_SOHO_ROLL, HAVE_PROC
	HAVE_TAG, IS_DIR, ITOOL_READ_EIT, ITOOL_SET_CSI, MK_EIT_ENV, NUM_CHK, PB0R, POPUP_MSG
	REVERSE, RM_FILE, ROT, SEP_FILENAME, STRUP, TAG_EXIST [1], TAG_EXIST [2], TRIM
	USE_EARTH_VIEW, USE_SOHO_VIEW, VALID_FITS, VALID_NUM [1], VALID_NUM [2]
	VALID_NUM [3], XSEL_ITEM, fitshead2struct
 CALLED BY:
	ITOOL_LOAD_IMAGE
 MODIFICATION HISTORY:
       Version 1, created, Liyun Wang, NASA/GSFC, February 27, 1995
       Version 2, Liyun Wang, NASA/GSFC, May 11, 1995
          Rotated loaded image if keyword CROTA or CROTA1 is found in the
             header and its value is not zero
       Version 3, April 1, 1996, Liyun Wang, NASA/GSFC
          Modified so that point of view is set based on the loaded image
       Version 4, July 30, 1996, Liyun Wang, NASA/GSFC
          Fixed a bug occurred when dealing with compressed FITS files
       Version 5, August 13, 1997, Liyun Wang, NASA/GSFC
          Took out IMG_UTC keyword (now in CSI.DATE_OBS)
          Uncompress compressed file to /tmp directory 
       Version 6, April 28, 1998, Zarro, SAC/GSFC
          Added patch for getting updated EIT pointing information
       Version 7, Oct 28, 1998, Zarro, SAC/GSFC
          Added check for pre-uncompressed file in /tmp
       Version 8, March 12, 1999, Zarro, SM&A/GSFC
          Corrected call to READ_EIT
       Version 9, 20-Nov-2001, Zarro (EITI/GSFC)
          Added check for READ_EIT in !path
       Version 10, 3-Jul-2003, Zarro (EER/GSFC)
          Added check for flipped (rolled 180 deg) SOHO image
       Version 11, 1-Oct-2003, Zarro (GSI/GSFC)
          Fixed incorrect call to get_soho_roll for non-SOHO images
       Version 12, 12-Jan-2006, Zarro (L-3Com/GSFC) 
          Added check for roll-corrected images


ITOOL_RD_GIF $SSW/gen/idl/image_tool/itool_rd_gif.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_RD_GIF

 PURPOSE:
       To read a GIF file and to get related obs time

 EXPLANATION:

 CALLING SEQUENCE:
       itool_rd_gif, file, data, obs_time=obs_time

 INPUTS:
       FILE - GIF file name

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       DATA   - 2-Dim Image data being read

 OPTIONAL OUTPUTS:
       OBS_TIME - Observation time associated with the image
       MINIMUM  - Minimum value in the image aaary
       MAXIMUM  - Maximum value in the image aaary
       COLOR_TABLE - Nx3 array for color table in RGB system
       STATUS  - Status of loading the GIF file. 1 for success and 0
                 for failure
       ERROR   - Named variable containing error message. If no error
                 occurs, a null string is returned
 KEYWORD PARAMETERS:
       None.

 CATEGORY:

 PREVIOUS HISTORY:
       Written May 8, 1995, Liyun Wang, NASA/GSFC

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3]
	CLEAN_GIF, DATATYPE [1], DATATYPE [2], DATATYPE [3], FILE2TIME, FILE_EXIST [2]
	GET_UTC, GREP, ITOOL_IMG_SRC, ITOOL_IMG_TYPE, ITOOL_NEW_CSI, TRIM, VALID_GIF
	VALID_JPEG, VALID_TIME, XACK, XANSWER, XINPUT, break_file [4], file_exist [1]
	file_exist [3]
 CALLED BY:
	ITOOL_LOAD_IMAGE
 MODIFICATION HISTORY:
       Version 1, created, Liyun Wang, NASA/GSFC, May 8, 1995
       Version 2, October 27, 1995, Liyun Wang, NASA/GSFC
          Made the starting search directory to be current working directory
       Version 3, November 2, 1995, Liyun Wang, NASA/GSFC
          Changed to a procedure to be consistant with RD_IMAGE_FITS
          Modified so that filename needs to be supplied
       Version 4, September 9, 1997, Liyun Wang, NASA/GSFC
          Took out DATE_OBS keyword
          Added CSI keyword
       Version 5, 1998 June 7, Zarro (SAC/GSFC) - added FILE2TIME call
	Version 6, 1998 Sep 2, DeForest (Stanford/GSFC) - Added CLEAN_GIF call
	Version 7, 2000 Mar 31, Zarro (SM&A/GSFC) - Added READ_JPEG call


ITOOL_RESTORE $SSW/gen/idl/image_tool/itool_restore.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_RESTORE

 PURPOSE:
       Restore zoomed-in image to its original status

 CATEGORY:
       Image Tool

 SYNTAX:
       itool_restore

 INPUTS:
       None.

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       FULL - Set this keyword to save current color table too.

 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_ZOOMINOUT [1]
	EIS_ITOOL_ZOOMINOUT [2], IMAGE_TOOL_EVENT, ITOOL_DRAW_ICON, ITOOL_ZOOMINOUT
 COMMON:
       @image_tool_com

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, October 1, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_RESTORE_PIX $SSW/gen/idl/image_tool/itool_restore_pix.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_RESTORE_PIX

 PURPOSE: 
       Restore current plot window with pixmap saved in pixmap.id

 CATEGORY:
       IMAGE_TOOL
 
 SYNTAX: 
       itool_restore_pix, pixmap

 INPUTS:
       PIXMAP - A structure with tags XSIZE, YSIZE, and ID

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_PTOOL [1]
	EIS_ITOOL_PTOOL [2], IMAGE_TOOL_EVENT, ITOOL_CROSS_HAIR, ITOOL_DISP_ROT
	ITOOL_PTOOL, MK_POINT_BASE
 COMMON:
       None.

 RESTRICTIONS: 
       Only works for devices that supports COPY keyword (X, WIN,
       SUN, and MAC)

 SIDE EFFECTS:
       Current contents on current window (!d.window) get replaced.

 HISTORY:
       Version 1, June 12, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_SELECT_IMG $SSW/gen/idl/image_tool/itool_select_img.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_SELECT_IMG()

 PURPOSE: 
       Get X and Y range of selected image indices

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       Result = itool_select_img(xrange, yrange)

 INPUTS:
       IMAGE  - 2D image array
       CSI    - CSI structure associated with IMAGE
       XRANGE - X range of selected box in device pixels (0 based)
       YRANGE - Y range of selected box in device pixels (0 based)

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - 2D array of selected image

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       IBOX       - Set this keyword to return corner points of selected
                    image in image pixels
       DBOX       - 5x2 array, device coordinates of box surrounding
                    the region being selected
       ERROR      - Named variable containing possible error message
       MODIFY_CSI - Set this keyword to modify CSI upon seccess
                    selection

 CALLS: ***
	CNVT_COORD [1], CNVT_COORD [2]
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_ZOOMINOUT [1]
	EIS_ITOOL_ZOOMINOUT [2], IMAGE_TOOL_EVENT, ITOOL_OVERLAYER, ITOOL_ZOOMINOUT
 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 2, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_SET_CSI $SSW/gen/idl/image_tool/itool_set_csi.pro
[Previous] [Next]
 PROJECT:
       SOHO

 NAME:
       ITOOL_SET_CSI()

 PURPOSE:
       Obtain iamge scale and disk center coord. from the given FITS header

 EXPLANATION:
       This routine searches for some possible keywords through the given
       FITS header, trying to obtain three sets of important parameters,
       CRPIX*, CRVAL*, and CDELT*, which are required when calculating the
       coordinates of any point on the solar image. Searching is done
       according to the order of keywords. The most probable keyword
       are searched first. Currently the following keywords are searched:

          CRPIX*, CRVAL*, CDELT*, CRRADIUS, R0, SCALE, DXB_IMG, X0, Y0,
          CENTER_X, CENTER_Y, RADIUS, SOLAR_R

 CALLING SEQUENCE:
       ims_csi = ITOOL_SET_CSI(header)

 INPUTS:
       HEADER -- String array, header of a FITS file

 OPTIONAL INPUTS:

 OUTPUTS:
       IMG_CSI - Basic CSI structure, containing the following tags:
                 NAXIS1, NAXIS2, CRPIX1, CRPIX2, CRVAL1, CRVAL2,
                 CDELT1, CDELT2, CTYPE1, CTYPE2, CROTA, REFLECT,
                 DATE_OBS, FLAG, and RADIUS

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       ERR   - A named string variable containing error message. Null
               string is returned if there is no error
       QUIET - Set this keyword to suppress error messages to the screen
       FILE  - Name of FITS file; can be useful to determine imaging
               time if passed in

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], DATATYPE [1], DATATYPE [2], DATATYPE [3], FXKVALUE
	FXPAR [1], FXPAR [2], GREP, ITOOL_GET_SRC, ITOOL_GET_TIME, ITOOL_GET_TYPE
	ITOOL_NEW_CSI, PB0R, Y2KFIX
 CALLED BY:
	EIS_ITOOL_RD_FITS [1], EIS_ITOOL_RD_FITS [2], ITOOL_RD_FITS, RD_IMAGE_FITS
 COMMON BLOCKS:
       None.

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       Image_tool, utility

 HISTORY:
       Version 1, September 27, 1994, Liyun Wang, NASA/GSFC. Written
       Version 2, April 1, 1996, Liyun Wang, NASA/GSFC
          Added RADIUS tag in output structure
       Version 3, July 30, 1996, Liyun Wang, NASA/GSFC
          Added searching for keyword SOLAR_R for solar radius in pixels
       Version 4, August 28, 1996, Liyun Wang, NASA/GSFC
          Modified such that the first image pixel starts at (1, 1)
             as in FITS specification 
          Renamed it from SET_CSI to ITOOL_SET_CSI
       Version 5, August 28, 1997, Liyun Wang, NASA/GSFC
          Added FILE keyword to be used by ITOOL_GET_TIME
       Version 6, September 2, 1997, Liyun Wang, NASA/GSFC
          Added search for CENTER_X and CENTER_Y keywords when CRPIX*
             are not present in FITS header
       Version 7, 10-Jul-2003, William Thompson, GSFC
               Look for CROTA2 as well, to be more standards compliant

 VERSION:
       Version 7, 10-Jul-2003


ITOOL_SOLAR_GRID $SSW/gen/idl/image_tool/itool_solar_grid.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_SOLAR_GRID

 PURPOSE:
       Plot grid lines over the solar image

 CALLING SEQUENCE:
       itool_solar_grid, lati, longi, date=date

 INPUTS:
       LATI  - The spacing in degrees between parallels of latitude;
               default: 15.0 degrees. If LATI is zero or negative, no
               latitudinal lines will be plotted
       LONGI - The spacing in degrees between meridians of longitude;
               default: 15.0 degrees. If LONGI is zero or negative, no
               longitudinal lines will be plotted
       DATE  - Data/time in CDS time format at which the grid is plotted.

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
       LINESTYLE -- Line style to be used, default: dotted (1)
       COLOR     -- color of the line to be draw; default: !d.table_size-1
       LIMB      -- Plot limb of the solar disc if set

 CALLS: ***
	HEL2ARCMIN [1], HEL2ARCMIN [2]
 CALLED BY:
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1]
	EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL, IMAGE_TOOL_EVENT
 COMMON BLOCKS:
       None.

 RESTRICTIONS:
       Can be called only AFTER the data coordinate system is established,
       so it would be OK if it is called after ITOOL_PLOT_AXES is
       called (which also sets the data coordinate system)

 SIDE EFFECTS:
       None.

 CATEGORY:
       Planning, Image_tool

 PREVIOUS HISTORY:
       Written April 11, 1995, Liyun Wang, NASA/GSFC

 MODIFICATION HISTORY:
       Version 1, created, Liyun Wang, NASA/GSFC, April 11, 1995
       Version 2, July 14, 1995, Liyun Wang, NASA/GSFC
          Added the LIMB keyword
	Version 3, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 VERSION:
	Version 3, 8 April 1998


ITOOL_SWITCHER $SSW/gen/idl/image_tool/itool_switcher.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_SWITCHER

 PURPOSE: 
       Switch tools in Image Tool (from curr_tool to prev_tool)

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       itool_switcher

 OUTPUTS:
       None.

 CALLS: ***
	ITOOL_MAGNIFY_CLEANUP, ITOOL_MAGNIFY_RUN, ITOOL_PROFILER_RUN, LIMBFIT_CLEANUP
	MAKE_MANUAL_FIT, PT_REFRESH_BASE, XANSWER, widget_valid
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], EIS_ITOOL_PTOOL [1]
	EIS_ITOOL_PTOOL [2], IMAGE_TOOL_EVENT, ITOOL_LIMBFITTER, ITOOL_OVERLAYER
	ITOOL_PTOOL
 HISTORY:
       Version 1, August 21, 1997, Liyun Wang, NASA/GSFC. Written
       Modified, 12-Jan-2006, Zarro (L-3Com/GSFC) - added check for
        invalid unused target widget base

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_TRACE_SCALE $SSW/gen/idl/image_tool/itool_trace_scale.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_TRACE_SCALE

 PURPOSE:
       Rescale TRACE image

 CATEGORY:
       Image, utility

 EXPLANATION:

 SYNTAX:
       Result = itool_trace_scale(image)

 INPUTS:
       IMAGE   - 2D image array; may be rescaled
       HEADER  - String vector holding header of TRACE FITS file

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       RESULT  - Rescaled image array

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       MIN_VAL    - Named output variable, new miminum value in IMAGE
       MAX_VAL    - Named output variable, new maxinum value in IMAGE
       COLOR_ONLY - Set this keyword to just get color table
       LOG_SCALED - 1/0 if returned image is log scaled or not
       NO_PREP    - set to not call TRACESCALE

 CALLS: ***
	CSCALE, HAVE_PROC, LOADCT, TRACE_COLORS, fitshead2struct
 CALLED BY:
	ITOOL_LOAD_IMAGE
 COMMON:
       None.

 RESTRICTIONS:
       Use in SSW environment for optimum results

 SIDE EFFECTS:
       Input IMAGE array is rescaled.

 HISTORY:
       Version 1, June 20, 1998, Zarro (SAC/GSFC), Written

 CONTACT: 
       dzarro@solar.stanford.edu


ITOOL_WRITE_FITS $SSW/gen/idl/image_tool/itool_write_fits.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_WRITE_FITS

 PURPOSE:
       Write FITS file or modify its header

 CATEGORY:
       IMAGE TOOL

 SYNTAX:
       itool_write_fits, file, image, [,header] [, csi=csi], error=error

 INPUTS:
       FILE   - Name of FITS file
       IMAGE  - data array
       Either HEADER or CSI or both

 OPTIONAL INPUTS:
       HEADER - Original FITS header; required only if MODIFY keyword is set

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       CSI    - CSI structure, containing coordinate related
                information which is supposed to be different from
                that in FITS header; required if MODIFY is set
       MODIFY - Set this keyword to modify original FITS header. If
                set, both HEADER and CSI are required
       ERROR  - A named variable containing possible error messages

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], FITS_DATATYPE, FXHMODIFY [1]
	FXHMODIFY [2], FXHREAD [1], FXHREAD [2], FXWRITE [1], FXWRITE [2], ITOOL_MAKE_FH
	TEST_OPEN
 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
 COMMON:
       None.

 RESTRICTIONS:
       Write privilege required to update FITS header in the file

 SIDE EFFECTS:
       If data type of array IMAGE does not match BITPIX value, IMAGE
       is converted into the data type compatible with BITPIX

 HISTORY:
       Version 1, August 13, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_XY $SSW/gen/idl/image_tool/itool_xy.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_XY

 PURPOSE: 
       Create array for Solar X and Solar Y coordinates for a given CSI

 CATEGORY:
       Image Tool
 
 SYNTAX: 
       itool_xy, csi, xx=xx, yy=yy

 INPUTS:
       CSI - Coordinate system info structure

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       XX     - Solar X coordinates in arcsecs, 2D (or 1D if VECTOR
                keyword is set) array
       YY     - Solar Y coordinates in arcsecs, 2D (or 1D if VECTOR
                keyword is set) array
       VECTOR - Set this keyword to return only 1D vector of solar X and Y

 CALLED BY:
	EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2], IMAGE_TOOL_EVENT
	ITOOL_DIFF_ROT, ITOOL_OVERLAYER
 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, September 2, 1997, Liyun Wang, NASA/GSFC. Written
       Version 2, September 15, 1997, Liyun Wang, NASA/GSFC
          Added VECTOR keyword

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_ZOOM $SSW/gen/idl/image_tool/itool_zoom.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       ITOOL_ZOOM

 PURPOSE:
       Zoom in on part of an image in a given draw widget window

 EXPLANATION:
	Display part of an image (or graphics) from the current window
	enlarged in another window.

	The cursor is used to mark the center of the zoom.

 CALLED BY:
	ITOOL_ZOOMMER
	Note:  This routine is identical to the version of ZOOM distributed
	       with IDL starting with version 3.1.


 CALLING SEQUENCE:
       ITOOL_ZOOM, draw_id, [, TEXT_id=text_id, FACT = Fact, $
                 /INTERP, /CONTINUOUS]

 INPUTS:
	DRAW_ID  -- ID of the draw widget on which the zoomed image is drawn
	TEXT_ID  -- ID of a text widget on which the cursor position will be
                   reported.
       CSI -- Coordinate system information structure that contains some
              basic information of the coordinate systems involved. 

       D_MODE   -- This is set in accordence with the
                   IMAGE_TOOL. It is a code of showing the
                   cursor position in different ways. Default
                   display mode is 3.

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS:
	FACT:	Zoom factor.  This parameter must be an integer.  The default
		zoom factor is 4.

	INTERP:	Set this keyword to use bilinear interpolation, otherwise
		pixel replication is used.

   CONTINUOUS:	Set this keyword to make the zoom window track the mouse
		without requiring the user to press the left mouse button.
		This feature only works well on fast computers.

 CALLS: ***
	CURSOR_INFO, FIND_DRAW_WIDGET
 COMMON BLOCKS:
	None.

 RESTRICTIONS:
	ZOOM only works with color systems.

 SIDE EFFECTS:
       Control cannot be returned back till right button is pressed

 CATEGORY:
	Utilities, Image_display.

 PREVIOUS HISTORY:
       Written November 8, 1994, by Liyun Wang, NASA/GSFC

 HISTORY:
       Version 1, November 8, 1994, Liyun Wang, NASA/GSFC. Written
       Version 2, November 18, 1994, Liyun Wang, NASA/GSFC
          Calls the improved CURSOR_INFO; coordinate system conversions are
             now handed to CNVT_COORD.
       Version 3, March 19, 1996, Liyun Wang, NASA/GSFC
          Made the central cursor visible regardless of the background
       Version 4, 22 May 1997, SVH Haugan, UiO
          Switched to using WIDGET_EVENT instead of TVRDC (CURSOR).
       Version 5, August 13, 1997, Liyun Wang, NASA/GSFC
          Took out the DATE keyword (now included in CSI)
	Version 6, William Thompson, GSFC, 8 April 1998
		Changed !D.N_COLORS to !D.TABLE_SIZE for 24-bit displays

 VERSION:
	Version 6, 8 April 1998


ITOOL_ZOOMINOUT $SSW/gen/idl/image_tool/itool_zoominout.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_ZOOMINOUT

 PURPOSE:
       Event handler for zooming in/out

 CATEGORY:
       image tool

 SYNTAX:
       itool_zoominout, event

 INPUTS:
       EVENT - Event structure

 OPTIONAL INPUTS:
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS:
       None.

 CALLS: ***
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], ITOOL_DISPLAY, ITOOL_DISP_PLUS
	ITOOL_REFRESH, ITOOL_RESTORE, ITOOL_SELECT_IMG, SETWINDOW [1], SETWINDOW [2], XACK
	delvarx [5]
 CALLED BY:
	IMAGE_TOOL_EVENT
 COMMON:
       @image_tool_com

 RESTRICTIONS:
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, January 29, 1997, Liyun Wang, NASA/GSFC. Written
          Extracted from image_tool.pro

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


ITOOL_ZOOMMER $SSW/gen/idl/image_tool/itool_magnifier.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       ITOOL_ZOOMMER()

 PURPOSE: 
       

 CATEGORY:
       
 
 EXPLANATION:
       
 SYNTAX: 
       Result = itool_zoommer(parent)

 INPUTS:
       PARENT - Widget ID of base widget acting as parent

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       RESULT - ID of child widget on which the tool is built

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 CALLS: ***
	ITOOL_BUTTON_REFRESH, ITOOL_MAGNIFIER, ITOOL_MAGNIFY_CLEANUP
	ITOOL_MAGNIFY_RUN, ITOOL_PROFILER_RUN, ITOOL_ZOOM, SETWINDOW [1], SETWINDOW [2]
	TVPROFILE, WIDGET_CONTROL2
 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, August 18, 1997, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)