[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
[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
[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
[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.
[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
[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
[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
[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:
[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
[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
[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
[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
[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
[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)
[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
[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
[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
[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 :
[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.
[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
----------------------------------------------------------------------------
[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)
[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
----------------------------------------------------------------------------
[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).
[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:
[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)
[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
[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)
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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??)
[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
[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
[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
[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
[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
[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.
[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
[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.
[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
[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!!
[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
[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
[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
[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.
[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
[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 []
[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.
[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
[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
[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.
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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]
[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
[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
[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
[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
[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
[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
[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
[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)
[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)
[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
[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
[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
[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
[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.
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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)
[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)
[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)
[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)
[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)
[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
[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)
[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)
[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)
[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)
[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)
[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)
[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
[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)
[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
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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
[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)
[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)
[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)
[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)
[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)
[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
[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)
[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
[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)
[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
[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)
[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
[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
[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)
[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)
[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)
[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
[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
[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)
[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
[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)
[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)
[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
[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)
[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)