STSDAS: Sp
ace Telescope
Science Data Analysis System
STSDAS is the software for reducing and analyzing data from the Hubble Space Telescope. The STSDAS software development group also produces and supports other software products such as the TABLES package for handling tabular-format data and IGI for the production of publication quality graphics in the IRAF environment.



                         TABLES v2.2 RELEASE NOTES

*************************

TABLES APPLICATIONS CHANGES

TTOOLS:

New Tasks:

- THEDIT

  A new table header editor was added to ttools.  This can be used to add,
  edit, or print table header keywords.

Existing Tasks:

- TPRINT

  When printing header keywords, leading blanks are now removed from the
  value and comment before printing.  When printing data, if the last column
  on a page is to be printed left justified, trailing blanks will no longer
  be printed.

- TREBIN

  When the independent variable column in the input table contains arrays
  rather than scalar values, each row will be rebinned independently; scalar
  columns will be copied to output unchanged, and array columns (if they are
  the same length as the independent variable column) will be rebinned.  Two
  new hidden parameters were added, 'xtable' and 'padvalue'.  'xtable' is
  the name of a table of independent variable values at which the input table
  will be resampled; this is an alternative to 'start', 'end', 'step' and
  allows nonuniform output spacing.  If 'padvalue' is not INDEF, this value
  will be ignored if it is found at the end of an array of input independent
  variable values; INDEF values will also be ignored.  This option was added
  because array columns often have an allocated size that is larger than is
  actually used, and the array is padded with zero or INDEF.

- TAINSERT

  A warning message is printed for the case that the number of rows in the
  input table is greater than the array size of the column to which the values
  will be written.  The message has been modified to include the column name.
  The task only works on one column at a time, but if tainsert is used in a
  script, it can be very helpful to have the column name in the message.

- IMTAB and TABIM

  These tasks now accept filename templates for the image and table names.

- TABIM

  If the output image dimension is specified, tabim no longer gets all of
  the axis lengths from the cl parameters.  All but the last axis length are
  gotten, and the last one is computed from the number of rows and the product
  of the specified axis lengths.

- TITABLE and TXTABLE

  Arrays of character strings were not being handled correctly.

- TCALC

  The input table name can now be a file name template.

- TCHCOL

  Trailing blanks are now removed from the new values of column name, print
  format, and units.

- TSORT

  Some changes were made to speed up the operation of tsort on large tables 
  (external sorts). The file type of the temporary table, rather than the 
  input table, is set to sequential. Another change was made so that the 
  number of rows in a temporary table is computed from the number of chars 
  in a row rather than the number of reals. The number of tables used at a 
  single time during the merge was increased from 7 to 15.

TABLES LIBRARY CHANGES

TABLES I/O routines:

  For text tables with explicit column definitions, the specified data type
  may be converted to a type that is supported for text tables, i.e. from
  real to double, short to int, and boolean to an eight-byte character string.

- CFITSIO

  CFITSIO version 2.034 (23 Nov 1999) was installed in the tables package.

  The table I/O interface was modified to save the column scaling parameters
  TSCALi and TZEROi in the column descriptor.  If a table is opened new-copy,
  the original data type (the real type, in the table file) will be preserved
  for the output table, and the same scaling parameters will be used.  A new
  routine tbcscal was added to the interface to allow setting the scaling
  parameters for a previously defined column of type short or int.

  One of the options for tbpsta is to get the file I/O buffer size.  If the
  table is in a FITS file, however, the value returned was garbage, since IRAF
  file I/O is not used for FITS tables.  For FITS tables, tbpsta now calls a
  new function tbfsiz to get the buffer size used by CFITSIO.

  In the section for text tables in tbhrpr.x, the data type was being set
  incorrectly for keywords HISTORY or COMMENT if the first word of the value
  was a number, e.g. "1993 June 17".  The data type is now set to TY_CHAR if
  the keyword is HISTORY or COMMENT.

  There were two bugs in the array put routines, for the case of writing to
  the next row after the last row in the table.  In tbxapt, the parameter
  that keeps track of the number of rows in the table was not being updated;
  the data were actually being written to the table, but they were then lost.
  For the tbxap[] routines other than tbxapt, when the data type was not the
  same as the data type in the table column, the new row was garbled.

- further information about low level changes to tables:

  With regard to preserving TSCALi and TZEROi when a table is opened
  new-copy, the following changes were made.  The SPP/C interface file
  tbfxff.c and its include file underscore.h were modified to add fsukyd.
  The new or modified files are:
      tbtables.h, underscore.h, tbfxff.c, mkpkg,
      tbcscal.x (new), tbfscal.x (new), tbcadd.x, tbcrcd.x,
      tbfnew.x, tbfrcd.x, tbftya.x, tbftyb.x, tbfwcd.x, tbtopns.x.

  With regard to getting the file I/O buffer size by tbpsta, tbpsta calls
  tbfsiz, which calls fsgrsz, which is an interface routine that has been
  added to tbfxff.c, and fsgrsz calls the CFITSIO function ffgrsz.  Since
  fsgrsz didn't exist in the SPP version of FITSIO, this routine has been
  added to that version.  The modified files are mkpkg, tbpsta, tbfxff.c
  and underscore.h; the new files are tbfsiz.x and fitsio/fitssppb/fsgrsz.x.

  With regard to writing to the next row after the last row in the table,
  all the tbxap[] routines (except tbxapt) in tbxap.x were modified so that
  they now call tbxwer when writing to the row following the last row in the
  table, for the case that the data type is not the same as the data type in
  the table column.

GFLIB:

  Gflib is designed to allow GEIS specific tasks to transparently access 
  either GEIS or FITS format files. To increase the compatibility, gflib was 
  modified to copy the primary header the first time a new image is opened 
  in NEW_COPY mode.  Also, the data type of a new extension is explicitly 
  set to the data type of the old extension when an image is opened in NEW_COPY 
  mode. This works around a bug in the FITS kernel. These fixes still leave 
  unsolved the problem of copying the primary header into the extension 
  header when inherit is true.  Modifications were made so that when copying 
  a FITS file without extensions, it is no longer converted to a FITS file 
  with extensions.  Extensive modifications were made to support the correct 
  placement of header keywords in either the primary or extension header.  
  The determination of whether a FITS image has extensions is now made by 
  trying to open the first extension rather than reading the EXTEND keyword. 
  IRAF format images are now converted to simple FITS files rather than FITS 
  files with extensions.  Changes were made to fix some bugs in updating the 
  primary header.  A change was made so that FITS files created from input 
  images with group number equal to -1 (undefined) are now no longer set to 
  have group number equal to 1.  A check to determine if the input file is 
  FITS or GEIS was inserted in place of a call to determine if the image has 
  groups or extensions.

GILIB:

  Two new procedures have been added to the gilib library to return 
  information from the FITS kernel and to step through the GEIS group 
  parameter structure.  These procedures were added to support changes 
  in gflib.

STXTOOLS:

  The number of groups in an image was not being computed correctly when 
  the user omitted the image extension from the image name.  The code was 
  modified so that the default extension is now added to the root name.
  In order to fix a bug reported in tcalc, indef strings are now capitalized
  before being added to the expression evaluator.