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.20
January 18, 2017
********************************************************************************
The HEASoft 6.20 release is primarily driven by updates to XSPEC, NuSTARDAS,
XRTDAS, and the Hitomi 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.41:
- The change made in version 3.40 to include strings.h caused problems on
Windows (and other) platforms, so this change was backed out. The reason
for including it was to define the strcasecmp and strcasencmp functions,
so as an alternative, new equivalent functions called fits_strcasecmp and
fits_strncasecmp have been added to CFITSIO.as a substitute. All the
previous calls to the str[n]casecmp functions have been changed to now
call fits_str[n]casecmp. In addition, the previously defined ngp_strcasecmp
function (in grparser.c) has been removed and the calls to it have been
changed to fits_strcasecmp.
- The speed.c utility program was changed to correctly call
the gettimeofday function with a NULL second arguement.
Version 3.40:
- fixed a bug when writing long string keywords with the CONTINUE convention
which caused the CONTINUE'd strings to only be 16 characters long, instead
of using up all the available space in the 80-character header record.
- fixed a missing 'defined' keyword in fitsio.h.
- replaced all calls to strtok (which is not threadsafe) with a new ffstrtok
function which internally calls the threadsafe strtok_r function. One
byproduct of this change is that <strings.h> must also be included
in several of the C source code files.
- modified the ffphbn function in putkey.c to support TFORM specifiers that
use lowercase 'p' (instead of uppercase) when referring to a variable-length
array column.
- modified the lexical parser in eval.y and eval_y.c to support bit array
columns (with TFORMn = 'X') with greater than 256 elements. Fix to bitcmp
function: The internal 'stream' array is now
allocated dynamically rather than statically fixed at size 256.
This was failing when users attempted a row filtering of a bitcol
that was wider than 256X. In bitlgte, bitand, and bitor functions, replaced
static stream[256] array allocation with dynamic allocation.
- modified the ffiter function in putcol.c to fix a problem which could
cause the iterator function to incorrectly deal with null values. This
only affected TLONG type columns in cases where sizeof(long) = 8, as well
as for TLONGLONG type columns.
- Fix made to uncompress2mem function in zcomprss.c for case where output
uncompressed file expands to over the 2^32 (4Gb) limit. It now
checks for this case at the start, and implements a 4Gb paging
system through the output buffer. The problem was specifically
caused by the d_stream.avail_out member being of 4-byte type uInt,
and thus unable to handle any memory position values above 4Gb.
- fixed a bug in fpackutil.c when using the -i2f (integer to float) option
in fpack to compress an integer image that is scaled with non-default values
for BSCALE and BZERO. This required an additional call to ffrhdu to reset
the internal structures that describe the input FITS file.
- modified fits_uncompress_table in imcompress.c to silently ignore the
ZTILELEN keyword value if it larger than the number of rows in the table
- Tweak strcasecmp/strncasecmp ifdefs to exclude 64-bit MINGW
environment, as it does not lack those functions. (eval_l.c,
fitsio2.h)
- CMakeLists.txt: Set M_LIB to "" for MINGW build environment (in
addition to MSVC).
- Makefile.in: Add *.dSYM (non-XCode gcc leftovers on Macs) to
clean list. Install libs by name rather than using a wildcard.
- configure: Fix rpath token usage for XCode vs. non-XCode gcc on Macs.
********************************************************************************
HEASP
********************************************************************************
- Added interpolateAndMultiply to multiply rmf by a vector
of factors on energy binning different from the response.
- Fixed bug in writeMatrix which caused an empty ORDER column
to be written if there was no ORDER information.
- Added overloads of SPstring2Real and SPstring2Integer to convert
vectors of strings.
- Added handy utility routine to parse ranges in a string.
- Added routines to return a vector of strings containing
all the keywords from the primary or extension header.
- Added support for the LOELIMIT and HIELIMIT keywords in the table
model file. These are stored as LowEnergyLimit and HighEnergyLimit
in the object and assumed to specify the model value to be used
when the energy is below/above those tabulated.
********************************************************************************
ATTITUDE
********************************************************************************
- prefilter: Add 'timeadj' parameter to address Swift's clock drift.
This parameter can be used to adjust times used for calculations.
TIME_ADJ = TIME + offset where the value of offset depends on the value
of the timeadj parameter. The default setting (timeadj=DEFAULT) allows
mission-specific determination of offset. timeadj=CONST:<value> sets
offset to value. timeadj=KEY:<value> sets offset to the value of a keyword
from the attitude file. timeadj=LEAPS sets offset to the opposite of the
number of leap seconds since missepoch to start.
For the Swift mission, DEFAULT is treated as KEY:UTCFINIT (if that keyword
is present), or LEAPS if it is not. For all other missions, DEFAULT is
treated as LEAPS. Note that LEAPS is consistent with past behavior.
********************************************************************************
CALTOOLS
********************************************************************************
- genrsp: Set resp_file and chan_file to 'none' when inrfil is not 'none'.
Fixes a bug in which genrsp reported 'Failed to open response energy
relation file' because resp_file was neither specified nor set to 'none'
and was just an empty string.
********************************************************************************
FUTILS
********************************************************************************
- fverify: Added checks and warnings for 'P' format variable length columns
when either the row length or heap offset is detected to be greater than the
max signed 4-byte int. CFITSIO allows these values up to max unsigned int,
which is more lenient than the FITS standard. Also updated to allow for
longer input file names.
********************************************************************************
FV
********************************************************************************
- Allow a build of FV in the Cygwin environment for MS Windows. The POW
display device is partially inoperative, but the ds9 device may be used
instead.
********************************************************************************
HEAGEN
********************************************************************************
- arftable:
* Behavior change: Converts energy units of output file to be the same
as those of the input RMF file if they are different.
* New parameter: writeevtfile (boolean): if set to yes, a file will
be written listing the subset of photons that reach the focal plane
unblocked by any object in the optical path. Objects are specified
by the parameters objecttype, imimagefile, objectheights, objectradii,
imagerotangles, xoffsets, and yoffsets.
* Bug-fix: The raytracing photon history file is now read and processed
in chunks of 1000000 rows, rather than all at once, in order to
mitigate memory problems resulting from large files.
- barycorr:
* Fix HDU position handling: HDU position was not properly being updated,
with the effect that TSTART/TSTOP/etc. in the final time-related HDU
were not being corrected.
- xrtraytrace:
* Behavior change: Accounts for a rotation between the reference frame
of the Telescope Definition File (TDF) and the telescope physical
coordinate system. This angle is given by the TELFPROT keyword in
the TDF MIRROR extension.
- swco.dat: Update to include 2017.0 leap second.
********************************************************************************
HEASARC
********************************************************************************
- extractor: Correctly handle the case of a vector column in the event
file before the X and Y columns. Ignore trailing blanks in values
when comparing for duplicate keywords.
********************************************************************************
HEATOOLS
********************************************************************************
- ftdiff: Fix case of TBIT columns where an incorrect col_repeat value
caused ftdiff to miss cases where bits differed.
- ftverify: Added checks and warnings for 'P' format variable length columns
when either the row length or heap offset is detected to be greater than the
max signed 4-byte int. CFITSIO allows these values up to max unsigned int,
which is more lenient than the FITS standard. Also updated to allow for
longer input file names.
********************************************************************************
XSPEC
********************************************************************************
Xspec v12.9.1:
New features:
- New Models:
carbatm - NS non-magnetic C atmosphere
clumin - calculates luminosity
hatm - NS non-magnetic H atmosphere
ismabs - High-resolution ISM absorption
rfxconv - reflection from ionized disk
slimbh - slim accretion disk
snapec - galaxy cluster spectrum using SN yields
(b)(v)(v)tapec - apec model with different temperatures for continuum
and emission lines
tbfeo - tbabs model with O and Fe only variable
tbgas - tbabs model with no grains
tbpcf - tbabs model with partial covering
tbrel - tbabs model that allows negative columns
vashift - velocity shift an additive component
vmshift - velocity shift a multiplicative component
voigt - emission line with a Voigt profile
xilconv - reflection from ionized disk
xscat - dust scattering out of the beam
- Updated Models:
- apec models updated to AtomDB 3.0.7
- nei models updated to AtomDB 3.0.4 eigen files
- The apec code now has the ability to add new line shapes for broadening
although at present only a single Gaussian line shape is operational.
- A new xset option APECMINFLUX can be used to specify a minimum line flux
below which lines are not broadened. Also the maximum flux in any line
in the apec model is saved as apecmaxlineflux and this can be recovered
using tcloutr modkeyval apecmaxlineflux. At the moment both this and
APECMINFLUX do not include the 1e14 normalization factor and any time
dilation correction.
- the code for the various CEI models was rationalized and there is a new
C++ routine calcMultiTempPlasma which can be used by other models. The old
Fortran sumdem routine remains as a wrapper for old models.
- tbabs model code has been updated. The old version is available by using
xset TBABSVERSION 1.
- updated nsmaxg model with new tabulated model files.
- increased the speed for accessing values from table models.
- modified table model code to support new keywords LOELIMIT and HIELIMIT to
specify model values to be taken below and above the tabulated energies.
- Plotting:
- added low and high energy limits to setplot id so lines are only shown
for the specified energy range.
- added setplot (no)contimage to turn on (off) the background image in
contour plots.
- the keV to Angstrom conversion value stored in Numerics.h has been updated
to that from CODATA 2014.
- Fitting:
- Added parallelization to chain walker calculations and to the goodness
simulations.
- The 'error' command can now process parameters from more than 1 model
in a single call.
- In the various cstat statistics any correction file spectrum is now taken
account. This does implicitly assume that the correction file has Poisson
statistics.
- the Tcl script lrt.tcl now uses the fakeit nowrite option so intermediate
faked files are not written out. Also, now works for multiple data groups.
- Input/Output:
- increased the precision of the reported output from the 'tclout'
command options.
- increased the allowed flux (counts) to beyond the 4-byte limit when
running 'fakeit' with counting statistics selected.
- new tclout option fileinfo writes the value of the keyword given as the
fileinfo argument. e.g. tclout fileinfo detnam returns the value of the
detnam keyword in the spectrum extension.
- Xspec.init file:
- added PARALLEL to set default parallelization options
- added NEI_VERSION to set default version for NEI models
- added CONTOUR_IMAGE to set default for adding image to contour plots
- changed default cross-sections from bcmc to vern
- The manual has now been rewritten in LaTeX. The appendix on statistics
has been expanded. Cross-referencing has been improved.
All bug fixes to v12.9.0 released as patches are included in v12.9.1.
In addition the following problems have been corrected:
- A previous revision to the 'goodness' command removed the requirement
that the fit must be in a valid state at the start, however it was
incorrectly marking the fit as being in a valid state at the end.
- When re-reading a previously loaded table model file, was not
correctly recognizing whether or not parameter error values existed.
- A spectrum's displayed net count rate variance needs to be updated
when the fit weighting method gets changed.
******************
PyXspec Change Log (v2.0):
New Features:
(*) = previously available as XSPEC patches.
- Now compatible with Python 3.x. (No longer compatible with Python
versions prior to 2.5.)
- Added `Xset.save()` and `restore()` functions for saving and
recovering the state of a PyXspec session.
- New adjustable attributes for the `Chain` class: `walkers` and
`algorithm`.*
- `AllModels.tclLoad()` method added to provide a lower-level
alternative to the `lmod()` local model loading scheme.*
- `Xset.allowPrompting` attribute provides option for turning on/off
XSPEC prompting. This can be useful in iPython environments where
certain contexts can lead to infinite prompting loops.
- PyXspec manuals have been converted from Doxygen-generated to
Sphinx-generated HTML and PDF.
Fixes:
- Was previously unable to unlink a linked parameter in a Python-coded
local model.*
********************************************************************************
XSTAR
********************************************************************************
Version 2.39 - updates since v2.31 (HEASOFT 6.19) include:
- Changes to turn on printing in the rstepxx and fstepxx routines.
Also, increase size of temporary arrays in those routines to match nnnl.
- Changes to correct for incorrect dimension in PARAM file which led
to bad numerical results for Cu and Zn. Changes to add printing of
element by element heating and cooling rates.
- Fixed error in pprint which prevented correct filling of xout_abund1.fits.
- Fixes to atomic data to account for direct excitation of fine
structure levels of He-like ions.
- Strip out fictitious fe xxiv collisional ionization to 1s2s level
of fexxv.
- Fix to ucalc.f which calculates detailed balance for data type
95 (Bryans collisional excitation) without numerical errors.
- Changes to include updates to ucalc to include calculation of
type 97 rates (inner shell collisional ionization; currently
no data of this type is included).
- Local version of getlun and associated routines to properly
keep track of opened and freed logical units.
- Repair extra data records for type 76 data, 2 photon decays, and
changes which prevent printing of type 76 data along with lines.
- Fixes to He-like atomic data to correct for some missing rates
affecting levels created when mapping from ls to lsj levels.
- Change to ucalc and calling routines to not call linopac for lines
when opacity*delta(r) is less than 1.e-8. This saves execution time.
- New feature: no fits files will be saved if lwrite < 0.
********************************************************************************
HITOMI
********************************************************************************
Patch Hitomi V005a released Jan 18, 2017
Mission Applications:
- aharfgen , ahsxtarfgen , hxirspeffimg
New parameter: polydeg (string): polynomial order for the fitting.
For the HXI, the DEFAULT value sets the polynomial order to 5. For
the SXI and SXS, the DEFAULT value sets the polynomial order to an
internal test for the best polynomial order. Other allowed values
are 1 to 5 for the HXI and 1 to 10 for the SXI and SXS.
- ahsxtarfgen
Behavior change: the default behavior is changed since the
polynomial order to provide a stable fit solution is tested internally
with a minimization technique. The parameter value polydeg determines
whether or not the routine should use the default behavior.
- xrtraytrace
Bug-fix: correct the behavior of decreasing area with increasing
number of input photons for large region. This affects the raytracing
output when run with flat or beta model in conjunction with very
large regions (~above 12 arcmin) and number of events larger than
200000 on axis.
SXI
- sxipi
Bug-fix : in a debug statement array out of range for window mode data
when reading CTI from CALDB giving seg fault. No effect on the actual
calculation but just on the print statements
SXS
- mxstime
Bug-fix : fine gti overlapping are checked using the pulselength and
compare the afterglow length. For files where the start of the mxs is
outside of the start of file the code was not using the correct
pulselength from the last row. This is only affected if the afterglow
flag is set to yes.
Hitomi V005 - Major changes introduced in this version:
General Applications:
- ahgtigen:
* Bug-fix: Handling of the parameters cpkeyword and upkeyword was
corrected. If upkeyword=yes, timing keywords are updated in all
output GTI files, whereas previously, this update happened only for
files resulting from a merging of GTI. If cpkeyword=all, keyword
copying is now delegated solely to the maketime task, whereas
previously, the copying was done a second time redundantly by ahgtigen.
- ahpipeline:
* Behavior change: MKF and EHK GTI are now copied to the end of
unfiltered event files.
* Behavior change: Updates timing keywords in the MKF and EHK GTI for
all instruments and copies other keywords from unfiltered event file.
* Behavior change: The EHK file is now replaced with the EHK2 file
(which includes columns based on SXS antico rates) if the latter
is successfully created.
* Behavior change: For SXS screening, the PIXEALL2 label has been
changed to PIXELALL3.
* Parameter change: r2tol, bisectolshift, bsectolwidth (SXS gain
fitting parameters): default values changed from 0.01, 0.1, and 0.2,
respectively, to 0.001, 0.001, and 0.001.
* Bug-fix: For SXS, the PIXEL column was omitted from lost fake GTI
extensions; now included.
* Behavior change: Moved proximity flagging from the first run of
sxsflagpix to the second run of sxsflagpix.
* Behavior change: For SXS, Perseus observation stop date and time have
been changed from 2016-03-08T00:38:00 to 2016-03-04T00:41:00.
Mission Applications:
- aharfgen
* Parameter change: auxtransfile: If set to CALDB, a CALDB query is
done. Previously, the string CALDB was not detected and was passed
unmodified to the called tasks.
* Parameter change: regmode: Now should be set to RADEC to indicate
that the regionfile is in world coordinates, for consistency with
coordinate terminology in other tools. Previously, the value SKY
was used incorrectly to indicate world coordinates.
- ahbackscal
* NEW TOOL: Corrects the BACKSCAL keyword in a spectrum file that has
been extracted using xselect.
- ahcalcl32ti
* Behavior change: TZEROn keyword is now written for L32TI column to
make it effectively unsigned.
- ahfilter
* Bug-fix: Under certain conditions, the output EHK file was incorrectly
deleted at the end of processing like a temporary file. This happened
when the output EHK file path contained more than one dot and the
infileroot parameter was a non-empty string. The parsing of file
names has been corrected to avoid this outcome.
- ahgainfit
* Parameter change: r2tol (convergence criterion for R^2): default value
changed from 0.01 to 0.001.
* Parameter change: bisectolshift (tolerance of shift to stop bisection
method): default value changed from 0.1 to 0.001.
* Parameter change: bisectolwidth (tolerance of width to stop bisection
method): default value changed from 0.2 to 0.001.
- ahmktim
* Bug-fix: Corrected a double-free failure which sometimes occured when
task was built with gcc 5.4 with optimization.
- ahnxbgen
* Bug-fix: Incorrect Perl function call get_column_number() has been
corrected to get_column_num().
* Bug-fix: One case-sensitive test of regmode parameter is now case-
insensitive.
- ahsxtarfgen
* Behavior change: Writes PSF fraction inside detector area and/or
inside region to the screen.
* New parameter: auxtransfile: Auxiliary transmission file, containing
transmission as a function of energy to be applied to final ARF.
* Parameter change: skyregfile: Wording of the parameter prompt was
changed to make clear that this region file is in world coordinates
(RADEC), not Cartesian SKY coordinates.
* Bug-fix: In applying the contamination CALDB file, now reinitializes
the sum of weights and weighted sum to zero for each fine energy bin.
Previously, this reinitialization was not done, so that incorrect
transmission values for contamination were used in the ARF.
- hxirspeffimg
* Parameter change: auxtransfile: If set to CALDB, a CALDB query is
done. Previously, the string CALDB was not detected and was treated
as a normal filename.
- sxsnxbgen
* New parameter: picol: Name of PI column to read from input event file.
HXI/SGD Applications:
- sgdarfgen
* Behavior change: Checks SGDID parameter vs. INSTRUME keyword in input
file, and includes SGDID as part of output file name.
- sgdevtid
* Behavior change: Uses underscore instead of blank in fluorescence
material names; e.g., 'CdTe btm' is now 'CdTe_btm'.
* Bug-fix: Throws error if the program attempts to find a fluorescence
line for a material that is absent from the CALDB file. Previously,
such fluorescence lines were silently omitted in event reconstruction.
SXI Applications:
- sxiflagpix
* Bug-fix: Program was segfaulting when the parameter echoflag was
'no' and the parameter echomap was 'yes'. This bug was corrected
by ignoring echomap when echoflag is 'no'.
- sxipi
* Bug-fix: Some CALDB files can have blocks of lines with the same
timestamp. Previously, CALDB files containing more than one such
block were being read incorrectly. The bug was fixed by correcting
the flow of control in nested loops that process each group of equal
times within each file.
SXS Applications:
- sxsextend
* NEW TOOL: Reruns tasks sxspha2pi, sxsperseus (if necessary), and
ahscreen in order to produce SXS event files in extended energy mode. `
- sxsanticolc
* Behavior change: Sets TUNIT keywords for output RATE and ERROR columns.
Previously, these keywords were omitted.
- sxsflagpix
* Behavior change: If MXS GTI times do not overlap with the time range
of the input file. prints log message and skips MXS flagging.
Previously in this case, the task threw an error.
- sxsgain
* Parameter change: r2tol (convergence criterion for R^2): default value
changed from 0.01 to 0.001.
* Parameter change: bisectolshift (tolerance of shift to stop bisection
method): default value changed from 0.1 to 0.001.
* Parameter change: bisectolwidth (tolerance of width to stop bisection
method): default value changed from 0.2 to 0.001.
* Behavior change: Instead of using theoretical average when determining
the temperature from the fitted shift, now uses the tabulated profile
average.
- sxsperseus
* Behavior change: For extended energy mode, reads columns EPIE and
EPI2E rather than EPI and EPI2, and writes columns EPIEPER and
EPI2EPER rather than EPIPER and EPI2PER.
* Bug-fix: Now checks whether PI or PIE column already exists before
inserting it into the output file.
* Parameter change: binwidth (PI bin width for extended energy range):
Default value changed from 0.5 eV to 1.0 eV.
- sxspha2pi
* Behavior change: In extended energy mode, automatically adds "E" to
column name in ADDEPICOL parameter to form the name of the output
column for energy with secondary correction.
* Behavior change: Now writes PIOFFST and PIWIDTH keywords (PI energy
offset and bin width) in non-extended-energy mode. (Similar keywords
PIEOFFST and PIEWIDTH were already written for extended energy mode.)
* Bug-fix: Skips events with PIXEL=NULL to guard against a segfault.
Normally, this condition is never encountered because the PROC_STATUS
column should indicate a bad event, but PROC_STATUS has not been
updated in teh pre-pipeline for this condition.
- sxspixgti
* Behavior change: Updates timing keywords if upkeyword=yes (upkeyword
is also passed to the called task ahgtigen, as before).
- sxsregext
* New parameter: extended (boolean): extended=yes causes the PIE column
to be read from the event file rather than the PI column.
* Behavior change: Substitutes USER=sxsregext for USER=[user name] in
output header to facilitate unit testing.
* Parameter change: regmode: WCS coordinates for the regionfile are now
indicated by regmode=RADEC rather than regmode=SKY.
Libraries:
- ahgain
* Bug-fix: Memory leak eliminated in deallocation of fit results structure.
- rmflib
* Behavior change: CHANNEL column in EBOUNDS RMF extension changed from I type to J.
********************************************************************************
NUSTAR
********************************************************************************
NuSTARDAS v1.7.0 software patch:
- nucalcsaa: Adjust the behavior of nucalcsaa so that fselect is no
longer run even when saamode='NONE' and tentacle=no. This resolves
the known issues where nupipeline was crashing when the 01 and 02
event files were empty (mostly when looking at the Sun).
- nupipeline: (1) nupipeline now selects an appropriate TLE file
from the auxil directory instead of simply exiting with an error
message. (2) Corrected a bug in the input parser that occurred
when parameter 'statusexpr' was not set to 'DEFAULT'.
- nuscreen: Correction of a bug when input parameter 'statusexpr'
is not set to DEFAULT.
NuSTARDAS v1.7.1 software patch:
- nufilter: added the parameter 'timeadj=DEFAULT when running the
multi-mission FTOOL prefilter.
********************************************************************************
SWIFT
********************************************************************************
XRTDAS Build 33:
- xrtpipeline: Disabled the option to call the xrttam module (removal
of the input parameters applytamcorr, tamfile, tamrefx1, tamrefy1,
tamrefx2, tamrefy2, attcorrout)
- xrtwtcorr: Bug fixed in the bias adjustment calculation.
- xrtscreen: Fixed some keywords duplication in output GTI files.
- xrtfilter: Modified the call to the multi-mission FTOOL prefilter.
- xrtgrblc: Update of the clean-up of temporary files.
- xrtgrblcspec: Adjust some output formatting to mimic behavior prior to
a recent increase in output precision from Xspec.
********************************************************************************
XTE
********************************************************************************
- GUIs xdf and xsut have been relocated to live with the rest of the XTE
software instead of the "FV/GUIs" package.
********************************************************************************
MISC.
********************************************************************************
- tai-utc.dat, leapsec.fits: Added 2017-01-01 leap second.
- PLT: Fix for problem in contour plot when the label to set the cross
can fail if the first position given is of the form #e... where #
is a single integer. The issue arises because GTPEEK returns only
the first two characters of the token while ISNUM checks for a
token being a number by testing that the first and last characters
are integers. There are a number of other places that GTPEEK is
followed by ISNUM so these could generate similar problems. It
would be better to have a complete solution to these however the
obvious fix of changing GTPEEK to return the entire token causes
a failure when using text surrounded by double quotes.