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.

 
 
                         STSDAS v2.2 RELEASE NOTES
 
*************************

CHANGES to APPLICATIONS
 
ANALYSIS.DITHER:

  A new version of dither (version 2.0) is now available.  The coefficients
  nic-3 were updated and coefficients nic-1 and nic-2 were added.  The old
  version of dither was copied to SOBSOLETE.OLDDITHER.
  
New Tasks:

- LOOP_BLOT and LOOP_DRIZ

  These two new tasks simplify the blot and driz loops.

Existing Tasks:

- AVSHIFT and GPREP

  The tasks avshift and gprep now get coefficients from a new pset
  "wpfc2_chips" instead of using fixed values embedded in the task source
  code.

- CROSSDRIZ

  The task crossdriz was changed so that it now works when coeffs="header" 
  is specified for STIS and NICMOS data.

- DRIZ_CR

  It is now possible to change suffixes for input and output files.  An 
  option was added to weight using flatfield.  Parameters added are: 
  bl_suffix (default = "_bl"), deriv_suffix (defaul = "_bl_deriv"), 
  cr_suffix (default = "_cr"), cor_suffix (default = "_cor"), 
  flat (default = no), and flt_im (default = "").

- DRIZZLE

  The task drizzle was upgraded by copying the current version (1.41) from 
  the stecf package.

- ROTFIND

  The image center is now obtained using CRPIX.

- SHIFTFIND

  The xcenter and ycenter parameters for the task shiftfind have been
  replaced by xshift and yshift.  The image center is now obtained using
  CRPIX.

- SKY

  The task sky now accomodates countrate images (e.g. NICMOS).  The user
  parameter EXPNAME was added.
 
ANALYSIS.FITTING:
 
  The data ingestion code of the analysis.fitting library was modified to 
  fix a floating point overflow that occurred when dealing with 2-D spectra 
  that have log wavelength scale and the user selected samplepar.axis = 2 
  (i.e., fit over the spatial direction).

ANALYSIS.GASP:
 
- STGINDX

  A minor change to the stgindx script was made so that when the Guide Star 
  index table is copied to disk, a temporary file is created in a temporary
  directory instead of in the current directory.

- XYEQ

  Previously, this used equations from Smart's Spherical Astronomy, which are
  singular near the poles.  The relevant subroutine has been replaced with
  code based on tables$lib/stxtools/xtwcs.x.

ANALYSIS.ISOPHOTE:

- BMODEL, ISOMAP and ISOIMAP

  These tasks sometimes gave slightly off results when the table created by 
  'ellipse' has a lot of flipping position angle values due to noise (from 
  near +90 to -90 degrees and back).  This was fixed by adding a call to 
  tcalc that converts all negative position angles to the > 0.0 range.

- ELLIPSE

  A subtle floating point error due to zeroed argument in sqrt function was
  fixed.  This only occurred with certain image geometries and when using 
  "median" sampling.  The magnitude computation was also modified. The
  former definition showed to be inconvenient and eventually caused errors 
  due to misinterpretation by users.

CONTRIB:

- GAUSSFIT

  The task definition for gaussfit in contrib.cl was not working, since
  gaussfit is a host system executable, not an iraf native task.  The task
  is now defined to be gaussfit.cl in the gaussfit subdirectory.  Gaussfit.cl
  is a new file which constructs the Unix command line to run the executable,
  and pipes that command to the cl.

- SPFITPKG

  A minor bug fix was made to the specfit task to prevent errors that were
  occurring when run on Linux redhat platforms.

GRAPHICS.SDISPLAY:

- COMPASS

  The 'angle' parameter was changed from a real to a character string.  
  The user may therefore need to 'unlearn compass' before using it.  The
  default of "" (or "INDEF") means the same as the previous INDEF, that the
  image orientation should be computed from the CD matrix.  An explicit
  numerical value can be given, as before.  The new option is that 'angle'
  can be the name of an image header keyword, such as ORIENTAT or PA_APER,
  which will then be read to get the orientation.  

GRAPHICS.STPLOT:

New Tasks:

- RDSIAF

  This task converts PDB SIAF files into an sdas table.  It is used by the 
  siaper task in stplot.  It was previously in the old cdbs package, but was 
  not included in the new cdbs package. Dependencies on the cdbs libraries 
  have been removed and the task has been installed in the stplot package.

Existing Tasks:

- IGI

  A new function in IGI ('pscmd') was added to pass PostScript commands 
  un-interpreted to the output.  IGI now will only generate PostScript-specific
  commands from the PSFNT and PSCMD commands when using a PostScript output 
  device with 'psikern'.

HST_CALIB.CTOOLS:

New Tasks:

- SPLICE, FWEIGHT, SFLUX, PWEIGHT

  This set of tasks is for splicing spectral data that are in tabular format
  with columns for wavelength, flux, error, data quality, and weight.  The
  fweight or pweight task can be used to create the weight column; sflux is
  a utility for use with fweight.  The splice task averages and resamples
  the spectra, writing the output in a format similar to the input format.

Existing Tasks:

- CKWSTIS 

  The two psets ckwstis2.par and ckwstis4.par for stis spectroscopic modes
  were modified to add 'wcptab', the wavecal parameters table.

- MKMULTISPEC

  A portion of the interactive capabilities (h,i,j,k,l keys) which were broken
  due to changes in the underlying system were fixed.

- RESAMPLE

  The task was modified to reverse the FOS AMBER spectra properly.  Further
  modifications were required to accommodate changes in the underlying system.
 
- TOMULTISPEC

  Modified the task so that it does not abort when trying to acquire
  informational text from a FITS table.

HST_CALIB.FOS:

- YFLUXCAL

  Updated this task to accommodate the change in the 'upreffile' task 
  interface.

HST_CALIB.NICMOS:

- ASNEXPAND:

  This is a new task that can be used to add the extra columns to a
  NICMOS ASN table that are normally added by the CALNICB pipeline task
  to its output ASC tables. These columns include background signal level
  and image offset data. This is useful for users who want to use the
  background and/or offset information as input to CALNICB, without
  having to first run CALNICB once just to create a new association table
  with the additional columns.

- BIASEQ:

  The BIASEQ task has been rewritten as a native IRAF task, replacing the
  previous CL script version. A few of the task parameters have changed,
  therefore users should unlearn the task before using the new version.
  The changes include full range specification capabilities for the
  "skysamps" parameter, splitting the "nreject" parameter into the two new
  parameters "nlow" and "nhigh", new parameters "dqon" and "dqpar" which
  can be used to reject pixels based on their DQ values, and the new
  parameter "thresh" which allows the user to set the threshold level for
  the intra-quadrant bias jump detection algorithm.

- CALNICB

  CALNICB v2.4 includes the following changes relative to v2.3.1
 
  - The routine to identify sources in images is only called if the images
    are of an external source (i.e. not for darks or flats).
 
  - Initial support for processing Post-SAA dark image associations
    (to be implemented in Cycle 10) has been added.

- ITERSTAT:

  The ITERSTAT task has been changed from being a hidden task in the NICMOS
  package to being visible, and a help page has been created. This task can
  be used to compute image statistics while iteratively rejecting outlieing
  pixel values.

- NICPIPE:

  The NICPIPE task has been updated to remove the "stage=pedsky" parameter
  option. The PEDSKY task (see below) has been updated to accomdate
  flatfielded images on input, therefore it is no longer necessary to apply
  partial CALNICA processing to images intended for input to PEDSKY.

- PEDSKY:

  The PEDSKY task has been rewritten as a native IRAF task, replacing the
  previous CL script version. A few task parameters have changed, therefore
  users should unlearn the task before using the new version. Changes include
  the capability to accept flatfielded images on input (the flatfield is
  temporarily backed out for PEDSKY processing), the "salgorithm" parameter
  settings have been modified, the "inter" parameter has been removed
  (interactive graphics operations are no longer possible in the new version
  of the task), new parameters "dqon" and "dqpar" have been added which can
  be used to reject pixels based on their DQ values, and the task now
  automatically flags and rejects pixels suspected of containing signal from
  a source (the new parameter "keepflags" allows the user to retain these
  source flags in the output image). See the on-line help page for more
  details.

- PEDSUB:

  This is a new task which can be used to estimate and subtract "pedestal"
  signal from NICMOS images. It is similar to the PEDSKY task, however while
  PEDSKY only works well on sparsely-populated images with large amounts of
  blank sky, PEDSUB can be effectively applied to most any image, regardless
  of source content. Various user-settable parameters can be used to
  obtain optimum results for different types of images. See the on-line help
  page for more details.

- SAMPCUM:

  The SAMPCUM task has been changed from being a hidden task to being visible,
  and a help page has been created. It can be used to accumulate a set of
  "first difference" images into a normal NICMOS MultiAccum stack of readouts.

- SAMPDIFF:

  The SAMPDIFF task has been changed from being a hidden task to being visible,
  and a help page has been created. It can be used to compute "first
  differences" of the accumulated samples in a NICMOS MultiAccum image.

HST_CALIB.PAPERPROD:

  The paper products code for FOC, WFPC2, STIS and NICMOS were revised to 
  provide PDF bookmarks when the output is converted from PostScript to PDF 
  format.  This included the addition of functions to implement the PDFMARK 
  PostScript command within the paperprod code, and a new function in IGI to 
  pass PostScript commands un-interpreted to the output.

HST_CALIB.STIS:

- CALSTIS

  Calstis version 2.7 (10-July-2000) includes the following changes (from
  version 2.3):

  The input raw image is checked to be sure the exposure time is not zero.
  A zero exposure time is only allowed if TARGNAME = 'BIAS'.

  For MAMA data, calstis1 now computes the global count rate, rather than
  relying on the GLOBRATE keyword (unless the exposure time is zero).  The
  computed value is then used to update the GLOBRATE keyword in the output
  extension header.

  The bias level is now subtracted before the error array initialization.

  The minimum EXPSTART and maximum EXPEND from all input imsets are now
  determined, and the min & max values are used to update those keywords
  and TEXPSTRT and TEXPEND in the output file.

  There was an error in 1-D extraction that affected the exact placement and
  size of the extraction box when applied to binned data.  The error affected
  the extracted values and could cause an abort due to access to unallocated
  memory.  The error did not affect extractions from non-binned data.

  Three changes were made in the wavecal processing step:

  Before doing the cross correlation between an observed wavecal and the
  template spectrum, the template is now set to zero in the region near the
  edge of the wavecal image.  This is to work around a problem for G230L
  data:  a set of very bright lines near the image edge caused the cross
  correlation to fail.

  The shift in the cross-dispersion direction for long-slit data is now
  determined using a different algorithm.  Processing is the same as before
  through the step of collapsing the data to make a 1-D array, the slit
  illumination pattern.  Previously, the shift was found by locating each
  edge of each occulting bar and then averaging those shifts.  Now, each
  bar is found by using a cross correlation with a template.  The slit
  illumination pattern is normalized and inverted, so it is near zero over
  most of the range but is near one where the occulting bars are located.
  The cross correlation should include a triangular peak, due to the
  presence of the occulting bar, and the height of the peak should be the
  width of the bar.  The ratio of actual peak height to the expected peak
  height is used as a weight when averaging the bar locations, and it is
  used to reject cases (by setting the weight to zero) where the ratio is
  outside the range of 0.5 to 1.5.

  For echelle data, the shifts in both axes are now determined by taking a
  cross correlation between a template image (constructed on-the-fly) and the
  unrectified wavecal image.  This is a major change from the previous method,
  which used the 2-D rectified file containing one image for each spectral
  order.  Sometimes the input MOFFSET2 keyword is not accurate, in which case
  calstis7 might label the output images with the wrong spectral order, and
  then calstis4 would fail to find the shift in the dispersion direction.  By
  working instead with data that have not been 2-D rectified, this problem
  with MOFFSET2 can be avoided.  One consequence of this is that the MOFFSET1
  and MOFFSET2 offsets are now included in the SHIFTA1 and SHIFTA2 values that
  calstis4 determines.

  The Howk and Semback algorithm for correcting scattered light has been
  implemented in the 1-D extraction step.

  Calstis6 and calstis7 now support a cubic term in the dispersion relation.
  The new term is (spectral_order * wavelength)**3.

  The function that applies the dispersion relation for 2-D spectral
  rectification was modified to handle OPT_ELEM = "PRISM" data.  The
  coefficients have a completely different interpretation for prism data
  than they do for grating data.

  When flagging the regions covered by the occulting bars, there was a bug
  in the case that one of the bars overlapped the lower or upper edge of
  the output image.  This was either harmless (a bit was set in values in
  the border region), or it would cause calstis to crash.

  A new boolean parameter 'center' was added to x2d, with a default value of
  no.  If center is set to yes, the output 2-D rectified image will be offset
  so that the target will be centered in the image in the cross-dispersion
  direction.

  A bug in calstis8 was fixed.  When working on flux-calibrated data, calstis8
  averages rather than summing, using the exposure time as the weight.  The
  bug is that it was dividing the sum by the last exposure time read, rather
  than by the sum of the exposure times.

  A bug in calstis11 was fixed.  The science image is scaled by the exposure
  time and binning factor prior to being subtracted from the wavecal, but the
  CCD gain must also be included in the factor, and this was not being done.

  The default for calstis12 is now to linearly interpolate the shifts over
  time, in the case that the wavecal file has more than one imset.  Previously,
  the shifts were taken from the imset that was nearest in time to the science
  image; this is still available as wavecal.option = "nearest".

- INTTAG

  Inttag.c was modified for the case that the output file will be low-res
  (1024 x 1024, rather than high-res 2048 x 2048).  The coordinate parameters
  CDi_j and CRPIXi in the input file are for high-res, and previously they
  were not being converted to low-res.  For low-res output, CDi_j and CRPIXi
  are now converted to low-res, and the LORSCORR switch is set to "COMPLETE".

- TASTIS

  The mkpkg file now compiles tastis as a host program instead of as a native
  iraf task.  From iraf, tastis is now defined as a cl script which runs the
  executable.  This was done so tastis could return an exit code if it is run
  from Unix.  Normally tastis will return 0 as an exit code.  If at least one
  of the acquisitions did not succeed, a message is printed to stderr, and 1
  will be returned as the exit code.  If an out-of-memory error occurs, an exit
  code of 2 will be returned.

  PEDESTAL is now read from the primary header of the raw file instead of
  from the data portion of the _spt.fits extension. 

  The flux in the confirmation image is now only required to be at least
  90% of the maximum in the ACQ/PEAK scan, instead of 100%.

- WAVECAL

  For early CCD data, the external shutter was open during the wavecal
  exposure, so one step in the processing is to subtract the target from
  the wavecal.  There was a bug in the wavecal script for the test as to
  whether this step should be performed.

- X1D
 
  A bug was fixed in x1d that surfaced when processing binned data. An 
  incorrect computation of the extraction box size and position caused wrong 
  data extraction and an eventual write to unallocated memory. The bug did 
  not affect extractions from non-binned data.  The help file was also edited 
  to conform to the current x1d version.

HST_CALIB.SYNPHOT:

- SYNPHOT libary

  The synphot library was modified to correct a bug in the extinction law
  gal3 (Cardelli, Clayton & Mathis 1989, ApJ 345, 245-256) for the
  region  3.3 < x < 5.9, where x is the inverse of the wavelength in
  microns. The revised formula makes about a 3% difference in the answer
  in this region for an extinction of 1 magnitude.  Additional changes to
  the synphot library include additional coding to print an error message with
  the file name when an open fails, and an error test to detect the case
  where the parameter following the sharp (#) character is missing.

  The refdata parameter file was updated so that the default graph and
  component lookup table patterns now match FITS files. Two wavelength 
  tables for the acs were also updated in synphot$data.

New Tasks:

- MKTHRU

  This is a new task to create throughput tables from ascii files.  It will 
  also convert existing throughput tables in stsdas binary format to fits 
  format.

Existing Tasks:

- BANDPAR 

  A new photometric parameter 'wpeak' was added to the bandpar task.  This
  parameter reflects the wavelength at which throughput has its maximum.

- OBSMODE

  Obsmode was giving misleading answers for the observation mode string 
  acs,wfc1. This is because of the way the graph table was structured: the 
  keyword wfc1 was both at the beginning and end of the graph for this 
  instrument. The code was modified so that it does not follow default nodes 
  if every keyword in the observation mode is already matched.  Another 
  modification was also necessary to single keyword (instrument only) 
  observation modes as a special case, to prevent them from returning the 
  entrie graph. This is caused by the way the beginning of the graph table 
  is structured. 

- PLSPEC

  The previous fix to the plot limit calculations introduced an error. 
  The calling sequence to setlimits offset the start of the wave array, but 
  not the start of the flux array. This has been fixed.  In addition, a 
  new procedure has been coded to to calculate the wavelength limits.  
  This affects how plspec performs the plot limit calculations when the 
  calculated based on where the flux falls to a fraction of its maximum value.  

  A new function ('em') has been added to the synphot calculator. The 
  em() function computes a emission line with a gaussian profile. The user 
  specifies the central wavelength, full width half maximum, total flux of 
  the line, and flux units, in that order. The function that computes the 
  wavelength set for most synphot tasks was also changed.  The change 
  ensures that the wavelength spacing does not fall below the precision of 
  the real data type. The change was necessary because the very narrow width 
  of emission line spectra was creating output files with too narrow spacing 
  in the old code.  Some other changes were made to insure that pltrans writes 
  to the primary header and not the extension header.

HST_CALIB.WFPC:

- UCHCOORD

  A bug was fixed so that single exposures will now work properly.

- WARMPIX

  This task was modified to work with hot pixel talbes of all three formats
  (FITS, STSDAS, and text), under the new version of TABLES, which has the
  capability of specifying column names for text tables.

PLAYPEN:

- HSUBTRACT
 
  Out-of-bound checking was added to some array operations. The task
  previously crashed with floating point errors when run with certain 
  data/parameter combinations.

SOBSOLETE:

New Tasks:

- OLDDITHER

  The old dither package was moved from ANALYSIS.DITHER to SOBSOLETE.OLDDITHER 
  (see analysis.dither release note)

New Location:

- NEWREDSHIFT

  The newredshift task was moved back to its previous location in 
  TOOLBOX.TOOLS (see toolbox.tools release note)

TOOLBOX.HEADERS:

- UPREFFILE

  The task was modified so that files with the extension "wav" are not 
  regarded as reference file names.  This was needed because wavecal file 
  names look like reference file names and the task previously treated them 
  as such.  In addition, the task was modified so that FITS files would not 
  always be placed in the ref directories (graph and component tables should 
  be placed in the mtab directory).

TOOLBOX.IMGTOOLS:

- ADDMASKS
 
  The help file for addmasks was updated to reflect its current location
  (imgtools package) and current features.  Note the extra text on why flags 
  need not be set for the new instruments.

- BOXINTERP

  The parameters 'innerx', 'outerx', 'innery' and 'outery' are supposed to be
  the full widths of the inner and outer regions in pixels, and they should be
  odd numbers.  If the user specifies an even number, the code is supposed to
  increase it to the next odd number.  The previous code did this incorrectly
  (it would have converted innerx=1 to 3, for example).  This has been fixed.

- GCOPY

  Gcopy has been modified to support the new version of gflib.  Additional
  modifications were made to remove a double open of the first group of the
  input and output files. Because of an optimization in gflib, this causes 
  the second open, which is the one with the correct arguments, to be ignored.

- IMCALC

  Imcalc was crashing with a floating point exception under Tru64 Unix. The 
  problem was that a real constant was being passed in the argument list to 
  a double precision variable. The constant was modified to make it explicitly 
  a double precision value by adding a d0 exponent.  A second modification 
  was made so that the data type of the output image cannot be modified if it 
  is one of the input images.   Modifications were also made to support the 
  new version of gflib.

TOOLBOX.IMGTOOLS.MSTOOLS:

- MSARITH  

  Increased size of some keyword storage strings. The program crashed
  with segmentation violation when dealing with STIS x2d images due to
  the size of the BUNIT string. Only noticed under Linux.

- MSCOMBINE
 
  Fixed minor bug that caused harmless warning messages at file deletion
  time.

- MSCOPY

  WFPC2 has been added as a possible value for the INSTRUME keyword.  For this
  case, the number of extensions per imset is then set to one.

TOOLBOX.TOOLS:

New Task:

- NEWREDSHIFT

  This task was moved from sobsolete back to its previous place in
  toolbox.tools


SYSTEM LIBRARY CHANGES

CVOS

The current CVOS is Version 3.4.
 
The CLIO portion of the CVOS library was modified to contain both "real"
and "float" bindings of certain I/O routines (i.e., c_clgetr() and c_clgetf()).
Previously, the bindings were named to be compatible with C nomenclature.
New routines were added to reconcile the names of the C bindings to the IRAF
routines.  The new routines are: c_clgetr(), c_clputr(), c_clglpr(),
c_clgpsetr(), and c_clppsetr().
 
The c_iraf.h file was modified to include the IRAF_SZ_FNAME macro.
 
The library was modified to address a problem which allows for the proper
compilation of C native IRAF tasks under Solaris 2.8.
 
The library was modified to address a problem with exception handling
for host-level tasks and the SIGINT signal.  This problem was manifested only
with IRAF v2.11.2 on the SOLARIS platform.

HSTIO

The current HSTIO is Version 2.5.
 
The library was upgraded to provide better and more consistent support
for the reading and writing of one dimensional images.
 
Any line acquisition interface routines which have the line number being
passed as a parameter expect the line number to be a value in a zero-based
reference system (i.e., the first line would be designated as 0).