Skip to main content

Come analyze HEASARC, IRSA, and MAST data in the cloud! The Fornax Initiative is now welcoming all interested beta users.

********************************************************************************
                          RELEASE NOTES FOR HEASOFT 6.12
                                 March 12, 2012
********************************************************************************

The HEASoft 6.12 release is primarily driven by updates to the Swift
mission software, but also includes updates to other packages which
have been revised to mirror the current development versions in use at
the HEASARC.

As before, configuration-related changes thoughout the package means that
users who already have HEASoft v6.x.x installed will need to completely
replace their software installation; there is no clean way to simply
overlay this new release or to update an existing installation.

********************************************************************************
                                    CFITSIO
********************************************************************************

   - small change to ffgcrd in getkey.c so that it supports reading a blank
     keyword (e.g., a keyword whose name simply contains 8 space chracters).

Version 3.29:

  Enhancements

   - modified Makefile.in to allow configure to override the lib and include
     destination directories.
		   
   - added (or restored actually) support for tile compression of 1-byte integer 
     images in imcomp_compress_tile.  Support for that data type was overlooked
     during recent updates to this routine.

   - modified the fits_get_token command-line parsing routine to perform more
     rigorous checks to determine if the token can be interpreted as a number 
     or not.

   - made small modification to fpack.c to not allow the -i2f option (convert
     image from integer to floating point) with the "-g -q 0" option (do lossless 
     gzip compression).  It is more efficient to simply use the -g option alone.

   - made modifications to fitsio.h and drvrfile.c to support reading and
     writing large FITS files (> 2.1 GB) when building CFITSIO using 
     Microsoft Visual C++ on Windows platforms.

   - added new WCS routine (ffgicsa) which returns the WCS keyword values
     for a particular WCS version ('A' - 'Z').

   Bug Fixes

   - fixed a problem with multi-threaded apps that open/close FITS files
     simultaneously by putting mutex locks around the call to
     fits_already_open and in fits_clear_Fptr.

   - fixed a bug when using the 'regfilter' function to select a subset of the
     rows in a FITS table that have coordinates that lie within a specified
     spatial region on the sky.  This bug only affects the rarely used panda
     (and epanda and bpanda) region shapes in which the region is defined by
     the intersection of an annulus  and a pie-shaped wedge.  The previous code
     (starting with version 3.181 of CFITSIO where support for the panda region
     was first introduced) only worked correctly if the 2 angles that define
     the wedge have values between -180 and +180.  If not, then fewer rows than
     expected may have been selected from the table.

   - fixed the extended filename parser so that when creating a histogram by
     binning 2 table columns, if a keyword or column name is given as the
     weighting factor,  then the output histrogram image will have a floating
     point datatype, not the default integer datatype as is the case when no
     weigth is specified (e.g. with a filename like 
     "myfile.fits[bin x,y; weight_column]"

   - added fix to the code in imcompress.c to work around a problem with
     dereferencing the value of a pointer, in cases where the address of 
     that pointer has not been defined (e.g., the nulval variable).

    - modified the byte shuffling algorithm in fits_shuffle_8bytes to work
     around a strange bug in the proprietary SunStudioExpress C compiler
     under OpenSolaris.

   - removed spurious messages on the CFITSIO error stack when opening a
     FITS file with FTP (in drvrnet.c);

   - fixed usage of DESTDIR build variable.

Version 3.28:

   - added an enhancement to the tiled-image compression method when compressing
     floating-point image using the standard (lossy) quantization method.  In 
     cases where an image tile cannot be quantized,  The floating-point pixel values
     will be losslessly compressed with gzip before writing them to the tile-
     compressed file.  Previously, the uncompressed pixel values would have
     been written to the file, which obviously requires more disk space. 

   - made significant internal changes to the structure of the tile compression
     and uncompression routines in imcompress.c to make them more modular and
     easier to maintain.

   - modified configure.in and configure to force it to build a Universal 
     binary on Mac OS X.

   - modified the ffiter function in putcol.c to properly clean up allocated
     memory if an error occurs.
     
   - in quantize.c, when searching for the min and max values in a float array,
     initialize the max value to -FLT_MAX instead of FLT_MIN (and similarly
     for double array). 

********************************************************************************
                              CFITSIO PERL MODULE
********************************************************************************

Update to version 1.08 of the CFITSIO Perl module:

   http://hea-www.harvard.edu/~rpete/cfitsio/

2012-01-19

        * CFITSIO.pm: $VERSION = '1.08';

        * CFITSIO.xs: sync with cfitsio 3.29, added fits_calculator,
        fits_calculator_rng and fits_read_img_coord_version ffgicsa,

2011-10-21

        * Makefile.PL: pkg-config support

2011-07-21

        * CFITSIO.pm: $VERSION = '1.07';

        * CFITSIO.xs: update to cfitsio 3.28, removal of
        fits_compress_img. Removal of LICENSE file and inclusion of
        copyright and license in README.

2011-07-21

        * CFITSIO.xs: update to cfitsio 3.27, added fits_free_memory,
        fits_read_str, fits_delete_str

2011-01-26

        * CFITSIO.pm: $VERSION = '1.06';

        * CFITSIO.xs: update to cfitsio 3.26, added routines
        fits_copy_rows, fits_get_inttype, fits_convert_hdr2str, added
        short name ffhdr2str => 'fits_hdr2str', added constants
        CFITSIO_MAJOR and CFITSIO_MINOR

2010-07-28

        * util.c (column_width): fixed incorrect determination of ASCII
        string widths for values in binary tables columns

2009-08-21

        * CFITSIO.xs: fixed bug in fits_update_key when called with
        datatype TLOGICAL, whereby the input value was not converted to
        int properly.

2008-08-26

        * testprog/testprog_pdl.pl: get testprog_pdl.pl work properly on
        64-bit archs

2007-02-14

        * CFITSIO.xs: added fits_write_hdu/ffwrhdu, fits_write_exthdr/ffphext

********************************************************************************
                                    CCFITS
********************************************************************************

Version 2.4:

Fixes:

- Compressed images may now be written with BITPIX=32. This fix was made by
  internally storing the image array as int types rather than longs (see
  backwards compatibility issues).

- For variable-width columns, the write functions now allow all of the same
  type conversions as had been working with fixed-width columns.

- The null-value versions of the primary and extension image write functions
  are now working.

- The basic FITS constructor can now handle files containing multiple
  extensions which have the same name AND version number. (Note that this
  is still not a recommended file structure.)

- BinTable's addColumn function now automatically first makes itself the
  current extension so that the user doesn't have to call
  ExtHDU::makeThisCurrent().

- Bug fix to Table's deleteRows function. This error had been preventing
  the output stream operator from working on vector columns after rows had
  been deleted.

Backwards Compatibility Issue:

- For images of BITPIX=32, CCfits now stores the values in a valarray of
  ints rather than longs. This affects the public interface in one place:
  the return type of the ImageExt<T>::image() function.

********************************************************************************
                                    HEACORE
********************************************************************************

- tai-utc.dat, leapsec.fits: New copy of
 
    http://maia.usno.navy.mil/ser7/tai-utc.dat

  accounting for leap second in 2012 July (used to generate new leapsec.fits).

- New help files:

  * HDgtcalf.html: Documentation for HDgtcalf Perl interface.
  * headas_gti.html: Documentation for GTI-related routines in libhdutils.

- SimpleFITS.pm:

  New functions:
   * 'delcol' to delete an existing column
   * 'calculate' to calculate a column-based expression and return it;

  Modified function:
   * 'insertcol' has a new special keyword '=' which allows one to specify
      an initializer expression for a new (or existing) column

********************************************************************************
                                     HEASP
********************************************************************************

The HEASP library for manipulating spectra and responses has been
converted into C++ and expanded.  A Python interface has been added.

The Cwrappers.cxx file contains C wrappers which mimic the old C heasp
library. These C wrappers are compatible with the earlier C-only version
of HEASP with two exceptions: a) the include file required is now
Cheasp.h instead of heasp.h; b) all routines which used to require a
FITS file pointer now just require the filename. One consequence of b)
is that files no longer need to be opened and closed by the calling program.

A detailed guide to the library and its use when writing programs or
using Python is available in $HEADAS/../heacore/help/headas_guide.pdf.

********************************************************************************
                                     PGPLOT
********************************************************************************

Update to PGPLOT version 5.2.2,

  http://www.astro.caltech.edu/~tjp/pgplot/ver522.html
  http://www.astro.caltech.edu/~tjp/pgplot/ver521.html

but with GSFC-generated modifications:

* PostScript driver: Added explicit Times-Roman for DocumentFonts to fix
  a problem with changing default behavior of dvips.  Update setting of
  DocumentFonts so that it lists the fonts actually used.

* Fortran drivers for /GIF, /PPM and /WD are replaced by C versions (written
  at GSFC).

* "Old" ftools PostScript driver is available through devices /OPS, /OVPS,
  /OCPS and /OVCPS.

********************************************************************************
                                    CALLIB
********************************************************************************

- Mission matching is now determined from the CALDB.CONFIG file, making it
  easier to handle mission aliases/renaming (GLAST vs. Fermi, for example).
  Added a warning for chatter>0 if the TELESCOP value in the caldb.indx file
  does not match the mission string.

********************************************************************************
                                      APE
********************************************************************************

- Fixed incorrect handling of command line assignments of the form "par= +80"
  or "par= -80", in which the +/- signs were preventing values from being
  associated correctly with the parameter assignment.

********************************************************************************
                                    XANLIB
********************************************************************************

- XPI: Replaced XPI's parameter I/O with that of APE.

********************************************************************************
                                XPA (FV / HERA)
********************************************************************************

http://hea-www.harvard.edu/saord/xpa/

Public Release 2.1.13 (April 14, 2011):

- An atexit handler is no longer installed automatically (it
  crashes Tcl 8.5.8 applications). Call XPAAtExit(void) to install
  the handler.

- Removed permission checking from Find() on cygwin systems. This
  was broken by Windows 7.

- Removed addition of -no-cpp-precomp flag from gcc 4.2 and beyond (Mac).

Public Release 2.1.12 (January 26, 2010):

- Added XPA_HOST environment variable to allow users to specify the
  hostname (and hence, ip) component of the INET method id. This is
  useful, for example, if you want to register an access point using
  a VPN-generated IP instead of the canonical IP.

- Fix typo in Tcl binding to xpainfo causing a crash after 2 invocations.

********************************************************************************
                                   ATTITUDE
********************************************************************************

- coordinator, getxform: 

  * Modified so the message written when extrapolating outside attitude
    file bounds is put on stdout instead of stderr.

- prefilter: 

  * Magnetic field model for COR_SAX and MCILWAIN_L has been updated to
    newer coefficients, through IGRF 2010 (provisional).
  * Changes in COR_SAX from previous model are +/- 0.6% (1-sigma).
  * Changes in MCILWAIN_L from previous model are +/- 1.0% (1-sigma).

********************************************************************************
                                    FUTILS
********************************************************************************

- fparkey: When a file open fails, be more helpful by printing the FITSIO
  error code and text before returning.

- fsort: Allow fsort to run without failing on columns with only 1 or 0 rows.

********************************************************************************
                                   HEATOOLS
********************************************************************************

- ftjoin: Add warnings when user requests an OUTER join when columns don't all
  have TNULLn default values.  HISTORY keywords are now added upon request.

- ftlist: Fixed bug causing long paths for 'outfile' to fail.

- ftstat: Added mode computation.  Fixed mean computation and min/max location
  for sigma clipping case.  Clipped values are now distinguished from null
  values in the output, and are included in the par file output.

********************************************************************************
                                   EXTRACTOR
********************************************************************************

- Now works if xcolf and/or ycolf are set to NONE provided that image output
  is not required and region selection is not in use.  Note that NPIXSOU in
  the output spectrum or response will be 0 in this case.

- Fixed problem in FINGTI routine with the gfortran 4.6.x compilers.

********************************************************************************
                                    XSELECT
********************************************************************************

- xselect.mdb: Modifications for new XTE event files. Fixed error for ASCA SIS1.

- Increased string sizes when reading MDB and modified chatter level on
  diagnostic output.

- Updates necessitated by changes to XPI interface (see XANLIB above).

********************************************************************************
                                     XSPEC
********************************************************************************

XSPEC 12.7.1:

New features:

 - New models: gadem, vgadem, eplogpar, logpar, optxagn, optxagnf,
   and pexmon.

 - The convolution models rdblur, rdblur2, kdblur and kerrconv have
   been sped up. They are now O(N) instead of O(N^2) where N is the
   number of energy bins in the response.

 - Continued rationalization of Compton reflection routines. eqpair,
   eqtherm, compth, compps, ntee now all use the same routines as
   reflect and ireflct. For models with ionized reflector there may
   be changes in results because the new code uses the actual input
   spectrum to calculate the ionization fractions while the old code
   assumed a power-law.

 - The parameter simulation arrays used for the calculation of eqwidth
   and flux error are now accessible through tclout.

 - Initpackage now works on Cygwin.  The static_initpackage work-around
   is no longer needed and has been removed.

 - New Fortran interface wrapper function RFLABD, for reading new
   abundance tables into external programs using the XSPEC models
   library.

 - Added an xsetbl function for use in external programs.  This provides
   access to XSPEC's internal exponential table model routines, similar
   to what xsatbl and xsmtbl do for additive and multiplicative table
   models.

 - Bayes command is now supported for response parameters (ie. gain).

 - New 'show version' option.

 - Improved 'error' command output messaging.  The error results now
   have lower chatter level (5) than most of the warning messages (10),
   thus making it easier to filter out the warnings.

 - PyXspec beta version upgraded to v1.0.  See the PyXspec release notes
   (below) for details.

Enhancements previously released as patches to 12.7.0:

 - New tclout options: nullhyp, rerror.

All bug fixes to v12.7.0 released as patches a-u are included in
v12.7.1.  In addition the following problems have been corrected:

 - Program aborted when attempting to fit with gain parameters attched
   to dummy responses.

 - Program aborted when removing a spectrum with a response containing
   gain parameters, AND while that response was temporarily replaced
   with a dummy response.

 - The 'save' command did not add the default .xcm extension for file
   names that included a path.

 - A crash could occur if the EBOUNDS array wasn't the right size.

 - It was not possible to plot 2 or more models in a multi-panel 'plot
   model' display.


PyXspec v1.0:
=============

*** Important: Two Backwards-Incompatible Changes ***

  - When using multiple data groups, the Model objects assigned to the
    higher-numbered groups now all have their parameters indexed from 1
    to nPar.  For example with a 3 parameter model applied to 2 data
    groups, you would now access the first parameter in the 2nd model
    object with "mod2(1)" rather than "mod2(4)".

  - The Model.setPars() function (introduced with patch 12.7.0f) used
    the p<n> keyword argument syntax to set non-consecutive parameters.
    This has been replaced with the use of Python dictionaries.  For
    example, m.setPars(p2=.3, p4=1.1) should now be m.setPars({2:.3, 4:1.1}).

New Features

  - Added Standard XSPEC's gain command functionality.  This is implemented
    with the new gain attribute for Response classes.  Response.gain is a
    class of type RModel, and has two Parameter objects: slope and intercept.

  - New AllModels.setPars() function for changing multiple parameters in
    multiple Model objects with a single call.

  - Now compatible with Cygwin.

Features Previously Added To PyXspec Beta version through XSPEC 12.7.0 patches

  - AllModels.initpackage() for building local models inside the Python
    shell.

  - Bayesian inference provided through the Fit.bayes and Parameter.prior
    attributes.

  - Fit.goodness() and Fit.improve() functions.

  - Model.setPars() function for changing multiple parameters with a
    single call.

  - AllModels.simpars() function to do the equivalent of Standard XSPEC's
    tclout simpars.

  - Fit.covariance attribute for retrieving the covariance matrix from the
    most recent fit.

  - Model.expression attribute which stores the model expression string.

  - AllModels.sources attribute which stores a map of source number and model
    name assignments.

Fixes

  - All PyXspec bug fixes previously released as patches to XSPEC 12.7.0
    are included.

  - Now handles model component-by-name access when the component is a table
    model whose name includes whitespace.

********************************************************************************
                                     XSTAR
********************************************************************************

Version 2.2.1bk - updates since HEASOFT 6.11 include:

   Version v2.2.1bk (January 2012):

    * Fix to error introduced in 221bh which allows code to modify atomic data
      during calculation of data type 72.

    * Fix to error in msolvelucy involving rate equation solution.

    * Fix to error in linopac/stpcut which led to spurious features in emission
      profiles during Voigt profile calculation

   Version v2.2.1bh (September 2011):

    * Change to explicit use of real*8 variables throughout.

    * Change to access of database which avoids passing large numbers of
      variables to reading routine.  Pointers are passed instead.

********************************************************************************
                                     RXTE
********************************************************************************

- pcaextspect2: New convenience task to extract a PCA Standard2 spectrum and
  apply corrections for deadtime, number of active PCUs, and optionally
  calculate the corresponding PCA response matrix.

- pcaprepfile2: New convenience task to perform standard background and dead-
  time calculation tasks for a single PCA Standard2 file.

- pcadeadcalc2: New task to calculate deadtime quantities for a single PCA
  Standard2 file.

- pcadeadspect2: New task to compute PCA dead-time correction for a PCA
  Standard2 spectrum.

- xenon2fits: Add capability to write new standard RXTE event format with
  columns Time, Event, PCUID, ANODEID, PHA, when wrtparm='O'.  The new event
  format is compatible with both seextrct and extractor.

- decodeevt: 

  * Major rewrite: task is now compatible with all available RXTE science event
    modes (but not the specialized "Alpha", "VLE", "2LLD" or "Transparent" modes).

  * Add capability to write new standard RXTE event format with columns Time,
    Event, PCUID, ANODEID, PHA, when wrtparm='O'.  (for a particular event
    mode where a data field doesn't exist, the corresponding FITS columns are
    filled with NULL values)

  * The new event format is compatible with both seextrct and extractor.

********************************************************************************
                                     SWIFT
********************************************************************************

- batdetmask: Internal changes for more consistent behavior.

- swiftxform, uvotexpmap, uvotimage:

  * Added a parameter (refattopt) that can be used to detect/address
    questionable attitude.  The default refattopt value causes no
    change in behavior.  When used, refattopt tests whether the sampled
    attitude is inconsistent with the reference attitude, and if they
    are inconsistent the reference attitude is used.

    The refattopt value is made up of comma-delimited elements having the
    following format:
      ANGLE_d=<real>
          constrain separation angle for using reference attitude
      OFFSET_s=<real>
          constrain attitude record offset for using reference attitude
      AND
          boolean AND constraints
      OR
          boolean OR conditions

- xrtcalcpi: Modified PI calculation for CTI correction

- xrtlccorr,xrtmkarf: Apply the caldb query for PSF file depending on data mode.

- xrttimetag:

  * Modified 'TIMEDEL' keyword calculation
  * Added update to 'TIMEPIXR' keyword

- uvotgraspcorr:

  * Updated so the grism distortion file can be automatically determined (via
  * CALDB query).
  * Modified to allow multiple files to be processed in one invocation:
      The infile parameter can be a comma-delimited list of files to process
      or @<path> where <path> contains one file name per line.

- uvotproduct:

  * Modified to handle certain failures more gracefully: avoid ds9
    sub-process hanging; treat inability to create a finding chart graphic
    as a warning instead of an error.

********************************************************************************
                                 CONFIGURATION
********************************************************************************

- configure scripts generated using autoconf v2.68.  New versions of
  config.sub and config.guess taken from the autoconf-2.68 distribution.

- Fixed 64-bit openSUSE build issue requiring "libdir" overrides to prevent
  installation in $HEADAS/lib64 rather than $HEADAS/lib.

- Added libtinfo to search list for ncurses/curses/termcap routines (for e.g.
  newer Ubuntu OSs).

- Fixed a number of Fortran compilation errors stemming from the use of the
  --pedantic flag.