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.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.
********************************************************************************
CFITSIO
********************************************************************************
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
defined.
- 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.
********************************************************************************
CCFITS
********************************************************************************
- 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.
********************************************************************************
HEASP
********************************************************************************
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
$HEADAS/../heacore/help/headas_guide.pdf.
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.
********************************************************************************
ATTITUDE
********************************************************************************
- 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.
********************************************************************************
FV
********************************************************************************
- Bug fix: Text dump of vector column was changing NULLs to non-zero
values.
- 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.
********************************************************************************
FUTILS
********************************************************************************
- 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.
********************************************************************************
HEATOOLS
********************************************************************************
- ftdiff: Use TBIT for X type, not TBYTE.
- ftimgcalc: Update WCSLIB version to 4.16.
http://www.atnf.csiro.au/people/mcalabre/WCS/
- 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.
http://www.atnf.csiro.au/people/mcalabre/WCS/
********************************************************************************
HEAGEN
********************************************************************************
- 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
columns.
- flx2xsp: Fixed so that the input file columns can be separated by tabs
as well as spaces.
- rgsrmfsmooth: Update WCSLIB version to 4.16.
http://www.atnf.csiro.au/people/mcalabre/WCS/
********************************************************************************
HEASARC
********************************************************************************
- 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.
********************************************************************************
XIMAGE
********************************************************************************
- 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.
http://starlink.jach.hawaii.edu/starlink/AST
- 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: ####
********************************************************************************
XSELECT
********************************************************************************
- Fixed incorrect behavior seen when executing "save all", i.e. prompt
about clobbering the output file before prompting for the output
filename.
- Added entries for NUSTAR to xselect.mdb
********************************************************************************
XSPEC
********************************************************************************
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
data
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
Metropolis-Hastings.
- 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.
********************************************************************************
XSTAR
********************************************************************************
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.
********************************************************************************
EXOSAT
********************************************************************************
- tkexomerge: Invoke "wish" at startup rather than "wish8.0".
********************************************************************************
NUSTAR
********************************************************************************
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
NuSTAR
* nuversion - Report version string for NuSTAR package
********************************************************************************
SUZAKU
********************************************************************************
SUZAKU:
- aepipeline, aeattcor2, hxdxb, hxdwampipeline: Fixed deprecated qw( )
syntax in foreach loops.
********************************************************************************
SWIFT
********************************************************************************
BAT:
- batcelldetect, batoccultmap: Updated WCSLIB version to 4.16.
http://www.atnf.csiro.au/people/mcalabre/WCS/
- 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.
UVOT:
- uvotapplywcs: Updated WCSLIB version to 4.16.
http://www.atnf.csiro.au/people/mcalabre/WCS/
- 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
MAG_LIM, MAG_HZ_LIM, FLUX_AA_LIM, FLUX_HZ_LIM columns from CORR_RATE_LIMIT
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.
XRT:
- 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.
********************************************************************************
XTE
********************************************************************************
- 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
information.
- 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.