Skip to main content

To find and download HEASARC data in the cloud, you can use astroquery.heasarc or download our new tool, hark.

The HEASARC and NuSTAR teams are greatly saddened by the sudden passing of Katja Pottschmidt. Most recently Katja was the lead scientist for the NuSTAR Guest Observer Facility (GOF), a role she had supported for many years. During her science career she worked on many other high energy astrophysics missions and played an integral role in advancing our knowledge of the universe. She was a wonderful colleague and friend and will be keenly missed by all who knew her.


  • Download HEASOFT
  • ********************************************************************************
                           RELEASE NOTES FOR HEASOFT 6.32.1
                                   August 23, 2023
    ********************************************************************************
    
    The HEASoft 6.32.1 patch release contains a significant fix to
    the NICER data analysis software.
    
    There is a patch installer utility available, which can be used
    to update existing 6.32 source code installations to 6.32.1:
    
     6.32.1 Patch Installer
    
    This link also describes how to patch existing 6.32 pre-compiled
    binary installations with the 6.32.1 updates.
    
    ********************************************************************************
                                         NICER
    ********************************************************************************
    
    NICERDAS v011a:
    
    Major bug fix related to screening of data at MPU level, resulting in
    erroneous normalization and event screening.  For a further description
    please see documentation of the bug and remedies here:
    
      NICER analysis threads
    
    - nifpmsel: (v1.9) Fix for major bug related to per-MPU filtering;
      adds NIMPUFIX keyword upon output to confirm that the
      MPU-autoscreening fix is applied
    
    - nicerl3-lc: (v1.5) Added check for divide-by-zero, resulting in NaN
    
    
    
    
    
    
    ********************************************************************************
                           RELEASE NOTES FOR HEASOFT 6.32
                                   July 20, 2023
    ********************************************************************************
    
    The HEASoft 6.32 release is driven by new and updated mission-specific
    data analysis software (IXPE, NICER, Swift, RXTE), 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
    ********************************************************************************
    
    - Bug fix to fits_make_hist[d] that was introduced in 4.2.0.
    
    - Added overflow checking for case of reading images with 8-byte
      float values into 4-byte float arrays.
    
    - fits_write_key_longstr now handles case of writing a long keyword
      in combination with a long keyword value string.
    
    - Add conversion of French locale comma-to-period in corner cases
      appearing in ffr2e and ffd2e functions.
    
    - Increased the precision when writing version number to User-Agent
      strings for http connections.  This is needed to fully conform to
      3-field version string format.
    
    - Bug fix to GTIOVERLAP() calculator function, which was being
      treated as a boolean value in expressions, and is now correctly
      treated as a floating point result.
    
    - Bug fix to ARRAY() calculator function, which caused a memory
      overflow error
    
    - Enhancement to the ARRAY function, such that ARRAY(V,d) can
      apply new dimensions to V, as long as the total number
      of array/vector elements does not change.
    
    - Enhancement of long string keyword read/write functions to fully
      conform with FITS standard specifications for multi-line value
      and comment strings.  Two new functions have been added to 
      implement this: fits_get_key_com_strlen and fits_read_string_key_com.
    
    ********************************************************************************
                                        ATTITUDE
    ********************************************************************************
    
    - det2att, det2att2: Converted to libcoord's new applyQuatToVector()
      function; replaces conversion to a rotation matrix before applying
      to a vector
    
    - prefilter: Added output columns ALLV6 = TERMINATOR_ANGLE DAYLIT_FRACTION
      SUN_BODY_AZIMUTH MOON_BODY_AZIMUTH (as well as various body vectors);
      (MPFIT) bug fix for mix of analytical and numerical derivatives
    
    ********************************************************************************
                                         HEASP
    ********************************************************************************
    
    rmf:
    
    - Added rmf::remapEnergies method to map an rmf onto a new energy
      grid.
    
    general:
    
    - Protected against zero-length Data in SPwriteCol.
    
    ********************************************************************************
                                         FUTILS
    ********************************************************************************
    
    - Replaced fchecksum, fcopy, fcreate, fdiff, fimgcreate, fkeypar,
      and fverify with Perl wrappers to their newer counterparts in
      HEATools:
    
      fchecksum -> ftchecksum
      fcopy -> ftcopy
      fcreate -> ftcreate
      fdiff -> ftdiff
      fimgcreate -> ftimgcreate
      fkeypar -> ftkeypar
      fverify -> ftverify
    
    - fsumrows: Allow command line of up to 1024 characters
    
    ********************************************************************************
                                          FV
    ********************************************************************************
    
    - Fixed "bad option" error on Mac OS when exporting a FITS table as text
    
    ********************************************************************************
                                        HEAGEN
    ********************************************************************************
    
    - ftadjustgti: Added ability to invert sense of output from GTI to 'BTI'
      using a new 'invert' parameter, and added parameters 'tstart' and 'tstop'
    
    - burstfinder: (NEW) Find time intervals in an input FITS binned light
      curve that characterize start and stop of a burst.
    
    - mkintensfilt: Fixed error that if there were no time intervals within
      the intensity range then the input GTIs were output; added hidden
      parameters for rate and GTI extension names as well as time and
      rate column names.
    
    ********************************************************************************
                                        HEASARC
    ********************************************************************************
    
    - extractor:
    
      Corrected RATE for dead time when writing spectra if Buildstokes is
      true. Also added reading and propagation of DEADAPP keyword.
      Fixed error in calculation of the uncertainties for Stokes parameters Q
      and U for the UNWEIGHTED and SIMPLE options.
      These corrections were available in the patch released on Jan 31, 2023.
    
    ********************************************************************************
                                        HEASIM
    ********************************************************************************
    
    - skyback: Corrections to array indexing
    
    ********************************************************************************
                                        HEATOOLS
    ********************************************************************************
    
    - ftcreate/fcreate: If extname parameter was given, print a warning
      if EXTNAME is also specified in the input header keyword file ('headfile').
    
    - ftdiff/fdiff: Fixed handling of long string keywords: need to be
      converted to have bracketing single quotes to match how non-long
      strings are formatted; changed numdiffs parameter to mode '(h)idden'
      instead of '(a)sk'.
    
    - ftmeld: Added 'minkey' and 'maxkey' parameters
    
    - fselect (wrapper to ftselect): Fixed handling the case of an "@"
      input file for the 'expr' parameter.
    
    - ftverify/fverify: Warn when an ampersand is found in TTYPE keywords
    
    ********************************************************************************
                                        XIMAGE
    ********************************************************************************
    
    - Addressed malloc issues on newer amd64/x86_64 processors (possibly
      only occurring on Fedora OS)
    
    ********************************************************************************
                                        XSELECT
    ********************************************************************************
    
    - Fixed bad access crash from filter time cursor if the plot device
      does not have a cursor.
    
    - Added the new hidden parameters when using mkintensfilt.
    
    ********************************************************************************
                                         XSPEC
    ********************************************************************************
    
    Parallelization
    
    - Added parallel processing to leven when usechainrule is
      no. Added xset usechainrule option to switch between fast and slow
      second derivatives so this can be done without changing Xspec.init
      and restarting xspec.
      
    - In the various models which use the apec code added option of
      multithreading over the temperatures for the calculation of lines
      in the spectrum. Multithreading here is turned on and off using xset
      APECMULTITHREAD. The default is off. For the basic apec model 
      multithreading does not provide a speed advantage. However, if
      line broadening is selected (eg using bapec) then multithreading will
      speed up the calculation. Also, for models which combine multiple
      temperatures such as cooling flow or NEI models multithreading can
      provide a significant speed increase.
    
    Spectropolarimetry Plotting
    
    - Changed the polangle plot so that the angles all lie between the
      mean angle ±90 degrees. This avoids plots where values jump
      between the top and bottom of the plot as the angle wraps around.
    
    - The polangle and polfrac plots now take account of any plot
      grouping set. If any spectrum in a data group is in the same plot
      group as a spectrum in another data group then all the spectra in
      the second data group are added to the plot group for the purposes
      of these plots only.
    
    - If any of the polfrac values or errors are calculated as NaNs
      then these are replaced by the PLT NO value and will not be plotted.
    
    Mdefine
    
    - Fixed mdefine to handle the case when the user is mdefining
      a convolution model which consists only of an xspec convolution model.
    
    - Added support for table models using atable, mtable, or
      etable in mdefine expressions.
    
    - Added 2nd to 5th order Legendre polynomials to mdefine
      built-in functions.
      
    Updated Models
    
    - bwcyc: Tightened the boundaries of parameters; now treats NaN as positive infinity
    
    - cevmkl, cemekl: Increased lower limits of Tmax parameter
    
    - gabs: Fixed units for Strength parameter
    
    - tbnew: Reduced stderr logging of non-error announcements
    
    Miscellaneous
    
    - The syst command to set model systematic errors can now apply
      systematics to individual models (default or named) instead of to
      all models.
    
    - The precision of parameter values from tclout(r) has been
      increased to 10 figures.
    
    - The error command diagnostic output is now controlled by the
      chatter level.
    
    Bug fixes
    
    The following patches for 12.13.0 have been included:
    
    12.13.0a. When the X axis is in energies or wavelengths, plot
              delchi and plot fitstat (or plot chisq) are not being scaled
              properly. When the X axis is in wavelengths and perhz is on, plot
              counts is unable to construct its Y axis label.
    
    12.13.0b. If a model defined using mdefine calls another xspec
              model which requires a separate model calculation for each
              spectrum, that information is lost.
    
    12.13.0c. plot delchi and plot fitstat/chisq are not being
              properly scaled when spectra have multiple models assigned to
              them. This also restores the insertion of systematic model error
              into plot delchi and plot fitstat/chisq, and adds it to other
              plots that were previously ignoring it.
    
    12.13.0d. Fix to mdefine so that it can now include built-in
              Xspec convolution models as part of its expressions for additive
              and multiplicative mdefine components.
    
    12.13.0e. Added chain proposal uniform deltas [factor] and
              chain proposal uniform limits options. For backwards
              compatibility, chain proposal uniform defaults to chain proposal
              uniform limits.
    
    12.13.0f. The zkerrbb model undercalculates the flux (and luminosity) 
              by a factor of (1+z)^2.
    
    12.13.0g. The Voigt line model can have a small sub-bin
              offset and incorrect shape.
    
    
    In addition the following bugs have been fixed:
    
    - When the 'energies' command is in use for table models, a crash
      may occur if all data sets are cleared.
    
    - The 'tabint' function (for external programs using Xspec's
      table interpolation code) is not properly handling the case
      when default LOELIMIT and HIELIMIT are in use.
    
    PyXspec Release Notes for version 2.1.2 (Xspec 12.13.1)
    
    New Features:
    
    - New method 'Plot.nAddComps()' for returning the number of add 
      component plots for a given plot group.  This can be helpful for
      determining the valid range of the 'addCompNum' input argument to
      'Plot.addComps()'.
      
    - Two new methods to take advantage of standard Xspec's new ability to
      set systematic model errors for specific models:
      'AllModels.systematicSingleModel' and 'AllModels.setSystematicSingleModel'. 
    
    See also:
    
     https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html
    
    ********************************************************************************
                                         XSTAR
    ********************************************************************************
    
    XSTAR v2.59b:
    
    - Fixed minor errors including incomplete initialization of cross
      section array in phint53.f90.  Also modified readinf of parameter
      file in xstinitable to allow for small float values of emult.
    
    ********************************************************************************
                                         IXPE
    ********************************************************************************
    
    Version 3.1.0:
    
    - ixpecalcarf (NEW): Takes an on-axis ARF (ancillary response file)
      or MRF (modulation response file) input and uses the REEF (radial
      encircled-energy file) and vignetting data from the CALDB and the
      off-axis pointing information from the Level 1 attitude data to
      correct the input response file for off-axis vignetting and
      extraction region effects.
    
    - ixpecalcfov: New version produces a DS9 region file as output
      instead of a FITS image.  Removed the "badpix1", "badpix2",
      "badpix3", and "exc_graypix" parameters from the interface.
      Added a "print_angles" Boolean parameter to control printing
      the rotation angles for each detector (defaults to "yes" or True).
      Floating point numbers are rounded to five decimal places in the
      output region files.
    
    - ixpeinterptemp (NEW): Takes an input Level 1 Detector Housekeeping
      file and interpolates values for missing temperature data up to a
      user-settable maximum gap in time.  This reproduces (using the
      default maximum time gap of 150 seconds) the behavior of the IXPE
      processing pipeline, which interpolates temperatures before calling
      the "ixpegaincorrtemp" tool to minimize the number of events that
      are rejected due to missing temperature data.
    
    - ixpemkevt2gti (NEW): Takes an input pre-Level2 event file (i.e.,
      after gain correction, spurious modulation correction, and aspect
      correction, but before any event column or row filtering), a Level
      2 Housekeeping-derived GTI file, a Level 1 attitude file, and a
      Level 1 Instrument Housekeeping file to produce the produce the
      final GTI for the Level 2 events file, calculate the ONTIME,
      DEADTIME, DEADC, and FCW_ENC keyword values.
    
    - ixpeplot_polarization (NEW): Takes the FITS file output from the
      updated ixpepolarization tool (see below) and provides standardized
      plotting for the Q and U Stokes parameters with error bars, as well
      as the associated MDP99 circle.  The results of all the input files
      and extraction regions are plotted together on the same axes using
      matplotlib.
    
    - ixpepolarization: New version allows up to three different input
      Level 2 event files.  The resulting region file output (if an
      input region file is given) defines a polarization vector on the
      sky calculated from the combination of all input files.  In addition,
      the tool produces an output FITS file which defines the Stokes
      parameters for each sub-region in the input region file (or a single
      entry using all the events if no region file is given) for each
      event file, as well as for the sum of all input files.  Removed the
      "scale" parameter, added the additional files parameters, optional
      modulation factor filename parameters for each input file, the
      weighting scheme used to determine the Stokes parameters, and the
      standard "clobber" option for the output.  Floating point numbers
      are rounded to five decimal places in the output region files.
      In PolarizationRegion.create_line_region, precisions of "02.5f"
      on RA HMS seconds were changed to "02.3f", and precisions of
      "02.5f" on Dec sdms were changed to "02.2f", to match the decimal
      degree precision of 5 decimal places.
    
    - Changes made to the IXPE CALDB are detailed here:
    
      https://heasarc.gsfc.nasa.gov/docs/ixpe/caldb/ixpe_caldbhistory.html
    
    ********************************************************************************
                                         MAXI
    ********************************************************************************
    
    - Corrected error message in mxproduct
    
    ********************************************************************************
                                         NICER
    ********************************************************************************
    
    - niobsermerge (NEW) to combine observation data sets
       * nicerl3-spect and nicerl3-lc updated to work with merged data sets
       * nimkfmerge now properly sets TSTART/TSTOP/DATE-OBS/DATE-END in
         merged outputs
    
    - nicerl2
       * update to filtcols=NICERV5 (see niprefilter below for new columns)
       * new parameters mingti/erodedilate to avoid shredded GTIs
       * new parameters max_lowmem and thresh_range to deal with light
         leak situation
       * new parameters keep_{forced,overshoots,undershoots}, datamode for
         event filtering
       * new parameter keep_noisering, noisering_under for filtering
         noise ringer events
       * improved default verbosity with more user-helpful output
       * bug fix to properly pass incremental parameter to prep_mkfiles
       * add geomag_tcheck parameter, allow dealing with stale geomag data
    
    - nicerl3-spect / nicerl3-lc
       * bug fix to not accept gtifile when 3C50 background model is used
       * ignore ufafile/indir/cldir parameters if not needed
       * handle EXPOSURE=0 situations more gracefully by returning status=218
       * improved default verbosity
       * clean up temporary tco plot files
    
    - nicerl3-lc
       * allow renormalization of light curve by number of selected detectors
       * new parameters detnormtype/detnormbuff/detnormchg to accomodate
         normalization
       * default is detnormtype=arr52, which scales light curve to equivalent
         52-detector array
    
    - niprefilter / niprefilter2
       * new NICERV5 filter columns for filter file (below)
       * new columns {FPM,MPU}_NOISERING_COUNTS to diagnose noise ringer events
       * new column SUN_BODY_AZIMUTH to azimuth of sun in NICER body coordinates
       * new columns TOT_LOWMEM_{SCI,FIFO} for total array to diagnose lost events
       * new column DELTA_SLOW_LLD to diagnose array-averaged low energy
         threshold changes
       * bug fix to handle event files with no rows
    
    - niautoscreen
       * better graphical display of censored detectors and MPUs with
         default chatter
       * bug fix for round-robin detection (was more agressive disabling
         than should be)
       * parameter limits now include min/max as well for overall sanity checking
    
    - nimpumerge
       * new parameter fpmsel (=YES by default) to properly manage FPM
         selection data
    
    - nibackgen3C50: (v1.2) fixed CEATOR keyword in output (should be CREATOR)
    
    - nicerarf and nicerrmf: handle failures more gently by passing status=218
      up to the caller
    
    - nicerclean
       * added keep_{forced,overshoots,undershoots,noisering} and data
         mode keywords;
       * added noisering_under parameter for noise ringer filtering support
    
    - nimaketime
       * calculates and prints how filtering stages impact available good time
       * add min_lowmem and thresh_range parameters for dealing with light
         leak situation
       * add mingti and erodedilate parameters for "smoothing" shredded GTIs
    
    - nicerl2 / nicermergeclean / nicerclean:
       * remove excplicit parameters from par file, use DEFAULT instead
       * for example roundrobbinscr
       * new parameters added keep_{undershoots,overshoots,forced,noisering}
         to match nicerclean
       * new parameters datamode noisering_under parameters to match nicerclean
    
    - nifpmsel:
       * handle case of full MPU disabled better
       * handle tricky case where all FPMs in an MPU are GTI-selected by same GTI
    
    - nigeodown:
       * Removed Perl LWP::Simple requirement (was not used anyway)
       * accomodate relative paths
    
    - niprescreen: (NEW) tool for pre-screening NICER event data
       * not meant to be called by user
       * nimpucal updated to call niprescreen
       * new EVENT_FLAGS bit 0x40 for 'noise ringer' events detected
    
    - nicer-l1-metadata: fixed excludepat= Perl (>v5.10) handling and set
      default to excludepat=NONE
    
    - niextract-events: Write revised DATE-OBS, DATE-END, and (optionally)
      OBS_ID keywords
    
    - nimpucal: optimized calculation of PI_RATIO
    
    - nivigsum: Better handling of off-axis warning when large numbers of
      detectors are disabled
    
    - SCORPEON:
      * niscorpcalc: Bug fix to properly read SAA/trapped map metadata keywords
      * internally factor code into Perl library
    
    - Multiple tasks updated to change overall chatter level and logging
      to provide more useful information to the user and less chaff
    
    
    ********************************************************************************
                                         SWIFT
    ********************************************************************************
    
    BAT:
    
    - batcelldetect: (MPFIT) Bug fix for mix of analytical and numerical derivatives
    
    - batmaskwtevt: Use the more efficient applyQuatToVector()
    
    UVOT:
    
    - uvotlc: Updated skipped parameter mode to 'hl' and help file
    
    - uvotmaghist: Updated skipped parameter mode to 'hl' and help file
    
    - uvotproduct: Updated skipped parameter mode to 'hl' and help file
    
    - uvotsource: Update description of 'skipreason' parameter
    
    - uvotimsum: Added method=VARIANCE and updated EXPOSURE calculation
      for weighted sums
    
    ********************************************************************************
                                         XTE
    ********************************************************************************
    
    - hxtback: Updated to use ftselect instead of fselect.
    
    - pcaextspect2: Adjusted background spectrum to properly handle
      fractional counts by using HDUCLAS3=RATE; now runs pcaphasyserr
      by default
    
    - pcaphasyserr: (NEW) Apply systematic error estimate to PHA spectrum
    
    - pcarmf: Major updates (version 12.0):
    
      * photon energy range increased from 1.5-80 to 1.5-100 keV
      * new EPICS2017 Xenon cross sections, which are new default (lbl_sigma=3)
      * internal code factorization for readability and maintainability
      * gaussian response components are now properly calculated with
        inverse gaussian
      * avoid unnecessary calculations for zero matrix elements
      * per-anode lower level discriminator function revised based on Crab data
      * New parameters xe_xsect_{k1,l1,l2,l3,m}_norm to allow adjustment
        of EPICS2017 Xenon cross sections on per-shell basis.  The "M"
        parameter scales M, N and O shell cross sections as a group.
      * New parameters pralmy_mult_p{0,1,2,3,4} to adjust propane, aluminum,
        and mylar densities up and down as a single unit.
      * Adjust layer1-3 density downward by Xenon leak rate.
      * Further adjusted the low-energy correction factors to accomodate a
        larger range of targets, not just the Crab
      * Further refinement of detlld lower level discriminator threshold functions
    
    - pcarmf / xpcaarf: revised response parameters for improved
      absolute flux calibration; further updates based on refined
      calibration analysis
    
    - pcarsp: (v11.8) Bug fix when computing weighted responses for single layer
    
    - rddescr: new parameter gainroot which helps control extra output files
    
    - saextrct: Modified to handle missing keywords
    
    ********************************************************************************
                                      HEASoftPy:
    ********************************************************************************
    
    New version 1.3:
    
    - Added a patch installer script 'hpyupdate'
    
    - Added a fix for CFITSIO version confilict between AstroPy (through
      IXPE import) and PyXspec
    
    - Added timestamp check to read par files from sys_pfiles after a
      fresh installation
    
    - Fixed an issue of reading par files with extra white space
    
    - Updated utils.local_pfiles to use tempfile instead of process id
    
    - Added utils.local_pfiles_context to be used as context manager
      for local pfiles
    
    - Fixed logging error in IXPE tests
    
    - Moved mode check from HSPTask to HSPTask.read_pfile + code style updates.
    
    - Added explict ISO-8859-15 in the return of subprocess.Popen
    
    ********************************************************************************
                                         MISC.
    ********************************************************************************
    
    - Allow Python 3.6 and SciPy 1.5 which were previously disallowed
    
    - Disallow GNU C++ older than v5.1
    
    - Revised tests for C, C++, and Fortran compilers to alleviate
      somewhat the need for setting compiler environment variables
      (CC, CXX, FC)
    
    - Reduced use of "-Wl,-no_compact_unwind" linker flag (in place to
      silence warnings from Fortran code) to prevent uncaught exceptions
      in C++-based tools.
    
    - headas-setup script: Removed extraneous double-quotes from user
      PATH variables. Unpaired double quotes in PATH are an increasingly
      common problem on WSL.
    
    - Updated XPI parser to accept command lines up to 4000 characters