• Download HEASOFT
  • ********************************************************************************
                             RELEASE NOTES FOR HEASOFT 6.14
                                    August 6, 2013
    The HEASoft 6.14 release is primarily driven by new software for the
    NuSTAR mission and 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.
    Version 3.35:
       - fixed problem with the default tile size when compressing images with
         fpack using the Hcompress algorithm.
       - fixed returned value ("status" instead of "*status") 
       - in imcompress.c, declared some arrays that are used to store the dimensions
         of the image from 'int' to 'long', to support very large images (at least
         on systems where sizeof(long) = 8),
       - modified the routines that convert a string value to a float or double
         to prevent them from returning a NaN or Inf value if the
         string is "NaN" or "Inf" (as can happen with gcc implementation of the
         strtod function).
       - removed/replaced the use of the assert() functions when locking or
         unlocking threads because they did not work correctly if NDEBUG is
       - made modifications to the way the command-line file filters are parsed to
         1) remove the 1024-character limit when specifying a column filter,
         2) fixed a potential character buffer-overflow risk in fits_get_token, and
         3) improved the parsing logic to remove any possible of confusing
         2 slash characters ("//") in the string as the beginning of a 
         comment string.
       - modified configure and Makefile.in so that when building CFITSIO
         as a shared library on linux or Mac platforms, it will use the SONAME
         convention to indicate whether each new release of the CFITSIO
         library is binary-compatible with the previous version.  Application
         programs that link with the shared library will not need to be
         recompiled as long as the versions are compatible.  In practice,
         this means that the shared library binary file that is created (on
         Linux systems) will have a name like 'libcfitsio.so.I.J.K', where I is the
         SONAME version number, J is the major CFITSIO version number (e.g. 3),
         and K is the minor CFITSIO version number (e.g., 34).  Two link
         files will also be created such that
           libcfitsio.so -> libcfitsio.so.I, and
           libcfitsio.so.I -> libcfitsio.I.J.K
         Application programs will still run correctly with the new version of
         CFITSIO as long as the 'I' version number remains the same, but the
         applications will fail to run if the 'I' number changes, thus alerting
         the user that the application must be rebuilt.
       - fixed bug in fits_insert_col when computing the new table row width
         when inserting a '1Q' variable length array column.
      - modified the image compression routines so that the output compressed
         image (stored in a FITS binary table) uses the '1Q' variable length
         array format (instead of '1P') when the input file is larger than 4 GB.
       - added support for "compression directive" keywords which indicate how
         that HDU should be compressed (e.g., which compression algorithm to use,
         what tiling pattern to use, etc.).  The values of these keywords will
         override the compression parameters that were specified on the command 
         line when running the fpack FITS file compression program.
       - globally changed the variable and/or subroutine name "dither_offset" 
         to "dither_seed" and "quantize_dither" to "quantize_method" so
         that the names more accurately reflects their purpose.
       - added support for a new SUBTRACTIVE_DITHER_2 method when compressing
         floating point images.  The only difference with the previous method
         is that pixels with a value exactly equal to 0.0 will not be dithered,
         and instead will be exactly preserved when the image is compressed.
       - added support for an alias of "RICE_ONE" for "RICE_1" as the value
         of the ZCMPTYPE keyword, which gives the name of the image compression
         algorithm.  This alias is used if the new SUBTRACTIVE_DITHER_2 option
         is used, to prevent old versions of funpack from creating a corrupted
         uncompressed image file.  Only newer versions of funpack will recognize
         this alias and be able to uncompress the image. 
       - made performance improvement to fits_read_compressed_img so that 
         when reading a section of an compressed image that includes only 
         every nth pixel in some dimension, it will only uncompressed a tile 
         if there are actually any pixels of interest in that tile.
       - fixed several issues with the beta FITS binary table compression code
         that is used by fpack:  added support for zero-length vector columns,
         made improvements to the output report when using the -T option in fpack,
         changed the default table compression method to 'Rice' instead of 
         'Best', and now writes the 'ZTILELEN' keyword to document the number
         of table rows in each tile.
       - fixed error in ffbinit in calculating the total length of the binary
         table extension if the THEAP keyword was used to override the
         default starting location of the heap.
    Version 3.34 - 20 March 2013
       - modified configure and configure.in to support cross-compiled cfitsio 
         as a static library for Windows on a Linux platform using MXE 
         (http://mxe.cc) - a build environment for mingw32. (contributed by 
         Niels Kristian Bech Jensen)
       - added conditional compilation statementsfor the mingw32 environment in 
         drvrfile.c because mingw32 does not include the ftello and fseeko functions. 
         (contributed by Niels Kristian Bech Jensen)
       - fixed a potential bug in ffcpcl (routine to copy a column from one table
         to another table) when dealing with the rare case of a '0X' column (zero
         length bit column).
       - fixed an issue in the routines that update or modify string-valued
         keyword values, as a result of the change to ffc2s in the previous 
         release.  These routines would exit with a 204 error status if the 
         current value of the keyword to be updated or modified is null.
       - fixed typo in the previous modification that was intended to ignore
         numerical overflows in Hcompress when decompressing an image.
       - moved the 'startcol' static variable out of the ffgcnn routine and
         instead added it as a member of the 'FITSfile' structure that is defined
         in fitsio.h.  This removes a possible race condition in ffgcnn in 
         multi-threaded environments.
    Version 3.33 - 14 Feb 2013
       - modified the imcomp_decompress_tile routine to ignore any numerical 
         overflows that might occur when using Hcompress to decompress the
         image.  If Hcompress is used in its 'lossy' mode, the uncompressed
         image pixel values may slightly exceed the range of an integer*2 
         variable. This is generally of no consequence, so we can safely ignore
         any overflows in this case and just clip the values to the legal range.
       - the default tiling pattern when writing a tile-compressed image
         has been changed.  The old behavior was to compress the whole image
         as one single large tile.  This is often not optimal when dealing
         with large images, so the new default behavior is to treat each
         row of the image as one tile.  This is the same default behavior
         as in the standalone fpack program.  The default tile size can
         be overridden by calling fits_set_tile_dim.
       - fixed bug that resulted in a corrupted output FITS image when
         attempting to write a float or double array of values to a 
         tile-compressed integer data type image.  CFITSIO does not support
         implicit data type conversion in this case and now correctly
         returns an appropriate error status. 
       - modified ricecomp.c to define the nonzero_count lookup table as an 
         external variable, rather then dynamically allocating it within the
         3 routines that use it.  This simplifies the code and eliminates the
         need for special thread locking and unlocking statements. (Thanks to
         Lars Kr. Lundin for this suggestion). 
       - modifed how the uncompressed size of a gzipped file is computed in the
         mem_compress_open routine in drvrmem.c.  Since gzip only uses 4 bytes
         in the compressed file header to store the original file size, one may
         need to apply a modulo 2^32 byte correction in some cases.  The logic
         here was modified to allow for corner cases (e.g., very small files, and 
         when running on 32-bit platforms that do not support files larger than
         2^31 bytes in size). 
       - added new public routine to construct a 80 keyword record from the 3 input
         component strings, i.e, the keyword name string, the value string, and
         the comment string: fits_make_key/ffmkky.  (This was already an undocumented
         internal routine in previous versions of CFITSIO).
       - modified ffc2s so that if the input keyword value string is a null string,
         then it will return a VALUE_UNDEFINED (204) status value.  This makes it
         consistent with the behavior when attempting to read a null keyword 
         (which has no value) as a logical or as a number (which also returns
         the 204 error).  This should only affect cases where the header keyword
         does not have an equal sign followed by a space character in columns 9
         and 10 of the header record.
       - Changed the "char *" parameter declarations to "const char *" in many 
         of the routines (mainly the routines that modify or update keywords) to
         avoid compiler warnings or errors from C++ programs that tend to be more
         rigorous about using "const char *" when appropriate.
       - added support for caching uncompressed image tiles, so that the tile does
         not need to be uncompressed again if the application program wants 
         to read more data from the same tile. This required changes to the
         main FITS file structure that is defined in fitsio.h, as well as
         changes to imcompress.c.
       - enhanced the previous modification to drvrfile.c to handle additional user
         cases when running in the HEASARC's Hera environment.
    - Bug fix to getNamedLines: The 'where' variable should be reset to the
      top of the HDU prior to doing keyword search.
    - Replaced the use of the valarray '==' operator with an explicit loop
      in ColumnVectorData<T>::compare.  This was to get around a compiler
      glitch that appeared on Mac 10.9.
    Library for manipulating spectra and responses, including a Python
    interface.  A detailed guide to the library and its use when writing
    programs or using Python is available in
    New in this release:
    - Fixed error if the spectrum is a single channel. Was writing the RATE
       or COUNTS value into a keyword instead of the column.
    - Fixed so that a CHANNEL column is always written out even for a single
       channel file. Also ensured that RATE, COUNTS, STAT_ERR are written as
       columns in type II files for the case of a single channel where
       all rows have the same value.  Fix for writing E_MIN and E_MAX
       correctly as columns when there is only one channel.
    - Added a version of SPcopyKeys which copies from a different named HDU.
       Also added some handy utility routines to read strings from a text
       file and convert a string to an integer or real.
    - Added shiftEnergies method to shift the response in energy space
       (analogous to shiftChannels). Added versions of the shiftChannels
       and shiftEnergies methods which take multiple shift specifications
       at the same time. Added option to shift channels by energy instead of
       channel number using the channel energy bound information.
    - Added a substituteRow method to replace the contents of a row. This
       should be used sparingly since it is inefficient.
                       APE / XPI (Parameter Interface Libraries)
    - pquery2: Fixed to enable the correct/traditional pquery2 behavior.
    - prefilter: Fixed bug that appeared when using new gfortran v4.8.1, in
      which erroneous output values in the 'COR_SAX' and 'MCILWAIN_L'
      geomagnetic data columns were generated.
    - Bug fix: Text dump of vector column was changing NULLs to non-zero
    - Updated third-party packages in HEASoft:
        Tcl/Tk 8.5.13
        Itcl 3.4.1
        Tix  8.4.3
        WCSLIB 4.1.6
    - fitsTcl and POW libraries:
      Applied changes required for use with Tcl 8.5.13, and addressed
      some compiler warnings.
    - fdump: Add support for 8-byte integer datatype.
    - fimgstat: Modified to support 3-D and 4-D images if the higher
      dimensions have length = 1.
    - fkeyprint: Increase max # of input files to 4096.
    - fmerge: Allow for longer filenames, and where necessary increase the
      length of the 'context' string sent to other routines (e.g. fcerr) to
      handle the longer filenames.
    - fverify: Fixed bug in computing the location of the data heap in
      binary tables if the THEAP keyword is used to override the default
      starting byte of the heap.
    - ftdiff: Use TBIT for X type, not TBYTE.
    - ftimgcalc: Update WCSLIB version to 4.16.
    - ftmerge: Allow a single input file via the command line.
    - ftstat:
      Add support for fixed-length vector columns; display messages
      notifying user that zero-length vector columns or columns of type TBIT
      (or TLOGICAL or TSTRING) will not be computed.  Update ftstat and
      fstatistic help files to clarify how they differ in handling vector columns.
      Allow 3-D and 4-D images, as long as the 3rd and 4th axes have a length = 1.
    - ftverify:
      Fixed bug in computing the location of the data heap in binary tables if
      the THEAP keyword is used to override the default starting byte of the heap.
      Update WCSLIB version to 4.16.
    - barycorr:
       * Add NuSTAR CALDB query capability;
       * Case of barytime=YES with more than two extensions now works
       * More descriptive error messages, and less repetitive
       * Fix bug in handling of RXTE extractor and TIMEZERO keyword
    - flx2tab: Modified so that the input text file can use tab separated
    - flx2xsp: Fixed so that the input file columns can be separated by tabs
      as well as spaces.
    - rgsrmfsmooth: Update WCSLIB version to 4.16.
    - xy2sky, sky2xy:
      Allow for RADESYS keyword (FITS v3.0 convention) instead of RADECSYS,
      and make their presence (and that of EQUINOX) optional rather than
      generating an error, writing radecsys='' and equinox='0' into the par
      file if they are not found.
    - Fixed a bug encountered in reading an event file in which events with
      null coordinates are retained with incorrect coordinate values.  These
      events are now rejected as they are encountered during the reading.
    - Update to version 7.1.1 of the Starlink AST library.
    - Changed NSEQ from 4 to 15 inside AST library's RoundFString function
      to avoid bug that rounds numbers near -9.999 to -100 instead of to -10.
    - Update Tcl/Tk to 8.5.13.  Known issue on some platforms:
      After using the /XTK plot device, the following message may be
      displayed upon exit:
        [XIMAGE> quit
        X Error of failed request:  RenderBadPicture (invalid Picture parameter)
          Major opcode of failed request:  ### (RENDER)
          Minor opcode of failed request:  # (RenderFreePicture)
          Picture id in failed request: #########
          Serial number of failed request:  ####
          Current serial number in output stream:  ####
    - Fixed incorrect behavior seen when executing "save all", i.e. prompt
      about clobbering the output file before prompting for the output
    - Added entries for NUSTAR to xselect.mdb
    Version 12.8.1:
    New features:
    - New models:
         cpflux  - a variant of cflux for photon flux.
         heilin  - Voigt absorption profiles for the HeI series
         lyman   - Voigt absorption profiles for the HI or HeII series
         zbabs   - EUV ISM attenuation
    - A new statistic, pgstat, has been added for the case of Poisson-distributed
      with a Gaussian-distributed background. The whittle statistic can
      now be used when fitting averaged power density functions by
      appending an integer (so eg whittle5 is the statistic to use when
      fitting a pdf constructed by averaging those from 5 observations).
    - The old CERN Minuit library, which is used for the migrad, minim, monte,
      and simplex fitting methods and the improve command, has been
      replaced by the new version. The minim and monte methods are no
      longer supported and the new version does not include an improve command.
      The output from the migrad and simplex fitting methods now looks the
      same as that from the leven method. Note however that the rules for
      when to write intermediate fit results are not directly comparable
      so do not provide a measure of the relative speed of the methods.
    - Fakeit now has a 'nowrite' option to generate fake spectra without
      producing output files.  This is also now available in the
      multifake.tcl script command.
    - Parallel processing capability has been added to the steppar command
      and can be invoked using the parallel command.
    - Markov Chain Monte Carlo (the chain command) now uses the
      Goodman-Weare algorithm by default. Previously the default was
    - After a chain run, the best-fit parameters and statistic are now
      displayed with "chain info", and are available through the "tclout
      chain" option.
    - The default atom_db version used in apec models may now be modified
      with the ATOMDB_VERSION keyword in the user's Xspec.init file.
    - Steppar now has a 'delta' option for performing grids centered on
      the best-fit parameters.
    - The 'setplot delete' option has been enhanced to allow removal of all
      or a range of commands.
    - For external programs calling XSPEC, new wrapper functions have been
      added for retrieving XFLT keywords from data files.
    - Norm parameters are now set with a default 'soft' upper limit below
      their 'hard' upper limit.
    - In PyXspec, the Fit.statMethod and statTest attributes can now be set
      for individual spectra.
    Enhancements previously released as patches to 12.8.0:
    - AtomDB has been upgraded to version 2.0.2.
    - The tclout 'stat' and 'statmethod' options can now retrieve the test
      statistic as well as the fit statistic.
    - The simftest Tcl script command now takes an optional filename
      argument for output.
    - Attributes added to PyXspec classes: Xset.parallel, Fit.statTest.
    All bug fixes to v12.8.0 released as patches are included in v12.8.1.
    In addition the following problems have been corrected:
    - The command history file xspec.hty (in the user's ~/.xspec directory)
      is now updated when exiting XSPEC with the 'quit' command.  Previously
      it was only updated when exiting with 'exit'.
    - The 'chain' command can now read/write files in ASCII format when
      running in the default Goodman-Weare mode.  Previously this feature
      was only available for Metropolis-Hastings chains.
    - Fix to an array access error in the nthcomp model.
    - PyXspec fix removes error messages generated when accessing response
      parameters in Python versions 2.6.x.
    Version 2.2.1bn15 - updates since v221bn13 (HEASOFT 6.13) include:
    - Fixed error which caused spurious features in absorption line profiles:
      in routine stpcut:  dpcrit=1.e-2 --> dpcrit=1.e-6
    - Allows density to exceed 1.e+18.  This represents some serious
      approximations, physically:  there are various quantities which are
      tabulated vs. density, and those grids (still) end at 10\^18.  For
      example, the recombination into high n levels for each ion is lumped
      into one rate, for levels beyond those which are treated
      spectroscopically.  Computationally, the recombination rate into
      these levels can be written n\_e * alpha\_highn(n\_e, T).  So the
      n\_e which is the argument of the alpha\_highn function still can't
      go beyond 10\^18.  But the n\_e multiplier can be arbitrarily large.
      Similar comments apply to some other types of rates.
    - Includes new data on N VI level structure and collisional excitation.
    - tkexomerge: Invoke "wish" at startup rather than "wish8.0".
    NuSTARDAS version 1.2.0 - new software for the NuSTAR mission:
    * nuattcorr - Correct NuSTAR attitude file
    * nubackscale - Apply backscale correction to NuSTAR energy spectra
    * nucalcpha - Correct energy, calculate PHA and assign event grades for
      NuSTAR event files.
    * nucalcpi - Calculate PI column values of NuSTAR event files.
    * nucalcpos - Convert Raw coordinates into Detector coordinates of NuSTAR
      event files.
    * nucalcsaa - Calculate SAA passages for NuSTAR
    * nucoord - Convert Raw coordinates into Detector and Sky coordinates of
      NuSTAR event files
    * nuexpomap - Generate exposure maps for NuSTAR event
    * nufilter - Create a NuSTAR filter file from HK data running 'prefilter'
      and 'makefilter'
    * nuflagbad - Flag events for bad pixels in NuSTAR event files
    * nuflagevt - Flag events according to various cuts criteria in NuSTAR
      event files
    * nuhotpix - Search for hot and flickering pixels in NuSTAR event files
    * nulccorr - Apply livetime correction to NuSTAR light-curves
    * nulivetime - Apply the dead time correction to the temporal keywords of
      the NuSTAR event files.
    * numetrology - Process the metrology data for NuSTAR
    * numkarf - Generates an ARF file for an input PHA file for NuSTAR
    * numkrmf - Generates an RMF file for an input spatial region file
      for NuSTAR
    * nupipeline - Run in sequence the tasks for NuSTAR data processing
    * nuproducts - Extract high-level data products from a Level 2 event file
      for NuSTAR
    * nuscreen - Generate GTIs and use them together with event properties
      selection to screen NuSTAR event files
    * nuskypos - Calculates SKY position of the optical axis, of the aperture
      stop center and of the DET1 reference pixel for NuSTAR
    * nuskytodet - Calculates DET1 and DET2 coordinates of a SKY pixel for
    * nuversion - Report version string for NuSTAR package
    - aepipeline, aeattcor2, hxdxb, hxdwampipeline: Fixed deprecated qw( )
      syntax in foreach loops.
    - batcelldetect, batoccultmap: Updated WCSLIB version to 4.16.
    - batsurvey:
      By default, prevent operation on data with 20 energy bins instead
      of normal 80 energy bins.
      new parameters 'dph_pattern' 'attitude_pattern' 'sao_pattern'
      'go_pattern' 'de_pattern' are filename wildcard patterns that
      give the user control over which files are used for processing.
    - uvotapplywcs: Updated WCSLIB version to 4.16.
    - uvotdetect: Added a mode that improves source detection in images
      with few counts: when expopt=EVENTS is specified, an image with
      discretized counts is passed to SExtractor.
    - uvotsource, uvotmaghist, uvotproduct, uvotevtlc:
      Updated the derivation of the rate limit to account for uncertainty in
      the background.
      Include the aperture, large scale sensitivity, and detector sensitivity
      corrections in the upper limit calculations (previously, only coincidence
      loss was included).  Added the CORR_RATE_LIMIT column and derive the
      instead of COI_RATE_LIMIT.
      Include the Swift clock correction when converting UTC to MET.
    - uvotcentroid, uvotgrplot, uvotsequence:
      PGPLOT-perl module updated to v2.21, ExtUtils-F77 updated to v1.17.
      Distributed by Karl Glazebrook via http://search.cpan.org/~kgb/.
      Modified K. Glazebrook's build to allow universal architecture formats
      of PGPLOT.bundle on Mac OS X.
    - xrtcalcpi: Bug fixed handling 'seed' input parameter.
    - xrtpccorr: Bug fixed.
    - xrtpipeline: Use of the "pat" attitude file by default. Handle SLEW
      and SETTLING mode while correcting bias for Photon Counting mode.
    - pcarsp:
      - comma-separated list of PCU weights now works properly
      - exit task if no detector/layers are requested
    - pcaextspect2:
      - remove unused and undocumented 'src_pha_file_nodt' and
        'bkg_phafile_nodt' parameters, in favor of new 'deadcorrtype'
        parameter to control how dead-time is calculated
      - 'filtfile' parameter now accepts @filtfiles.lis form of input;
        'filtfile' is only prompted if 'respfile' is not NONE
      - handle case when final EXPOSURE is zero, new 'phazeroexp'
        keyword controls what happens in this situation
      - better parsing of 'pculist' and 'layerlist', including ranges
    - pcadeadspect2:
      - new parameter 'deadcorrtype' allows to correct for LIVE- or ON-time
      - output keyword is now DEADAPP instead of DEADCORR for compatibility
      - new parameters 'gtiarray' 'lcbinarray' 'maxmiss' 'mfracexp' to handle
        all possible time binnings
    - pcaextlc2 (NEW TASK): extracts Standard2 light curve with corrections
    - pcaprepobsid (NEW TASK): prepares an entire RXTE observation for
      PCA analysis
    - pcamergeobsids (NEW TASK): merges individual observations into a
      single data set
    - pcaprepfile2: small cleanups
    - saextrct: version 4.3a: Lift formal limit on number of input files to
      999 files instead of 100.
                           GLOBAL CHANGES / CONFIGURATION
    - Issue a warning on Darwin if Perl is not co-located with C since
      XCode C is not likely to play nice with non-XCode Perl.
    - hwrap: New utility to create a wrapper environment for HEASOFT tasks
      to prevent clashes with other software packages (e.g.  XMM-SAS, CIAO).
      See http://heasarc.gsfc.nasa.gov/lheasoft/hwrap.html for more
    - All Perl scripts: Replace "require getopt|s.pl" with "use Getopt::Std",
      as getopt.pl and getopts.pl are no longer distributed with the latest
      Perl (~v5.15.x - 5.16.x).  Replace "&Getopt|s()" calls with getopt|s().
    - Older Fortran-based ftools: change all udmget arrays MEMB/S/I/L/R/D/X
      of size (1) to size (100) to get past new aggressive optimization in
      gfortran 4.8.x.  The new compiler decides that e.g. MEMI(1) can never
      have more than one element so when doing loop unrolling optimization
      appears to (incorrectly) remove the loop over its elements.
    - Add checks for -fno-automatic (gfortran) or -fstatic (g95) compiler
      flags to protect un-SAVEd variables in Fortran.

    Help lines: FTOOLS or xanprob@athena.gsfc.nasa.gov

    Web page maintained by Bryan K. Irby

    HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public

    Last modified: Thursday, 21-Nov-2013 10:27:30 EST