To find and download HEASARC data in the cloud, you can use astroquery.heasarc or download our new tool, hark.
The HEASARC and NuSTAR teams are greatly saddened by the sudden passing of Katja Pottschmidt. Most recently Katja was the lead scientist for the NuSTAR Guest Observer Facility (GOF), a role she had supported for many years. During her science career she worked on many other high energy astrophysics missions and played an integral role in advancing our knowledge of the universe. She was a wonderful colleague and friend and will be keenly missed by all who knew her.
******************************************************************************** RELEASE NOTES FOR HEASOFT 6.32.1 August 23, 2023 ******************************************************************************** The HEASoft 6.32.1 patch release contains a significant fix to the NICER data analysis software. There is a patch installer utility available, which can be used to update existing 6.32 source code installations to 6.32.1: 6.32.1 Patch Installer This link also describes how to patch existing 6.32 pre-compiled binary installations with the 6.32.1 updates. ******************************************************************************** NICER ******************************************************************************** NICERDAS v011a: Major bug fix related to screening of data at MPU level, resulting in erroneous normalization and event screening. For a further description please see documentation of the bug and remedies here: NICER analysis threads - nifpmsel: (v1.9) Fix for major bug related to per-MPU filtering; adds NIMPUFIX keyword upon output to confirm that the MPU-autoscreening fix is applied - nicerl3-lc: (v1.5) Added check for divide-by-zero, resulting in NaN ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.32 July 20, 2023 ******************************************************************************** The HEASoft 6.32 release is driven by new and updated mission-specific data analysis software (IXPE, NICER, Swift, RXTE), but as always 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 ******************************************************************************** - Bug fix to fits_make_hist[d] that was introduced in 4.2.0. - Added overflow checking for case of reading images with 8-byte float values into 4-byte float arrays. - fits_write_key_longstr now handles case of writing a long keyword in combination with a long keyword value string. - Add conversion of French locale comma-to-period in corner cases appearing in ffr2e and ffd2e functions. - Increased the precision when writing version number to User-Agent strings for http connections. This is needed to fully conform to 3-field version string format. - Bug fix to GTIOVERLAP() calculator function, which was being treated as a boolean value in expressions, and is now correctly treated as a floating point result. - Bug fix to ARRAY() calculator function, which caused a memory overflow error - Enhancement to the ARRAY function, such that ARRAY(V,d) can apply new dimensions to V, as long as the total number of array/vector elements does not change. - Enhancement of long string keyword read/write functions to fully conform with FITS standard specifications for multi-line value and comment strings. Two new functions have been added to implement this: fits_get_key_com_strlen and fits_read_string_key_com. ******************************************************************************** ATTITUDE ******************************************************************************** - det2att, det2att2: Converted to libcoord's new applyQuatToVector() function; replaces conversion to a rotation matrix before applying to a vector - prefilter: Added output columns ALLV6 = TERMINATOR_ANGLE DAYLIT_FRACTION SUN_BODY_AZIMUTH MOON_BODY_AZIMUTH (as well as various body vectors); (MPFIT) bug fix for mix of analytical and numerical derivatives ******************************************************************************** HEASP ******************************************************************************** rmf: - Added rmf::remapEnergies method to map an rmf onto a new energy grid. general: - Protected against zero-length Data in SPwriteCol. ******************************************************************************** FUTILS ******************************************************************************** - Replaced fchecksum, fcopy, fcreate, fdiff, fimgcreate, fkeypar, and fverify with Perl wrappers to their newer counterparts in HEATools: fchecksum -> ftchecksum fcopy -> ftcopy fcreate -> ftcreate fdiff -> ftdiff fimgcreate -> ftimgcreate fkeypar -> ftkeypar fverify -> ftverify - fsumrows: Allow command line of up to 1024 characters ******************************************************************************** FV ******************************************************************************** - Fixed "bad option" error on Mac OS when exporting a FITS table as text ******************************************************************************** HEAGEN ******************************************************************************** - ftadjustgti: Added ability to invert sense of output from GTI to 'BTI' using a new 'invert' parameter, and added parameters 'tstart' and 'tstop' - burstfinder: (NEW) Find time intervals in an input FITS binned light curve that characterize start and stop of a burst. - mkintensfilt: Fixed error that if there were no time intervals within the intensity range then the input GTIs were output; added hidden parameters for rate and GTI extension names as well as time and rate column names. ******************************************************************************** HEASARC ******************************************************************************** - extractor: Corrected RATE for dead time when writing spectra if Buildstokes is true. Also added reading and propagation of DEADAPP keyword. Fixed error in calculation of the uncertainties for Stokes parameters Q and U for the UNWEIGHTED and SIMPLE options. These corrections were available in the patch released on Jan 31, 2023. ******************************************************************************** HEASIM ******************************************************************************** - skyback: Corrections to array indexing ******************************************************************************** HEATOOLS ******************************************************************************** - ftcreate/fcreate: If extname parameter was given, print a warning if EXTNAME is also specified in the input header keyword file ('headfile'). - ftdiff/fdiff: Fixed handling of long string keywords: need to be converted to have bracketing single quotes to match how non-long strings are formatted; changed numdiffs parameter to mode '(h)idden' instead of '(a)sk'. - ftmeld: Added 'minkey' and 'maxkey' parameters - fselect (wrapper to ftselect): Fixed handling the case of an "@" input file for the 'expr' parameter. - ftverify/fverify: Warn when an ampersand is found in TTYPE keywords ******************************************************************************** XIMAGE ******************************************************************************** - Addressed malloc issues on newer amd64/x86_64 processors (possibly only occurring on Fedora OS) ******************************************************************************** XSELECT ******************************************************************************** - Fixed bad access crash from filter time cursor if the plot device does not have a cursor. - Added the new hidden parameters when using mkintensfilt. ******************************************************************************** XSPEC ******************************************************************************** Parallelization - Added parallel processing to leven when usechainrule is no. Added xset usechainrule option to switch between fast and slow second derivatives so this can be done without changing Xspec.init and restarting xspec. - In the various models which use the apec code added option of multithreading over the temperatures for the calculation of lines in the spectrum. Multithreading here is turned on and off using xset APECMULTITHREAD. The default is off. For the basic apec model multithreading does not provide a speed advantage. However, if line broadening is selected (eg using bapec) then multithreading will speed up the calculation. Also, for models which combine multiple temperatures such as cooling flow or NEI models multithreading can provide a significant speed increase. Spectropolarimetry Plotting - Changed the polangle plot so that the angles all lie between the mean angle ±90 degrees. This avoids plots where values jump between the top and bottom of the plot as the angle wraps around. - The polangle and polfrac plots now take account of any plot grouping set. If any spectrum in a data group is in the same plot group as a spectrum in another data group then all the spectra in the second data group are added to the plot group for the purposes of these plots only. - If any of the polfrac values or errors are calculated as NaNs then these are replaced by the PLT NO value and will not be plotted. Mdefine - Fixed mdefine to handle the case when the user is mdefining a convolution model which consists only of an xspec convolution model. - Added support for table models using atable, mtable, or etable in mdefine expressions. - Added 2nd to 5th order Legendre polynomials to mdefine built-in functions. Updated Models - bwcyc: Tightened the boundaries of parameters; now treats NaN as positive infinity - cevmkl, cemekl: Increased lower limits of Tmax parameter - gabs: Fixed units for Strength parameter - tbnew: Reduced stderr logging of non-error announcements Miscellaneous - The syst command to set model systematic errors can now apply systematics to individual models (default or named) instead of to all models. - The precision of parameter values from tclout(r) has been increased to 10 figures. - The error command diagnostic output is now controlled by the chatter level. Bug fixes The following patches for 12.13.0 have been included: 12.13.0a. When the X axis is in energies or wavelengths, plot delchi and plot fitstat (or plot chisq) are not being scaled properly. When the X axis is in wavelengths and perhz is on, plot counts is unable to construct its Y axis label. 12.13.0b. If a model defined using mdefine calls another xspec model which requires a separate model calculation for each spectrum, that information is lost. 12.13.0c. plot delchi and plot fitstat/chisq are not being properly scaled when spectra have multiple models assigned to them. This also restores the insertion of systematic model error into plot delchi and plot fitstat/chisq, and adds it to other plots that were previously ignoring it. 12.13.0d. Fix to mdefine so that it can now include built-in Xspec convolution models as part of its expressions for additive and multiplicative mdefine components. 12.13.0e. Added chain proposal uniform deltas [factor] and chain proposal uniform limits options. For backwards compatibility, chain proposal uniform defaults to chain proposal uniform limits. 12.13.0f. The zkerrbb model undercalculates the flux (and luminosity) by a factor of (1+z)^2. 12.13.0g. The Voigt line model can have a small sub-bin offset and incorrect shape. In addition the following bugs have been fixed: - When the 'energies' command is in use for table models, a crash may occur if all data sets are cleared. - The 'tabint' function (for external programs using Xspec's table interpolation code) is not properly handling the case when default LOELIMIT and HIELIMIT are in use. PyXspec Release Notes for version 2.1.2 (Xspec 12.13.1) New Features: - New method 'Plot.nAddComps()' for returning the number of add component plots for a given plot group. This can be helpful for determining the valid range of the 'addCompNum' input argument to 'Plot.addComps()'. - Two new methods to take advantage of standard Xspec's new ability to set systematic model errors for specific models: 'AllModels.systematicSingleModel' and 'AllModels.setSystematicSingleModel'. See also: https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html ******************************************************************************** XSTAR ******************************************************************************** XSTAR v2.59b: - Fixed minor errors including incomplete initialization of cross section array in phint53.f90. Also modified readinf of parameter file in xstinitable to allow for small float values of emult. ******************************************************************************** IXPE ******************************************************************************** Version 3.1.0: - ixpecalcarf (NEW): Takes an on-axis ARF (ancillary response file) or MRF (modulation response file) input and uses the REEF (radial encircled-energy file) and vignetting data from the CALDB and the off-axis pointing information from the Level 1 attitude data to correct the input response file for off-axis vignetting and extraction region effects. - ixpecalcfov: New version produces a DS9 region file as output instead of a FITS image. Removed the "badpix1", "badpix2", "badpix3", and "exc_graypix" parameters from the interface. Added a "print_angles" Boolean parameter to control printing the rotation angles for each detector (defaults to "yes" or True). Floating point numbers are rounded to five decimal places in the output region files. - ixpeinterptemp (NEW): Takes an input Level 1 Detector Housekeeping file and interpolates values for missing temperature data up to a user-settable maximum gap in time. This reproduces (using the default maximum time gap of 150 seconds) the behavior of the IXPE processing pipeline, which interpolates temperatures before calling the "ixpegaincorrtemp" tool to minimize the number of events that are rejected due to missing temperature data. - ixpemkevt2gti (NEW): Takes an input pre-Level2 event file (i.e., after gain correction, spurious modulation correction, and aspect correction, but before any event column or row filtering), a Level 2 Housekeeping-derived GTI file, a Level 1 attitude file, and a Level 1 Instrument Housekeeping file to produce the produce the final GTI for the Level 2 events file, calculate the ONTIME, DEADTIME, DEADC, and FCW_ENC keyword values. - ixpeplot_polarization (NEW): Takes the FITS file output from the updated ixpepolarization tool (see below) and provides standardized plotting for the Q and U Stokes parameters with error bars, as well as the associated MDP99 circle. The results of all the input files and extraction regions are plotted together on the same axes using matplotlib. - ixpepolarization: New version allows up to three different input Level 2 event files. The resulting region file output (if an input region file is given) defines a polarization vector on the sky calculated from the combination of all input files. In addition, the tool produces an output FITS file which defines the Stokes parameters for each sub-region in the input region file (or a single entry using all the events if no region file is given) for each event file, as well as for the sum of all input files. Removed the "scale" parameter, added the additional files parameters, optional modulation factor filename parameters for each input file, the weighting scheme used to determine the Stokes parameters, and the standard "clobber" option for the output. Floating point numbers are rounded to five decimal places in the output region files. In PolarizationRegion.create_line_region, precisions of "02.5f" on RA HMS seconds were changed to "02.3f", and precisions of "02.5f" on Dec sdms were changed to "02.2f", to match the decimal degree precision of 5 decimal places. - Changes made to the IXPE CALDB are detailed here: https://heasarc.gsfc.nasa.gov/docs/ixpe/caldb/ixpe_caldbhistory.html ******************************************************************************** MAXI ******************************************************************************** - Corrected error message in mxproduct ******************************************************************************** NICER ******************************************************************************** - niobsermerge (NEW) to combine observation data sets * nicerl3-spect and nicerl3-lc updated to work with merged data sets * nimkfmerge now properly sets TSTART/TSTOP/DATE-OBS/DATE-END in merged outputs - nicerl2 * update to filtcols=NICERV5 (see niprefilter below for new columns) * new parameters mingti/erodedilate to avoid shredded GTIs * new parameters max_lowmem and thresh_range to deal with light leak situation * new parameters keep_{forced,overshoots,undershoots}, datamode for event filtering * new parameter keep_noisering, noisering_under for filtering noise ringer events * improved default verbosity with more user-helpful output * bug fix to properly pass incremental parameter to prep_mkfiles * add geomag_tcheck parameter, allow dealing with stale geomag data - nicerl3-spect / nicerl3-lc * bug fix to not accept gtifile when 3C50 background model is used * ignore ufafile/indir/cldir parameters if not needed * handle EXPOSURE=0 situations more gracefully by returning status=218 * improved default verbosity * clean up temporary tco plot files - nicerl3-lc * allow renormalization of light curve by number of selected detectors * new parameters detnormtype/detnormbuff/detnormchg to accomodate normalization * default is detnormtype=arr52, which scales light curve to equivalent 52-detector array - niprefilter / niprefilter2 * new NICERV5 filter columns for filter file (below) * new columns {FPM,MPU}_NOISERING_COUNTS to diagnose noise ringer events * new column SUN_BODY_AZIMUTH to azimuth of sun in NICER body coordinates * new columns TOT_LOWMEM_{SCI,FIFO} for total array to diagnose lost events * new column DELTA_SLOW_LLD to diagnose array-averaged low energy threshold changes * bug fix to handle event files with no rows - niautoscreen * better graphical display of censored detectors and MPUs with default chatter * bug fix for round-robin detection (was more agressive disabling than should be) * parameter limits now include min/max as well for overall sanity checking - nimpumerge * new parameter fpmsel (=YES by default) to properly manage FPM selection data - nibackgen3C50: (v1.2) fixed CEATOR keyword in output (should be CREATOR) - nicerarf and nicerrmf: handle failures more gently by passing status=218 up to the caller - nicerclean * added keep_{forced,overshoots,undershoots,noisering} and data mode keywords; * added noisering_under parameter for noise ringer filtering support - nimaketime * calculates and prints how filtering stages impact available good time * add min_lowmem and thresh_range parameters for dealing with light leak situation * add mingti and erodedilate parameters for "smoothing" shredded GTIs - nicerl2 / nicermergeclean / nicerclean: * remove excplicit parameters from par file, use DEFAULT instead * for example roundrobbinscr * new parameters added keep_{undershoots,overshoots,forced,noisering} to match nicerclean * new parameters datamode noisering_under parameters to match nicerclean - nifpmsel: * handle case of full MPU disabled better * handle tricky case where all FPMs in an MPU are GTI-selected by same GTI - nigeodown: * Removed Perl LWP::Simple requirement (was not used anyway) * accomodate relative paths - niprescreen: (NEW) tool for pre-screening NICER event data * not meant to be called by user * nimpucal updated to call niprescreen * new EVENT_FLAGS bit 0x40 for 'noise ringer' events detected - nicer-l1-metadata: fixed excludepat= Perl (>v5.10) handling and set default to excludepat=NONE - niextract-events: Write revised DATE-OBS, DATE-END, and (optionally) OBS_ID keywords - nimpucal: optimized calculation of PI_RATIO - nivigsum: Better handling of off-axis warning when large numbers of detectors are disabled - SCORPEON: * niscorpcalc: Bug fix to properly read SAA/trapped map metadata keywords * internally factor code into Perl library - Multiple tasks updated to change overall chatter level and logging to provide more useful information to the user and less chaff ******************************************************************************** SWIFT ******************************************************************************** BAT: - batcelldetect: (MPFIT) Bug fix for mix of analytical and numerical derivatives - batmaskwtevt: Use the more efficient applyQuatToVector() UVOT: - uvotlc: Updated skipped parameter mode to 'hl' and help file - uvotmaghist: Updated skipped parameter mode to 'hl' and help file - uvotproduct: Updated skipped parameter mode to 'hl' and help file - uvotsource: Update description of 'skipreason' parameter - uvotimsum: Added method=VARIANCE and updated EXPOSURE calculation for weighted sums ******************************************************************************** XTE ******************************************************************************** - hxtback: Updated to use ftselect instead of fselect. - pcaextspect2: Adjusted background spectrum to properly handle fractional counts by using HDUCLAS3=RATE; now runs pcaphasyserr by default - pcaphasyserr: (NEW) Apply systematic error estimate to PHA spectrum - pcarmf: Major updates (version 12.0): * photon energy range increased from 1.5-80 to 1.5-100 keV * new EPICS2017 Xenon cross sections, which are new default (lbl_sigma=3) * internal code factorization for readability and maintainability * gaussian response components are now properly calculated with inverse gaussian * avoid unnecessary calculations for zero matrix elements * per-anode lower level discriminator function revised based on Crab data * New parameters xe_xsect_{k1,l1,l2,l3,m}_norm to allow adjustment of EPICS2017 Xenon cross sections on per-shell basis. The "M" parameter scales M, N and O shell cross sections as a group. * New parameters pralmy_mult_p{0,1,2,3,4} to adjust propane, aluminum, and mylar densities up and down as a single unit. * Adjust layer1-3 density downward by Xenon leak rate. * Further adjusted the low-energy correction factors to accomodate a larger range of targets, not just the Crab * Further refinement of detlld lower level discriminator threshold functions - pcarmf / xpcaarf: revised response parameters for improved absolute flux calibration; further updates based on refined calibration analysis - pcarsp: (v11.8) Bug fix when computing weighted responses for single layer - rddescr: new parameter gainroot which helps control extra output files - saextrct: Modified to handle missing keywords ******************************************************************************** HEASoftPy: ******************************************************************************** New version 1.3: - Added a patch installer script 'hpyupdate' - Added a fix for CFITSIO version confilict between AstroPy (through IXPE import) and PyXspec - Added timestamp check to read par files from sys_pfiles after a fresh installation - Fixed an issue of reading par files with extra white space - Updated utils.local_pfiles to use tempfile instead of process id - Added utils.local_pfiles_context to be used as context manager for local pfiles - Fixed logging error in IXPE tests - Moved mode check from HSPTask to HSPTask.read_pfile + code style updates. - Added explict ISO-8859-15 in the return of subprocess.Popen ******************************************************************************** MISC. ******************************************************************************** - Allow Python 3.6 and SciPy 1.5 which were previously disallowed - Disallow GNU C++ older than v5.1 - Revised tests for C, C++, and Fortran compilers to alleviate somewhat the need for setting compiler environment variables (CC, CXX, FC) - Reduced use of "-Wl,-no_compact_unwind" linker flag (in place to silence warnings from Fortran code) to prevent uncaught exceptions in C++-based tools. - headas-setup script: Removed extraneous double-quotes from user PATH variables. Unpaired double quotes in PATH are an increasingly common problem on WSL. - Updated XPI parser to accept command lines up to 4000 characters