.help keyselect Mar92 tables .ih NAME keyselect -- Copy selected image header keywords to an STSDAS table. .ih USAGE keyselect input output cols .ih DESCRIPTION This task copies the specified image header keywords to an STSDAS table. The required parameters are the input list of image names, the output STSDAS table name, and the list of header keywords. All groups of each image will be examined if the list of header keywords contains a group parameter. Otherwise only the first group of each image will be examined. The task appends rows to the output table if it exists or creates a new table if the output table does not exist. If the output table exists, column names must match the names in the existing table. The column names in the output table are the same as the header keywords unless they are explicitly specified, as described below. If a keyword is missing from an image header a warning message is printed and a null value inserted into the table. The default type of the table column is determined from the type of the header keyword. Text columns have a default length of 19 characters, unless the table column is the concatenation of several keywords, in which case the default length will be 63 characters. A column description file must be used if you want to override the default type or length of a table column. The third parameter ('cols') is a list of items specifying the header keyword names and table column names. Items in the list are separated by commas or whitespace. Three different kinds of items may appear in the list: a keyword name, a table column name followed by a equals sign followed by a keyword name, or a table column name followed by an equals sign followed by a list of keyword names separated by colons. If the item in the list is a keyword name, the table column name is the same as the keyword name. To specify a table column name different than the keyword name, the item in the list should be the table column name followed by an equals sign followed by the keyword name. To concatenate several header keywords into a string separated by commas, a list of keyword names separated by colons should replace the header keyword name in the item. The following list gives examples of the three types of items. .nf FGWA_ID GRATING=FGWA_ID OBS_MODE=DETECTOR:FGWA_ID:APER_ID .fi In the first case, both the header keyword name and table column name are 'fgwa_id'. In the second case the table column name is 'grating'. In the third case table column name is 'obs_mode' and the values in the column are the concatenation of the header keywords 'detector', 'fgwa_id', and 'aper_id' separated by commas. Special keywords may also be used in the list wherever a header keyword may be used. Special keywords are used to place the image name or parts of the image name in the output table. The name of a special keyword always starts with a "$". The different special keywords, their types, and default table column names are given in the following list. .nf $group int group $dir text directory $ext text extension $hdr text header_file $pix text data_file $root text rootname .fi If an image has the name 'yref$y00vk101a.r1h[1]', the group will be 1, the directory 'yref$', the extension 'r1h', the header file 'y00vk101a.r1h', the data file 'y00vk101a.r1d', and the root name 'y00vk101a'. The hidden task parameter 'expr' is used to select which images are examined when writing header keywords to the output table. If this task parameter is set to its default value, ' ' (a blank string), all images named in the image template will be examined. Otherwise the task parameter is interpreted as a boolean (logical) expression. The variables in the expression are header keyword names. As each image is opened the values of the header keywords are substituted for the keyword name. If the expression is true, the header keywords specified in the 'cols' parameter are copied into the output table. The special keywords mentioned above may also be used in the expression. If a keyword name contains dashes the keyword name should be preceded by a '@' and enclosed in quotes. For example, 'date-obs' should be given as '@"date-obs"' in the expression. The following boolean operators may be used in the expression: .nf equal == not equal != less than < less than or equal <= greater than > greater than or equal >= or || and && negation ! .fi The expression may also include the usual arithmetic operators and functions. Arguments to the trigonometric functions must be in degrees. The available operators are: .nf addition + subtraction - multiplication * division / negation - exponentiation ** string concatenation // .fi The following is a list of the available functions: .nf absolute value abs(x) cosine cos(x) sine sin(x) tangent tan(x) arc cosine acos(x) arc sine asin(x) arc tangent atan(x) arc tangent atan2(x,y) exponential exp(x) square root sqrt(x) natural log log(x) common log log10(x) minimum min(x,y) maximum max(x,y) modulo mod(x,y) keyword found find(x,y,z,..) .fi One new function, find, is available in addition to the usual arithmetic functions. The argument of this function is a list of header keyword names. The function returns true if all the header keywords are found in the image and false if one or more header keywords in the list are not found. The arguments to this function should be placed in quotes as otherwise the value of the header keyword will checked instead of the name. That is, if 'find(detector)' is used instead of 'find("detector")', the task will look for a header keyword whose name is the value of the detector keyword. The 'cols' and 'expr' parameters can also be the name of a file preceded by an '@' character. If this is done, the task will read the list of keyword names or boolean expression from the specified file. Newlines in the file are treated as if they were blanks, so lines may be broken wherever a blank would be correct. Comments (lines starting with a '#' character) are not permitted in either file. The hidden parameter 'cdfile' is the name of the column description file. The default value for this parameter is ' ' (a blank string). If the parameter contains a blank string no column description file is used and the column data type is taken from the type of the header keyword. A column description file contains one line for each column in the table. Each line contains four fields in the following order: the column name, the data type, the print format, and the units. Any of the fields except the column name may be omitted. If a field is omitted the default for that field will be used instead. Fields are not case sensitive except for the units field. The column name in the column description file must match the column name in the 'cols' parameter. If a column name in the 'cols' parameter is not found in the column description file, a warning message is printed and the defaults are used for that table column. Column names in the column description file that are not in the 'cols' parameter are ignored. For further information on the format of a column description file, refer to the help file for 'tlcol'. .ih PARAMETERS .ls input [file name template] List of image names. The usual wild card characters can be used. If the list of keyword names or the expression contains a group parameter all groups of each image will be examined unless a group is explicitly specified as part of the image name. .le .ls output [file name] The name of the output STSDAS table. If the table already exists new rows will be added to the existing table. Column names must match names in the existing table. If the table does not exist a new table will be created and any column names may be used. .le .ls cols [string] The list of header keyword names separated by white space or commas. Table column names are the same as the keyword names unless explicitly specified in the form =. Several keywords can be concatenated by using the form =:. If the first character in the parameter is an '@', the rest of the parameter is interpreted as a file name containing the list of keyword names. .le .ls (expr = " ") [string] A boolean expression used to select which images are examined for header keywords. If the string is blank (the default) all images named in the input list are examined. Variables in the expression are header keyword names. An image is selected if substituting the value of the header keywords for their names makes the expression true. The syntax of the expression follows the usual CL and SPP conventions. If the first character in the expression is a '@', the rest of the expression is interpreted as a filename containing the expression. .le .ls (cdfile = " ") [file name] The name of the column description file. The format of a column description file is defined in the help for 'tlcol'. Column names used in the column description file must match the names in the 'cols' parameter (except for case). .le .ih EXAMPLES 1. Create an STSDAS table from the headers of the dead diode reference images: .nf tt> keyselect yref$*.r4h ddt.tab detector,headname,dataname .fi 2. Create the same table, only name the columns "header_file" and "data_file": .nf tt> keyselect yref$*.r4h ddt.tab \ >>> detector,header_file=headname,data_file=dataname .fi 3. Only select images with the blue detector: .nf tt> keyselect yref$*.r4h ddt.tab detector,headname,dataname \ >>> expr="detector='blue'" .fi 4. Use a column description file when creating the table: .nf tt> keyselect yref$*.r4h ddt.tab \ >>> detector,header_file=headname,data_file=dataname cdfile="ddt.cd" .fi The contents of the column description file: .nf DETECTOR CH*5 HEADER_FILE CH*18 DATA_FILE CH*18 .fi .ih BUGS .ih REFERENCES This task was written by Bernie Simon. .ih SEE ALSO Type "help tables opt=sys" for a description of the 'tables' package. .endhelp