Skip to main content
********************************************************************************
                        RELEASE NOTES FOR HEASOFT 6.33
                               February 23, 2024
********************************************************************************

The HEASoft 6.33 release is driven by new and updated mission-specific
data analysis software (IXPE and NICER), 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.

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

- Reorganization of helper utility code; added fitsverify

- CMakeLists.txt: Changed install location of cfitsio-targets.cmake
  to conform with the one listed in cfitsio-config.cmake.in (i.e.
  including the extra "cfitsio" subdir of lib/cmake).

- Updated Perl wrappers (Astro-FITS-CFITSIO) to v1.18

- Can now write internal memory files of size > 2^32 directly to a
  gzip-compressed output file.

- Added support for unsigned long long types to fits_update_key.

- Added ability for Windows builds to handle UTF-8 needed for reading
  filenames with non-ASCII characters.

- Calculator functions that read GTIs do more correct validity
  checking of GTI input files

- fits_insert_rows now works if input table starts with both no rows
  and no columns

- Added 2-byte int test to speed.c utility.

- Made fix to http file handler to expand the allowed URL length.

- Fix for modify and delete keyword functions to fully conform with
  v4.3.0 long string keyword read/write enhancements.

********************************************************************************
                                    FIMAGE
********************************************************************************

- fimgmerge: Allow for outfile names with longer directory paths

********************************************************************************
                                    FUTILS
********************************************************************************

- ffilecat: Increased length of infile and message variables to allow
  for longer file paths.

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

- burstfinder: Separated code into subroutine files; added POLYERR and
  POLYXOFF for error estimate and fit x offset to FITS output; corrected
  errors in handling missing FRACEXP column in input LC

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

- extractor: Fixed an error message, and reworked handling of warning
  messages to fix a corner-case crash

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

- ftchkpha: Addressed confusion caused by the presence of DETECTOR extensions
  which have HDUCLAS1 set to SPECTRUM.

- ftgcorpha: Ensure that the output spectrum uses a RATE column to avoid
  problem of fractional counts being written as integers to a COUNT column.

- ftgrouppha: Improved diagnostic output if checking the output spectrum
  generates messages.

********************************************************************************
                                   HEATOOLS
********************************************************************************

- fkeypar (wrapper to ftkeypar): When the keyword doesn't exist, put
  an empty string for 'value' to prevent par file corruption;
  Changes to output string values to match old fkeypar behavior

- ftcreate: When no units are given, send a null 'tunit' (rather than
  an empty string " ") to match behavior of the old Fortran 'fcreate'
  task.  Otherwise the created table has empty TUNIT keywords that
  serve no purpose.

- ftmgtime: Print number of files at chatter>=3

********************************************************************************
                                     TIME
********************************************************************************

- maketime: Increase path size from 512 to 2048; expr size from 2048 to 4096

********************************************************************************
                                    XIMAGE
********************************************************************************

- Addressed crash when asking for command parameters (e.g. "circle/?")

- ra_dec_to_pixel: Fixed error with celestial/equatorial coordinate
  input at prompt

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

- Fixed an uninitialized variable which could leave the program confused
  about whether or not it created stokes parameter spectra.

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

Xspec version 12.14.0:

For details, please visit this page.

For patches beyond 12.14.0, please visit the Xspec issues page.

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

Version 2.59ch:

- Faster execution of the routine writespectra by not calculating
  voigt profile for every line.

- Change to nrank to not miss weaker features for important cases.

- New atomic data file which has Ca XIV K shell photoionization cross
  section error fixed

- Fixed PARAM to have larger nrank value to ensure that more features
  are included in synthetic spectrum.

- Changes to bookkeeping of rates which allows the heating-cooling
  in the photon and electron pov to agree, and fixed printing of
  these rates

- New argument for ucalc, echar, which is a characteristic energy
  describing the heating and cooling rates for that process.

- Changes which allow densities less than 1.

- Unbinned threshold energy in phint53

- Higher threshold for line binning in binemis to allow faster execution.

- Accurate electron POV heating and cooling.

- Fixed type 51 data (Ralf)

- Added diagnostics and printout code for NLTE workshop.

********************************************************************************
                                     ASCA
********************************************************************************

- addascaspec: Fixed mathpha command for background files when errmeth
  is specified.

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

- ixpeaspcorr:

  * Added "outfile" and "attfile_out" string parameters for the path
    names of the  output event file and output attitude file (both
    previously overwrote the input).

  * Added "clobber" Boolean parameter to support the new "outfile"
    and "attfile_out" usage.

  * Changed "n" parameter to type integer and storage hidden, with
    default of 300 and min of 1.

  * Changed "att_path" to "attfile_in" to indicate it is now an input-
    only attitude file.  This parameter is now required, rather than
    optional.

  * Output event file adds two new keywords: "XPIXMEAN" and "YPIXMEAN",
    which are set to the values of the "x_pix_mean" and "y_pix_mean"
    parameters to enable users to reproduce event files.

  * Since "attfile_in" is now a required parameter, the module always
    uses the attitude data to differentiate between the star tracker
    optical heads and independently calculate the aspect solutions by
    time.  If no valid attitude solutions are found within the time
    bounds of the event file, a warning is logged, and no attfile_out
    is produced.

  * The module now attempts to capture most errors raised in the code.
    Instead of breaking at the Python line when an error is raised,
    the module now logs an error string and returns a value of "1" to
    the command line.

- ixpeboomdriftcorr:

  * Added "outfile" and "attfile_out" string parameters for the path
    names of  both the  output event file and the output attitude
    file (both previously overwrote the input).

  * Added "clobber" Boolean parameter to support the new "outfile"
    and "attfile_out" usage.

  * Changed "n" parameter to type integer and hidden, with default
    of 300 and min of 1.

  * Changed "att_path" to "attfile_in" to indicate it is now an input-
    only attitude file.  This parameter is optional, as is "attfile_out".

  * Deleted "modify_attfile", as the addition of "attfile_out" removes
    the modification the input attitude file.

  * Changed default value of "params_file" to "caldb" to look up the
    value in the CALDB.

  * Added "teldef" parameter, which defaults to "caldb" to look up the
    value in the CALDB, to allow users to provide their own telescope
    definition CADB file.

  * The module now attempts to capture most errors raised in the code.
    Instead of breaking at the Python line when an error is raised,
    the module now logs an error string and returns a value of "1" to
    the command line.

- ixpecalcarf:

  * Changed "attfile" parameter to be optional (required if new
    "offarcmin" parameter is not used).

  * Changed default value for "vignfile" and "reeffile" default values
    to "caldb" to look up the value in the CALDB.

  * Added "uvfile", "grfile", "axeffa", "modfact", and "qefile"
    filename parameters (which all default to "caldb" to look up the
    values in the CALDB) to allow users to specify the path to their
    versions of these files.

  * Changed "specfile" parameter to be a required parameter.

  * Added "offarcmin" parameter, which is an optional floating point
    parameter that defaults to -1 to disable its use.  If the value
    is set >= 0.0, the attitude solution in the "attfile" will be
    ignored, and the output response function will be calculated for
    this single off-axis angle only.

  * Use of on-axis "arf" and "mrf" files from the CALDB is now
    discouraged.  These files should now be calculated for each
    observation using this tool.

  * A new mode for visualizing the effects of off-axis angle on
    response has been added.  By setting "offarcmin" to >= 0.0, the
    attitude solution of the target will be ignored, and the output
    response function will be calculated for the user-selected off-
    axis angle only.  This will not produce a valid solution for any
    given target, rather, it is intended for the purpose of
    facilitating understanding of the effects of off-axis angle.

  * Attitude off-axis angles that exceed the maximum value in the
    vignetting CALDB file are now masked out of the final response
    function.  If this occurs, the user is notified of the fraction
    of the total GTI time that has been removed.

  * Interpolation between the energies in the radial encircled
    energy function called "reef" in the CALDB (which occurs when
    "radius" > 0.0) is now accomplished in log-reef/log-energy space
    and is now extrapolated below 2.4 keV and above 6 keV.  These
    remove order 1% artifacts in the resulting response functions
    due to slope discontinuities in the reef interpolation.  In
    addition, the user will be warned if the radius is set outside
    the 0.5 < radius < 6 arc min range, as such values are outside
    the range of well-defined reef measurements.

  * The user will also be warned if the attitude file start time
    is > 50 ksec after the start of the event GTI, or if the attitude
    file end time is > 50 ksecs before the end of the event GTI.

  * This can occur if a multi-segment Level 2 event file is used with
    a single-segment Level 1 attitude file.

- ixpedet2j2000:

  * Changed name of "attitude" parameter to "attfile_in" to make it
    consistent with the rest of the ixpe tool suite.

  * Changed default values of "teldef" and "align" parameters to
    "caldb" to look up the values in the CALDB.

  * The module now attempts to capture most errors raised in the code.
    Instead of breaking at the Python line when an error is raised,
    the module now logs an error string and returns a value of "1" to
    the command line.

  * Changed the column types of "X" and "Y" in the "outfile" from "D"
    to "E", as double-precision is not required.

- ixpeeventviewer:

  * This module has been added to allow users to visualize the
    individual tracks of the raw events in the Level 1 event files.

  * This module is a minor interface change and functional update of
    the "xpevtviewer" program developed by Luca Baldini (INAF) and
    the ixpeobssim team.

- ixpegaincorrtemp:

  * Fixed a bug in which small (~2 second) time gaps were being
    incorrectly introduced into the temperature data every ~1000
    seconds or so.

  * Fixed bugs in which a few output messages were being logged
    without a carriage return to indicate a line break.

- ixpeinterptemp:

  * Removed the default value of the "infile" parameter.  Previously
    had inadvertently been set to the name of a testing file.

  * Fixed a bug in which the ixpeinterptemp.py file was not
    executable from the shell command line.

- Ixpemkevt2gti:

  * Changed name of "attfile" to "attfile_in" to make it consistent
    with the rest of the ixpe tool suite.

  * Fixed a bug in which missing parameter keywords in "infile"
    caused the program to crash.

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

- mxextract: Fixed crash that occurs when the USER environment
  variable is not set

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

This NICERDAS release focuses on delivering improved NICER modeling of
backgrounds and responses during the NICER optical light leak of May
2023.  The response generation tool (nicerrmf) and SCORPEON background
model now can generate products that have adjusted low energy responses
due to the threshold changes between day and night.

The SCORPEON model can now estimate backgrounds for light curves of any
time binning via the niscorplc tool.  The nicerl3-lc tool can use this model
to attach backgrounds to light curve products.

NICERDAS v012:

 - nicerrmf now calculates variable threshold based on in-flight setting

 - nicerl3-lc now can estimate SCORPEON light curve backgrounds with
   niscorplc, but the default is still no background estimate

 - nicerl2 / nimaketime have new parameter threshfilter which allow
   users to select day-only or night-only thresholds, useful after the
   optical light leak of May 2023

 - nibackgen3C50 adds new gainepoch (2022) for that year's gain solution

 - NICER SCORPEON model adds background version v23 (bkgver=v23) which
   includes a low energy threshold parameter (nxb),
   as well as parameters of the detailed nxb variant to better fit the
   high energy shape of the prel component.

 - niautoscreen has a new parameter lowmemscr to do per-MPU LOWMEM screening

 - nimaketime disables max_lowmem by default, in favor of niautoscreen

 - nicerl3-spect and niphasyserr have new parameter syserrfactor so user
   can scale systematic error by desired factor

 - new task niprelflarecalc can estimate precipitating electron
   ("PREL") flares.

 - new task nigti allows uers to make GTI from text file or command line

 - new task niscorplc which computes background estimates for light curves

 - small changes and bug fixes:
    * SCORPEON cosmic_ray calculation handles NaN values correctly
    * niscorpspectmod uses correct background response file name
    * nicerrmf updates DETCHANS keywords in both response extensions
    * niextract-events bug fix to handle case of entire MPU off/disable
    * internal library fix to expand_item_list prevents niextract-events
      infinite loop
    * nicerl3-lc avoids emitting extraneous file named "1"
    * internal tool niscorpcalc now emits TIMEDEL/TIMEPIXR keywords
    * niscorpcalc correctly computes noise peak centroid when
      noise_enom != 0 (which is rare)
    * nicertimecal has slight verbosity changes
    * nimpucal now uses timebiascalfile=CALDB instead of NONE, but
      most users will not see this since nimpucal enforced that behavior
      anyway
    * nicerl3-lc, nicerpi, nicerrmf, nicertimecal use internal NicerTime
      libraries for consistent behavior
    * nicerl3-spect adds gainepoch3c50 parameter so user can manually
      set gain epoch if desired
    * nimaketime bug fix to restore outexprfile functionality lost in
      NICERDAS v011

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

UVOT:

- Updated PGPLOT Perl wrappers to fix a build error with newer GCC

********************************************************************************
                                      XTE
********************************************************************************

- hxtback: fix fkeypar (ftkeypar) fragility regarding retrieval of
  DATAMODE keyword

********************************************************************************
                                   HEASoftPy
********************************************************************************

- Broke the tools into submodules (heasoftpy.nustar, heasoftpy.heatools,
  etc.) to speed up module imports, such that users needing only one
  package aren't burdened by an import of other packages and their
  dependencies.  The old 'fcn' behavior is still available, but will
  generate a warning.

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

- Updated third-party packages WCSLIB (v8.2.1) and GNU readline (v8.2)

- Added configure test to check whether linking with "-lpthreads" is
  necessary for the Xspec functions library