Release Notes for STSDAS 3.4 This release of STSDAS contains changes to SYNPHOT, CTOOLS, CALSTIS, CALACS, aXe, MultiDrizzle, and the DITHER package. There were also changes made to support compilation of the code under new compilers on several platforms. A couple of new tasks have also been added; including, SAACLEAN to the NICMOS package, 'tweakshifts' to the DITHER package and a Python interface to SExtractor. The specific changes are detailed in the following sections. Platform support ================ Changes were made which should support newer compilers when they convert the SPP to Fortran and do type-checking on the extern function The type checking problem originally showed up under Mac OS X Tiger, but also came up when building on Linux using GCC 4.0. These changes should now allow the code to compile on these platforms. Python Library ============== A new automated Python interface to SExtractor was added to the STSDAS$Python directory, primarily for use with the new prototype task 'tweakshifts'. This new interface, written by Laurent Le Guillou, allows you to configure SExtractor, run it and get back its outputs without the need of editing SExtractor configuration files. By default, configuration files are created on-the-fly, and SExtractor is run silently via python. If no executable can be found, then an Exception is thrown for the calling Python routine to handle. This wrapper interface has been tested on SExtractor versions 2.2.1 and 2.3.2. HST_CALIB.SYNPHOT ================= - Bandpass support Synphot now supports the SDSS ugriz bandpasses. These bandpasses can be specified using the usual syntax to specify the obsmode, eg "sdss,g" for the g band. The synphot.obsmode task will expand "sdss" to provide the legal sdss bandpasses, and the UBV mode in the synphot.modeinfo task has been modified to include the SDSS system. To obtain the synphot reference files that include the SDSS bandpasses, download the latest version of the synphot1.tar.Z file, available at ftp://ftp.stsci.edu/pub/software/stsdas/refdata/synphot/synphot1.tar.Z - Spectrum truncation Negative fluxes in a spectrum will now result in a warning to the user when they get truncated while converting the fluxes to magnitudes. Previously, this truncation occurred silently and could produce unexpectedly bright values of the magnitude from 'calcphot' without the user being told of the truncation. - THERMBACK Support was added for user-specified output units in the synphot.thermback task. The thermal background rate is now written to a new output parameter, thermback.thermflux, as well as to stdout. HST_CALIB.CTOOLS ================ - HSTEPHEM Changes were made to the output table written by 'hstephem' to be consistent with the current version of 'odelaytime'. The name of the output column of times was changed from MJD to TIME, and the times are now offsets from the time for the first row. That time is still recorded in the header keyword FIRSTMJD, but most other keywords are no longer being written because they are not used. - ODELAYTIME Relativistic correction in 'odelaytime' was corrected to use the proper units for the angles when computing locations of the Earth and other Solar system objects. PLAYPEN ======= - ILS Task 'ils' was modified in order to accept non-aligned images when working in multi-channel mode. HST_CALIB.NICMOS ================ - SAACLEAN The new task, 'saaclean', was added to HST_CALIB.NICMOS package. The 'saaclean' task measures and removes an estimate of the SAA persistence signal in a NICMOS image. It was developed as a stand-alone Python task and an IRAF interface has been provided to allow it to be run as an IRAF task under the NICMOS package. As a result, this task can only be run under PyRAF. The input image to the task must be at least partially calibrated, including zero-read subtraction, dark subtraction, and linearization. The image may also be flatfielded. The task works by determining an appropriate scale factor by which to multiply the persistence image before subtracting it from the science image. It does this iteratively, measuring the noise in the image after each subtraction, then fits a parabola to the results to determine the minimum. Before performing any corrections, the task flags hot pixels, pixels at the edges, and pixels in the central row and column, to exclude them from the estimate and correction process. A summary of the results is written to standard output, and is encoded in the header of the output file. A new section of header keywords is inserted following the "POST-SAA DARK KEYWORDS" section, labelled "SAA_CLEAN output keywords". They include: SAAPERS SAA persistence image SCNPSCL scale factor used to construct persistence img SCNPMDN median used in flatfielding persistence image SCNTHRSH Threshold dividing high & low signal domains SCNHNPIX Number of pixels in high signal domain (HSD) SCNLNPIX Number of pixels in low signal domain (LSD) SCNGAIN gain used for effective noise calculations SCNHSCL HSD scale factor for min noise SCNHEFFN HSD effective noise at SCNGAIN SCNHNRED HSD noise reduction (percent) SCNLSCL LSD scale factor for min noise SCNLEFFN LSD effective noise at SCNGAIN SCNLNRED LSD noise reduction (percent) SCNAPPLD to which domains was SAA cleaning applied - PEDSKY, BIASEQ, PEDSUB Input checking for these tasks was made more robust. It now verifies that the inputs can be found before trying to process them. HST_CALIB.STIS ============== -CALSTIS CALSTIS has been updated to Version 2.19. Temperature corrections to the sensitivity have been implemented by adding two columns to the TDS file. One called REFTEMP contains a single value for each optical element. The second column, TEMPSENS, uses the same wavelength grid as already defined by the tds corrections so that the temperature correction can be allowed to vary as a function of wavelength for an individual grating (although initially we will use a constant value for each grating). The correction factor to the extracted flux at each wavelength will then be (1 + TEMPSENS * (temp-REFTEMP)) Where temp is given by the science extension header keywords: OM1CAT for the FUV-MAMA OM2CAT for the NUV-MAMA OCCDHTAV for side-2 CCD data For side 1 CCD data the correction factor will always be unity (no temperature correction). However, the tds reference files will always contain just the side 2 values, so applying no temperature correction for side-1 CCD data has been hard wired into the code based on detector==CCD and the observation date. The temperature correction factor will be calculated at each wavelength for which the TDS vector is defined, and then linearly interpolated to each wavelength in the data. The correction then get applied at the same time that the TDS correction gets applied. The flux correction in 'calstis7' now also includes a dependence on the temperature. For some STIS modes, the grating and aperture throughputs cannot be simply multiplied together to get the net throughput for point sources. Instead, an additional wavelength-dependent correction factor that depends on the grating/aperture combination used was needed. A new reference table (GACTAB) has been created to contain the array of correction factors for various combinations of grating, central wavelength, and aperture. Calstis6 has been modified to read this table, unless the name is blank or "N/A", and apply the correction factor during the flux-correction step. The correction for the nonuniformity of charge transfer efficiency in CALSTIS did not allow for the possibility of a subarray. The algorithm for CTE correction for a subarray is not known for sure. The simplest solution was to assume that the loss of CTE is the same as if the data were in a full-frame exposure at the location of the subarray. This simple adjustment has been implemented within CALSTIS6 to the function responsible for flux correction. A bug in the blevcorr step was found in the code that rejected outliers in the virtual overscan region. When all values of the virtual overscan were zero, CALSTIS rejected all those values and tried to divide by the number of valid points, which was then zero. This was fixed by regarding all the pixels as valid if they're all zero. The scaling factor for binning was removed from the correction for the tilt angle of the slit. Due to the use of the F1 aperture for a wavecal observation, one of the occulting bars was about 100 pixels off the aperture. There was a loop in CALSTIS with incorrectly specified loop limits so that they depended on the location of the occulting bar, and CALSTIS wrote beyond the end of an array, which resulted in a bus error. - X1D The 'xoffset' parameter from calstis6 made visible in the 'x1d' task. - ODELAYTIME Relativistic correction in 'odelaytime' was corrected to use the proper units for the velocity aberration angles. HST_CALIB.ACS ============= CALACS was updated to Version 4.5.9. A help file was added for the stand-alone task 'acsrej'. A memory bug was fixed in the handling of the number of images each sub-product had as input. This will allow an arbitrary large number of images to be processed in a single association. Another memory bug for large numbers of inputs to DTH association trailer files was also fixed. Usage and names of the CFLTFILE and SPOTTAB reference files was added to HISTORY keywords and trailer file for coronographic data that gets processed by CALACS. HST_CALIB.ACS.AXE ================= The version of aXe distributed with the ACS package was updated to Version 1.5. This version has several new features: it provides a task to generate the object lists, which are necessary to extract the spectra from grism/prism images; a new contamination scheme was implemented which provides, for every spectral bin, a quantitative estimate on the contaminating flux from other sources; aXe is now capable of computing and applying optimal weights when extracting spectra; new alternatives in specifying the extraction width have also been added. One of the new aXe tasks requires a Segmentation file generated with SExtractor as input. During tests, small problems were encountered with Segmenatations files generated with SExtractor version 2.3, and we recommend users to update to version 2.4. More details on the specific changes included in aXe-1.5, as well as the user manual, can be found at: http://www.stecf.org/software/aXe/ ANALYSIS ======== - TWEAKSHIFTS A prototype version of 'tweakshifts' was added as a new task to the 'dither' package. Tweakshifts provides an automated interface for computing residual shifts between input exposures being combined using MultiDrizzle or PyDrizzle. The shifts computed by Tweakshifts correspond to pointing differences after applying the WCS information from the input image's headers. Such errors would, for example, be due to errors in guide-star positions when combining observations from different observing visits or from slight offsets introduced upon re-acquiring the guide stars in a slightly different position. This task was written using Python and relies on the Python interface to the IRAF environment, PyRAF, for its operation. As a result, this task can only be run under PyRAF. The primary implementation of 'tweakshifts' involves using existing IRAF tasks such as DAOFIND, GEOMAP, and CROSSDRIZ to compute the shifts. Tweakshifts automates the operation of these tasks to produce a shiftfile and reference WCS file which can serve as input to MultiDrizzle. The shiftfile will contain the residual shifts for each input image, while the reference WCS file consists of a FITS header with all the WCS keywords appropriate for the reference image without any image data. The reference WCS will then be used by MultiDrizzle to properly interpret the shifts from the shiftfile for the final alignment of the images. Tweakshifts supports multiple methods for determining the residual shifts between images: primarily, catalog matching and cross-correlation. Each mode of operation has its own requirements for input file formats in order to properly compute the shifts between the images. - WBLOT The task 'wblot', along with its help file, was added to the 'dither' package. Blot and wblot may be thought of as the reverse of Drizzle and are normally used in this role. They were created to allow users to compare a drizzled output image with each of the original input images for the purpose of cosmic ray and chip defect removal. Performing these operations generally requires a number of ancillary scripts and tasks in addition to the Blot task and these are to be found in the STSDAS dither package. Wblot is a version of blot which also allows the transformations from input to output pixels to be defined by the WCS of the images rather than user-specified linear transformations. This can be done either by specifying the name of a reference image, via the refimage parameter, from which the WCS is read, or by specifying the values directly. When using the geomode=wcs option it is assumed that the linear WCS of the input image is exact at the reference pixel. The mapping determined to take input pixels to the output grid assumes this and hence any linear transformations added in the coefficients file will have no effect - only the non-linear coefficients will be relevant. - DRIZZLE STSDAS 'drizzle' did not correctly initialize the coeffs values internally for the case where no coeffs were provided as input; the original initialization used all zeros for the coeffs. This resulted in the WCS values not being recomputed at all by the STSDAS 'drizzle'. This bug was fixed and results in proper recomputation of the WCS values for the output image. Secondary geometric parameters were added to the callable interfaces for 'drizzle' and 'blot'. This allows almost full access to all the capabilities found under the IRAF interface for 'drizzle' and 'blot' directly from Python. - MultiDrizzle MultiDrizzle has been updated to version 2.7.0. The primary changes include: - New parameters 'driz_cr_grow' and 'driz_cr_ctegrow' for flagging cosmic ray CTE tails have been added to the interface. These new parameters only control the regions used around already identified cosmic-rays for more stringent tests to identify and mask CTE affected tails. - Changes were made to the IRAF parameter interface to allow for the use of the new 'minimum' combination function in the CREATE MEDIAN step. - Output products from MultiDrizzle now contain HISTORY keywords reporting what versions of MultiDrizzle, PyDrizzle, PyFITS, and other pertinent libraries were used to generate the product. - Input images with EXPTIME of 0 (zero) seconds now get ignored. They are not included when running MultiDrizzle, and a warning message reports what files were ignored. - PyDrizzle PyDrizzle has been updated to Version 5.6.0. This new version includes the following set of changes/bug fixes/improvements. - This new version implements the proper conversion of the output product to 'counts' based on 'units' parameter. This required adding the exposure time as an attribute of the Exposure class in order to allow for proper conversion of the product from 'counts' to 'cps' and back.