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 ============= Documentation for this release can be found online under the 'Documentation' link found on the stsci_python web page at: http://www.stsci.edu/institute/software_hardware/pyraf/stsci_python 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 setup.py'. 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 ===================== calcos ------ 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. drizzlepac ---------- 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: http://drizzlepac.stsci.edu 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 fitsblender ----------- 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. acstools -------- 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 calacs. * 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 images. * PixCTECorr updated to implement the latest CTE algorithm used in CALACS v8.0.4 * acs_destripe.py 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 stsci.tools (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: Enhancements: * The setref, showref, getref, and set_default_waveset functions were moved to a new module called refs. See https://trac.assembla.com/astrolib/ticket/195. * 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 https://trac.assembla.com/astrolib/ticket/202. * A new SpectralElement.photbw() method has been added for compatibilty with Synphot's bandpar PHOTBW parameter. See https://trac.assembla.com/astrolib/ticket/222. * 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. See https://trac.assembla.com/astrolib/ticket/231. Bug fixes: * SpectralElement.sample method now respects the waveunits of the element. See https://trac.assembla.com/astrolib/ticket/184. * Users can now add their own irafconvert location conversions using the locations.CONVERTDICT global variable. See https://trac.assembla.com/astrolib/ticket/221. * 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. stwcs ----- 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 stsci.image ----------- 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. stsci.tools ----------- 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 interface. * 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. stsci.stimage ------------- This package has been revised in an attempt to support a port to Windows as well as Linux and Mac.