15 June 2007
This release is the includes new version of everything, in that anything that used to use numarray now uses numpy. Furthermore, there are changes to PyRAF, PyFITS, pytools, Multidrizzle and related tasks. A new NICMOS task, rnlincorr has been added.
First release that uses numpy
This release is the first release that uses numpy as the base array package. Numarray is no longer used within STScI_Python. Support for numarray will be phased out entirely within a year of this release. Support for numarray now is limited to critical problems or major platform support issues. The threshold for 'critical' or 'major' is continually becoming harder to meet; you are advised to migrate to numpy as soon as possible. Information on making the switch to numpy from numarray may be found at this link.
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, Mac OS X,
and Solaris, while also being provided for installation under Windows. The
single exception is that the text-based epar functionality now available in
PyRAF (in addition to the already existing GUI-based epar) is not available
under Solaris, and likely will never be.
Documentation
Documentation for these tasks has been consolidated into a single location
complete with a index viewable as a local web page. The documentation includes
any available user guides and API documentation generated using 'EPYDOC' for
the modules or packages. This index can be accessed using:
--> import
stscidocs
-->
stscidocs.viewdocs()
-->
stscidocs.help()
This will automatically bring up the default web browser application to
display the index page. All the available documentation for software packaged
with this distribution can be accessed through this interface, as this
documentation resides locally upon installation.
Python Environment
Python 2.3 or later is required. We recommend using the latest version of
Python if there is a choice (2.5.x)
PyRAF 1.4
The following changes were made:- Support for IRAF ECL-style error handling
- Added unlearn method to IrafPkg class so that all tasks in package can be unlearned if the package is loaded.
-
No dependence on Numeric (now uses numpy) (ticket #36)
- Added epsilon variable to PyRAF to match that of IRAF (for testing equality of floats). (ticket #62)
-
Support for next statement in for loops (ticket #60)
- lpar now encloses strings in quotes (ticket #58)
- lpar prints out non-hidden parameters before hidden parameters.
- The real() and int() functions were not robust enough (not as forgiving as the IRAF CL versions) (ticket #61)
-
Problem opening parameter filename specifications that use iraf variables as
part of path. (ticket #64)
- setup.py failing to find X11 libraries when using --with-x= flag on 64-bit systems.
- PyRAF was ignoring the IPython user configuration options.
- Added global names like 'yes' and 'no' to the ipython shell.
- IPython new support for unicode broke PyRAF (within ipython).
-
Overloaded IPython's cd command with that of PyRAF.
- Fixed the execution of long command lines in the ipython shell.
-
Exception thrown when fscan can't convert a string to the type of the
receiving variable (no longer raises exception). (ticket #63)
PyFITS 1.1
The following changes were made:
-
Modified to use either NUMPY or NUMARRAY.
- New file writing modes have been provided to allow streaming data to extensions without requiring the whole output extension image in memory. See documentation on StreamingHDU.
-
Improvements to minimize byteswapping and memory usage by byteswapping in
place.
- Now supports ':' characters in filenames.
- Handles keyboard interrupts during long operations.
-
Preserves the byte order of the input image arrays.
numdisplay 1.3
Modified to use numpy by default (can still be used with numarray).
imagestats 1.1
Updated to use numpy.Pytools
The following changes were made:- Deleted extraneous NAXIS keyword from primary header in fileutil.getHeader (if no data in primary). This corrects a problem interpreting the reference WCS with the latest PyFITS.
-
The function readAsnTable has been modified to recognize the case when only
rotations are provided without shifts for application to the data.
- Added testtil.py to pytools. This module extends the functionality o f the unittest module by providing a FPTestCase class to facilitate floating point and array comparisons, as well as some other convenience tools.
-
Corrected numcombine.py bug arising from a name collision.
Applications
MultiDrizzle 3.0
The following changes were made:- The 'group' parameter is now added by PyDrizzle so it no longer needs to be populated.
-
A new feature was added to Multidrizzle. This new feature allows for
the automatic generation of inverse variance maps for weighting the final
mosaic of ACS and WFPC2 data. If the user specifies 'IVM' as the
final_wht_type but does not supply inverse variance maps, Multidrizzle will
automatically generate these images based upon the detector's
characteristics and reference flatfield file. This is an experimental
feature that has not been fully tested.
The following bugs were fixed:
- Fixed a problem with IRAF INDEF value not working on 64-bit systems
- Added code to guard against users supplying an integer value for the runfile parameter.
- Now properly passes the 'output' parameter to PyDrizzle for the single file input case.
PyDrizzle 6.0
The following changes were made:- Moving target support has been implemented.
-
PyDrizzle can now be run without doing a distortion correction.
- The in_units parameter has been exposed to select the units of the input image. The allowable values are 'counts' (default) and 'cps'.
-
The default WFPC2 idckey set to 'idctab'.
- Now writes all output images in FITS byte order in order to minimize memory usage.
The following bugs were fixed:
- Problems handling binned images and distortion models provided through cubic coefficient files.
-
Problems with the value of BUNITS keyword depending on user-supplied values
for output units.
RNLINCOR
RNLINCOR is a new task that corrects for countrate-dependent nonlinearity in NICMOS data. The nonlinearity constant depends on the camera/filter combination; it is obtained from the *_nlz.fits file available in CDBS nref, and stored in the header keyword RNLCALPH in the primary header of the output file. The zeropoint corrections (PHOTFNU/PHOTFLAM) are also updated. The algorithm used by this task is described in the NICMOS ISR 2006-003 by de Jong.SAACLEAN
The linear algebra routines from the ScientificPython package were updated as part of the numpy conversion.
STIS Data Analysis
These modules contain data analysis tasks developed for post-pipeline processing
of STIS data; namely, wx2d, stisnoise, mktrace, sshift. They can each be
imported independently and used on STIS data directly from Python.Bugs fixed in this distribution include:
- in stisnoise; the code referred to 'ampl' instead of 'iraf.stisnoise.ampl', and this resulted in incorrect values of fwhm, one of the output parameters computed by stisnoise.
- Changes were made to wx2d to improve the speed by using array operations when possible.