Skip to main content

Due to the lapse in federal government funding, NASA is not updating this website. We sincerely regret this inconvenience.

Download HEASoft

********************************************************************************
                       RELEASE NOTES FOR HEASOFT 6.36
                              September 26, 2025
********************************************************************************

The HEASoft 6.36 release is driven by new and updated mission-specific
data analysis software (XRISM, IXPE, MAXI, BurstCube, 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.

Please note that in favor of distributing pre-built HEASoft installations
via the conda package manager, we plan to discontinue distributing our
traditional pre-compiled binary downloads after the 6.36 release.

********************************************************************************
                                    CFITSIO
********************************************************************************

Version 4.6.3:

 - For greater C23 compatibility, updated cfortran.h file and
   removed old-style function declarations. 

 - Cleanup of multiple compiler warnings.  

 - Updated 'speed' utility to use higher precision total time.

 - Fixes for FreeBSD and OpenBSD build issues.

 - Added RPM support file cfitsio.spec, and packaging helper file
   ax_cfitsio.m4. 

 - Added files portfile.cmake and vcpkg.json.

 - Fixed possible memory leaks in certain error exit conditions.

 - Fix to minor truncation error in ffgthd.
                     
********************************************************************************
                                     HEASP
********************************************************************************

pha:

  Added += and -= operator overloads to add/subtract a number or vector
  of numbers to/from the spectrum.  Added add and subtract methods to
  add and substract pha with control over whether operation is in counts
  or rate and how the exposure, background scaling, and area scaling are
  handled.  Added multiply and divide methods to multiply and divide pha
  with control over whether operation is in counts or rate and how the
  exposur eis handled.

rmf:

  Corrected the use of the I and J format when writing an output file.
  They were used the wrong way round leading to problems when there were
  more than 32768 channels.

SPio:

  Added SPwriteHistoryKeywords and SPwriteCommentKeywords to write history
  and comment keywords to the specified filename and extension.

********************************************************************************
                                   ATTITUDE
********************************************************************************

- prefilter: Updated GEOMAG library for IGRF version 14 (2020- data
  affected); Fixed XTE-style orbit interpolation: previously it could
  leave strange extra samples if tabulated orbit samples were > 120 sec
  but < 240 sec apart

********************************************************************************
                                   CALTOOLS
********************************************************************************

- caldbinfo: Fixed nicaldbver INDEF issue

********************************************************************************
                                    HEAGEN
********************************************************************************

- barycen: Updated to use JPL DE440 ephemeris when the reference frame
  is ICRS.  Fixed bug that blocked application of ICRS frame.  XRISM
  added to list of valid missions

- barycorr: Added support for NICER FPM_SEL and filter files with
  extraneous time samples

- burstt90t50: Improved detection of file+ext; added statistics for
  higher chatter; burst T90 T50 interval method adjustments, adds
  two parameters ('usenegative' and 'uselast') to increase
  flexibility in how to select the points from the light curve that
  are included in the calculation

- hpextract: (NEW) HEALPixel event combiner tool

- xrtraytrace: Additional updates to fix and enable remote CalDB
  usage with xrtraytrace and xaarfgen ("timeout" interval extended
  for reading large CalDB files).

********************************************************************************
                                    HEASARC
********************************************************************************

- extractor:

  When writing output files Changed the checking of keyword matches when
  deleting duplicates so that a match is defined by having the same keyword
  even if values differ. A warning message will be written if there are
  multiple instances of the same keyword with different values.

  Trapped a potential seg fault if there are no valid GTIs.

********************************************************************************
                                   HEASPTOOLS
********************************************************************************

- ftaddspec: (NEW) Tool intended to replace addspec and addascaspec;
  adds spectrum files and, optionally, associated files

- ftmathpha: (NEW) Tool intended to replace mathpha; performs
  mathematical operations on spectrum files

- ftmarfrmf: If warnings are generated when reading the rmf, these
  are written out and the tool now conditions instead of failing.

********************************************************************************
                                    XSELECT
********************************************************************************

- Replaced spaces by underscores in the session name.  If the current
  directory path includes spaces, generate a warning.

********************************************************************************
                                     XSPEC
********************************************************************************

Xspec version 12.15.1

New models


- fekblor, bfekblor, zbfekblor: four Lorentzian high-resolution model
  for the Fe Kbeta line.

- rsapec, rsvapec, rsvvapec: apec models with line broadening and
  resonance scattering out of the beam.

- rsgauss: a gaussian model with a resonance scattering
  optical depth parameter - mainly for testing purposes.

- rsrnei, rsvrnei, rsvvrnei:
  versions of the rnei model with resonance scattering out of the beam.

Modifications to models

- In the NEI models, the eigenvector file which is used to calculate
  ion fractions can be changed using xset APECEIGENFILE. (Note that
  NEIAPECROOT and NEIVERS now do the same thing and the former is
  preferred).

- Updated xilconv to use version of 5 of the xillver file and added
  option to set the version number.

- Added option to set model data directory in the Xspec.init file
  with e.g. MDATADIR: /my/directory/path

- Use the Xspec.init information to set APECROOT, SPEXROOT, and
  NEIAPECROOT.

- Simplified the general code to calculate line shapes to avoid
  some occasional problems - now no longer uses the input crtLevel
  or the xset LINECRITLEVEL value.

Other

- Added tclout xset name option to get the values of any model
  strings set by xset.

- Clarified questions asked by fakeit command.

- Replaced the use of cfortran.h with modern f90 to link C and Fortran.
  This may require changes in local models written in Fortran to
  add "use xsfortran" and/or "use xsfortfuncwrappers".

- Added Planck's constant and the classical electron radius (in cgs)
  to Numerics.h - required to calculate resonant scattering.
  Modified BinarySearch.cxx so that the input y array does not have
  to be in ascending order (although the routine will run faster if
  it is).

- New "latest" option for the Xspec.init settings for ATOMDB_VERSION,
  SPEX_VERSION, NEI_VERSION. Setting these to "latest" ensures Xspec
  will select the most recent atomdb files.

Fixes

- All fixes that were included with patch releases 12.5.0a-f

- An array access error in the "ismdust" model.

- NaNs appearing for a corner-case of background subtraction.

PyXspec

- New method Xset.getModelString() to return the value of a particular
  key string stored in XSPEC's internal model string database.

********************************************************************************
                                     XSTAR
********************************************************************************

- Changes to fix bug that affected multi-pass runs

********************************************************************************
                                   BURSTCUBE
********************************************************************************

New tasks for BurstCube (v1.0):

- bcfindloc: Calculate the BURSTCUBE likelihood source position from
  multiple detectors simulated rate and create a localization map

- bcoccult: Calculate a full-sky map to show the sky occulted by the
  earth within a time interval

- bcprod: Create light curves and spectra for a given burst from time
  dependent spectral array data and GTI

- bcrebevt: Rebin event data by time and channels to output a time
  dependent spectral array file or prepare time-dependent spectral
  array file for subsequent analysis and plot the results

- bctimebst: Calculate a light curve and determine a burst time
  interval based upon Bayesian block analysis

- bcversion: Report version string for BURSTCUBE package

********************************************************************************
                                     IXPE
********************************************************************************

Changes to the IXPE Python Tools:

- ixpeaspcorr:

  Implemented bounded fitting with scipy.optimize_curve_fit() for
  finding the centroid of an image peak using a Gaussian model.
  This largely eliminates bad fits.

  Changed the time binning to be more deterministic and avoid a bug
  in which several valid data points were being dropped from the
  final position analysis.

  Increased the reporting of interim aspect correction fits, and
  removed a bug which masked differences in solutions between the
  two optical heads of the star tracker.

- ixpecalcarf:

  "weight" parameter changed to default to "1" or NEFF weighting,
  which matches the help file documentation.

- ixpeexpmap:

  Changed definition of "GrayBadFlag" values so they do not overlap
  any of the "BadFlag" values.  These have not yet been used in any
  IXPE produced data, so there should be no noticeable effect.

- ixpemkxspec:

  It was found that the outputs this tool produces are compatible
  with xspec, but not with pyxspec.  Additional output files were
  added that are specifically formatted to work with pyxspec.  The
  documentation was updated to describe the both outputs and naming
  conventions.

- ixpepolarization:

  Removed an annoyance bug in which the default values for the
  polarization output file would be "-.fits".  The new default is
  "ixpepolarization_out.fits".  The documentation was updated to
  describe the outputs more clearly.

- ixpeproduct (NEW):

  This is the initial release of this tool for preparing event data
  for analysis with xspec (or pyxspec).  It produces spectrum files,
  light curve files, polarization files, ixpemkxspec output files,
  and optionally produces pointing map files from an IXPE observation
  data set.

********************************************************************************
                                     MAXI
********************************************************************************

New tasks:

- mxauxlist: Make an FITS list files for ISS attitude, solar panel
  angles, and GSC housekeeping files

- mxevtfilter: Separate event files by voltages, source and background
  regions, and generate a master event file. Also make image files

- mxevtgti: Generate GTI from event files by looking for long gaps
  in the events

- mxlcraw: Combine scan condition information with total raw counts
  in the source and background regions for each energy band, and
  compute (or record values from other tools) a variety of correction
  factors

- mxlcurve: Apply all correction factors necessary and generate
  scan level and time binned light curves. Also compute matching
  hard ratios versus time

- mxpha: Generate spectra for source and background from the
  event files

- mxpipeline: Generate the high level products (images, light
  curves, spectra, and response) for both instruments

- mxpsfcorr: Compute the point spread function correction factor
  based on the simulated PSF events

- mxregion: Make ds9-compatible region files to define source
  and/or background sky regions, excluding potentially
  confusing sources if present

- mxscancond: Generate scan condition flags for each GTI interval
  and camera, tracking whether the source and background are
  observed, blocked by spacecraft or solar panels, and compute
  peak visibility times

- mxsim_bgd: Compute modeled background from both cosmic and non-
  X-ray sources (including the Soyuz capsule when docked at the ISS)

- mxsim_psf: Simulate observed events based on the point spread
  function for each individual camera scan

- mxtilelist: Make an ASCII list of all the HEALPixels within a
  radius of a sky location

Changes to existing tasks:

- mxsrmfgen, mxgrmfgen, mxgtiwmap, mxscancur: Added CALDB setup checks

The following tasks have been retired:

- mxextract, mxgscandat, mxlscan, mxproduct, mxsscandat

********************************************************************************
                                     NICER
********************************************************************************

- nicerl2: Removed stray "1" file and stray "$EVTSUFFIX" appearing in
  output file

- nitargdet: Fixed bug in retrieval of CALDB files, which only triggered
  in specialty processing

********************************************************************************
                                     SWIFT
********************************************************************************

XRTDAS v3.7.1:

- xrtscreen: Updated the xselect command for the extraction of cleaned
  event files

********************************************************************************
                                     XRISM
********************************************************************************

- rsladrgti, rslctsfluct: Updated to properly handle null (NaN) values
  in the TIME columns of Resolve housekeeping files.

- rslbratios: The task now makes a new set of images that excludes
  Ls events, allows input of a custom rise-time selection expression,
  and makes lightcurves that now only have time bins that lie
  completely inside GTI. Other minor modifications update some of
  the file naming and screen messaging.

- rslmkrmf: Several parameter default values updated.

- rslmkrsp: A new tool that makes a combined Resolve RMF and ARF
  file taking into account pixel-to-pixel spatial variation in
  branching ratios for bright sources. Compared to the regular
  method for making spectral responses, the new tool weights the
  pixel-dependent telescope effective area functions more accurately
  when the branching ratios vary across the array.

- xaarfgen, xaexpmap: Updated to use new CalDB keywords that
  relate to the offset between the optical axis and the raytracing
  coordinate system. There are other minor changes to some of the
  parameter options and defaults.

- xapipeline, rslpipeline, xtdpipeline: Updated to remove Xtend and
  Resolve RMF generation. Some preview products are renamed in
  rslpipeline and xtdpipeline, and a full-band Resolve light curve
  is no longer generated in rslpipeline. A minor update is made to
  xtdpipeline to identify values of dataclass for which product
  generation is skipped.

- xmatraceback: A significant update to this task adds a new output
  file that contains various calculated fraction contributions from
  within Resolve pixels and from regions outside each pixel. The
  task was also modified to handle new CalDB keywords that relate to
  the offset between the optical axis and the raytracing coordinate
  system. There are other minor changes to some of the parameter
  options and defaults.

- xtdpixclip: The behavior of this task when no region file is
  specified has changed. There are other minor changes to some of
  the parameter options and defaults.

********************************************************************************
                                     MISC.
********************************************************************************

- fv and xdf (XTE): These GUI scripts are now generated (from fv.in
  and xdf.in) during the configure process