********************************************************************************
RELEASE NOTES FOR HEASOFT 6.30
March 14, 2022
********************************************************************************
The HEASoft 6.30 release is driven by new data analysis software for
IXPE and updates to other mission-specific packages (NICER, Swift),
but as always includes other enhancements and fixes.
Configuration-related changes throughout the package mean that users
who already have HEASoft 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
********************************************************************************
CFITSIO v4.1.0:
- Calls to the zlib inflate() function in zcompress.c now handle
the Z_BUF_ERROR return value rather than exiting.
- The SUBTRACTIVE_DITHER_2 option has been removed when using the
HCOMPRESS algorithm.
- Updated fits_get_version function to return a float calculated
from 3 version fields.
- Added handling of SBYTE_IMG and ULONGLONG_IMG types to the
fits_resize_img function.
- Updates made to C/Fortran interfacing in cfortran.h and f77_wrap.h
specifically driven by new Mac/ARM architecture.
- Fix to the fits_insert_col functions to handle columns with
TULONGLONG data.
********************************************************************************
HEASP
********************************************************************************
grouping:
- Added inBin method to return whether an input element is in any
output bin.
- Trapped a possible segfault if the first channel of a group is set
to bad quality but the other channels are good.
pha:
- Fixed rebinChannels for seg fault if the grouping starts by not
including channels.
- Added getMinSNOptimalGrouping to do optimal binning with an
additional S/N criterion.
rmf:
- improved handling of the case of the FCHAN and/or NCHAN arrays being
longer than the number of groups specified in N_GRP.
table:
- Fixed getValues error in calculating spectrum numbers for interpolation
when there are XFLT keys set.
- Fixed copy to add copying the filter expression map.
- Fixed a possible seg fault when reading large table model files with
additional parameters.
********************************************************************************
CALTOOLS
********************************************************************************
- quzcif: Added support for specifying a caldb version using the
"caldbver" parameter; miscellaneous minor improvements
- udcif: Will now add CALDBVER to 1st extension header in the CIF if it
doesn't exist
- Added support for HDUVERS=1.2.1
********************************************************************************
FUTILS
********************************************************************************
- fselect: Replaced with a wrapper to ftselect (HEATools)
- Removed obsolete task "ofverify" from the build.
********************************************************************************
HEAGEN
********************************************************************************
- barycorr: Added support for IXPE
********************************************************************************
HEASARC
********************************************************************************
- extractor:
Added support for polarimetric data. The new parameter 'polwcol'
should be set to the polarization weighting column (eg W_MOM for IXPE).
If it is not "NONE" then sets of spectra and/or lightcurves are made
for the I,Q,U Stokes parameters instead of a single spectrum and/or
lightcurve. If the output spectrum is given as eg test.pha then the
files written are testI.pha, testQ.pha, and testU.pha.
Fixed bug when writing an output event file. The TIMEZERO keyword was
written out as 0.0 instead of being copied from the input event file.
Since event data are copied directly from the input to output event
file no time correction is made so TIMEZERO must be left unchanged.
This bug appears to date back to at least 1996 which is as far back
as our logs go.
Fixed a rare bug when a GTI is smaller than TIMEDEL.
Trapped possible seg fault for event files with no image coordinates.
- chkpha, chkrmf: Replaced with wrappers to the heasptools ftchkpha
and ftchkrmf, respectively.
********************************************************************************
HEASPTOOLS
********************************************************************************
- ftgrouppha: Added "optsnmin" grouping option to combine optimal
binning with a minimum S/N.
********************************************************************************
HEATOOLS
********************************************************************************
- ftcreate: Added support for 'K' data type, and improved handling
of the 'M' type
- ftlist: Fixed crash affecting 1-3A columns containing NULLs.
********************************************************************************
XIMAGE
********************************************************************************
- Updated for gfortran 12.x: Fixed "rank mismatch" compilation errors
- Updated mkcolor and mkhratio tools to use Fortran 90 memory allocation
********************************************************************************
XSELECT
********************************************************************************
Added IXPE entries to xselect.mdb. Saves sets of spectra and/or
lightcurves for the Stokes I,Q,U parameters. The plot spectrum and
plot curve commands only plot the Stokes I parameter data.
********************************************************************************
XSPEC
********************************************************************************
Xspec 12.12.1:
Changes to models
- New spectropolarimetry models: polconst, polpow, pollin.
Renamed mixpol to polmix for consistent naming scheme.
- Replaced fixed size internal array in compbb with one which is
allocatable. This fixes a potential problem with large numbers of
energy bins.
- Much simplified code for ismabs model which fixes offset by one bin
problem when using the tabulated data. Converted ismabs, ismdust,
and olivineabs to double precision fortran models (eg F_ismabs in
model.dat). Rationalized variable names and removed copies of
subroutines.
- Added new math operators atan2, sinh, sinhd, cosh, coshd, tanh, tanhd,
sign, heaviside, boxcar, atan, asinh, acosh, atanh, erf, erfc, gamma
for use in mdefine and newpar.
- mdefine can now recursively call other mdefine components.
Changes to plots
- Added option to appropriate plots to specify the plot group numbers
to use in the plot. eg plot 1 data resid makes the data and
residuals plots for plot group 1 only.
- Added plot polangle and plot polfrac options. These plot polarization
angle and fraction. One set of data points and errors are produced for
each data group. Each data group must have complete sets of I,Q,U spectra.
Changes to output
- tclout stat now allows contributions to the fit statistic from
individual spectra to be retrieved.
Changes to internal functions
- Made a version of tableInterpolate which passes a map of XFLT values
instead of a spectrum number. This allows other users of the library
to run their code without a spectrum loaded.
- Changed variables and comments in LinearInterp to improve
clarity. Added C and Fortran wrappers in XSFunctions/Utilities for the
LinearInterp routines. Fixed error in linInterpInteg in first bin(s)
if target binning is much finer than current. Added double precision
versions of LinearInterp wrappers.
Bug fixes not already released as patches
- Batch mode scripts which did not exit were leaving command echoing
in a disabled state.
- When entering a Tcl control structure from the Xspec prompt, the new
prompt string wrongly contained the "puts -nonewline" command.
- When calling "setplot" with an abbreviated option name, quotes and escape
characters were not handled properly.
- Restored the ability for users to include header files from
XSFunctions and XSFunction/Utilities in their local models, without
having to also specify the path.
- Fix to "mdefine" expression parsing when using MIN or MAX in
combination with xspec model functions.
PyXspec: Version 2.1.0 Feb 2022 [XSPEC 12.12.1]
-----------------------------------------------
New Features
++++++++++++
- Parameter links may now be assigned directly to other parameter
objects rather just to a string listing index numbers.
For example it is now possible to do something like
'm2.gaussian.LineE.link = m1.gaussian.LineE'.
- A new function 'xspec.callTableMod' gives local models written
in Python access to Xspec's table model functionality.
- A single spectrum's contribution to the overall fit statistic can
now be accessed through the 'Spectrum.statistic' attribute.
- PyXspec has been reorganized internally such that the portion that
is compatible with the Xspec models-library-only distribution is
now separated into it's own module, named 'mxspec'. The original
'xspec' module includes this, so the change should only be
noticeable to those using a models-library-only distribution.
See also:
https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html
********************************************************************************
XSTAR
********************************************************************************
XSTAR v2.58e:
Changes since version 2.57:
- Trapped pointers out of bounds in fstepxx, rstepxx
- Made floats output to fits tables e13.5 instead of e11.3
- Put back charge transfer which was erroneously removed in v2.56.
- Put back He-like fine structure in database which was erroneously
removed in v2.57.
- Included a switch to take the absolute value of line wavelengths.
In the database, lines with theoretical wavelengths are given
negative wavelengths. These were not included in the synthetic
spectrum calculation in previous versions. With the switch,
called llinabs, set in the main xstar subroutine, this can be
controlled. If llinabs=1 then the lines with negative
wavelengths are included in the synthetic spectrum.
- Fixed a bug that allowed an uninitialized variable to be used
in the function interpol_huntd. This was very rare.
********************************************************************************
IXPE
********************************************************************************
New software for IXPE:
ixpeadjmod - Remove spurious modulation of IXPE event files
ixpecalcstokes - Calculate the Stokes parameters of IXPE event files
ixpeevtrecon - Reconstruct events of IXPE event files
ixpegaincorrpkmap - Calculate PI column values of IXPE event files
ixpegaincorrtemp - Calculate PHA_T column values of IXPE event files
ixpeweights - Calculate event-by-event weights of IXPE event files
ixpeversion - Report IXPE software version
Python Tasks:
ixpeaspcorr - Correct for residual aspect errors
ixpecalcfov - Calculate a map of the nominal sky FOV for
each detector
ixpechrgcorr - Apply the charging correction for IXPE event files
ixpedet2j2000 - Transform event positions and Stokes parameters
from detector to sky coordinates
ixpeexpmap - Create an exposure map from aspect solution data
ixpepolarization - Calculate Stokes parameters for a user-defined region
********************************************************************************
NICER
********************************************************************************
- nicerl2:
* bug fix handling detlist parameter (detector events remain
in event file even though detector is marked "deselected")
* properly handle cases where ufdir/ufafile are non-standard
* optimization to unzip large gzipped event files once rather
than multiple times
* keyword SOFTVER is written to outputs to indentify / update
software revision
* honor cleanup parameter when calling subtasks
- nicerarf:
* add warning messages for common failure conditions
- niprefilter2:
* major rewrite for performance and speed
* bug fix for rarely housekeeping parameters (FPM_SLOW_LLD, HV_ON,
FPM_NOISE25_COUNT, MPU_NOISE25_COUNT, MPU_NOISE25_PI_{AVG,ERR})
which is visible as truncated data in long data sets
********************************************************************************
NUSTAR
********************************************************************************
NuSTARDAS 2.1.2:
- numkarf, numkrmf: Added 'CALDBVER' keyword to output ARF and RMF files.
********************************************************************************
SWIFT
********************************************************************************
UVOT:
UVOT tools have been updated for small scale sensitivity (SSS)
correction. At this time the SSS in CALDB distinguishes good and
bad pixels. There may be cases when the user wants to override or
ignore the new small scale sensitivity flagging. There are two ways
to do this: a) using the parameter sssfile=NONE; b) using the
parameter forcephot=true.
- uvotsource:
* Added QUALFLAG and PHOTFLAG columns to output table which capture
quality flags and issues with photometry respectively.
* Added parameter sssfile for small scale sensitivity flagging.
The SSS raw position is adjusted by the best shift-and-add if known.
* Display version banner and support parameter history.
- uvotdetect:
* Add SExtractor KRON_RADIUS column to output table.
* Use platform independent drand for deterministic behavior.
- uvotevtlc:
* Corrected bounding of regions to ensure subimage passed to uvotsource
fully contains the source and background regions.
- uvotexpmap:
* Added parameter maskminf to support masking by fractional exposure.
* Added parameter sssfile which can be used to treat pixels
with bad small scale sensitivity as a type of bad pixel.
- uvotlc:
* (NEW TASK) Create level III light curve from Level II UVOT data;
includes small scale sensitivity correction parameter
- uvotmaghist:
* Added parameter sssfile for small scale sensitivity correction.
- uvotpipeline:
* Added parameter sssfile for small scale sensitivity (SSS) correction.
* Added parameter expmapusesss to enable SSS flagging in exposure maps.
* Added parameter lssmaps to control creation of LSS maps.
- uvotproduct:
* Added parameter sssfile for small scale sensitivity correction.
- uvotrawevtimg:
* Limit number of progress messages to prevent spamming the console
when processing large event files.
- uvotskylss:
* Update output to use EXTNAME instead of HDUNAME keyword.
* Honor history parameter.
XRT (XRTDAS 3.7.0):
- xrtmkarf: Fixed 1 pixel shift between source position and coordinates
grid of exposure map and extraction region in WT mode data
- xrtproducts: Fixed bug when input parameter 'phafile' is set to 'NONE'
- xrtpipeline: Improved handling of case where 'stemoutputs' is not set
to 'DEFAULT'
********************************************************************************
XTE
********************************************************************************
- fcollect: (v6.0) Fixed string overflow when checking for vector
columns; general cleanup of FITS keyword parsing
********************************************************************************
HEASoftPy:
********************************************************************************
- New refactored version requires Python v3.7 (or newer).
- All tasks are run through a class called HSPTask.
- Native heasoft tools are available under: heasoftpy.task_name.
- Support for pure-python tasks (see template in
heasoftpy/packages/template).
- Includes IXPE python tools (depend on: numpy, scipy and astropy).
- Support for terminal and file logging.
********************************************************************************
MISC.
********************************************************************************
- Improved support for newer Apple clang; remains unsupported
for MAXI, Suzaku, and XIMAGE.
- Updated lynx package used by fhelp to version 2.9.0dev.9 to
address configuration issues under macOS
- Updated HEASoft copies of WCSLIB (7.7), FFTW (3.3.10),
GSL (2.7), FGSL (1.5), TCL/TK (8.6.11), XPA (2.1.20)
- PGPLOT GIF driver: Fixed valgrind error that was likely causing
phantom problems with qdp