• Download HEASOFT
  • ********************************************************************************
                             RELEASE NOTES FOR HEASOFT 6.29c
                                  Septemer 1, 2021
    HEASOFT 6.29c includes the updates listed for 6.29a & b below, and
    contains new fixes for issues in the NICER software:
    NICERDAS (v008c):
    - nicerarf: Fixed detector-dependent response weighting factor bug;
      Fixed off-by-one TIMEZERO bug; nicerarf now requires "fixed" event
      files with NICTZFIX keyword.
    - niextract-events & nifpmsel: Fixed off-by-one TIMEZERO bug;
      Added NICTZFIX keyword to indicate correction to output file
      for TIMEZERO bug fix.
    - nivigsum: Fixed off-by-one TIMEZERO bug; fixed numerical
      precision issue.
                             RELEASE NOTES FOR HEASOFT 6.29b
                                   August 5, 2021
    HEASOFT 6.29b includes the updates listed for 6.29a below and contains
    new fixes for issues in the NICER software and in HEASPTools:
    NICERDAS (v008b):
    1) Fixed error of the form "Input GTI must be time-ordered for GTIOVERLAP"
       when running nicerl2 or nifpmsel to generate cleaned events.  See also:
    2) Fixed crash in niextract-events for empty event files.
    - ftaddarf: Added an explicit check for compatibility between arfs being
    - ftaddrmf: Added an explicit check for incompatible RMFs; now writes
      an error message if found instead of silently failing to do the
      addition.  In the case of only EBOUNDS values differing, continue and
      write a warning message at the end.  This issue can affect e.g. the
      addspec task which invokes ftaddrmf.
    - ftrbnpha: Fixed crash that occurred if using a binfile which starts
      by not including channels.
    - Updated HEASP example files
                             RELEASE NOTES FOR HEASOFT 6.29a
                                    July 30, 2021
    HEASOFT 6.29a fixes two issues with the NICER software:
    1) When running nicerl2 or niprefilter to generate a filter file, an
       error of the form "satellite has re-entered at YYYY/MM/DD" may
       appear due to an error in the task prefilter when using the new
       option "orbpropagate=YES".  See also:
       An update to prefilter allows it to more gracefully handle
       interpolation across large gaps in orbit files by adding the
       first derivative of mean motion for large gaps.
    2) The NICER CALDB version-reporting task nicaldbver was incorrectly
       reporting "INDEF".
                             RELEASE NOTES FOR HEASOFT 6.29
                                    July 19, 2021
    The HEASoft 6.29 release is driven primarily by updates to mission-
    specific data analysis software (NICER, NuSTAR, Swift), but includes
    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.
    CFITSIO v4.0.0:
    - Removed separate directory for zlib/gzip code, and updated
      configuration to check for zlib on the user's system (required).
      When use of cURL is enabled, it may also pull in zlib such
      that user applications may not need to link with it separately.
    - Changed version numbering to 3-field format.
    - Added new calculator functions SETNULL(x,y) to allow substitution
      of NULL values into tables, and GTIOVERLAP() for calculating the
      amount of GTI overlap exposure for a time bin.
    - Fix added for proper handling of string columns with zero repeat
    - Fix to column filtering expressions which write #NULL values to
      columns of type (J) format.
    - Fix to memory clearing when using polygon shapes in region files.
    - Fix to fits_str2time function so that it now flags a particular
      case of bad syntax which was previously getting through.
    - In ffgclb and ffpclb (read/write byte columns), the "undocumented"
      feature of being able to transfer columns 'A' string columnss as
      byte arrays is now handled correctly, with improved error checking
      via updates to ffgcprll.  More documentation on string handling is
      in cfitsio.tex.
    - Fixed bug in 'colfilter' functionality.  When performing a column
      deletion of the form -COLNAM*, and multiple matches existed, none
      of the matches got deleted. Now the first is deleted as expected.
    - Removed separate directory for zlib/gzip code, and updated
      configuration to check for zlib on the user's system (required).
    - Improved handling of corner case in ffpkn functions.
    - In ffgky, modified TULONG case to allow it to read unsigned
      values greater than the 8-byte signed limit.
    - Fix to parsing of corner case of extended file syntax.
    - Major updates to CMake configuration.
    - Updated FITSIO Perl module (Astro-FITS-CFITSIO) to v1.15.
    CCFITS v2.6:
    - For compatibility with C++17, removed dependencies on
    - The internal HDU getScaling function is not properly handling the
      case where an image of unsigned integer type has a BZERO keyword
      but not a BSCALE.  The result is it wrongly assumes the image
      is a signed integer type.
    - The keyword categories hardcoded and returned by the
      HDU::keywordCategories() function now apply only to the 
      HDU::copyAllKeys() function.  HDU::readAllKeys() is hardcoded
      to a separate (and larger) list of categories.  This is to allow
      readAllKeys() to retain its previous behavior, while copyAllKeys()
      default categories have been narrowed.
    - Fixes to updating of Columns' internal buffers for certain cases
      of writes or insertions which add rows to a table. Also includes a
      speed increase to internal Column write function.
    - General:
      * Added SPtrimString function to remove leading and trailing whitespace.
        Used this in checkCompatibility method for arf, pha, and rmf to avoid
        incorrect failure flagging due to leading or trailing blank spaces.
        (bug 2.2c)
      * Added version of SPwriteKey to write to the primary header and modified
        SPwriteKey for string values so it automatically uses the CONTINUE
        convention if the string is more than 68 characters.
    - grouping:
      * Added optimal binning with minimum counts.
      * Fixed loadMin, loadOptimal, and loadOptimalEnergy so that
        any channels not included in a bin due to an incomplete bin at the end
        of the channels to be grouped are given GROUPING=1 and QUALITY=2. This
        is consistent with the behaviour of grppha.
    - pha:
      * Fixed error in rebinChannels in the way that the new quality
        vector is calculated if the grouping included elements with bad
    - rmf:
      * Fix to rebinChannels. For EBOUNDS arrays that are grouped AND in
        descending order, must switch the FirstEltMode/LastEltMode flags
        when calling GroupBin for  m_channelLowEnergy and m_channelHighEnergy.
        (bug 2.2a)
      * Fix to write the EBOUNDS HUDVERS as 1.2.0.
      * Fixed bug in rebinEnergies: in the case where the rmf is REDIST the
        response should be averaged over the binned energies, not summed.
        (bug 2.2b)
      * Modified uncompress so it does not change the value of the LO_THRES
        keyword. Also changed so that uncompressed data are written as
        fixed-length vectors.
      * Fixed checkCompatibility over-strictness and improved diagnostic
        messages. (bug 2.2d)
    - table:
      * Added an m_Units member to the tableParameter class.
      * Added m_FiltExps to the table class to allow multiple model spectra
        per parameter grid point. The model spectrum used is selected by
        comparing the table filter expression with that in the data set.
      * In getValues function, removed the section that selects a subset
        of the tableEnergies array based on overlap with the input energies.
        This is incompatible with external usages, such as Xspec's
        OGIPTable::energyWeights() function, which assume they are using the
        full tableEnergies array.
      * Replaced addKey calls with SPwriteKey.
    - cornymmik (NEW): For calculating perturbed geomagnetic cutoff rigidity
    - geomagterp: Corrected usage of SimpleFITS open() function;
      SimpleFITS.pm: Fixed bug when writing partial FITS table rows
    - prefilter:
      New parameters 'orbpropagate' and 'outpropagate' allow prefilter to
      extrapolate and interpolate orbits through time.
      New parameter 'tlookback' allows prefilter to look back in time for
      history-sensitive events.
      SAA_TIME now does not increment when 'in' SAA.
      Fixed bug in LOCAL_TIME; previous value was totally wrong
      New columns SUN_ELV, SUN_TIME (not selected by default ALL setting).
      Added BETA_ANGLE and TIME_SINCE_SUNRISE; changed name of SUN_TIME
      Added MOON_SIZE, MOON_PHASE, MOON_ILLUM output quantities.
      Added trapped proton and electron models (AE8MIN, AE8MAX, AP8MIN,
      Added verbose output that indicates when estimated TLE is done.
      xteorbit avoids doing string compares for every orbit interpolation.
    - tristarid: Improved messages to help diagnose/resolve problems
      involving WCSTools scat.
    - quzcif: Updated to use the callib routine cifsl3().  Added fix
      for specifying date and time as a dash (date='-' and time ='-'),
      which were previously undocumented but allowed usages.  A dash
      for the date means that checking of the validity start date is
      not done. Provides more explicit error messages for chatter >0.
    - udcif: Added a new parameter 'caldbver' which when specified
      updates the CALDBVER keyword when writing the new cif; default
      value of caldbver=NONE, which means that the caldbver keyword
      is written with a blank string value; checks for and deletes
      cif.tmp file before trying to write this temporary file; updated
      error message when problem copying to cif.tmp; removes cif.tmp
      if found.
    - cifsl3(): Replacement for cifsl2(); calls a new callib routine
      gtcnam() to print the allowed CAL_CNAMs  for the specific mission/
      instrument combination if chatter>1 and the CAL_CNAM match fails;
      Serialized and improved logic for checking the caldb.indx for
      mission, instrument and other specified search parameters.
      When a check fails now returns an error message to notify the
      user which of the checks have failed.
    - calutils.mod(): Moved most of the string length limits for
      directories, filenames and other values to the calutils.mod
      module; increased string length limits for directories and files.
      Added addtolistf, addtolisti to dynamically append elements to
      float and integer arrays.  
    - gtcnam(): New subroutine which reads a caldb.indx file and
      returns unique, allowed values of the caldb codename (CAL_CNAM)
      which specifies the type of the calibration data.  
    - cgdr(): Increased directory string length using calutils
    - cpthnm(): Converted to f90 and relocated from ftoolslib;
      increased allowed length of root
    - rcnfig(): Updated limits of cifdir, insdir, config using calutils
    - wt_spec(): Increased size of keyword records; prevent extraneous
      CONTINUE lines from being copied to output
    - fimg2tab: Allow images with 1000 or more columns when using
      tabletype=BINARY and vector=YES; fixed bugs in handling of swapxy=YES
    - finterp: Added log interpolation option (order=-1);
      allow TLOGICAL interpolation to an existing numeric column
    - fsumrows:
      * Added parameter 'ignorenull' for dealing with null values in input;
      * Added new output keyword NSUMROWS, the total number of rows processed
      * Updated to handle 64-bit integers
      * Bug fix to make clobber=YES if outfile is not a valid FITS file
      * Properly reset output TSCAL/TZERO keywords if output is changed to float
      * Properly reset output T{L,D}{MIN,MAX} keywords if operation is sum,
        since sum will invalidate those min/max keywords.
    - fverify: Updated to check usage of the INHERIT keyword:
      INHERIT keyword must have a logical value (T or F).
      INHERIT can only appear in an extension header (never in primary array).
      Primary array must have no data (NAXIS=0).
    - Fixed itk_component 'menubutton' issue causing a crash on Fedora Linux.
    - ftadjustgti: Fixed bug when copyall=NO
    - extractor: Added new hidden parameter usetpixrsel. If set to yes this uses
      the TIMEPIXR keyword value to ensure that event selection is done using the
      central time of the frame (equivalent to TIMEPIXR=0.5). The default is no.
      Also modified resetting of the output GTIs to frame boundaries. If a frame
      could not have its events selected in the intput GTIs due to the time used
      in event selection being outside the input GTIs then the frame is not
      included in the output GTI.
    - fadmap: Added error trapping for 0 index array
    - grppha: Increased size of keyword records; for grppha long file
      paths were being truncated in the output.
    - grppha2: Cleaned up compiler errors and warnings
    - mathpha: Increased path lengths and internal variables to support
      file names longer than a few characters
    - ftchkpha: Changed HDUVERS1 to HDUVERS, and added more optionals
      to look for
    - ftdcmprmf: (NEW) Decompress RMF to use fixed-length FITS columns
    - ftgenrsp: Fixed error that FWHM read from file were used as sigmas
    - ftgrouppha: Added grouptype=file option which reads the GROUPING
      from the spectrum file specified by the templatefile parameter and
      uses that; added grouptype=optmin for optimal binning with additional
      requirement of minimum number of counts
    - rbnrmf (wrapper to ftrbnrmf): Fixed for case of binfile being set.
    - ftcmpheap (NEW): Compress the heap in variable-length columns of
      a FITS table extension.
    - ftlist: Bug fix for unusual case of "0A" string columns.  For this
      case in ftlist_prtab, it should set veclen to 0 instead of 1
    - ftmeld (NEW): Merge (append) rows from multiple input tables into
      a single output table, more flexible than ftmerge.
    - ftmergesort: Corrected usage of SimpleFITS open() function;
      SimpleFITS.pm: Fixed bug when writing partial FITS table rows
    - ftverify: Updated to check usage of the INHERIT keyword:
      INHERIT keyword must have a logical value (T or F).
      INHERIT can only appear in an extension header (not in primary array).
      Primary array must have no data (NAXIS=0).
    - Added support for RADESYS FITS keyword for setting equinox
    - Fixed ordering error in the save command options list and descriptions.
    - Fixed bug in FILTER TIME SCC which caused input numbers not to
      be recognised.
    - Added leading "sh" to run command files, required by newer versions
      of the Bourne shell.
    - Added support for usetpixrsel logical in the mdb to control the parameter of
      the same name in extractor.
    Xspec 12.12.0:
    New Features
    - New Models:
        * wdem   : Power-law differential emission measure.
        * grbjet : GRB prompt emission (Farinelli et al., 2021).
        * rotpol : Rotate polarization.
        * zxipab : Power-law distribution of ionized absorbers.
    - Updated Models:
        * Table models have been enhanced to allow multiple spectra
          to be associated with each parameter grid point. The spectra to be
          used can then be selected using the XFLTnnnn keyword values. The
          keyword NFLTEXP gives the number of spectra at each grid point and
          the keywords XFXPnnnn hold the filter expression to determine
          which is used. At the moment the only filter expressions allowed are of
          the form "key:value" which match to XFLTnnnn keyword values in the
          spectra. The test application for this is spectropolarimetry.
       *  A new keyword ESCALE can be added to table model files. 
          If true this automatically adds an Escale parameter to the model which
          is used to scale the energy when reading the model spectrum from
          the table.
       *  Table models with no interpolation parameters can be read.
       *  Table model parameter names containing spaces are modified to use
          underbars instead of spaces to avoid problems.
       *  recorn has been changed from a multiplicative to a mixing
          model (this is for internal xspec reasons and should make no
          practical difference).
       *  Mixing models can now be calculated if there is only one
       *  The creation of new mixing models has been simplified with the
          mixsetup program using the mixmodel.dat file to automatically
          create interface routines. In addition the MixUtility class now
          includes a number of useful methods which reduce the required
          knowledge of xspec internals.
    - Markov Chain Monte Carlo:
      * For the G-W algorithm the initial walkers are now set using
        the proposal distribution.
      * Added new proposal distributions gauss deltas <value> and
        cauchy deltas <value> where <value> is a factor by which
        to multiply the parameter deltas.
      * Fixed an error in the calculation of the Geweke Convergence diagnostic
        which was too large by a factor of sqrt(2).
    - Added lognormal, gamma, cauchy, beta, student's t, half-normal, power-law,
      isotropic, and shifted lognormal options for Bayesian priors.
    - Removed the word normalization from the y-axis of plots. This
      will have little effect because the normalization is almost always
      one. For the other cases setplot area performs a similar function.
    - The show command has new options frozen, linked, tied (the last two
      are identical) which print out the appropriate subsets of the parameters.
    - An x preceding any xspec command name is interpreted as that
      command name (eg xfit can be used for fit). This can be useful if you want
      to alias a command name to do something else (eg if you want to
      write your own Tcl script for fit which does other things as well as
      running xfit).
    - For the flux command when consecutive spectra in the
      same datagroup have the same energies, all of the spectrum numbers
      are now displayed rather than just the first.
    - The ConvolutionInLnSpace template routine has been changed to
      pass the index into the parameter array for the energy instead of the energy
      itself. Also if the input energies are already log spaced then they
      are not rebinned onto an internal array.
    - Changed installed header file structure.
    All bug fixes to v12.11 and v12.11.1 released as patches are included
    in v12.12. In addition the following bugs have been fixed.
    - External Fortran programs calling Xspec's xsatbl/xsmtbl
      functions would crash when Xspec wrote table model diagnostic
    - Running nested scripts would cause a misleading error message
      to appear if the nested scripts were in different directories.
    - The vmcflow model could cause a plotting crash when its
      redshift parameter was set to zero.
    - plot eff was not working for newly created faked spectra, unless
      the spectra were removed and reloaded.
    - When using setplot area for datasets whose responses had EBOUNDS
      energies listed in descending order (usual for gratings), the plotted
      results where the negative of the correct values.
    New Features
    - To help with passing information to a 3rd-party plotting package
      (such as matplotlib), several plot retrieval methods have been added.
      These are: Plot.labels(), Plot.contourLevels(), and Plot.z().
    - The Spectrum object constructor (__init__ function) now takes optional
      arguments for specifying background, response, and arf files. This is
      useful when you don't want to use the default file names (if any) that
      are stored in the Spectrum file.
    - Code added for /svg graphics to work when PyXspec is run in Jupyter
    - Beginning with Xspec 12.12.0, spectrum and background value arrays
      are no longer divided by the area scale.  In PyXspec, that carries
      over to the Background.values and Spectrum.values attributes.
     - In certain cases where errors occur while the ctrl-c signal handler
       is active, the Python session will crash when the user attempts to
       exit, or a script finishes.
     - PyXspec terminates when AllData.fakeit() can't find a response file
       and allowPrompting is turned off.
    See also:
    XSTAR v2.56f:
    - A bug was fixed whereby two different values for the constant used
      to convert from eV to A were used.  The difference was in the 6th
      and 7th significant digit, which turned out to matter in some
      rare circumstances.
    - New atomic data for elements F,Na,Al,P,K,Cl,Sc,T,V,Cr,Mn,Co,Cu,Zn
      based on calculations described in Mendoza et al., 2018A&A...616A..62M
      and its antecedents.  This results in a significant increase in the
      size of the atomic database and the associated data structures.
    - Large scale switch from static memory to dynamically allocated memory
      in order to account for the growth of the data structures associated
      with the atomic database.
    - Major restructuring and renaming of subroutines to better describe
      their functionality.
    NICERDAS Version 8 (2021-04-01_V008)
    - Additions of NICER response tools nicerarf and nicerrmf, which calculate
      ARF (ancillary response file) and RMF (redistribution matrix file)
    - Addition of support for new "FPM Selection" system for event files that
      allows the user to select or deselect certain NICER detectors for
      analysis (see help for nicerl2 and nifpmsel)
    - nicerl2 has a new 'tasks' parameter which allows more fine-grained
      control over what tasks are performed; this can save time when
      calibration is unchanged but the analyst wishes to try a different
      screening selection
    - Data selection: new default underonly_range=0-500 and new default
      overonly_range=0-1.5; new underonly range is based on imminent CALDB
      release extending allowed undershoot range; new overonly range is
      based on changing geomagnetic conditions
    - New task nimkfmerge which can merge multiple filter files (MKF files)
      even if the columns do not match exactly
    - Filter files: new default columns: 
        XTI_PNT_JITTER (pointing jitter);
        ANG_DIST_{X,Y} (angular offset in instrument X,Y coordinates)
        FPM_DEADTIME (per-FPM deadtime); 
        MPU_LOWMEM_{FIFO,SCI}_DELTA (indication of on-board data overflow); 
        HV_ON (indicates if bias voltage is enabled)
        FPM_SLOW_LLD (current value of low energy threshold setting);
        MPU_NOISE20_COUNT (counts below 200 eV);
        MEDIAN_UNDERONLY_COUNT (undershoot count rate, median of array);
        BETA_ANGLE (orbital beta angle);
        TIME_SINCE_SUNSET (time in seconds since beginning of orbit night);
        AE8MIN,AP8MIN - AE8/AP8 modeled electron/proton fluxes
    - CALDB access: nicerl2 now updates CALDBVER; new task nicaldbver to report 
      current NICER CALDB release version
    - New task niexposum which displays exposure of individual FPMs for
      informational purposes
    NuSTARDAS v2.1.1:
    - numkarf: Added new 'mlicorr' input parameter (default='no') to
      enable/disable ARF temperature dependent CALDB query
    - nupipeline: Modified call of nuproducts task; Added new 'arfmlicorr'
      input parameter.
    - nuproducts: Modified call of numkarf task; Added new 'arfmlicorr'
      input parameter
    - Memory allocation increase for the 'stem' variable (various tasks) to
      handle high PID values (fixes buffer overflow crashes on Ubuntu Linux).
    - Corrected usage of SimpleFITS open() function in batdetmask,
      batdrmgen, batgrbproduct, batsurvey, battsplit;
      SimpleFITS.pm: Fixed bug when writing partial FITS table rows
    - uvotpipeline (NEW): UVOT data analysis script that supports the
      processing done at the Swift Data Center and allows user tailoring
      of the processing.
      * NOTE: Generating useful results requires registering sky images.
        The aspect correction software which does this requires access
        to a suitable sky reference catalog (nominally USNO B1); it is
        possible to configure the software to query USNO B1 over the
        web (see catspec help).
    - uvotsource:
      * Fixed FITS filename when extension selected
      * Improved region validation for UVOT photometry/light curves
      * If an exposure map is provided, use it to determine exposure in
        source and background regions.
      * By default source and background exposure must be consistent
        within expdeltaf tolerance.
      * Updated photometry calculations to handle different exposure in
        source and background regions.
      * Support skipping exposures which cannot be processed instead of
        yielding an error.
      * Added parameters: skipbad, skipreason, expdeltaf, forcephot (see
        help file)
      * (uvotinteg): Add support for MIN, MAX, and FLAG operations
    - uvotmaghist:
      * Use output parameter to track skipped exposure (skipped parameter)
      * Added parameters: skipbad, expdeltaf, forcephot for passing down
        to uvotsource (see help)
      * Added skipped output parameter for reporting number of skipped
    - uvotproduct:
      * Added parameters: skipbad, expdeltaf, forcephot for passing down
        to uvotsource
    - uvotimage:
      * Added parameters to enhance user control of processing:
        badpixlist, flatfile, badpix, flagqual, keepcorr, trackfile
      * Optionally create bad pixel maps (badpixlist and badpix parameters)
      * Optionally create quality maps (flagqual parameter)
      * Determine central shift-and-add offset during each exposure from
        aspect following or attitude data (trackfile parameter)
      * Optionally keep the modulo-8 noise pattern corrected and flat-
        fielded files (keepcorr parameter)
    - (uvotexpmap) uvotfakeaf: Only emit AF records with N_FRAMES>0
    - uvotbadpix: Added CORNER bad pixel flag; corrected (swapped) bits
      corresponding to HOT and COLD pixels. Note that no processing was
      specific to HOT vs COLD pixels.
    - uvotflagqual: Fixed 81-character infile limit in uvotflagqual.c:
      use PIL_LINESIZE instead of FLEN_CARD.
    - Calibration.pm: Fixed call to non-existent function in unusual
      error condition
    - uvotdetect: Add 'errfilt' parameter to filter results
    - uvotrawevtimg: Added aberration parameter for applying velocity
    - WCSTools: Harvard Telescope Data Center (TDC) tool 'scat' has
      been added to HEASoft for use by the UVOT software.
    XRT (XRTDAS 3.6.1):
    - xrtfilter: Fixed quzcif calls: specifying a filter on date
      (date="NOW") but not time (time="-") was generating errors in
      the latest version of quzcif.
    - Memory allocation increase for the 'stem' variable (various tasks) to
      handle high PID values (fixes buffer overflow crashes on Ubuntu Linux).
    - Corrected usage of SimpleFITS open() function in pcadeadcalc1,
      pcadeadcalc2, pcadeadspect2, pcaextspect2, pcamergeobsids,
      pcaprepfile2, pcaprepobsid, proc2pcu;
      SimpleFITS.pm: Fixed bug when writing partial FITS table rows
    - HEASoftPy, the Python 3 interface to HEASoft tasks, is now included
      in all downloads.
    - Automated macOS ARM Perl module fix (compiler choice overrides)
      previously distributed as a patch.
    - Added configure option to disable inclusion of lynx (--without-lynx),
      as lynx is not required in order to use fhelp; users can run
      "fhelp <task> online=yes" or "fhelp <task> local=yes" instead.
    - fhelp: Fixed case of 'attitude' package vs. task.
    - Improved support for Apple clang/clang++ v12; remains unsupported
      for MAXI, Suzaku, and XIMAGE.
    - Updated readline library to v8.0:
    - Updated WCSLIB to v7.3.1:
    - PGPLOT SVG driver: Fixed seg fault when returning to use /svg
      after changing to another device.  Changed closing to </svg>
      from </SVG> to match opening.  Replaced HTML entities for symbols
      by their Unicode equivalents because the HTML entities are not
      part of the SVG language standard and are not interpreted by
      readers such as IPython.display(); fixed error when defining
      font-weight in clip-path.
    - Updated PGPLOT-perl (v2.24) and dependency ExtUtils-F77 (v1.24)


    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-Sep-2021 14:33:23 EDT