STScI Logo

Release Notes for stsci_python
stsci_python 2.13 Release Notes

STScI_Python Version 2.13 Release Notes

July 2012

This release includes new versions of PyRAF, PyFITS, STWCS, pytools,
along with drizzlepac and related packages as the replacement
for MultiDrizzle and PyDrizzle. This release also includes
instrument-specific packages to support ACS, NICMOS, and COS.

The code for multidrizzle and pydrizzle are now officially
deprecated and will no longer be supported as they have been
replaced by the new drizzlepac package.

The convolve, image, and ndimage packages have been included with
this release to insure compatibility with the rest of our code.

Platform Support
Normally, platform support issues do not apply to Python tasks,
as most Python code will run on all platforms on which Python has
been installed. This distribution was tested to correctly support
installation on Linux and Mac OS X 10.6 (Snow Leopard), while an
installation for Windows will be provided at a later date.  As of the
June 2010 release, PyRAF no longer requires the installation of IRAF.
Note that the only IRAF distribution for Windows runs under Cygwin,
but no testing of PyRAF has been conducted under Cygwin.

No Solaris Support
This release has NOT been tested on the Solaris platform.  We no longer
build Solaris distributions for any of our code, although the source code can
always be downloaded and compiled locally as needed.

Documentation for this release can be found online under the 'Documentation'
link found on the stsci_python web page at:

The documentation found here has been created using the Sphinx-based
documents provided with the tasks themselves, and in most cases,
includes both API documentation as well as user help and examples.

Python Environment
This release has been tested using Python Versions 2.6.5 and 2.7.3. This
release also requires at least numpy 1.5.  All packages within this
release have been revised to support easy_install of the code, while
still allowing the code to be installed using the disutils command

Python 2.5 support
Many of the packages in this distribution, including the new drizzlepac
package, have been implemented using features not available under
Python 2.5 in preparation for the transition to Python 3.x.  Future
releases will only support Python 2.6 or newer as part of this transition,
and all testing of our code under Python 2.5 has been terminated.

Python 3.x support
The majority of stsci_python does not yet support Python 3.  While the scope
of the work involved in transitioning to Python 3.x is being considered, be
aware that we expect to support Python 2.x for quite some time.  At this
time however, both the PyFITS and the PyRAF packages support Python 3.2 (as
well as Python 2).

Package Release Notes

This describes changes from calcos version 2.15.4 to 2.18.5.

A bug was fixed regarding the Y locations of flagged regions in the DQ
image.  If the SHIFT2[ABC] keyword is greater than or equal to +0.5,
the flagged region was not shifted correctly.

An association may now include exposures taken with different values of
the CENWAVE keyword.  New keywords MCENWAVE, MFPPOS and MFPOFSET are
written when averaging spectra.

Under some circumstances the APERTURE keyword can have a value such as
RelMvReq that does not indicate what aperture was used for the exposure.
Additional information (e.g. the value of PROPAPER) is now used to help
determine which aperture was actually used.

If an exposure was taken at an aperture position that is not in the list
of currently defined positions (in which case keyword LIFE_ADJ should
be -1), the offset from the original location of the spectrum will be
determined from the location of the aperture block, and this offset will
be applied when looking for the wavecal or target spectrum.

A new GSAGTAB reference table is used to flag regions of the FUV detector
where the gain is severely reduced.  An HVTAB reference table is used to
assign keyword values for FUV high voltage, and those keywords are used
with the GSAGTAB.

The TIMELINE table has a new SUN_ZD column, which gives the angle between
HST and the Sun, as seen from the center of the earth.  This is approximately
the zenith distance, hence the column name.

The code for finding a target spectrum in the cross-dispersion direction
has been improved, and the FWHM of the profile and the error estimate of
the spectrum location are now printed.  The "--find" command-line option
has been replaced with "--find value".  The value may be "yes" (use the
found location), "no" (use the value from the xtractab and wavelength
calibration), or a numerical cutoff value.  If a cutoff value was given,
the found location will be used if the error estimate is less than or
equal to the cutoff.

New command-line arguments '--version' and '-r' have been added, to
print the version number and the full version string respectively.

An input file name may contain a wildcard.  Previously it was possible to
process multiple files by explicitly listing them on the command line, but
this was limited by the upper limit for a command line.

This new package replaces multidrizzle.  Standard processing of all
HST ACS and WFC3 data formerly performed using multidrizzle has been
converted to use the astrodrizzle task from this package.  All WFC3 data
retrieved from the HST archive since June 6 and all ACS data retrieved
from the HST archive since July 11 have been processed using the
astrodrizzle task from this package instead of multidrizzle.

Full details about DrizzlePac can be found online at:

This package contains these interactive tasks:
    - astrodrizzle: replacement for multidrizzle
    - tweakreg:     image alignment task, replacement for tweakshifts
    - tweakback:    task to apply an updated WCS solution from a drizzled
                    image to the original input (flt.fits) images
    - pixtopix,pixtosky,skytopix:
                    coordinate transformation tasks using full distortion
                    model from astrodrizzle-updated image headers
    - updatenpol:   task to update ACS images with new astrodrizzle-based
                    reference files

This new addition to the STScI_Python distribution provides the
capability to create new headers from a set of input headers using
rules provided by the user.  This package gets used by drizzlepac to
generate the output headers for drizzle products created by the
astrodrizzle task.  Information about the blendheaders task from
this package can be found in the DrizzlePac Handbook.

This package includes ACS specific tools used to process ACS data,
including applying the CTE correction to ACS FLT images and
applying the destriping algorithm to post-SM4 ACS images.

New Features:
* TEAL GUI interface added to run the HSTCAL(IRAF-free) version of
* interface added to allow the pipeline to run astrodrizzle. This
    can be used to replicate pipeline drizzle processing of ACS
    and WFC3 data.  This task, runastrodriz, also automatically
    processes both the CTE-corrected and non-CTE-corrected ACS
* PixCTECorr updated to implement the latest CTE algorithm used in
    CALACS v8.0.4
* module was updated so that it doesn't perform the
    cross talk correction, and it should now work on subarray data.

PyRAF v2.0
Since the 1.11 release, the following enhancements have been made:

* The PyRAF code has endured a relatively large overhaul and now supports both Python 2 and Python 3. The same code base supports both, though the Python 3 version has been run through the 2to3 tool. See FAQ 1.8 (#164).
* PyRAF graphics windows can now (optionally) be forced to stay always on top, i.e. in the foreground (#174).
* The UNLEARN command now works for TEAL-enabled tasks (r1520).
* EPAR/TEAL now has a status-message log which can be shown (r1521).
* EPAR/TEAL now use better native file dialogs on Linux (r1611).
* PyRAF installation and launching on Microsoft Windows is now quicker and easier.
* The version number is now accessible via "--version" (r1533).

and the following bugs have been fixed:

* Upon startup, PyRAF now makes smarter decisions about whether to even try to initialize graphics (#170).
* A bug in overplotting was fixed (OSX only, using xgterm) where the linestylle attribute list end was reached (#172).
* Jon N. at ANU found a bug (and submitted a fix!) in the real() function where sign information was mishandled. Thanks Jon! (r1557).
* PyRAF now handles when old IRAF-linked binaries (e.g. STSDAS 3.14) are used/packaged along with a current IRAF (v2.15.1, 2.16, +) by determining the WCS struct length on the fly (#173).
* Make installation kinder in the face of missing numpy and/or (r1559, r1561).

Python 2 versus 3:  PyRAF supports Python 2.5, 2.6, 2.7, and 3.2 with this release. PyRAF will continue to support Python 2.7 for the foreseeable future. Many users will be interested in (but also cautious about) converting their scripts and processing to Python 3, but it is expected that the majority of our users will remain on Python 2 for some time. This is however, the last release which will support Python 2.5.

pysynphot 0.9.3
The following changes have been made since the 0.9 release:


* The setref, showref, getref, and set_default_waveset functions were moved
  to a new module called refs. See
* pysynphot now has better support for multi-telescope use:

  * The refs.HSTAREA global variable has been renamed to refs.PRIMARY_AREA.
  * Graph tables may specify the area of their telescope in a
    PRIMAREA header keyword. This area will be used throughout pysynphot
    instead of refs.PRIMARY_AREA. The global value is used if PRIMAREA
    is not given by a graph table.
  * Unit conversions that require an area will now take the area as an
    optional argument. They will default to refs.PRIMARY_AREA.
  * See

* A new SpectralElement.photbw() method has been added for compatibilty
  with Synphot's bandpar PHOTBW parameter.
* Updated the location where pysynphot looks for extinction data from
  $PYSYN_CDBS/grid/extinction to $PYSYN_CDBS/extinction. pysynphot
  currently checks for both locations but in future releases it will
  check only $PYSYN_CDBS/extinction.

Bug fixes:

* SpectralElement.sample method now respects the waveunits of the element.
* Users can now add their own irafconvert location conversions using the
  locations.CONVERTDICT global variable.
* Fixed a memory leak in the pysynphot_utils C extension.

Other Changes:

* The etc module, which was deprecated in the last release, has been removed.

This package has been updated significantly in order to support the
development of the drizzlepac package.

New Features:
* The headerlets module was added to support astrodrizzle.
* added Sphinx documentation for this package
* updated to work with PyFITS 3.x versions
* TEAL GUI interfaces implemented as the 'stwcs.gui' package. It
    includes TEAL interfaces for headerlet tasks and updatewcs
* use of CRDER* keywords added as part of STWCS definition to keep track
    of errors for new WCS solutions

Significant bug fixes include:
* model.shift interface revised to get coefficients from model directly
* makewcs correctly updates IDCTAB coefficients in SCI extension header for subarrays
* 'udpatewcs' was revised to also include header keywords from the reference
    file's primary header. This information will provide the user with the source
    of the calibration data
* Corrects errors in calling 'fileutil.countExtn()' by actually importing
    'fileutil' into the updatewcs.utils module.
* 'ext' is now a required parameter so altwcs.restoreWCS was split into two
    functions.  This function is necessary because of the requirement to always
    keep a copy of the primary WCS in ERR and DQ extensions of HST observations.
* default value for WCSNAME computed when initializing the WCSCORR table, if
    WCSNAME keyword was missing
* Update to STWCS.WCSUTIL.wcscorr to turn off initialization of WCSCORR table
    for simple FITS files
* The primary wcs can have a WCSNAME, so if wcsname=' ' in the call to archiveWCS,
    set WCSNAME to the one in the primary WCS

The few changes made to this package were implemented to support new
capabilities to be used by the drizzlepac package.

* This update to image.numcombine (Version 0.5.0) adds support for 'imedian'
  and 'iaverage' combinationType options. These fill pixels that have zero weight
  with the first(last?) input value.
Many of the updates to the code in the STSCI.TOOLS package supported
the development of the DrizzlePac package, the development of a
Python 3.x version of PyRAF and compatibility with PyFITS 3.x versions.

New capabilities implemented include:
* code used by PyRAF now compatible with Python 3.x when run through
    Python 2->3 translator.
* created generic tool for pytools called printColsAuto()
* added ability to have a parameter update other parameters in the TEAL GUI; used
    to support 'Update from MDRIZTAB' button for astrodrizzle task.
* added new logutils that enable a way to capture all output from stdout as well
    as exception tracebacks and warnings through a common interface. Assuming we
    have called setup_global_logging(), all print statements
    in pywcs will be sent to a logger called 'pywcs.pywcs', and are not displayed
    on the console.
* added a utility for drawing an ASCII text box. This has been used in drizzlepac
    to make warning and info messages stand out for the user through a common
* added version of launch_and_wait() to enable parallel processing of Python
    tasks - see its docs for an explanation
* TEAL GUI updated to highlight those parameters with non-default values by
    changing color of comment, default value will be red text but user can
    control the color through TEAL itself.
* the writeProtectOnSaveAs choice will -always- default to True for EPAR and
    for TEAL. This insures that when a user saves their custom parameter values
    in a .cfg file using 'Save As...', that file will be write-protected so that
    TEAL will not change them the next time TEAL runs the task. This behavior
    can only be changed by editing the ~/.teal/teal.cfg file.
* allow optional list of hidden names to be passed to print_tasknames()

Significant bug fixes include:
* make sure a TEAL-loaded package can actually execute (by checking for a run()
    function) before blindly putting an Execute button on the GUI
* try not to disable graphics in the case of OSX users remotely logged into a
    session where the Python exec they are using is X11-linked (and should be able
    to support remote graphics)
* use a more universally accepted time format string in log messages for TEAL GUI
* Updated stpyfits to reflect some recent changes in internal details of the base
    _ImageBaseHDU class.
* augment TEAL return types and values; if returnAs="dict" then returns dict on
    Execute,Save,Close and None on Cancel; if returnAs="status" then returns 1 on
    Execute, 0 on Save/Close?, and -1 on Cancel; if returnAs=None then always has
    no return value
* Removed management of PHOT keywords by check_files, as use of fitsblender
    (in AstroDrizzle?) replaces this functionality.

This package has been revised in an attempt to support a port to Windows as well as
Linux and Mac.