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.37
August 13, 2026
********************************************************************************
The HEASoft 6.37 release is driven by new and updated mission-
specific data analysis software (IXPE, MAXI, NuSTAR, XRISM, et al.),
but as usual 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.
We continue to support installation of HEASoft from the source code
distribution, but starting with this release we no longer offer our
traditional pre-compiled binaries and instead recommend installing
pre-built HEASoft tools via the Conda package manager:
https://heasarc.gsfc.nasa.gov/docs/software/conda.html
Please note that HEASoft 6.37 is the last major release in which
we intend to provide the FITSViewer GUI ("FV"). Support for FV
will be discontinued in future releases in favor of a new utility
"fviewer", available now via 'pip':
pip install fviewer
https://heasarc.github.io/fviewer/
The fviewer utility is included for testing in our 6.37 Conda packages.
********************************************************************************
CFITSIO
********************************************************************************
Version 4.7.0:
- This release includes patches to security vulnerabilities. We
strongly encourage this upgrade, particularly for those running
CFITSIO in web accessible applications. Our thanks to A.
Denkiewicz and Z. Bugaud for their extensive help with this.
- New test framework added, containing a collection of unit tests.
Our thanks to W. Pursell for contributing this.
- Bug fix for parsing octal integer constants in expressions. Our
thanks to 'Cruzzil_Code' for submitting this.
- Enhanced output from uncompress2mem_from_mem function.
- Appended 'fits_' prefix to stream driver function names to reduce
chances of potential symbol name conflicts with outside libraries.
Our thanks to 'rtobar' for submitting this.
********************************************************************************
ATTITUDE
********************************************************************************
- coordpnt: Bugs fixed in converting coordinates of region files.
********************************************************************************
HEAGEN
********************************************************************************
- burstfinder: Replaced VLAs with dynamic memory allocation
- hpextract: Fixed issue with array columns, including TBIT type
allocation correction
********************************************************************************
HEASARC
********************************************************************************
- extractor (legacy Fortran): EQUINOX and RADECSYS are no longer
written to the output when they were not present on input.
Please also note, in the HEASPTOOLS package:
ftextractor: a new C++ event extractor (built on the new heaev
event-handling library) that is the modern replacement for the Fortran
extractor and is called by XSELECT in its place for most missions (see
xselect below). It can also be run standalone. Beyond reproducing
extractor's products (events, image, spectrum, light curve, WMAP), it
adds:
* Joint spectropolarimetric output (Stokes covariances). With
stokescov=QU (default) or IQU, ftextractor writes the
inter-spectrum covariances between the Stokes I/Q/U spectra as
per-bin XCOV columns plus grouping keywords (XCOVSIB / COVGRP /
COVIDX / NCOVMEM, COVFRMT='XCOV-PAIR-1' or 'XCOV-SET-1'). This
lets XSPEC fit the Stokes spectra jointly with the new
chistokes/chicov statistic instead of treating Q, U (and I) as
independent. stokescov=NONE restores the old independent-spectra
behaviour. (Stokes I/Q/U extraction itself, via
stokes=NEFF/SIMPLE/UNWEIGHTED, is unchanged from extractor.)
* Single-pass multi-product extraction. A single run can now fan one
pass over the events into many output products -- one per region,
one per time interval (timesplit=yes), or one per phase window
(phasewndfile=@list) -- rather than re-reading the events once per
product. XSELECT drives this through its new "per=" modifier on
"extract".
********************************************************************************
HEASP / HEASPTOOLS
********************************************************************************
HEASP:
- Neural-network table-model emulation. Table-model files may carry an
NNPTFILE keyword pointing to a PyTorch (.pt) network that emulates the
model; enabled via the new --with-libtorch configure option.
- Polarization cross-covariance. Support for Q/U cross-covariance
between spectra (XCOV), backing the new chistokes/chicov statistics.
- SVD-compressed RMFs -- a compressed RMF side-car representation (used
by the new ftsvdcmprmf tool).
- Analytic gradients for OGIP table models.
- pha/rmf changes to existing behaviour: TLMAX is now written in
pha::write; scalar QUALITY/SYS_ERR keyword values are now preserved on
read; rmf::read now validates F_CHAN+N_CHAN against TLMIN+DETCHANS
(malformed RMFs that previously loaded silently may now be flagged).
HEASPTOOLS:
- ftsvdcmprmf (NEW): builds an SVD-compressed RMF side-car (with an
optional --emitrmf denoising mode).
- ftextractor: a new C++ event extractor (built on the new heaev
event-handling library) that is the modern replacement for the Fortran
extractor and is called by XSELECT in its place for most missions (see
xselect below). It can also be run standalone. Beyond reproducing
extractor's products (events, image, spectrum, light curve, WMAP), it
adds:
* Joint spectropolarimetric output (Stokes covariances). With
stokescov=QU (default) or IQU, ftextractor writes the
inter-spectrum covariances between the Stokes I/Q/U spectra as
per-bin XCOV columns plus grouping keywords (XCOVSIB / COVGRP /
COVIDX / NCOVMEM, COVFRMT='XCOV-PAIR-1' or 'XCOV-SET-1'). This
lets XSPEC fit the Stokes spectra jointly with the new
chistokes/chicov statistic instead of treating Q, U (and I) as
independent. stokescov=NONE restores the old independent-spectra
behaviour. (Stokes I/Q/U extraction itself, via
stokes=NEFF/SIMPLE/UNWEIGHTED, is unchanged from extractor.)
* Single-pass multi-product extraction. A single run can now fan one
pass over the events into many output products -- one per region,
one per time interval (timesplit=yes), or one per phase window
(phasewndfile=@list) -- rather than re-reading the events once per
product. XSELECT drives this through its new "per=" modifier on
"extract".
********************************************************************************
HEATOOLS
********************************************************************************
- ftmerge: fixed corrupted output when input files have different
TSCAL/TZERO; propagate TNULL keywords from subsequent input files
- ftverify: Fixed CFITSIO version number in ftverify output
********************************************************************************
XSELECT
********************************************************************************
xselect v3.0:
- xselect has been reimplemented in C++ (previously Fortran). Behaviour
is intended to be unchanged.
- Session/save files are now written in a human-readable "name=value"
format rather than the old Fortran-formatted layout.
- New extraction backend. Missions can use "ftextractor" instead of
"extractor" if set in the xselect.mdb file. This change has been
made for ASCA, AstroSat, MAXI, IXPE, Chandra, Suzaku, XMM, NICER,
ROSAT, Hitomi and HaloSat.
- New "per=" modifier on "extract" for multi-axis (region/time/phase)
fan-out in a single pass.
- Phase-filter stack: "filter phase" now appends to a stack (with
save/persistence); "list filter" shows every entry.
********************************************************************************
XSPEC
********************************************************************************
Xspec version 13.0.0:
Version 13.0 is a major release whose principal theme is Bayesian
inference and global optimization. A new chapter on Bayesian methods
and a new Algorithms appendix describe the analytic-gradient and
response-compression machinery that underpins many of the features below.
For full details, please reference the Xspec User Manual:
https://heasarc.gsfc.nasa.gov/FTP/software/xspec/XspecManual/XspecManual-13.0.0.pdf
Spectral Model Data Files:
- Spectral model data files are no longer shipped with HEAsoft. The
new ftgetmodeldata tool downloads, on demand, the data files required
by the models in use, over the network (via cURL), with version lookup
(including a latest option), a manifest file (modelDataFiles.csv),
and clobber and dry-run options. See:
https://heasarc.gsfc.nasa.gov/docs/software/xspec/modeldata.html
Bayesian inference and optimization:
- Closed-form analytic derivatives (Jacobians and their reverse-
mode vector-Jacobian products) are now available for the great
majority of the model library. These provide a fast Levenberg-
Marquardt path, in which the gradient is computed analytically
in a single pass rather than by finite differences, and supply
the posterior gradient used by the new Hamiltonian Monte Carlo
sampler.
- New hmc command: a No-U-Turn-Sampler variant of Hamiltonian
Monte Carlo over the thawed parameters, using the analytic
posterior gradient. It supports warmup adaptation of the leap-
frog step size and diagonal mass matrix, multiple independent
chains (parallelized with "parallel hmc"), and checkpoint/resume.
Output is written in a format compatible with "chain load".
- New nest command: a multi-ellipsoidal nested sampler that
produces weighted posterior samples together with an estimate
of the marginal likelihood (model evidence, log Z). It supports
checkpoint/resume and parallel sampling ("parallel nest").
- New compare command: automated model selection. Alternative
models are evaluated against the current data and ranked by
the Akaike and Bayesian information criteria, by Bayesian
evidence ("compare nest"), or by fitting each alternative
with the global optimizer ("compare global").
- New "fit global" option: a derivative-free global optimization
by Differential Evolution followed by a polish with the current
fit method. It is never-regress (the original fit is restored
if no improvement is found), reproducible under "xset seed",
parallelizable with "parallel global", and reports any
competitive minima within delta stat < 9 of the best fit. The
improve command now uses the same Differential Evolution
machinery as a local warm-restart and works with all fit methods,
not just the Minuit methods.
- The Minuit fit methods (migrad, simplex) were overhauled:
Minuit now works directly in the parameter's stored value (so
a fit started between a parameter's soft and hard limits reaches
the same minimum as one started inside them), hard limits are
passed to Minuit only when they span a range of 100 or less,
and a fit that stops short of the minimum now says so instead
of reporting convergence --- with different warnings for running
out of function evaluations (fit again to continue) and for
Minuit finding no direction of improvement. See the method command.
- New "bayes smooth" subcommand: a multi-parameter smoothness prior
that couples a chosen parameter across datagroups, penalizing
shell-to-shell roughness. It is the in-engine regularizer for
projct de-projection, with automatic selection of the regularization
strength by the L-curve or discrepancy principle. Several new
single-parameter prior families were also added (cauchy, beta,
studentst, halfnormal, powerlaw, isotropic, lognormal, gamma,
and shiftedlognormal).
- Added an MCMC diagnostics suite, including the Rubin-Gelman R_hat
convergence statistic, and gave chain, hmc and nest a
common sample format.
- PyXspec gained a unified Bayesian-inference module (runHMC, runChain,
shared result objects, and arviz interoperability), a new module
providing numpy vectorization for local models, and several new
methods and attributes (mostly added to the Fit class).
New fit statistics
- chistokes: a chi-squared variant that uses the per-bin Stokes
Q/U cross-covariance when fitting polarization spectra, rather
than treating Q and U as independent. It has been generalized
to an arbitrary n-member cross-spectrum covariance group (with
the chicov alias), so any set of bin-by-bin correlated spectra
--- overlapping extraction regions, grating orders, or the full
Stokes I/Q/U triple --- can be fit jointly with a multivariate-
Gaussian likelihood, per-bin Cholesky solve and graceful
shrinkage of non-positive-definite covariances. The covariances
are carried in the spectrum files (COVFRMT='XCOV-SET-1'; legacy
Q--U pair files are auto-promoted), produced by the ftextractor
tool (stokescov=iqu) and summed under grouping by ftgrouppha.
See the Statistics Appendix.
New models:
- Four X-ray spectropolarimetric reflection models based on
precomputed STOKES tables, designed for joint fitting of the
Stokes I/Q/U spectra: stdisc (reflection of a power-law
source of arbitrary incident polarization from the distant, nearly
neutral equatorial regions of an accretion disc), and sttorus,
stcone and stbowl (reflection from an optically
thick, axially symmetric torus, double cone, or double bowl --
representing e.g.\ an opaque AGN torus, a broad-line region, or a
super-Eddington accretion funnel -- with partially ionized, neutral,
or Chandrasekhar electron-scattering surfaces).
Modifications to models:
- The broadening of the APEC/SPEX pseudo-continuum (set by the
BROADPSEUDO xset option) now uses an FFT and accepts fast and
slow options. The fast option (equivalent to on) uses an
abundance-weighted atomic mass so that a single FFT broadens all
elements at once, about five times faster than the per-element slow
calculation.
- The gsmooth and lsmooth convolution models use an FFT for the
index 0 and index 1 cases, giving order-of-magnitude speed-ups,
and cache the kernel FFT when it has not changed.
- Added a check that warns (yellow alert) when the fiducial energy
at which a line width is specified falls outside the input energy
range.
- Table models (atable, mtable, etable) may now carry a neural
network (NN) emulation of the tabulated spectra, indicated by
an NNPTFILE keyword in the table file pointing to a PyTorch (.pt)
weights file. When such a table is loaded XSPEC automatically
evaluates the model with the neural network instead of
interpolating on the parameter grid, with no change to how the
model is set up. This requires XSPEC to have been built with
libtorch (the --with-libtorch configure option).
- The crossarf mixing model can now be stacked, one copy per
source, so that a single sky region may host several emission
components with different spatial distributions -- for example
an extended source and a point source, which spill into
neighbouring regions by different fractions and so require
separate arfs. Each source's cross arfs are supplied by
source-tagged XFLT keywords of the form CrossArfSrcSFromNToM
(source S, contribution to region M from region N); the
original CrossArfFromNToM form is unchanged and applies to source 1.
- The recorn mixing model is once again applied separately within
each data group, so the correction norms of several spectra can
be fitted at the same time. Its first parameter names a single
spectrum, so unlike the other mixing models -- whose one
transformation spans every data group -- recorn needs one copy
per corrected spectrum. Each data group's copy now has its own
spectrum number and cornorm, all of which appear in "show par"
and can be set and fitted; in the intervening releases only the
lowest data group's copy did anything.
Other:
- New group command for runtime (re)grouping of spectra without
re-reading the files. Its most important use is "group back",
which lays a coarser super-bin grouping on top of the current
source binning --- each super-bin spanning a whole number of
source bins --- to reduce a bias in the C statistic when a
background is present (the W statistic, see the Statistics
Appendix of the Xspec Manual. That statistic profiles out one
background-rate nuisance parameter per source bin; when the
background has few counts per bin these estimates are noisy and
bias the fitted source parameters --- an incidental-parameters
problem that can reach tens of percent for faint sources on a
low-count background. Sharing a single background rate across
the source bins of each super-bin shrinks the number of nuisance
parameters and can bring the bias down to a few percent. The
pooled-background path is selected automatically whenever a
background super-bin grouping has been set up at runtime with
"group back"; a GROUPING column carried by the background file
(e.g. from ftgrouppha) is not used for this, since on input
XSPEC applies the source grouping to the background. The
command also regroups the source spectrum itself ("group data"
with optbin, minsn, mincounts, const, or file); all grouping
is persisted in save files, recoverable with "tclout group",
and available in PyXspec.
- New sim command for bulk posterior-predictive simulation: it
draws many parameter sets (from the loaded chains, or from the
fit covariance scaled by "sim fsigma"), realizes each as a
simulated dataset in the loaded spectra, optionally refits it
(a parametric bootstrap), and accumulates the results --- the
in-program replacement for the scripted "tclout simpars" + newpar
+ fakeit loop (the multifake script). Because the realization
happens in place no files are written and the original state is
restored on completion. An optional command file ("sim @cmdfile")
is run on every realization and may return a row of numbers or
append to a per-realization output file; the products are
recovered with "tclout sim". The whole run is reproducible
under "xset seed" and parallelizable with "parallel sim".
- The plot command allows finer control over plot stacks by using
the pipe (|) character to delimit them, e.g.
"plot da res | mo | ld rat" draws three stacks. At present
up to four stacks may be drawn, each holding up to four panes.
- New plot options dspec, despec and deespec: the model-independent
counterparts of ufspec, eufspec and eeufspec. The flux density
is obtained by a regularized truncated-SVD inversion of the
detector response rather than by scaling the data by the model-
dependent unfolded/folded ratio, so the plotted data points do
not move when the model is changed.
- Operational switches of the form "xset CONTROL_STRING yes"
control the numerical paths used in fitting and model
evaluation and enable cross-check validation modes. For example,
DISABLE_ANALYTIC_GRAD reverts fits to finite-difference
derivatives. They are listed in a new table in the xset entry,
separate from the model control strings.
- "chain info" and margin accept a parameter number of 0 to report
and plot the distribution of the statistic values stored in a chain.
- The identify command gained a spex option to search the SPEX line list.
- Python local models are now supported in the standalone (Tcl) version
of XSPEC, not only in PyXspec. A Python model function may also
opt into a faster vectorized interface with the @xspec.vectorized
decorator, receiving zero-copy numpy arrays instead of Python
tuples and lists --- avoiding the per-element Python-object overhead.
- Rank-K SVD compression of response matrices is now supported: a
compressed side-car file (produced by the ftsvdcmprmf tool) can be
loaded with the response command and tuned with the svdrank
and svdeps options for fast folding
(See the Algorithms Appendix of the Xspec Manual).
- The XSPEC libraries were reorganized so they can be linked into
third-party C++ programs without Tcl or PGPLOT: core start-up was
split into a new XSCore library, and the model and data classes
were split into separate XSModel and XSData libraries. The PLT
plotting package was modernized to call PLT and PGPLOT directly from C++.
Fixes:
Many user-visible bugs present in earlier versions have been fixed.
The more significant fixes are grouped by area below; a complete
list of the user-facing fixes in this release is given in the Xspec
User Manual's Release Notes Appendix.
Models:
- The btapec model overwrote the helium abundance with the metal
abundance, producing a wrong continuum whenever the abundance
parameter was not 1.
- The zvgabs absorption-line width was applied in km/s instead of
the equivalent keV value.
- The velocity-broadened Lorentzian and Voigt models (the vlorentz and
vvoigt families) shipped with a width-parameter hard maximum of 20
km/s, below their own default of 100 km/s, so a fit could never raise
the width above 20 km/s. The maxima now match the vgauss family.
- The xmmpsf and suzpsf PSF mixing models set the model flux to zero
above 6 keV.
- Out-of-bounds memory writes in the diskline model (when a line's
blue edge fell in the first energy bin) and the pileup model
(when max_ph=1) could corrupt memory or crash XSPEC.
- The vvnpshock and vvsedov models (and their bvvnpshock/bvvsedov
variants) reused stale ionization fractions when only the electron
temperature was changed, giving a wrong spectrum.
Data, responses and setup:
- Defining a model with more than one data group loaded read out of
bounds, aborting XSPEC on builds compiled with array-bounds assertions.
- An ignore or notice command whose channel range lay
entirely above the spectrum's channel count could crash.
- Deleting several spectra in a single data command could remove
the wrong spectra.
- A table-model file path containing a slash or a hyphen was corrupted
when the component was added with addcomp.
- Channels re-noticed after a dummyrsp command were incorrectly
folded to zero.
- Variable-length QUALITY and GROUPING columns were incorrectly
assumed to be scalar when their repeat count was 1.
Fitting and statistics:
- A segmentation fault in the cstat statistic when all channels
are ignored.
- The default Levenberg-Marquardt (leven) method could leave
parameters stuck pegged at a hard limit.
- A parameter resting on one of its limits was given a numerical
derivative half its true value, so the Levenberg-Marquardt step
for it was twice as long as it should be. Additive norms met
this routinely. On the paths that differentiate the statistic
directly ("xset usechainrule no", and the recorn cornorm) the
same parameter could hang fit outright.
- fit could abort the whole session, or read out of bounds with a
Minuit method, when the covariance matrix was ill-conditioned or
not positive-definite; it now issues a recoverable error.
- The empirical distribution function test statistics could crash or
return NaN: with every channel ignored, with a model integrating to
zero over the noticed range, or with a spectrum that was folded but
not fitted.
- The recorn cornorm parameter could not be fitted: because it
rescales the data rather than the model, the chain-rule derivative was
identically zero, so it was pegged as insensitive and fit stopped with
"No variable parameters for fit".
- untie could free a mixing-model parameter outside the lowest data
group, producing a parameter that could not be displayed, set or
fitted but still consumed a degree of freedom.
Plotting:
- "plot sensitivity" and insensitivity drew the first detector's curve
for every response of a multiple-response spectrum.
- "plot delchi", ufspec, fitstat and icounts could crash for a plot
group whose spectrum has no response for an active model source.
- The polarization plots polfrac and polangle returned NaN or zero for
multiple-source models and could contain spurious or infinite bins.
Commands and scripting:
- "autosave 0" crashed XSPEC with a divide-by-zero on the next command.
- Running a script by a path containing a directory component (for
example @../model) failed to append the default .xcm suffix.
- energies with the log option and a low energy of 0 silently built
a degenerate energy grid for every model.
********************************************************************************
XSTAR
********************************************************************************
New version 2.59i:
- Changes to fix the brems emissivity unit error. Previously, the
brems emissivity was erroneously assumed to be per sr, when in
fact the expression used was summed over angle. Now this has
been corrected. In routine for calculating heating, cooling, and
radiative transfer (heat.f90) divide 'brcems' by 4pi.
********************************************************************************
BURSTCUBE
********************************************************************************
- Fixed install scripts to use $PYTHON and added more error trapping
********************************************************************************
HITOMI
********************************************************************************
- hxisgdmerge: Now initializes the variable 'clean' to "false".
- mxsgti: Version number and comments updated to reflect a
previous change
********************************************************************************
IXPE
********************************************************************************
Changes to the IXPE Python Tools:
- ixpeproduct:
Changed logging output of calls to other ftools (e.g. extractor);
calls are now the exact format of the command-line call to that tool,
allowing users to capture such lines from log and re-run them at their
own command line
Now allows users to provide both no "srcregfile" argument and a
"radius" of zero. This condition will result in the entire
observed area being used as the source region, any value of
"bgregfile" being ignored, and a message being logged to let the
user know this is the case.
Now handles event and attitude files that have been split into
multiple components due to the change of one or more critical
processing parameter.
Call to extractor to produce light curve files has been changed
to use a stokes weight of "unweighted" instead of the weight
specified by the argument "weight". This results in the correct
"I" light curve being produced, and in "Q" and "U" light curves
being produced, though they may not match the weighting specified
by the user.
- ixpefilemerge (NEW):
Comprehensively merge multiple IXPE HK or event files into a
single output file; covers all HDUs of the original file, including
recalculating the GTI and the time bounds of the resulting output
- ixpeflagbgd:
Parameters for each of the three background rejection algorithms
used have been changed from being hard-coded to being looked up
from a bgdparam CALDB file (which have been added to the latest
CALDB).
A new parameter "bgdparam" can be used to select automatic lookup
of the bgdparam file from the CALDB (default), or to allow the
user to supply the name of their own bgdparam file.
- ixpepolarization:
Infile1, infile2, and infile3 arguments have been replaced by a
single argument "infile" which can be a single file, a list of
files, or an @file.
Modfact1, modfact2, and modfact3 arguments have similarly been
replaced by a single argument "modfact". Thus, ixpepolarization
now allows more than three input files. Each input file still
generates unique HDU's, but now multiple input files with the
same DETNAM will be combined into an HDU named "COMBINED <DETNAME>".
The HDU combining all input files has been renamed "COMBINED FILES".
********************************************************************************
MAXI
********************************************************************************
MAXI (version 3.1):
- mxdownload_wget: Changed JAXA URL for archive access
- mxevtfilter: Removed unused scancondition filtering and associated
parameters; addressd EXPOSURE keyword settings; remove event files
with no source data
- mxevtgti: efficiency improvements, better support of user GTI input
- mxgtiwmap: Added more informative error message when HVHIST input
is not given as expected
- mxlcraw: Improved column write sturcturing and memory management;
replaced VLAs with dynamic memory allocation; read TBYTE, improved
allocations in reading; use long for indexing; sort unsigned char
instead of boolean; efficiency improvements
- mxlcurve: Updates to handle small time bins, additional header
keywords; corrected indexing to get all scans; long type instead
of int rows; full scans for indexing instead of only good scans;
match data types to FITS column types; efficiency improvements
- mxpha: Adjusted BACKSCAL keyword; accept single time interval input
- mxpipeline: Revised to match new code/tools; 'getfkey' not 'get_fkey';
improved support of lists of files in place of CALDB settings for
parameters COLEA, HVHIST, and TELDEF; streamlined checksum updates;
updated EXPOSURE in all spectral extensions; set maskfile to NONE
if no background
- mxpsfcorr: Replaced Perl task with equivalent (faster) C code solution
- mxscan: OGIP unit settings for TUNIT
- mxscancond: Shift camera number assignment earlier in code; header
keyword updates; simplified column build strategy; changed flagging to
match TBYTE instead of boolean; removed unnecessary casting in calloc;
efficiency improvements
- maxitool library: Converted obscure flag from bool to int to match TTYPE
********************************************************************************
NUSTAR
********************************************************************************
NuSTARDAS v2.1.6:
- numetrology: Updated to accommodate changes to the duty cycle of the
NuSTAR metrology lasers (used for determining the quaternions from
the detector coordinates onto the sky. No change is performance is
expected. This change allows the additional METSTATE values of 14,
22, 30 which correspond to different cadence modes for the two
metrology lasers. Changes should be transparent to the user and
are not expected to affect science analysis.
- numkarf: Support HTTPS access to CALDB files in S3 buckets
********************************************************************************
SWIFT
********************************************************************************
XRTDAS v3.7.2:
- Updates to support newer compilers
********************************************************************************
XRISM
********************************************************************************
- xaarfgen: Turned on perl autoflush.
- xapipeline and rslpipeline: Added the parameters 'excltelgti' and
'fractelgti' to fine-tune the exclusion of telemetry GTI from the
computation of time-dependent Resolve energy gain.
- xtdpipeline: Added second call to xtdflagpix tool to complete the
bad pixel flagging following the PI calculation.
- xmatraceback: Bugs were fixed pertaining to some of the values in
the output photon fractions FITS file, and to the alignment between
raytracing photons and the detector. Differences in traceback
images are expected to be negligible but users should re-run the
tool to verify this, and to correct the photon fractions output file.
- rslbratios: Several bug fixes were implemented. Also, a new output
file is created that contains GTI corresponding to time intervals
that exclude periods of PSP limit violations. The screen output
resulting from PSP limit violations is substantially reduced. It
is recommended that the updated tool be re-run on user data.
- rslmkrmf: Parameter processing slightly altered. The tool now
requires 'whichrmf' to be set to 'X' if 'splitcomb' is 'yes'.
- rslmkrsp: Improvements were made to the handling of some of the
input parameters. The tool does not need to be re-run on user data.
- rslmpcor: A file existence check was removed because it did not
work for remote files.
- rslmxsgti: Version and comments updated to reflect a previous change.
- xtdflagpix: Bugs were fixed in the accumulation of individual
event flags into the bad status flag. The tool does not need to
be re-run on user data.
- xtdpixclip: Improved handling of the 'emax' parameter. Introduced
a new input parameter 'timeintfile', which is the name of a GTI
file that enables restricting histograms and the threshold
determination to specified time intervals.
********************************************************************************
XTE
********************************************************************************
- pcarsp and rddescr: fixed interaction bug that prevented EDS-binned
responses from working; this affects EDS modes like Binned and Event
modes other than GoodXenon; make shift file name be more unique; xpcaarf
is less chatty to prevent huge command logs
- xtedatamode: (NEW) Scans an XTE observation and reports on its
contents; a command-line version of 'xdf'
- pcaprepobsid and pcamergeobsids: do a more careful assessment of
the data files available and create 256-bin and/or EDS gain-
corrected background as needed; typo fix to error message in
pcaprepobsid
- pcaphasyserr: Change to RMS calculation of fractional systematic error
- fcollect: Output MISSION metadata keyword for output filter file
- pcaprepfile2: new parameters gaincorr and gcorrfile allow gain
correction of background estimates
- XTE Perl tasks: more meticulous error return status for use by
the caller (e.g. HEASoftPy)
********************************************************************************
MISC.
********************************************************************************
- Revised Python configuration to allow for a venv-installed Python
- Support for using a system-installed copy of the WCS library, utilized
via configure option "--with-wcslib=[PATH]" (has no effect if FV is
included in the build as FV requires WCSLIB object files)
- New configure option "--with-libtorch[=PATH] is available to enable
libtorch NN table-model support in HEASP. If specified without a PATH,
it will attempt to auto-detect torch support via '$PYTHON import torch'.
- New configure option "--with-giza=[PATH]" (beta) is available to provide
the location of GIZA library and headers; if specified and found, HEASoft
will use GIZA for (most) PGPLOT handling, but will use our embedded
copy of PGPLOT if not.
The "--with-giza" option should have no effect on Ximage since it
currently requires PGPLOT.
- manifest.yaml: new file listing the latest versions of the heasoft
components
- historical_versions.csv: new CSV of all past versions of heasoft
components, back to heasoft v5