******************************************************************************** RELEASE NOTES FOR HEASOFT 6.34 August 22, 2024 ******************************************************************************** The HEASoft 6.34 release is driven by new and updated mission-specific data analysis software (XRISM, IXPE, NICER, NuSTAR, Swift/UVOT, 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.5.0: - Conversion of CFITSIO configuration to better conform with automake and libtool. - Bug fix for case of bit column output in string format on clang compilers with high optimization - Added compiler macro support to improve builds on loongarch64 and on Gnu/Hurd kernels - Fixed bug in fitsverify utility ******************************************************************************** HEASP ******************************************************************************** - rmf: Fix for an occasional crash in rmf::rebinChannels and some code simplification. Added a check that F_CHAN + N_CHAN do not exceed the number of channels. Added a test during the rmf::read method for the MATRIX and EBOUNDS extensions having the same first channel. Fixed error in rmf::rebinEnergies if the grouping vector has zero values indicating the energy should be ignored. This only makes sense if energy bins are ignored at the beginning or end. Made the MATRIX extension read slightly cleverer if there is no TLMIN keyword for the F_CHAN column. In this case assume the first channel is 1 unless the minimum in the F_CHAN column is 0. Fixed case of empty FCHAN in the first energy bins. - grouping: Added to grouping a method to test whether the grouping flags are not identically 1 and the quality flags are not identically 0. - SPutils: Improved SPreadStrings so that it works correctly even if the line does not end with a newline. - pha: Fixed test for negative exposure time in pha::check method - it should not return an error if the exposure is zero. Fixed writing grouping keyword when the grouping vector is identically 1. It was writing the keyword value as 1 but the standard requires this to be 0. - SPio: Added a handy routine to return all the column names in an extension. ******************************************************************************** ATTITUDE ******************************************************************************** - pointxform: Allow user control of output formatting via new parameter 'outspec', and write output coordinates to new parameters 'topix[12]' and 'toworld[12]' - prefilter: Made 'rigname' optional since it is not used ******************************************************************************** FUTILS ******************************************************************************** - fmerge: Fixed for crash uncovered using -fsanitize=address - fpartab: Replaced with a wrapper to 'ftedit' (HEATools) - fplot: Set a status for 'illegal extension' and 'too many y axes requested' errors to return control to the main program and avoid an unnecessary crash ******************************************************************************** FV ******************************************************************************** - Removed Hera connection, as it has ceased operations ******************************************************************************** HEAGEN ******************************************************************************** - barycen: Improved par file defaults (e.g. 'useweights' default is now 'YES') - barycorr: Validate input RA & DEC format (must be decimal) - raytrace : dustmodeleffarea: (NEW) For X-ray point sources with dust halos, makes an effective area correction (or modifier) file, with the option of inputting raytracing event files made by the tool dustyarfmod. - raytrace : dustyarfmod: (NEW) For X-ray point sources with dust halos, makes an effective area correction (or modifier) file, with the option of running raytracing simulations for the calculations. - raytrace : xrtraytrace: Enhancements were made to xrtraytrace in two principal areas. One of these pertains to the treatment of a more complex "mirror" CalDB file format to model structure in the innermost foils of the telescopes, that is new compared to Hitomi. The second area involves several changes that support a more complex treatment of "external objects". These latter enhancements will allow more accurate modeling of the XMA thermal shields. Specifically, more complex geometries are supported for constructing the external objects, and a new CalDB file is supported that can model spatial non-uniformity in a thin-film layer, in the form of a thickness map image. (However, such a thickness map CalDB file for XRISM does not yet exist, and is currently just an option, which may or may not be utilized in the future.) There are two new input parameters to xrtraytrace, one that specifies the name of the optional external object thickness map image CalDB file, and another that allows some of the individual components of external objects to be toggled on and off. For example, after some future updates to the XRISM XMA thermal shield data in the mirror CalDB files, it will be possible to switch the film and mesh layers off, leaving only the frame, which is useful for emulating ground-based experiments. ******************************************************************************** HEASPTOOLS ******************************************************************************** - ftchkpha: Fixed for erroneously flagging a missing keyword in a type II PHA file if it appeared as a column. - ftchkrmf: Updated lists of mandatory and optional keywords based on the standards document. Better initialization of string vectors. Make sure to write any warning messages generated by rmf::read. - ftrbnrmf: Fixed typo which prevented ecompmode=ebinfile from working. Added option to simultaneously rebin the arf with the rmf when energy binning. ******************************************************************************** HEASIM ******************************************************************************** - heasim: Include XRISM in heasim.mdb; improved par file defaults - skyback: Improved par file defaults ******************************************************************************** HEATOOLS ******************************************************************************** - ftverify: Fixed bug for columns with long names+units - fcopy (wrapper to ftcopy): Improved handling of single quotes in e.g. GTI filters - fdiff (wrapper to ftdiff): Fixed exit code to match the original fdiff ******************************************************************************** TIME ******************************************************************************** - gtiinvert: Improved par file defaults and logging messages - gticolconv: Improved par file defaults ******************************************************************************** XSELECT ******************************************************************************** - Added support for XRISM ******************************************************************************** XSPEC ******************************************************************************** Xspec version 12.14.1: New models - Added new crossarf model for simultaneous fitting of spectra from multiple regions which mix together due to the PSF. - Added versions of Gaussian lines with width parameter velocity in km/s instead of energy. New models vagauss, zvagauss, vgabs, zvgabs, vgauss, zvgauss. - Added new SED model for black hole binaries from Kubota et al. (SSsed). Changes to models - Added 3 new spectral tables (for Hydrogen at magnetic fields logB=11.7, 11.85, 11.95) to the nsmaxg model. - Changed gaussian, lorentzian, and voigt line profiles so they are normalized from 0 to infinity instead of -infinity to infinity. This is not significant for standard spectral fitting however when using xspec to fit time series power spectra it will make a difference. - Changed the cemekl default switch parameter to 2. Fixed all the switch parameters so only the default value is given since xspec ignores the others. - Changed the default redshift for the (b)(v)cph models to 0.1 since 0.0 does not work. - Added members and methods to move more of the heavy lifting in mixing models out of the individual models and into the MixUtility class. Any individual model now just needs to set the specNumsMixSets, mixingFactors, and mixingEnergies structures then the doMix method does the actual mixing. - Passed the source number into mixing models - before was assuming that any mixing models were only in the first source (which is most likely). - When using adaptive integration in the agauss model and the models which use the MZCompRefl class store the number of function evaluations from the last integration. Documentation changes - Added reference links and clarified which models are changed by xsect. - Fixed error in the equations for cstat with background in Statistics Appendix of Xspec manual. Bug fixes The following patches for 12.14 have been included: - 12.14.0a. The plot polangle command causes a seg fault if no model is defined. - 12.14.0b. Fixes necessary for compilation on Macs using Xcode/clang v15.3. - 12.14.0c. The fakeit command does not handle data systematic errors correctly when using a spectrum as the source (ie. not 'fakeit none'). The systematic error should not be used as part of the probability distribution when simulating data. - 12.14.0d. The changes in the previous bug fix did not include writing out the SYS_ERR column after fakeit if appropriate. - 12.14.0e. This fixes a bug introduced in v12.14.0 that was preventing the setplot id plotting option from displaying APEC line IDs. - 12.14.0f. This fixes a memory error that can cause a crash in the new bsedov model. - 12.14.0g. The fourth parameter in the bwcycl model had been renamed from 'delta' to 'del' after Xspec v12.13. That was causing parsing problems in PyXspec when trying to access the parameter by name, so this patch changes its name back to 'delta'. - 12.14.0h. The newpar command does not properly parse the case where a model name begins with a '0'. - 12.14.0i. This fixes a potential crash occurring with the the bvvnei model. - 12.14.0j. When a parameter is linked from one model to a parameter belonging to a different model assigned to a higher source number, the save command's output file does not reproduce the link. - 12.14.0k. Bug fix in 2D interpolation for the xscat model. This fix conforms to v1.0.2 of the xscat code distributed on GitHub. In addition the following bugs have been fixed: - Fixed bugs in the Fortran wrappers for the Numerics rebinning routines. Also changed variable names for hopefully greater clarity. - Fixed potential error in the polrot model if the spectra are not read in the expected order. - Header information is now written out during the fit when using the migrad or simplex methods. - Fixed a case in the newpar command where a change to a parameter needs to force a recalculation in a separate model that happens to be linked to it. - Fix to fitting for the case where non-norm parameters are linked to norm parameters. For patches beyond 12.14.1, please visit the Xspec issues page. PyXspec Release Notes for version 2.1.4 - Improved calculation efficiency when creating new models with non-default values for the parameters. ******************************************************************************** XSTAR ******************************************************************************** Version 2.59d: - New constants module, new input parameter 'abundtbl', diagnostics for 'nlte' models, data type 102 - Updated to print all parameters correctly in output files - Updated xstar2xspec to handle abundance table parameter - Changed defintions of alpha and gamma for pprint(10) and format of pprint(10) tables ******************************************************************************** HITOMI ******************************************************************************** - Refactored code paired with the XRISM suite ******************************************************************************** IXPE ******************************************************************************** IXPE Python tools v1.9 - ixpecalcarf: a) Updated the API so that the "attfile" parameter is now "attfiles" and can handle multiple files through both the Python interface and the command line interface. The user can now define the following input types: * A single attitude file pathname on the command line as string. * A list of attitude file pathnames on the command line as a string of comma-separated file names (no spaces between names). * An "@file" on the command line which contains the symbol "@" followed by the pathname of a file that contains a list of attitude files, separated by newlines. * A Python list of strings, each of which is an attitude file pathname. b) Updated the module to better handle a mix of off-axis angles that are outside the maximum angle of the CALDB files (and thus outside the dynamic range of the calibrations). The module now: * Warns the user what fraction of the attitude data points are outside the maximum angle. * Removes those attitude data points from the analysis. * Creates the 10-bin histogram of angles based on the range of angles within the maximum off-axis angle. * Uses this histogram to weight the ARF calculations. c) Fixes a bug in which the values for the CBD10001 and STOKESWT header keywords in the output ARF file were swapped. d) Fixes a bug in which the pre-check on CALDB files failed if the input was a link to a remove CALDB instead of a file in the current file system. This module can now be used with a remote CALDB. - ixpeeventviewer: Fixes two different problems that prevented display of events that were caused by updates to the matplotlib Python package and the Gtk graphics display library. These changes have been tested to work with previous versions of both as well. - ixpeflagbgd: This is a new module that flags background events that are identified by one or more of the criteria outlined in A. Di Marco et al., AJ 165 143 (2023). The input files are event1 files that have been processed by the instrument pipeline (ixpegaincorrtemp, ixpechrgcorr, and ixpegaincorrpkmap). The output will have background events flagged but not removed. - ixpechrgcorr (actually in v6.33 debug update, but not documented): Updated import paths to allow the module to run. ******************************************************************************** NICER ******************************************************************************** NICERDAS v13: This is primarily a bug fix and usability fix update. No major new functionality is provided in this release. - nicerl2: * checks for writability of output directory (cldir) * checks for gzipped version of ufa file as a fallback * does not require per-MPU "uf" files to be present if tasks=SCREEN * if using tasks=SCREEN, doesn't overwrite .mkf file with .mkf.gz file * better aggregation of filtcolumns entries so that it is possible to use -colname to remove desired columns - nicerl3-spect and nicerl3-lc: * bkgconfigs now passed to SCORPEON backgroun estimators * nicerl3-lc passes lcthresh parameter to niextlc * nicerl3-lc default value of noticerange now correctly reflects channel range of NICER - nivignette: * new "profile=disk" surface brightness profile * bug fix to prevent error when reading surface brightness profile FITS file * better error checking when radial profile is provided - all background estimation tools (SCORPEON, Space Weather, 3C50): * write metadata keywords to document the background model and configuration used * NIBKGTYP is the background model type (SW,3C50,SCORPEON) * SWVERSN is Space Weather version * BGYR3C50 is 3C50's "gain year" used * SCORPVER is SCORPEON's bkgver * SCORPVAR is SCORPEON's bkgvariant * SCORPCOM is SCORPEON's bkgcomponents * corresponding code in nicerl3-{lc,spect} to transfer metadata to product files - niscorpspect and niscorpspectmod: * range of saa_norm is now 0-6000, which is a better representative of the true range; this only affects people trying to obtain data taken during SAA - nicerarf: * support for nivignette's "disk" surface brightness profile (also nicerl3-spect) - niobsmerge: * make sure that OBS_ID is written as a string and not an integer ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS v2.1.4: This update provides preparatory software in case of a future failure of one of the NuSTAR metrology lasers used to reconstruct the mast motions. There is no current danger of either laser failing. This code update will only be used if the NuSTAR SOC begins delivery of synthetic mast files as described in Earnshaw et al. (2022) (https://doi.org/10.1117/1.JATIS.8.1.014009). Otherwise, users should notice no difference in the behavior of NuSTARDAS. - nupipeline: Added a new hidden input parameter 'check_metsim_files' (default value set to 'yes', no need to set it in the command line) if 'check_metsim_files=yes': checks for the presence of the mast and psdcorr _sim0/1.fits files in the input 'event_cl' directory (these files will only be delivered in the case of a metrology laser failure) if 'sim0/1' files are found: automatically sets internally runmetrology=no and uses the predictive mast and psdcorr _sim0/1.fits files if 'sim0/1' files are not found: if runmetrology=yes generates internally the mast and psdcorr files; if runmetrology=no uses the "nominal" mast and psdcorr files if 'check_metsim_files=no' (needed to be added to the command line): the data processing scheme is unchanged. In particular, if the mast and psdcorr _sim0/1.fits files are present in the input 'event_cl' directory, they are ignored if 'runmetrology=no': copies in the output directory the mast and psdcorr files (parameters 'inmastaspectfile' and 'inpsdfilecor') - nuproducts: automatically checks for the presence of the mast _sim0/1.fits file in the input directory and, if present, uses it internally. If the _sim0/1.fits mast aspect file is not found, uses the nominal mast.fits file. From the user's point of view, the usage of the two modules is unchanged. In the case of a failure of one of the two metrology lasers, both 'nupipeline' and 'nuproducts' will automatically use the sim0/1 files from the archive 'event_cl' directory which will be delivered in the event of a metrology laser failure, with no need to change the command line or update the code and/or the CALDB. ******************************************************************************** SUZAKU ******************************************************************************** - aepipeline: Correction to Suzaku pipeline expression filters ******************************************************************************** SWIFT ******************************************************************************** - Astro::Convert: allow user to control applyxform output precision UVOT: - uvotapercorr, uvotcentroid, uvotdetect: Updated mode of output parameters from 'ask' to hidden+learn. - uvotdetect: (v3.10) Fixes transferring keycards and background processing - uvotevtlc: (v1.6) Bug fix for merging infile GTIs - uvotimage: (v1.3) Avoid redundant TELDEF lookup when processing aspect following ******************************************************************************** XRISM ******************************************************************************** Changes to XRISM tools since the last internal team release ("Build 8"): - rslflagpix: Fixed bug whereby events in the same pixel could be counted as crosstalk - rslnxbgen: Added parameters selectfile and leapsecfile to rslnxbgen.par - rslpipeline, xtdpipeline: Made revisions to image, spectrum, and light curve products - rslseccor: Changed maximum output PHA value to be TLMAX rather than hard-coded 32767 - xaxmaarfgen: Fixed PSF percentages inside detector and region as reported in log ******************************************************************************** XTE ******************************************************************************** - pcarsp: Updated call to rddescr to add gainroot=NONE to prevent spurious errors related to 'shftfil' - rddescr: Assigned a default value of 'NONE' for the 'gainroot' parameter to avoid errors related to 'shftfil' ******************************************************************************** MISC. ******************************************************************************** - Update lynx to v2.9.1 (used by fhelp): Fixes a configuration problem that appeared on e.g. Fedora 40 with GCC 14 - Restored readline 8.0 cut and paste behavior, i.e. to allow cutting and pasting a series of commands with line breaks into Xspec - Enhanced initial usability checks for Perl and Python - Revised handling of compiler overrides for C/Perl interface libraries to help with build errors - Added gfortran-14 and gfortran-mp-14 to Fortran compiler search list on Macs - Fixed '--enable-mac_intel_build' option - Updated WCSLIB to v8.3