• Download HEASOFT
  • ********************************************************************************
                             RELEASE NOTES FOR HEASOFT 6.27
                                     March 26, 2020
    The HEASoft 6.27 release is driven primarily by updates to mission-
    specific data analysis software (MAXI, NICER, NuSTAR, Swift, XTE et al.),
    but includes many other enhancements and fixes.
    As before, 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.
    Version 3.48:
    - Now can handle parentheses in path names rather than automatically
      interpreting them as output file specifiers.
    - Fixed bug in imcompress.c that wasn't properly handling conversion
      between float and double types when reading from a gzip compressed
      float or double image.
    - Fixed bug that was preventing use of bracket and parentheses symbols
      in pathnames when opening multiple READWRITE files, even when
      requesting no-extended-syntax usage. *This fix necessitates a
      library interface version number change.
    - Fixed bug in ffmnhd / fits_movnam_hdu to properly handle wildcard
    - Fixed bug in fits_open_extlist to handle filename[EXT] syntax
      properly.  The hdutype parameter may now be null.  More documentaion
      for this function is in cfitsio.tex.
    - Added new function fits_copy_hdutab to create a new table with the same
      structure as an existing table.
    - fits_copy_col / ffcpcl handles long long integer data types more
      natively to prevent precision loss.
    - histo.c routines now recognize integer columns that have been scaled by
      TSCALn keywords and may be closer to floating point type.
    - Added backward compatibility for very old Rice compressed files which
      were not using the ZVAL2 keyword in the way that later became standard.
    - Change made to cfitsio.pc.in to prevent forcing downstream libraries
      to link against cfitsio's dependencies when using pkgconfig.
    - Converted all cases of catching std::bad_cast exceptions from
      by-value to by-reference.
       Made arf, pha, and rmf classes a bit more tolerant by allowing
       reading of files where extensions are identified only by HDUCLAS*
       Replaced deprecated auto_ptr by unique_ptr.
       Added SPneedVecCol routine to check whether a column should be vector
       or scalar.
       Changed SPcopyKeys so it only copies keywords that do not already
       exist in the target extension. This prevents overwriting keyword
       values that have been set by the tool calling the routine.
       Changed the grouping class to include separate grouping and quality
       vectors instead of combining them in a single flag vector. Made
       corresponding changes to methods.
       Fixed bug which was incorrectly rejecting binning factors of -1 in a
       binning text file.
       Fixed a bug in convertUnits() which prevented the conversion working
       in the case of input fluxes in ph/cm^2/s/keV
       In rebinChannels set the grouping identically to 0 rather than 1 for
       consistency with the standard since a GROUPING keyword will be
       Changed setting of output quality to be bad if either any input
       channel making the bin is bad or if phafile grouping is being used
       any channel in the grouping pha is bad.
       Added handy routines to return the extension numbers of SPECRESP
       extensions in a file and the type of an extension.
       Made recognition of arf extensions more flexible in NumberofARFs.
       When writing output files change N_GRP and CHANNEL to J format if required.
       Fixed out-of-bounds writes in cases when the F_CHAN and N_CHAN
       vector columns are longer than N_GRP.
       Modified rmf::read so that the EBOUNDS data is first read into a
       separate rmf object so it can test for consistency between MATRIX and
       EBOUNDS keywords such as CHANTYPE and INSTRUME. If inconsistencies are
       found then messages are written to SPreportError so the calling program
       can check for them. The keywords from MATRIX take priority over
       those from EBOUNDS.
       Add handy functions to return vectors of extension numbers of
       EBOUNDS and MATRIX extensions.
       Changed rmf compression criterion to only include elements with
       values > LO_THRES instead of >= LO_THRES.
       Write EBOUNDS and MATRIX energy columns as D instead of E to avoid
       precision issues with high-resolution optical/UV spectra.
       Changed ENERGIES columns from single to double precision.
       Fixed a bug in convertUnits() which prevented the conversion working
       in the case of input fluxes in ph/cm^2/s/keV
    - prefilter:
      Updated to support POSITION and VELOCITY inputs; accepts units of
      m and km (m/s and km/s)
      Incorporated the new magnetic field model of IGRF v13 (released
      December 2019); going back to the year 2000, use full degree-13
      precision of published model instead of degree-10 truncation;
      differences expected to be less than 0.01%
      Prepared for configurable columns=ALLV4 without losing backward
      Added XYZMAGAUX subroutine which computes extra magnetic quantities
      Added new derived columns relating to magnetic field, view directions
      and earth viewing; these are optionally produced if columns=ALLV4
      (however, compatibility with prefilter v3 is maintained by default):
      Fixed bug in dependency ordering which led to segfault; now
      derived->coordquat is initialized with pointing instead of RA/DEC/ROLL
      Added MAG_ANGLE = angle between pointing direction and magnetic field
      Added more powerful ability to include or exclude columns from the
      selected list
      Support for attfile == NONE for HaloSat (ATT in .orb file)
      Addition of LOCAL_TIME derived column
    - geomagterp (new task): New tool for interpolating geomagnetic
      quantities; the CALDB portion is not ready yet, so for now it's
      basically a glorified finterp
    - tristarid: Updated TDISP keywords for rates in source catalog
    - Updated tasks to allow longer filenames
    - flst2im: (v1.4.1) Added support for columns scaled with non-integer
      TSCALn keywords
    - fdiff: Added support for TLONGLONG 64-bit integers
    - finterp:
      Check for TLONGLONG type
      'sortkey2' parameter can be an expression
      Improved error output and documentation
      Fixed bug in handling of new sortkey1=(expr) function with tcheck=YES;
      tcheck is now disabled when expressions are used
      Relaxed requirements upon matching input and output column properties
      when they are not needed; removed restrictions on how FITS filenames are
      specified; the extension number is no longer required if the 'first
      table extension' is acceptable; added ability to rename and/or change
      data type of source column names, as documented in the help; preserves
      compatibilty with existing usage
      Added more checking of output columns and make sure any T<col>n
      properties of existing columns aren't accidentally preserved;
      Fixed bug in 'copyall' case when writing existing file
      Fixed bug when column exists in output but is not last column
      Fixed bug in which column number is used for backward compatibility;
      allow copyall=COPYBEFORE and copyall=COPYAFTER for more flexibility
      in transferring input file to output
    - Fixed crash when plotting image tables
    - Fixed crash stemming from incorrect WCS initialization
    - barycorr:
      In the case where TSTART and TSTOP are not in the header, set
      tstart=tstop=TIMENULLVAL to prevent trying to write these keywords.
      This problem was triggered on macOS 10.15 when using a non-Xcode
      compiler suite (MacPorts, Homebrew).
      (heautils library) HDget_frac_time(): Initialize valuei and valuef
      to avoid returning an undefined value (to e.g. barycorr) when
      TSTART and TSTOP are missing
      Handle Swift UVOT event files and Swift MAGHIST files (output of
      Document (and warn) about .gz input and output files
    - ftadjustgti: Now uses fits_open_extlist()
    - xrtraytrace: Fixed bug that used back-side mirror reflectivity
      in place of precollimator reflectivity in two places; fixed
      bug that retrieved MINENERG and MAXENERG keywords redundantly
      after FITS file was closed; fixed bug that truncated at 7 the
      number of interactions per photon path written to the PATHCODE
      column in the output events file; this number is now 8, as
    - extractor: Fixed trap of no xcolf/ycolf in w_events. Moved
      correction of time for TIMEPIXR to after the time filtering.
      This may make small differences for missions which do not use
      TIMEPIXR values of 0.5 but does make the filtering consistent 
      with that from ftselect.
    - fadmap: Path/filename corrections to COS-B/SAS-2 CALDB; corrected date
      errors introduced by Y2K updates
    - Fixed all heasptools so that output files starting with an exclamation
      mark are handled correctly.
    - ftgcorrmf, ftmarfrmf, ftrgsrmfsmooth, ftrsp2rmfarf, ftstripnegchan:
      Use SPcopyKeys for the EBOUNDS extension as well as the MATRIX
    - ftmkrsp: Trapped case of an input energy bin with no response groups.
    - ftsdss2xsp: Fixed check of PLATEID keyword - it is in the primary
      header, not the COADD extension.
    - genrsp (wrapper to ftgenrsp): Fixed conditional parameter prompts
    - rbnrmf (wrapper to ftrbnrmf): If a binfile has been specified set
      cmpmode=binfile; revised to reflect ftrbnrmf prompting behavior
      (also ftrbnrmf help file): always prompt for cmpmode, and use it
      to determine prompting for binfile and nchan; if an ebinfile is
      specified, pass ecmpmode=ebinfile; otherwise pass ecmpmode=linear
      and the ebfact value.
    - ftdiff: Check for TLONGLONG data type
    - ftimgcalc: Use fit_get_eqcoltype to more accurately reflect
      data type of image (could be 'float-like' if BSCAL is used)
    - ftmgtime: Now uses fits_open_extlist(); added compatibility layer to
      support mgtime's idiosyncracies for future mgtime wrapper to ftmgtime
    - ftsort: Handle TLONGLONG 64-bit integers in input columns; work with
      non-integer TSCALn values; relocated fits_copy_hdutab to CFITSIO;
      fixed case of outfile=infile where the specified column doesn't exist
    - ftleapsec: Factored out leap second retrieval code into its own Perl
      library (see above)
    - fitsverify (standalone ftverify variant): Use fits_open_diskfile (via
      ifdef) rather than fits_open_file per a user request.  This allows for
      file paths with special characters (e.g. brackets) that would otherwise
      fail; note that this also necessitates omitting the call to
      fits_parse_rootname (via ifdef).
    - All tasks updated to fix memory faults occurring under recent Debian-
      based systems (e.g. Ubuntu 18.10 and newer)
    - Fixed bug in cpd command which could cause a confusing error message
      if immediately preceded by some other set command.
    - (xsl_filter_intensity) Considerable simplification due to using (new)
      premax and postmax parameters for maketime.
    - Minor rearrangement for some variables which were in the wrong common
      blocks; changed to initialize all global variables with some
      rearrangement to match up with common block order in xselvar.inc;
      Removed unnecessary include of xselect.h and added one of cfortran.h;
      added missing Common_AppInit prototype; replaced call of close by the
      (correct) call of fclose; changed the READ logical to EVREAD for
      clarity; these changes fix an error restoring saved sessions.
    - Added support for HaloSat event files.
    HEASoft 6.27 includes Xspec 12.11:
    New Models:
        ismdust    - Extinction due to silicate and graphite grains.
        olivineabs - Extinction due to olivine grains.
        agnslim    - AGN super-Eddington accretion model.
        zkerrbb    - Redshifted version of kerrbb.
        thcomp     - Thermally comptonized continuum convolution model.
        logconst   - Convert normalization to log units.
        log10con   - Convert normalization to log10 units.
    Updated Models:
        Using the new 201 tabulated temperatures v3.0.9 AtomDB files
        for apec models. These CEI files reduce potential interpolation
        problems (see http://atomdb.org/interpolation/index.php).
        The interpolation scheme can be switched between log and linear
        interpolation using xset APECLOGINTERP. Another option to reduce
        interpolation errors is provided by xset APECUSENEI which
        switches all calculation of CEI spectra through the NEI
        code. This is slower but can be used to check calculations. To
        recover the older v3.0.9 files use xset APECROOT 3.0.9_51. If
        you do this and also want to use NEI models then you also need
        to use xset NEIAPECROOT 3.0.9.
        The diskline, rdblur, kdblur, kdblur2, laor, laor2, kerrconv,
        kerrdisk have all been sped up using a new FFT-based convolution
        The xscat model has been updated to extend the range of the Rext
        parameter for MRN and ZDABAS options from 0-199 arcsec to 0-236 arcsec.
    Major overhaul to code calculating statistics.  Main visible
    change is that each spectrum can have a different fit statistic
    but there is only a single test statistic.
    Added support for responses which have been split into parts
    with different resolution.  This is very effective for responses
    which have high resolution but long tails down to low energies. In
    the case of the XRISM Resolve instrument this will provide speed
    increases of up to an order of magnitude. Note that if a file
    contains multiple response extensions then XSPEC will read and use
    them all unless a response extension is specified using e.g. resp.rsp{n}.
    PyXspec v2.0.3:
    - Plot values can now be retrieved from the individual additive
      components within a model, using the new Plot.addComp() method.
    - Added Fit.nVarPars attribute to perform the equivalent of standard
      Xspec's "tclout varpar".
    - Added access to standard Xspec's "rerror" command (for running the
      "error" command on response parameters.  This is now available by 
      passing a second (bool) argument to the Fit.error() method.
    See also:
    Xstar v2.54a:
    - New in xstar version 2.54a is the inclusion of radiative excitation.
      The rate of radiative excitation for all bound-bound transitions are
      calculated and then multiplied by a factor of 1-cfrac.  So, if cfrac=1 the
      effective rate is zero and results from previous versions are recovered.
      The effects of Thomson scattering as an attenuation process in the continuum
      have now also been included, and the same 1-cfrac multiplier is used so that
      previous results can be recovered.
    - ascaarf, ascaexpo, ascalin, fmosaic, gisrti, sispi: Updated to use
      GSL/FGSL random number generator
    - cleansis, faintdfe: Updated to use GSL/FGSL gamma function and auxiliary
    - ofaintdfe: Removed this deprecated task
    - tkexomerge: Altered window parenting to make children windows visible
    - mxdownload_wget: Added new ATT data types to downloadable products;
      force gmtime() to use four-digit year
    - mxextract: Avoid writing repeats of STDGTI rows; replaced printf with
      headas_printf output
    NICERDAS v007:
    - nicerl2:
      Fixed crash when mkfile is specified but gzipped version does
      not exist; also changed check for missing $indir, previously
      reported as a missing file
      Added parameter 'niprefilter' which re-runs niprefilter task
      if set to YES (additional new parameters orbfile, attfile,
    - nicerpi, nicertimecal, nicertimeconv, nimaketime, niprefilter,
      Changes to fix the timegm() Y2020 "trap": This affects routines
      that use Perl's Time::LocalTime::timegm() function:
      For NICER, which uses timegm() for the year 1970, this would cause
      problems after the year 2020, as timegm() treats the year entry of
      "70" as meaning 2070 instead of 1970, when the run date is after
      the year 2020.
    - nicerpi: Bubble pigain and pioffset parameters up to 'nicerpi' level
    - nicertimeconv: Use HeaSoftLeapSec library version of NicerTime.pm;
      fixed bug in output of GPS time (offset of ~20 sec); better handle
      leap second transitions; output of MJD
    - nimpumerge: Pass history parameter to subtasks
    - niprefilter: When writing NULL columns (missing APID) use same
      column-ordering as normal; Added ability to re-run prefilter
      and update .mkf file in place using RUNMODE=UPDATE;
      Fixed fatal bug in handling of global start/stop time from MPU
      housekeeping; Fixed bug in handling of vehiclefile=NONE;
      Be more careful about preserving other extensions of infile;
      Fixed bug of copying keyword comments when runmode=UPDATE
    NuSTARDAS V1.9.0:
    - This is primarily a quality-of-life upgrade for the NuSTARDAS.
      The two main additions are: (1) Add the ability to save the
      barycenter-corrected event files in the output directory when
      barycorr=yes. Previously the user had to use cleanup=no to retail the
      barycenter-corrected event file, which also stored a number of other
      intermediate files. This allows for a more streamlined analysis
      approach for timing observations; (2) The "PRIOR" column is now
      preserved by default when producing the cleaned event files. This
      column is useful for recovering the time-dependent livetime on
      sub-second timescales and for high-rate observations. Please see
      the NuSTAR Software User's Guide for more details.
      There are also several minor bug fixes and other improvements:
    - nupipeline: 1) when barycorr=yes and existage=3: updated the
      'nuproducts' run setting the orbit file to the "attorb" file;
      2) updated the 'nuproducts' run with `write_baryevtfile=no'.
    - nuproducts: 1) added new input parameter `write_baryevtfile' to
      optionally save the barycenter-corrected event file when barycorr=yes;
      2) added an internal check to make sure that pilow, pihigh, pilowarf,
      pihigharf, grppibadhigh, grppibadlow are integer numbers; 3) added an
      internal gunzip of input mastaspectfile (to speed-up processing).
    - nuscreen: added the "PRIOR" column to the list of columns that are
      preserved by default when the cleaned event files are created.
    - detect: Updated to use GSL/FGSL gamma function and auxiliary routines
    - pcecor, pctcor, pcpicor, pcsasscor: Retired these deprecated tasks;
      no longer needed since ROSAT data has been reprocessed using the
      necessary corrections (i.e. with SASS version SASS7_8)
    - xisarfgen: Updated to support PHAFILE==NONE
    - batdetmask, bat-burst-advocate, batsurvey, batsurvey-detmask:
      Changes to fix the timegm() Y2020 "trap": This affects routines
      that use Perl's Time::LocalTime::timegm() function:
    - batcelldetect:
      MPFIT: Bug fixes for two-sided derivative mode (buffer overflow
      avoidance as well as correct two-sided calculation)
    - uvotmaghist, uvotproduct, uvotsource: Improved region validation
      for UVOT photometry/light curves.
    - uvotproduct: Install uvotproduct ds9 v7 grid file in REFDATA
    - xrtgrblc: Modified XRT pipeline with correct settings to match
      revisions to nH code
    - xrtgrblc, xrtgrblcspec: Added support for high resolution HI4PI
      all-sky nH map with nhmap=2
    - hxtrsp, pcarsp: Updated to call ftrbnrmf instead of rbnrmf
      (rbnrmf is merely a wrapper to ftrbnrmf)
    - pcaextspect2:
      Changes to fix the timegm() Y2020 "trap": This affects routines
      that use Perl's Time::LocalTime::timegm() function:
      Also: bug fix for C-preprocessor macro expansion error
    - trans2fits: New wrtparm=O option to create OGIP-compatible event
      files (mostly cribbed from xenon2fits work several eyars ago);
      further mods to simplify code and to write new output columns that
      counts various interesting flags
    - addshots, addsine, fakelc: Updated to use GSL/FGSL random number generator
    - xenon2fits: (O)GIP output format now agrees with trans2fits
    - Removed buggy and erroneous clause meant to deal with empty GTI
      entries, and other overzealous GTI checking
    - Dropped support for Cygwin in favor of Windows Subsystem for Linux (WSL)
    - Fixed bugs in the DESTDIR mechanism
    - HEASoft now includes the GSL and FGSL libraries, and therefore
      GNU Fortran compilers older than v5.x are unsupported.
    - PGPLOT:
      Updated PGPLOT dynamic library build to link in PNG library (if
      available); this aids external packages (e.g. ISIS) using our libpgplot
      by allowing the PNG dependency to be inherited.
      SVG driver: improved support for Microsoft Edge SVG implementation
    - Fixed history keyword writing for long (>72 char) lines;
      some characters were being lost using the previous algorithm


    If FTOOLS has been useful in your research, please reference this site (http://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: Wednesday, 01-Apr-2020 11:29:51 EDT