• Download HEASOFT
  • ********************************************************************************
                           RELEASE NOTES FOR HEASOFT 6.35
                                    March 14, 2025
    ********************************************************************************
    
    The HEASoft 6.35 release is driven by new and updated mission-specific
    data analysis software (XRISM, IXPE, Swift, RXTE, 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.
    
    ********************************************************************************
                                        CFITSIO
    ********************************************************************************
    
    Version 4.6.0:
    
    - Improved the empty-primary data test performed in fits_open_file
      
    - Correction to eval_defs.h typedefs to allow for compilation on old
      GCC compilers
        
    - The fitsverify utility tool now distinguishes between alternate
      coordinate systems when testing positions of WCSAXES keywords
      
    - Updates made for greater C23 compatibility as required for GCC v15
    
    - Possible memory vulnerabilities patched.  Our thanks
      to Doyensec for reporting this
         
    - Fix to a possible heap buffer overflow in a utility tool
      Our thanks to TeamH4C for reporting this
    
    - Negative size parameter vulnerability patched in utility tool
      Our thanks to TeamH4C for reporting this
    
    ********************************************************************************
                                        CCFITS
    ********************************************************************************
    
    - New function HDU::addKeyNull() for creating keywords with null
      values (ie. CFITSIO's fits_write_key_null() functionality).
      Existing keywords with null values can now also be modified.
    
    ********************************************************************************
                                         HEASP
    ********************************************************************************
    
    arf:
    
    - Added remapEnergies method analogous to that in the rmf class
    
    pha:
    
    - Fixed setGrouping to make sure that any information about bad
      quality channels in the spectrum is combined with any setting of
      channels as bad quality in the grouping process
    
    - Fixed coding error in getMinSNOptimalGrouping which could cause
      overrunning the end of a vector
    
    - Fixed read method so that it uses the extension suffix on an input
      filename. Also added the option to pass an extension version number
      into the write method.
    
    phaII:
    
    - Fixed read method so that it uses the extension suffix on an input
      filename. Also added the option to pass an extension version number
      into the write method.
    
    grouping:
    
    - Improved diagnostics in loadOptimal if FWHM and Counts have
      different sizes
    
    rmf:
    
    - Fixed remapEnergies so that it divides by the total weighting
      if operating on a REDIST matrix. This makes it consistent with
      rebinEnergies.
    
    - Corrected use of J or I when writing depending on the number of
      channels
    
    - Added append method to explicitly write rmf to an existing
      file with an option to write only the MATRIX or only the EBOUNDS
    
    SPutils:
    
    - Added routines to copy a single HDU from one file to another and
      to split an extension suffix from a filename
    
    
    ********************************************************************************
                                        HEAUTILS
    ********************************************************************************
    
    headas_gti - Significant changes to GTI library interface:
    
      - Added mjdrefi,mjdreff fields to structure
    
      - HDput_frac_time normalize integer & fractional parts before writing
    
      - HDgti_read default extension is now *GTI*, allow '(current)', read
        MJDREF as full fractime, fix bug when using refer_to (stop times
        were not offset)
    
      - HDgti_write writes EMPTYGTI keyword for empty GTIs
    
      - New routine HDgti_readfile to read files and HDgti_read for opened
        files
    
      - Keep integer parts of MJDREF and TIMEZERO separate
    
      - Added accessor routines for MJDREF and TIMEZERO; normalize integer
        and fractional parts
    
      - For emtpy GTIs write a single-row no-exposure file
    
      - Further refinements to handle real-world conditions and GTIs
    
      - HDput_frac_time(): write double/fractional number keywords with
        16 decimal digits of precision
    
      - Removed hardcoded column numbers
    
      - Added error trapping
    
      - Use floor() instead of (int)
    
      - Added interface to HEACORE::HEAUTILS Perl module
    
    ********************************************************************************
                                        ATTITUDE
    ********************************************************************************
    
    - prefilter:
    
      * Added initialization code for computation of earth/moon/target body vectors
    
      * Allow for RXTE orbit file that may have broader time coverage than
        attitude file when orbpropagate=YES
    
    ********************************************************************************
                                        CALTOOLS
    ********************************************************************************
    
    - caldbinfo: Updated to provide more useful information to the user about
      whether the CALDB is set up correctly or not.  For local installations,
      it now checks for the presence of the appropriate caldb.indx file in
      the $CALDB/data/mission/instrument directory
    
    - udcif: Fixed issues with file lengths
    
    ********************************************************************************
                                        HEAGEN
    ********************************************************************************
    
    - barycorr: Updated to use JPL Ephemeris DE440 (1950-2060) by default
    
    - burstbkgevt: (NEW) Generate simulated background events based on input
      background lightcurve and spectra
    
    - burstfinder:
    
      * Improved fitting, more accurate characterization of burst
       times, and corrections to pre- and post-burst interval limits
    
      * Updated to conform to new refactored headas_gti() interface
    
    - burstt90t50: (NEW) Compute T90 and T50 using CGRO definition
    
    - ftadjustgti, rebingausslc: updated to conform to new refactored
      headas_gti() interface
    
    - sumvec: (NEW) Create a new column that is the sum of elements in
      a vector column
    
    - xrtraytrace: Method of opening mirror file changed to avoid problem
      with remote CALDB.
    
    ********************************************************************************
                                       HEASARC
    ********************************************************************************
    
    - bincurve: Replaced fixed binning with dynamic memory allocation
    
    - extractor:
    
      * Updated time keywords for newer standard. Also updated DATE-BEG
        and DATE-END to match MJD-BEG and MJD-END instead of just copying
        DATE-OBS and DATE-END from the input event file.
    
      * Copy primary header keywords from the input event file into the
        primary header for light curves and images. This copies what is
        already done for spectra.
    
      * Fixed to handle propagation of COMMENT and HISTORY keywords correctly
    
      * Modification from mission team for the estimated error on Q and U
        spectra and light curves for the unweighted and simple cases
    
    - searchflickpix: Changed COUNTS column in output file from 32-bit (I)
      to 64-bit (J) integer
    
    ********************************************************************************
                                      HEASPTOOLS
    ********************************************************************************
    
    - ftaddrmf: Added support for XRISM-like RMFs with multiple MATRIX
      extensions; now checks that all input rmfs have the same number of
      MATRIX extensions and sums them all.
    
    - (NEW) ftchktablemodel: check the validity of a FITS table model file
    
    - ftgrouppha: Added support for CSC-type files which have their
      background spectrum as another SPECTRUM extension in the same file;
      improved diagnostics on errors
    
    - ftmarfrmf: Added ability to multiply RMFs containing multiple
      matrices (e.g. for XRISM Resolve) by an ARF.
    
    - ftrbnrmf: Added a note to the help about when the output RMF is
      divided by the binning factor.
    
    - ftrgsrmfsmooth: Moved to Xspec/src/tools (see below)
    
    ********************************************************************************
                                       HEATOOLS
    ********************************************************************************
    
    - ftmgtime: Now more flexible about accepting files with mixed MJDREF
      and no-MJDREF keywords; accepts indates='-' to disable rebasing of GTIs;
      updated to conform to new refactored headas_gti() interface
    
    - ftsort: Added 'merge' sort method
    
    - ftverify / fverify: 
    
      * Now distinguishes between alternate coordinate systems when testing
        positions of WCSAXES keywords
    
      * Minor fix in fits_parse_card to prevent the case of reading 1 byte
        before the start when removing trailing space from keywords.
    
      * In get_str(), added a check to prevent a negative int from being
        sent as the size arg to strncpy; added bounds check to get_str()
        when removing trailing space
    
    ********************************************************************************
                                        XSELECT
    ********************************************************************************
    
    - Changed the default mission at startup to XRISM from SUZAKU.
    
    - xselect.mdb: Corrected start of XRISM filenames to 'xa' instead of 'ah'
    
    - xsl_filter_intensity: Exit with status from running mkintensfilt command
    
    - Changed PLT plots to have a white background
    
    - Allow filtering on multiple columns and fixed a bug when filtering
      with a column starting with the letters PI.
    
    - Increased arbitrary maxpts setting for fplot because of long
      IXPE observations
    
    - Increased the maximum size of the light curve when doing filter
      time cursor.
    
    ********************************************************************************
                                        XRONOS
    ********************************************************************************
    
    - lcmath: Changed 'addsubr' parameter to be hidden with default=no
    
    ********************************************************************************
                                         XSPEC
    ********************************************************************************
    
    Xspec version 12.15.0
    
    New models:
    
    - Added lorentzian (lorabs) and voigt (vlorabs) absorption line multiplicative 
      models
    
    - For completeness, added versions of the lorentz and voigt lines with widths 
      in velocity, not energy, and with a redshift parameter: 
      zlorabs, zvlorabs, zlorentz, 
      vlorentz, zvlorentz, 
      zvoigt, 
      voigtabs, zvoigtabs, 
      vvoigt, zvvoigt, 
      vvoigtabs, zvvoigtabs.
    
    - Added new convolution model rgsext which is a version of rgsxsrc with a 
      parameter for additional blurring. Both rgsext and rgsxsrc can now get 
      information on image file, boresight, and extraction size from XFLT keywords 
      in the spectrum.
    
    - Added model feklor for Fe K fluourescence line from 7 Lorentzians.
    
    Changes to models:
    
    - Added files for AtomDB v3.1.2 and SPEX v3.08 and made these the defaults.
    
    - Added support to apec models for equilibrium ion balance file and making
      ion fractions available in CIE models.
    
    - Added method to calculate the electron/ion ratio for nei models and
      store the information in the model database so it can be recovered
      by e.g. tclout modkeyval ApecElectronIonRatio.
    
    - Added ability to correct the electron density for apec models. This changes 
      the normalization for the cases when the ne/nH ratio differs from 1.2.
    
    - When calculating nei models added saving of ion fraction arrays as 
      ApecIonFractionsZZ where ZZ is the chemical symbol of the element.
    
    - Added equilibrium ionization balance files for v2.0.2, v3.0.7, and v3.0.9 
      versions of AtomDB. Note that v3.0.4-3.0.9 had identical files.
    
    - Renamed eigen_v3.0.fits to apec_v3.0_eigen.fits and eigen_v3.0.4.fits to 
      apec_v3.0.4_eigen.fits. Added apec_v3.0.7_eigen.fits which is appropriate 
      for nei models with versions 3.0.7 and 3.0.9.
    
    - Added a SEIGEN keyword to the primary header of the NEI continuum file
      to indicate which version of the eigenvector file is correct to use
      with this version of the NEI continuum and line files.
    
    - Handled the case of an input _coco file having no Cont_Err or Pseudo_Err 
      column. This allows us to save some space in files where errors are not 
      included.
    
    - Added utilities to get and put a SPEX version number analogous to
      the AtomDB version number. Added support for multiple versions of
      SPEX. Added SPEX_VERSION to Xspec.init to define a default SPEX
      version number.
    
    - Fixed MixUtility::doMix so that it correctly handles the case of
      spectra not being included in any of the mixing sets. Fixed the
      polrot mixing model so that it does not require triplets of (I,Q,U)
      in each data group. Each datagroup can only have one pair of (Q,U)
      at most but can have any other spectra.
    
    - Added documentation to xsdskb.f for the bolometric flux calculation.
    
    Other:
    
    - ftrgsrmfsmooth (tool relocated from heasptools):
    
      * Rewrote to use the xspec model code in rgsExtendedSource.cxx
    
      * Added 'extfactor' to match with xspec 'rgsext' model parameter
    
      * Catch case of user entering a positive grating order and convert
        it to the negative order with a warning message
    
    - When the mdefine expression includes a table model then set the
      spectrum dependency flag to true. This is necessary to handle the
      case where the table model depends on XFLT values.
    
    - Improved the warning message when detecting an energy of zero in
      a response file.
    
    - Added the ability to set the minuit strategy level and tolerance
      and fixed the setting of precision for the migrad and simplex methods.
    
    - hardcopy.tcl now plots in any of the hardcopy formats available.
      The format is chosen by the suffix of the filename.
    
    - Changed from using cfortran to using ISO bindings to call Fortran
      from C/C++ in PltPkg. This is the first step in removing all
      cfortran use from xspec.
    
    Bug fixes
    
    The following patches for 12.14.1 have been included:
    
    - 12.14.1a. The default hard and soft limits for the 'frac_th' parameter
      of the sssed model are not being set properly.
    
    - 12.14.1b. Memory errors in routines called by the ismabs model may
      cause a crash.
    
    - 12.14.1c. Enabling mdefine to work with polarization models.
    
    - 12.14.1d. This fixes two problems in the Voigt line profile. The
      first is that the Lorentzian width parameter was being used as
      though it was the HWHM, not the FWHM. The second is that an error
      was introduced in the normalization when making the change to
      normalizing from 0 to infinity instead of -infinity to infinity.
    
    ********************************************************************************
                                         XSTAR
    ********************************************************************************
    
    Version 2.59e:
    
    - Updated convolution of the continuum emissivity and opacity to include
      thermal and turbulent broadening
    
    - Fixed minor error in gsmooth2
    
    - Changes to pprint to improve display of Auger yields
    
    - xstar2xspec: make 'vturb' a variable parameter
    
    - Fixed level numbering error in database affecting type 86 data for
      Fe first row ions
    
    ********************************************************************************
                                         CALET
    ********************************************************************************
    
    New suite of CALET tools:
    
    - cgbm_bstgti: Search for burst(s) and calculate the time intervals
      using as input an event file from a specific CALET GBM detector.
    
    - cgbm_findrmf: Select and retrive RMFs from the CGBM CALDB for a given
      time, sky location, detector, and gain.
    
    - cgbm_speclc: Extract spectra and/or lightcurves from a CGBM event file
      within a time interval.
    
    - caletversion: Report version string for CALET package.
    
    ********************************************************************************
                                         IXPE
    ********************************************************************************
    
    Minor change to the IXPE compiled tools:
    
    - ixpegaincorrtemp: Rather than simply crashing with no explanation
      when the user gives an "infile" with no extension, a more instructive
      error message is logged (an extension is still required).
    
    Changes to the IXPE Python tools:
    
    - ixpeaspcorr:
    
      * Updated the method for finding an image peak and fitting box using
        all the data in the given event file.
    
      * Interval fitting now uses the same fitting box rather than finding
        the image peak and fitting box within each interval.
    
      * Image peak fitting now uses 2-D Gaussian fit correctly when there
        is enough data.  i. Fit parameters are checked for being physically
        realistic, if not, they are discarded, and arithmetic mean and std.
        deviation are used instead.  ii. Fits that fail to converge are
        discarded and arithmetic mean and std. deviation are used instead.
    
      * Interval fitting now chooses a fitting method (overall data fit,
        arithmetic mean and std. deviation to interval data, or 2-D
        Gaussian fit to interval fitting box image) based on the number
        of available counts.
    
      * Interval fitting does not use valid events flagged as background
        to calculate the interval image peak parameters, but it does
        correct the position of valid events flagged as background.
    
      * A new user interface parameter posfitfile_out added to allow
        users to save the parameters from each interval fit to a file.
    
      * Two new user interface parameters orbit_folding and a0110file_in
        allow the user to optionally fold the event times at the IXPE
        orbit period (derived from a0110file_in data), then calculate
        and apply the position fits using intervals of orbit-folded time
        rather than event detection time.
    
      * This subtly changes the edges of some event detection time bins
        when orbit folding is not used, but only by sub-second amounts.
        Therefore, corrections without orbit folding are not exactly the
        same as the previous version, though statistically equivalent.
    
      * Help file was updated.
    
    - ixpeboomdriftcorr:
    
      * Now corrects valid events flagged as background as well as
        valid events without the flag.
    
      * Fixed a bug in which some data sets were causing the program
        to exit with an IndexError.  This was a mater of mismatched
        index range between a mask and the array it was masking.
    
      * Help file was updated.
    
    - ixpecalcarf:
    
      * Fixed a bug in which, if a "specfile" argument was given for
        a file with no "ANCRFILE" keyword, the software would not
        apply corrections to the response file.  The new code will
        warn the user if the ANCRFILE keyword is missing, or if it
        points to a file that does not exist, and attempt to use the
        "arfin" parameter, or the will use quzcif to look up the
        appropriate ARF file from the CALDB.
    
      * Fixed a bug in which the fix above generated duplicate
        "ANCRFILE" messages.
    
      * Added support for extended sources: Added new parameters to
        support this (both are required to support extended sources):
    
         "regfile", a ds9 region file that defines the extended area.
    
         "pmapfile", a Level 1 pointing map produced by ixpeexpmap.
    
        The extended areas will be used to calculate the off-axis
        angles used for the vignetting correction.  In addition, if
        the region file defines a single circular region, the REEF
        correction for the aperture correction will also be
        incorporated into the output ARF.
    
      * Help file was extensively updated.
    
    - ixpeexpmap:
    
      * Made more efficient use of numpy histogram2d to add offset
        positions to the pointing map to greatly speed up the
        calculation of the pointing and exposure maps.
    
      * Changed "infile" argument so that it can be any of the following:
    
        A single input attitude file name.
    
        A comma-separated list of attitude file names.
    
        An @file listing multiple attitude files.
    
      * Changed default values of "teldef" and "badpix" arguments
        from "-" to "caldb".
    
      * Fixed a bug in which a missing "OBJECT" keyword in the primary
        header of the "infile" file caused a crash.  The software will
        now tolerate input with no "OBJECT" keyword.
    
      * Help file was updated.
    
    - ixpemkxspec:
    
      * New module that will convert a list of IXPE spec files into
        a ".xcm" file for submission to xspec.  The input "specfiles"
        can be a comma-separated list of files or an @file.  A single
        input file will not be processed.  The files are sorted and
        grouped by detector ID in the output file and list rmf files
        as well as the input file.  The name of the output file can
        be specified by "xcmname".  By default, the module will look
        up missing or invalid "RESPFILE" from the CALDB (can be
        controlled with parameter "caldbresp").  An optional line
        can be added to specify the valid energy range based on
        input values of the "ignore", "emin" and "emax" parameters.
    
    ********************************************************************************
                                         MAXI
    ********************************************************************************
    
    MAXI:
    
    - mxdownload_wget: Spelling corrections; added .hk to required files;
      changed default search radius to 3.0 from 8.0
    
    - mxscancur: Fixed corruption of memory address holding REFDATA
      environment setting
    
    ********************************************************************************
                                         NICER
    ********************************************************************************
    
    NICERDAS v13a:
    
    - niscorpsum: Updated to conform to new refactored headas_gti() interface 
    
    - niscorplc, niscorpspect: Remove temporary file.xcm.log temporary problem
    
    ********************************************************************************
                                        NUSTAR
    ********************************************************************************
    
    NuSTARDAS v2.1.5:
    
    - nucalcsaa, nuexpomap, nulccorr, nulivetime, numkarf: Updated to conform
      to new refactored headas_gti() interface
    
    - nupipeline: set check_metsim_files=no in nupipeline.par
      to prevent errors for users of QuickLook ToO products while
      looking for files in an event_cl/ directory that does not yet exist.
    
    ********************************************************************************
                                         SWIFT
    ********************************************************************************
    
    BAT:
    
    - batbinevt, batmasktaglc, batoccultmap, battblocks: Updated to conform
      to new refactored headas_gti() interface
    
    UVOT:
    
    - uvotapercorr: Do not force B REEF for white filter
    
    - uvotpict: Update X DISPLAY environment variable earlier (needed for
      'headless' environments)
    
    - uvotskycorr: Allow use of semicolon separator in detopt parameter value
    
    - uvotsource: Note use of mag 99 for sources impacted by small scale sensitivity
    
    XRT:
    
    - xrtimage: Updated to conform to new refactored headas_gti() interface
    
    - xrtinstrmap, xrtlccorr: Updated string length for DATE-OBS and DATE-END
      keywords following changes to extractor output
    
    ********************************************************************************
                                         XRISM
    ********************************************************************************
    
    XRISM V002:
    
    ahfits library (heacore):
    
      ahfits_file.cxx/h: Corrected parameter names in function prototype
      cloneSingleHDU; Added updateNumberOfRows call before return from
      cloneSingleHDU; Added cautionary comments in code, advising developers
      to add new columns before establishing local variable connections.
     
      ahfits_router.cxx/h: Added cautionary comments in code, advising
      developers to add new columns before establishing local variable
      connections.
     
      ahgen.pm: Updated a debug message; updated a filename regexp in
      parse_file_name subroutine to allow URLs.
    
    New tools:
    
    * rslbratios: For XRISM Resolve, calculates temporal, spatial, and
      time-averaged count rates by grade, as well as observed and
      predicted branching ratios, together with additional diagnostics
      for probing anomalous branching ratio behavior.
    
    * rslmpcor: Corrects the EPI2 energy column for mid-resolution
      primary (Mp) and secondary (Ms) events in a XRISM Resolve event
      file, and then uses that corrected value to recalculate the
      corresponding PI column.
    
    * xmatraceback: Facilitates extended source analysis for Hitomi SXS
      and XRISM Resolve by using raytracing simulation output to make
      RA/Dec images of the sky corresponding to specified detector
      regions, accounting for PSF effects. 
    
    * xtdpixclip: Constructs histograms of counts per pixel from an
      Xtend event file, flags pixels that exceed thresholds within
      user-specified regions, and outputs the flagged pixels and
      events, and separately, the unflagged events.
    
    Updates to existing tools:
    
    - rslctsfluct: Refactored code and optimized for execution time.
    
    - rslpha2pi: Added HYBRID correction method, which substitutes
      the TEMP_AVG value from the driftfile for the TEMP_FIT value if
      TEMP_FIT is null.
    
    - rslpipeline: Added ability to input custom GTI file or gain
      history file; added option HYBRID for gain correction method.
      Added useavgtime parameter to use mean instead of midpoint for
      drift time.  Added support for new tool rslmpcor.  Changed
      preview image extraction to include full field of view.
    
    - rslpixgti: Updated GTI-related keyword handling by invoking
      ahgtigen with cpkeyword=ALL.
    
    - xaarfgen: Corrected comments, error messages.
    
    - xtdmodegti: Added WINDOW1 to allowed data modes for DETNAM=CCD12.
    
    - xtdpipeline; Removed call to searchflickpix task.  Changed
      preview image extraction to include full Xtend field of view.
      Updated parameters for xtdpi task.
    
    - xapipeline, with support module xapllib.pm: Updated parameters
      for xtdpi task.
    
    Updates to existing libraries:
    
    - ahgain: Added useavgtime option to fitEvents function.  Allows caller
      to choose whether the time coordinate representing a time bin is the
      average time or the midpoint.  This change was also propagated into
      several tasks: ahgainfit, sxsgain, rslgain, and rslpipeline. 
    
    New REFDATA files:
    
    * calsrc_XTD_det.reg: region file for Xtend calibration sources
    
    * unobstructed_XTD_det.reg: region file for unobstructed part of
      detector FOV
    
    ********************************************************************************
                                          XTE
    ********************************************************************************
    
    - xteprefilter (NEW): Compute a prefilter-style filter file for XTE
      observations
    
    - pcamergeobsids: Added support for merging prefilter-style filter files
    
    - pcaprepobsid: Added call to xteprefilter to generate a prefilter-
      style filter file
    
    - saextrct, seextrct: Expanded internal GTI arrays to 9999 files; Updated 
      path length limits to 4096 characters, including columns parameter
    
    - (xtelib) gtiminfo(): Added further error checks on array checking
      to prevent segfault
    
    ********************************************************************************
                                         MISC.
    ********************************************************************************
    
    - lynx: Removed from the distribution; it is now an optional prerequisite
      to allow linemode browsing of HTML help files using 'fhelp'
    
    - PLT: Added call to PGPLOT routine to plot multiple polymarkers and
      made plotting of error bars and symbols more efficient.
    

    HEASoft / FTOOLS Help Desk

    If FTOOLS has been useful in your research, please reference this site (https://heasarc.gsfc.nasa.gov/ftools) and use the ASCL reference for HEASoft [ascl:1408.004] or the ASCL reference for the original FTOOLs paper [ascl:9912.002]:

    Blackburn, J. K. 1995, in ASP Conf. Ser., Vol. 77, Astronomical Data Analysis Software and Systems IV, ed. R. A. Shaw, H. E. Payne, and J. J. E. Hayes (San Francisco: ASP), 367.

    Web page maintained by: Bryan K. Irby


    HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public

    Last modified: Friday, 14-Mar-2025 10:27:51 EDT