******************************************************************************** RELEASE NOTES FOR HEASOFT 6.13 December 21, 2012 ******************************************************************************** The HEASoft 6.13 release is primarily driven by updates to the Swift mission software, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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 ******************************************************************************** - DEVELOP: Fixed flaw in the way logical columns (TFORM = 'L') in binary tables were read which caused an illegal value of 1 in the column to be interpreted as a 'T' (TRUE) value. - Version 3.32: * Extended the column filtering syntax in the CFITSIO file name parser to enable users and scripts to append new COMMENT or HISTORY keyword into the header of the filtered file (provided by Craig Markwardt). For example, fcopy "infile.fits[col #HISTORY='Processed on 2012-10-05']" outfile.fits will append this header keyword: "HISTORY Processed on 2012-10-05". * Small change to the code that opens and reads an ASCII region file to return an error if the file is empty. * Fixed obscure sign propagation error when attempting to read the uncompressed size of a gzipped FITS file. This resulted in a memory allocation error if the gzipped file had an uncompressed file size between 2^31 and 2^32 bytes. Fix supplied by Gudlaugur Johannesson (Stanford). - Version 3.31: - Enhanced the CFITSIO column filtering syntax to allow the comma, in addition to the semi-colon, to be used to separate clauses, for example: [col X,Y;Z = max(X,Y)]. This was done because users are not allowed to enter the semi-colon character in the on-line Hera data processing system due to computer security concerns. - Enhanced the CFITSIO extended filename syntax to allow specifying image compression parameters (e.g. '[compress Rice]') when opening an existing FITS file with write access. The specified compression parameters will be used by default if more images are appended to the existing file. - Modified drvrfile.c to do additional file secrity checks when CFITSIO is running within the HEASARC's Hera software system. In this case CFITSIO will not allow FITS files to be created outside of the user's individual Hera data directory area. - Fixed an issue in fpack and funpack on Windows machines, caused by the fact that the 'rename' function behaves differently on Windows in that it does not clobber an existing file, as it does on Unix platforms. - Fixed bug in the way byte-swapping was being performed when writing integer*8 null values to an image or binary table column. - Added the missing macro definition for fffree to fitsio.h. - Modified the low level table read and write functions in getcol*.c and putcol*.c to remove the 32-bit limitation on the number of elements. These routines now support reading and writing more than 2**31 elements at one time. Thanks to Keh-Cheng Chu (Stanford U.) for the patch. - Modified Makefile.in so that the shared libcfitsio.so is linked against pthreads and libm. - Version 3.30: Enhancements * Added new routine called fits_is_reentrant which returns 1 or 0 depending on whether or not CFITSIO was compiled with the -D_REENTRANT directive. This can be used to determine if it is safe to use CFITSIO in multi-threaded programs. * Implemented much faster byte-swapping algorithms in swapproc.c based on code provided by Julian Taylor at ESO, Garching. These routines significantly improve the FITS image read and write speed (by more than a factor of 2 in some cases) on little-endian machines (e.g., Linux and Microsoft Windows running on x86 PCs) where byte-swapping is required. This has no effect on big-endian machines (e.g., Macs). Even faster performance can be achieved in some cases by invoking the new "--enable-sse2" or "--enable-ssse3" configure options when building CFITSIO on machines that have CPUs and compilers that support the SSE2 and SSSE3 machine instructions. * Added additional support for implicit data type conversion in cases where the floating point image has been losslessly compressed with gzip. The pixels in these compressed images can now be read back as arrays of short, int, and long integers as well as single and double precision floating-point. * Modified fitsio2.h and f77_wrap.h to recognize IBM System z mainframes by testing if __s390x__ or __s390__ is defined. * Small change to ffgcrd in getkey.c so that it supports reading a blank keyword (e.g., a keyword whose name simply contains 8 space chracters). Bug Fixes * Fixed a bug in imcomp_decompress_tile that caused the tile-compressed image to be uncompressed incorrectly (even though the tile-compressed image itself was written correctly) under the following specific conditions: - the original FITS image has a "float" datatype (R*4) - one or more of the image tiles cannot be compressed using the standard quantization method and instead are losslessly compressed with gzip - the pixels in these tiles are not all equal to zero (this bug does affect tiles where all the pixels are equal to zero) - the program that is reading the compressed image uses CFITSIO's "implicit datatype conversion" feature to read the "float" image back into an array of "double" pixel values. If all these conditions are met, then the returned pixel values in the affected image tiles will be garbage, with values often ranging up to 10**34. Note that this bug does not affect the fpack/funpack programs, because funpack does not use CFITSIO's implicit datatype conversion feature when uncompressing the image. ******************************************************************************** CFITSIO PERL MODULE ******************************************************************************** Update to version 1.09 of the CFITSIO Perl module: http://hea-www.harvard.edu/~rpete/cfitsio/ 2012-07-27 * CFITSIO.pm: $VERSION = '1.09'; * CFITSIO.xs: sync with cfitsio 3.31 cfitsio v3.31 added a missing prototype for function fffree which conflicted with the existing definition in CFITSIO.xs. ******************************************************************************** CCFITS ******************************************************************************** - Fixed a couple of problems with the FITS::addTable function. It was not allowing a new table with a pre-existing HDU name even when the version number was different. Also it was not writing the EXTVER keyword when the version number was > 1. ******************************************************************************** HEASP ******************************************************************************** Library for manipulating spectra and responses, including a Python interface. A detailed guide to the library and its use when writing programs or using Python is available in $HEADAS/../heacore/help/headas_guide.pdf. New in this release: - Added unit conversions through calcXfactor and calcYfactor routines. - Added a global SPerrorStack to improve error reporting. Entries are added to the stack using SPreportError and can be retrieved using SPgetErrorStack which returns a string. SPclearErrorStack resets the stack. - Added modifications to all classes to handle case where user writes an extension of some type into a file which already contains an extension of the same type. Now writes the new extension with an EXTVER keyword set to one more than the highest EXTVER of other extensions of the same type in the file. - Made checkCompatibility routines consistent across classes and added a check for units. ******************************************************************************** APE / XPI (Parameter Interface Libraries) ******************************************************************************** - Correct bug in which parameter values assigned a value of whitespace were instead inheriting parameter values from farther to the right on the command line, i.e. par2=" " parfive="yes" was assigning "yes" both to par2 and parfive. - Preserve quoted whitespace (only) in parameter assignments, e.g. for the separator parameter in ftlist. - New APE-based version of pquery to replace old XPI-based version. This fixes broken behavior in the following FTOOLS Perl scripts: FUTILS: fmodtab; TIME: day2time, time2day; HEASARC: makeregion, gisxspec, pspcxspec, wgaxspec. - Fix XPI parameters tchat and lchat (terminal and log chatter) used in the following tasks: EXOSAT: cmadead, exoleuv, exomerge; FIMAGE: fvec2img; HEAO1: a2lcurve, a2source, dsdlcurve; HEASARC: nh, sky2xy, xy2sky; OSO8: osopha, osorat; ROSAT: abc, bct, utc.par(abc); XIMAGE: mkcolor, mkhratio; XRONOS: autocor, crosscor, earth2sun, efold, efsearch, lcmath, lcstats, lcurve, listdata, powspec, timeskew. ******************************************************************************** ATTITUDE ******************************************************************************** - atFunctions v3.3 (2012.11.22): Bug fix in atSetElement(), atSetElement2(), atSetElement3(), in the equation calculating "zzbar", the first time derivatitive of the mean anomaly. The following constants have also been updated/corrected: Original Revised/corrected -------------------------------- static double gravc = .0743666; .0743668 static double j2 = .00108264; .001082626 static double dycon = 398599.; 398600. static double aj2 = .001082628; .001082626 static double aj4 = -2.12e-6; -1.616e-6 static double eradi = 6378.16; 6378.137 A brief comparison of output between the original code and the revised code shows that the changes are small, with errors of the order 1-2 km, at the largest. The biggest changes resulted not from the bug fix - a simple sign change - but from updating/fixing the constants. Comparison of output: Satellite [X, Y, Z] (km) ----------------------------------------------------------------------------------------------- X Y Z bug-fixed_code: mjd= 56200.0000000000 5182.82270127579 -3213.41407482482 3288.36194675555 original_code : mjd= 56200.0000000000 5182.50469061843 -3213.81259433846 3288.47385908001 bug-fixed_code: mjd= 56220.0000000000 5263.44591867794 -2967.04673975258 -3408.89612834825 original_code : mjd= 56220.0000000000 5262.34360993661 -2969.55376653281 -3408.41672189663 bug-fixed_code: mjd= 55555.1234500000 4725.02005822229 4055.33660081729 3078.72232915383 original_code : mjd= 55555.1234500000 4727.31468669830 4053.32307841280 3077.85219344827 ----------------------------------------------------------------------------------------------- Mean motion / nbar (radians per day) ------------------------------------------- bug-fixed_code: nbar = 94.51009698425256 original_code : nbar = 94.50989651601652 bug-fixed_code: nbar = 94.51152172197288 original_code : nbar = 94.51132124659411 bug-fixed_code: nbar = 94.33024342746587 original_code : nbar = 94.33004379113659 ------------------------------------------- - aberrator: Update to task version 1.1. Add 'orbext' parameter to support NuSTAR orbit extension named 'ORBIT'. Add 'attcol' parameter to support either POINTING or QPARAM as input (previously was only POINTING). - aspcorr: Pass through tristarid parameters for catalog cross-referencing (matchtol, uncount, unmag). - newmakefilter: Improve loss of precision on J (32 bit unsigned integer) columns with large values. - tristarid: Allow disabling catalog cross-referencing by passing matchtol < 0 and uncount < 0. Bug fix: an externally supplied quaternion should not be ignored when there are insufficient sources (3+) to find a solution by triplet matching. ******************************************************************************** PLT ******************************************************************************** - Prevent infinite loops when an input plt command file does not exist. ******************************************************************************** PGPLOT ******************************************************************************** - Increase max output filename length to 128 characters (input can be longer). ******************************************************************************** FUTILS ******************************************************************************** - fmodhead: Update to allow handling of HIERARCH keywords. - ftabcopy: Invert order of Aw to wA in TFORM keyword for binary table output. - fverify: Removed the overly-stringent test that the WCSAXESa keywords must precede any other WCS keyword. Improved text of error messages about illegal characters in keyword name and illegal logical column values. Fixed uninitialized variable bug that affected checks on the WCSAXES keyword. ******************************************************************************** HEATOOLS ******************************************************************************** - ftcreate: Fixed bug on 64-bit Linux which caused extraneous TNULL keywords. - ftverify: Removed the overly-stringent test that the WCSAXESa keywords must precede any other WCS keyword. Improved text of error messages about illegal characters in keyword name and illegal logical column values. Fixed uninitialized variable bug that affected checks on the WCSAXES keyword. ******************************************************************************** HEAGEN ******************************************************************************** - barycorr: * Add command line option "-clockfile" which allows explicit designation of a clock offset correction file. * Add command line option "-dtmaxclock" which specifies the maximum time difference in seconds before a clock recalculation takes place. * Clock offset correction amount is now recalculated if -dtmaxclock is set to >0; AND time changes by more than -dtmaxclock value; OR time crosses midnight boundary; this accomodates rapidly changing NuSTAR clock over long observations. * Optimize the orbit code * Add NuSTAR as mission supported by barycorr (Andrew Davis, NuSTAR project) * Add nCC nustar clock correction * Note that the clock correction code is only invoked once at the start of the task - for any mission - so it does not capture clock offset variations during an observation. * Refactor the nCC code into clock file reader, calculator and driver; could be reused for Swift. - flx2xsp: Relocated from the ftools/heasarc package and rewritten. This task creates spectra and response files for use in XSPEC from an input text file of fluxes and errors. The new version adds two parameters 'xunit' and 'yunit' to allow multiple possible units for energy/wavelength and flux. - (NEW) flx2tab: Read an input text file with one or more model spectra and convert to an XSPEC table model file. - (NEW) mkfiltrsp: Read an input text with a filter response to make a single channel response matrix. - rgsrmfsmooth: Replacement version of task previously located in the ftools/spectral directory. Smooths an XMM RGS response matrix for an extended source. - (NEW) sdss2xsp: Program to convert SDSS FITS files into XSPEC PHA and RSP. Assumes that the SDSS resolving power is 2000 (sigma). - libgeomag: New library comprised of routines in geomag.f, which was relocated from the attitude task "prefilter" to make the routines available to other missions. - SwiftClock.pm: Fixed minor bug in extrapolating in ASCII file (was ignoring last entry). - swco.dat: ******************************************************************************** HEASARC ******************************************************************************** - flx2xsp, raysmith and mekal tasks relocated to heagen and Xspec components. ******************************************************************************** EXTRACTOR ******************************************************************************** Speed-up modification of fixwmp: decides whether a WMAP bin is in the region by checking whether its center is in the region instead of checking every pixel in the bin and looking for one which lies in the region. For the case of no TLMIN/MAX changed the default upper grade to GMAXSIZE-1 which is currently 255. This was a change from the arbitrary value of 25 which caused a problem for NuSTAR since they take grades up to 26 and currently have no TLMIN/MAX in their event files. ******************************************************************************** XSELECT ******************************************************************************** - Fixes for the problem that xselect has a tendency to go into an infinite loop if a command is given the wrong argument. Now it nicely passes the user back to the main prompt so they can try again. - Improved plot device code so that filenames can be given for appropriate devices (e.g. "set device myplot.ps/cps"). ******************************************************************************** XSPEC ******************************************************************************** Version 12.8.0: New features: - Parallel-processing capability for specific tasks has been added by way of the new "parallel" command. This allows the user to set a maximum number of processes to spawn when running certain XSPEC commands. Currently the options for parallel-processing are limited to use with the "fit" and "error" and commands, though we plan to implement more in the near future. This first implementation is considered to be a BETA release, and we look forward to hearing your comments and suggestions. - XSPEC now distinguishes between the 'fit' statistic and the 'test' statistic. The fit statistic is used to find the best-fit parameter values and errors while the test statistic is used to provide a goodness-of-fit. Consequently, the goodness command now uses the test statistic. Separating these two classes of statistic has allowed us to add a number of new test statistics. These include Kolmogorov-Smirnov and the related Anderson-Darling and Cramer-von Mises. Also new are the runs statistic, based on the number of runs of consecutive positive (or negative) residuals, and the Pearson Chi-Square (pchi) statistic, Pearson's original test statistic. - The basic Levenberg-Marquardt fit algorithm has undergone a number of changes. The most visible is an additional column in the output during the fit. |beta|/N is the norm of the vector of derivatives of the statistic with respect to the parameters divided by the number of parameters. At the best fit this should be zero so provides another measure of how well the fit is converging. |beta|/N can also be used as the criterion to stop the fit instead of the statistic delta although this is still considered experimental. Other internal changes to the fit algorithm are to treat the first iteration as a special case where only normalizations are allowed to change and to add the option of using delayed gratification, which can speed up convergence. - New models: compmag, comptb, rgsxsrc. The latter is reinstated from it use in XSPEC v11. - New plotting command "plot goodness", for plotting a histogram of the most recent "goodness" simulation. - New tclout option "goodness sims" . - Added the option of using the Goodman-Weare algorithm instead of Metropolis-Hastings when using the chains command to run MCMC. - Added the Whittle statistic for fitting models to power density spectra. - If a data file is read which has RESPFILE="[]" then the response extensions (MATRIX, EBOUNDS) are read from the same file. - Added support for a new type of model component: a mixing component which operates on the model pre-multiplied by the effective area. This is similar to the pile-up model type but allows for a models which require mixing between multiple spectra. - Table model files can now have interpolated and additional parameters intermixed provided that additional parameters are indicated by METHOD=-1 in the PARAMETERS extension. Enhancements previously released as patches to 12.7.1: - The "plot chain" has a new "thin" option for thinning the display of chain points. - Added a "tclout ignore" option for easy retrieval of currently ignored channels. Similar capability added to PyXspec's Spectrum class. All bug fixes to v12.7.1 released as patches are included in v12.8.0. In addition the following problems have been corrected: - The eqpair model used wrongly-sized arrays when multiple spectra were used with RMFs having varying numbers of photon energy bins. Eqpair (plus eqtherm and compth) also needed a new default value for its optical depth parameter, which fixes the problem if parameter 4 is zero. - A fit parameter which started close to the minimum/maximum could under some circumstances be incorrectly pegged at the maximum/minimum. - When the "error" command was run on a model with soft limits (ie. soft limits for some parameters set to a narrower range than hard limits), and the best fit value fell within the soft limit region, the displayed differences (in parentheses) were not consistent with the reported ? limits. - Problem occurred in apec model when zero width lines were in the final energy bin. - Fix to a potential normalization problem occurring in Lorentz model with low-energy large-width lines. - When running initpackage/lmod from PyXspec on certain Linux builds, local models calling functions in XSPEC's xslib library producing unresolved symbol link errors. New tools: - "raysmith" and "mekal" tasks relocated here from the ftools/heasarc module, and "kbmodels" task relocated here from the ftools/spectral module. ******************************************************************************** XSTAR ******************************************************************************** Version 2.2.1bn13 - updates since HEASOFT 6.12 include: - Changes to bring xstar221bk --> xstar221bn: - elimination of big ajis rate matrix - new r matrix data for al, ni - larger data structures - Increase length of ERRMSG to handle sprintf in Display_FITS_ParmTable() when number of values is large (kInterpolated case). - Fixed error in heatt.f which turned off rrc luminosity. - Changes to provide better calculation of optically thick models: Re-introduction of the tmpp factor in the transfer equation integration. Refinement of 2 sided clouds and inclusion of 2 sided escape. - Changes to allow writing of step-by-step rrc emissivities (in routine fstepr3.f) Plus, expand maximum size of energy array to 10^6. - Updates to allow 10^6 energy points, turbulent and thermal line widths to add in quadrature, Al II UV resonance line. - Fix segfault occurring when XSTARDEBUG was not set in the environment. ******************************************************************************** TIME ******************************************************************************** - day2time: Fixed mismatched 'timezero'-'time' parameter "get". ******************************************************************************** FV ******************************************************************************** - For logical columns of a binary table, display 'U' (undefined) for illegal values (anything other than 'T', 'F', or 0) rather than interpreting the values as 'F'. - Fixed bugs occurring when trying to display slices of a data cube FITs file. - Avoid memory faults when trying to open a FITs file that has a binary table with non-zero variable length array columns but has no rows. - Fixed bugs (extra columns, incorrect row selections) in ASCII output when saving from a binary table. - Increased precision in output ASCII file values and displayed table cells. - Fixed exported text file from vector columns in a binary table (was only showing the first element) - Fixed table "Edit Cell" function on x86_64. - Fixed plotting in ds9 which was not correctly handling lower case column names. - Fixed fv scripting error in which the existence of a $HOME/.fv directory was assumed. - Allow directory paths that contain parentheses. ******************************************************************************** SUZAKU ******************************************************************************** - hxdmkgainhist_gso: * Bug fix due to a change of the text xspec output. - xisgtigen: * New parameter (hidden) 'wingti' (default "no") to maximize GTI for the window option or the psum mode. With wingti=yes, telemetry saturation is judged for each exposure of window (or each line in the psum mode). - xisrmfgen: * New parameters: bi_si_edge_mode, fi_si_edge_mode * "bi_si_edge_mode" activates a new response model that improves the XIS1 response around Si K edge. "bi_si_edge_mode" is set to 1 by default. * Running xisrmfgen with "bi_si_edge_mode" of 0 produces the same RMF file as before. * "fi_si_edge_mode" is introduced just for future use. "fi_si_edge_mode" is set to 0 by default. * xisrmfgen does not run with "fi_si_edge_mode" of 1. - Update to com_cli-2.08, to fix compilation with g95 0.93 on Mac OS X. ******************************************************************************** SWIFT ******************************************************************************** - uvotgcn: * Write ASPCORR keyword if aspect correction taken from earlier processing of related information. - uvotevtlc, uvotmaghist, uvotproduct, uvotsource: * Write column SATURATED. - uvotimage, uvotoptsum: * Use sec2time instead of swifttime to convert MET to UTC for consistency with other Swift software - uvotimsum: * Clarified error message logged when input image is not oriented North up. - uvotmaghist: * Enabled LSS correction by default (there was a duplicate lssfile entry in the parameter file which disabled it by default). - uvotproduct: * Using recent versions of ds9 for graphic generation had assorted issues with title and label placement and grid features. Added the gridfile parameter to allow the user to specify the grid file. Use a custom ds9 v6 grid file if that version is detected. * Disallow timezero=0 since it has a meaning other than MET=0 to uvotmaghist (which this tool runs). - uvotskycorr: * Disable catalog cross-referencing by default since it is not a necessary function of this tool. ******************************************************************************** CONFIGURATION ******************************************************************************** - The installed architecture-specific directory name on Mac OS X (e.g. "i386-apple-darwin12.2.0") now accurately reflects the nature of the build (i386 vs. x86_64). Previously the name was derived solely by config.guess based on the default state of the C compiler being used. - The Xspec component - when built in isolation, i.e. without any other mission- specific or general utility packages present in the heasoft-6.13 code tree - will now default to a 64-bit build (x86_64-apple-darwinX.X.X) on Mac OS X. If desired, users may override this behavior to force a 32-bit build by configuring with the option '--enable-mac_32bit_build=yes'. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.14 August 6, 2013 ******************************************************************************** The HEASoft 6.14 release is primarily driven by new software for the NuSTAR mission and updates to the Swift mission software, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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 3.35: - fixed problem with the default tile size when compressing images with fpack using the Hcompress algorithm. - fixed returned value ("status" instead of "*status") - in imcompress.c, declared some arrays that are used to store the dimensions of the image from 'int' to 'long', to support very large images (at least on systems where sizeof(long) = 8), - modified the routines that convert a string value to a float or double to prevent them from returning a NaN or Inf value if the string is "NaN" or "Inf" (as can happen with gcc implementation of the strtod function). - removed/replaced the use of the assert() functions when locking or unlocking threads because they did not work correctly if NDEBUG is defined. - made modifications to the way the command-line file filters are parsed to 1) remove the 1024-character limit when specifying a column filter, 2) fixed a potential character buffer-overflow risk in fits_get_token, and 3) improved the parsing logic to remove any possible of confusing 2 slash characters ("//") in the string as the beginning of a comment string. - modified configure and Makefile.in so that when building CFITSIO as a shared library on linux or Mac platforms, it will use the SONAME convention to indicate whether each new release of the CFITSIO library is binary-compatible with the previous version. Application programs that link with the shared library will not need to be recompiled as long as the versions are compatible. In practice, this means that the shared library binary file that is created (on Linux systems) will have a name like 'libcfitsio.so.I.J.K', where I is the SONAME version number, J is the major CFITSIO version number (e.g. 3), and K is the minor CFITSIO version number (e.g., 34). Two link files will also be created such that libcfitsio.so -> libcfitsio.so.I, and libcfitsio.so.I -> libcfitsio.I.J.K Application programs will still run correctly with the new version of CFITSIO as long as the 'I' version number remains the same, but the applications will fail to run if the 'I' number changes, thus alerting the user that the application must be rebuilt. - fixed bug in fits_insert_col when computing the new table row width when inserting a '1Q' variable length array column. - modified the image compression routines so that the output compressed image (stored in a FITS binary table) uses the '1Q' variable length array format (instead of '1P') when the input file is larger than 4 GB. - added support for "compression directive" keywords which indicate how that HDU should be compressed (e.g., which compression algorithm to use, what tiling pattern to use, etc.). The values of these keywords will override the compression parameters that were specified on the command line when running the fpack FITS file compression program. - globally changed the variable and/or subroutine name "dither_offset" to "dither_seed" and "quantize_dither" to "quantize_method" so that the names more accurately reflects their purpose. - added support for a new SUBTRACTIVE_DITHER_2 method when compressing floating point images. The only difference with the previous method is that pixels with a value exactly equal to 0.0 will not be dithered, and instead will be exactly preserved when the image is compressed. - added support for an alias of "RICE_ONE" for "RICE_1" as the value of the ZCMPTYPE keyword, which gives the name of the image compression algorithm. This alias is used if the new SUBTRACTIVE_DITHER_2 option is used, to prevent old versions of funpack from creating a corrupted uncompressed image file. Only newer versions of funpack will recognize this alias and be able to uncompress the image. - made performance improvement to fits_read_compressed_img so that when reading a section of an compressed image that includes only every nth pixel in some dimension, it will only uncompressed a tile if there are actually any pixels of interest in that tile. - fixed several issues with the beta FITS binary table compression code that is used by fpack: added support for zero-length vector columns, made improvements to the output report when using the -T option in fpack, changed the default table compression method to 'Rice' instead of 'Best', and now writes the 'ZTILELEN' keyword to document the number of table rows in each tile. - fixed error in ffbinit in calculating the total length of the binary table extension if the THEAP keyword was used to override the default starting location of the heap. Version 3.34 - 20 March 2013 - modified configure and configure.in to support cross-compiled cfitsio as a static library for Windows on a Linux platform using MXE (http://mxe.cc) - a build environment for mingw32. (contributed by Niels Kristian Bech Jensen) - added conditional compilation statementsfor the mingw32 environment in drvrfile.c because mingw32 does not include the ftello and fseeko functions. (contributed by Niels Kristian Bech Jensen) - fixed a potential bug in ffcpcl (routine to copy a column from one table to another table) when dealing with the rare case of a '0X' column (zero length bit column). - fixed an issue in the routines that update or modify string-valued keyword values, as a result of the change to ffc2s in the previous release. These routines would exit with a 204 error status if the current value of the keyword to be updated or modified is null. - fixed typo in the previous modification that was intended to ignore numerical overflows in Hcompress when decompressing an image. - moved the 'startcol' static variable out of the ffgcnn routine and instead added it as a member of the 'FITSfile' structure that is defined in fitsio.h. This removes a possible race condition in ffgcnn in multi-threaded environments. Version 3.33 - 14 Feb 2013 - modified the imcomp_decompress_tile routine to ignore any numerical overflows that might occur when using Hcompress to decompress the image. If Hcompress is used in its 'lossy' mode, the uncompressed image pixel values may slightly exceed the range of an integer*2 variable. This is generally of no consequence, so we can safely ignore any overflows in this case and just clip the values to the legal range. - the default tiling pattern when writing a tile-compressed image has been changed. The old behavior was to compress the whole image as one single large tile. This is often not optimal when dealing with large images, so the new default behavior is to treat each row of the image as one tile. This is the same default behavior as in the standalone fpack program. The default tile size can be overridden by calling fits_set_tile_dim. - fixed bug that resulted in a corrupted output FITS image when attempting to write a float or double array of values to a tile-compressed integer data type image. CFITSIO does not support implicit data type conversion in this case and now correctly returns an appropriate error status. - modified ricecomp.c to define the nonzero_count lookup table as an external variable, rather then dynamically allocating it within the 3 routines that use it. This simplifies the code and eliminates the need for special thread locking and unlocking statements. (Thanks to Lars Kr. Lundin for this suggestion). - modifed how the uncompressed size of a gzipped file is computed in the mem_compress_open routine in drvrmem.c. Since gzip only uses 4 bytes in the compressed file header to store the original file size, one may need to apply a modulo 2^32 byte correction in some cases. The logic here was modified to allow for corner cases (e.g., very small files, and when running on 32-bit platforms that do not support files larger than 2^31 bytes in size). - added new public routine to construct a 80 keyword record from the 3 input component strings, i.e, the keyword name string, the value string, and the comment string: fits_make_key/ffmkky. (This was already an undocumented internal routine in previous versions of CFITSIO). - modified ffc2s so that if the input keyword value string is a null string, then it will return a VALUE_UNDEFINED (204) status value. This makes it consistent with the behavior when attempting to read a null keyword (which has no value) as a logical or as a number (which also returns the 204 error). This should only affect cases where the header keyword does not have an equal sign followed by a space character in columns 9 and 10 of the header record. - Changed the "char *" parameter declarations to "const char *" in many of the routines (mainly the routines that modify or update keywords) to avoid compiler warnings or errors from C++ programs that tend to be more rigorous about using "const char *" when appropriate. - added support for caching uncompressed image tiles, so that the tile does not need to be uncompressed again if the application program wants to read more data from the same tile. This required changes to the main FITS file structure that is defined in fitsio.h, as well as changes to imcompress.c. - enhanced the previous modification to drvrfile.c to handle additional user cases when running in the HEASARC's Hera environment. ******************************************************************************** CCFITS ******************************************************************************** - Bug fix to getNamedLines: The 'where' variable should be reset to the top of the HDU prior to doing keyword search. - Replaced the use of the valarray '==' operator with an explicit loop in ColumnVectorData::compare. This was to get around a compiler glitch that appeared on Mac 10.9. ******************************************************************************** HEASP ******************************************************************************** Library for manipulating spectra and responses, including a Python interface. A detailed guide to the library and its use when writing programs or using Python is available in $HEADAS/../heacore/help/headas_guide.pdf. New in this release: - Fixed error if the spectrum is a single channel. Was writing the RATE or COUNTS value into a keyword instead of the column. - Fixed so that a CHANNEL column is always written out even for a single channel file. Also ensured that RATE, COUNTS, STAT_ERR are written as columns in type II files for the case of a single channel where all rows have the same value. Fix for writing E_MIN and E_MAX correctly as columns when there is only one channel. - Added a version of SPcopyKeys which copies from a different named HDU. Also added some handy utility routines to read strings from a text file and convert a string to an integer or real. - Added shiftEnergies method to shift the response in energy space (analogous to shiftChannels). Added versions of the shiftChannels and shiftEnergies methods which take multiple shift specifications at the same time. Added option to shift channels by energy instead of channel number using the channel energy bound information. - Added a substituteRow method to replace the contents of a row. This should be used sparingly since it is inefficient. ******************************************************************************** APE / XPI (Parameter Interface Libraries) ******************************************************************************** - pquery2: Fixed to enable the correct/traditional pquery2 behavior. ******************************************************************************** ATTITUDE ******************************************************************************** - prefilter: Fixed bug that appeared when using new gfortran v4.8.1, in which erroneous output values in the 'COR_SAX' and 'MCILWAIN_L' geomagnetic data columns were generated. ******************************************************************************** FV ******************************************************************************** - Bug fix: Text dump of vector column was changing NULLs to non-zero values. - Updated third-party packages in HEASoft: Tcl/Tk 8.5.13 Itcl 3.4.1 Tix 8.4.3 WCSLIB 4.1.6 - fitsTcl and POW libraries: Applied changes required for use with Tcl 8.5.13, and addressed some compiler warnings. ******************************************************************************** FUTILS ******************************************************************************** - fdump: Add support for 8-byte integer datatype. - fimgstat: Modified to support 3-D and 4-D images if the higher dimensions have length = 1. - fkeyprint: Increase max # of input files to 4096. - fmerge: Allow for longer filenames, and where necessary increase the length of the 'context' string sent to other routines (e.g. fcerr) to handle the longer filenames. - fverify: Fixed bug in computing the location of the data heap in binary tables if the THEAP keyword is used to override the default starting byte of the heap. ******************************************************************************** HEATOOLS ******************************************************************************** - ftdiff: Use TBIT for X type, not TBYTE. - ftimgcalc: Update WCSLIB version to 4.16. http://www.atnf.csiro.au/people/mcalabre/WCS/ - ftmerge: Allow a single input file via the command line. - ftstat: Add support for fixed-length vector columns; display messages notifying user that zero-length vector columns or columns of type TBIT (or TLOGICAL or TSTRING) will not be computed. Update ftstat and fstatistic help files to clarify how they differ in handling vector columns. Allow 3-D and 4-D images, as long as the 3rd and 4th axes have a length = 1. - ftverify: Fixed bug in computing the location of the data heap in binary tables if the THEAP keyword is used to override the default starting byte of the heap. Update WCSLIB version to 4.16. http://www.atnf.csiro.au/people/mcalabre/WCS/ ******************************************************************************** HEAGEN ******************************************************************************** - barycorr: * Add NuSTAR CALDB query capability; * Case of barytime=YES with more than two extensions now works * More descriptive error messages, and less repetitive * Fix bug in handling of RXTE extractor and TIMEZERO keyword - flx2tab: Modified so that the input text file can use tab separated columns. - flx2xsp: Fixed so that the input file columns can be separated by tabs as well as spaces. - rgsrmfsmooth: Update WCSLIB version to 4.16. http://www.atnf.csiro.au/people/mcalabre/WCS/ ******************************************************************************** HEASARC ******************************************************************************** - xy2sky, sky2xy: Allow for RADESYS keyword (FITS v3.0 convention) instead of RADECSYS, and make their presence (and that of EQUINOX) optional rather than generating an error, writing radecsys='' and equinox='0' into the par file if they are not found. ******************************************************************************** XIMAGE ******************************************************************************** - Fixed a bug encountered in reading an event file in which events with null coordinates are retained with incorrect coordinate values. These events are now rejected as they are encountered during the reading. - Update to version 7.1.1 of the Starlink AST library. http://starlink.jach.hawaii.edu/starlink/AST - Changed NSEQ from 4 to 15 inside AST library's RoundFString function to avoid bug that rounds numbers near -9.999 to -100 instead of to -10. - Update Tcl/Tk to 8.5.13. Known issue on some platforms: After using the /XTK plot device, the following message may be displayed upon exit: [XIMAGE> quit X Error of failed request: RenderBadPicture (invalid Picture parameter) Major opcode of failed request: ### (RENDER) Minor opcode of failed request: # (RenderFreePicture) Picture id in failed request: ######### Serial number of failed request: #### Current serial number in output stream: #### ******************************************************************************** XSELECT ******************************************************************************** - Fixed incorrect behavior seen when executing "save all", i.e. prompt about clobbering the output file before prompting for the output filename. - Added entries for NUSTAR to xselect.mdb ******************************************************************************** XSPEC ******************************************************************************** Version 12.8.1: New features: - New models: cpflux - a variant of cflux for photon flux. heilin - Voigt absorption profiles for the HeI series lyman - Voigt absorption profiles for the HI or HeII series zbabs - EUV ISM attenuation - A new statistic, pgstat, has been added for the case of Poisson-distributed data with a Gaussian-distributed background. The whittle statistic can now be used when fitting averaged power density functions by appending an integer (so eg whittle5 is the statistic to use when fitting a pdf constructed by averaging those from 5 observations). - The old CERN Minuit library, which is used for the migrad, minim, monte, and simplex fitting methods and the improve command, has been replaced by the new version. The minim and monte methods are no longer supported and the new version does not include an improve command. The output from the migrad and simplex fitting methods now looks the same as that from the leven method. Note however that the rules for when to write intermediate fit results are not directly comparable so do not provide a measure of the relative speed of the methods. - Fakeit now has a 'nowrite' option to generate fake spectra without producing output files. This is also now available in the multifake.tcl script command. - Parallel processing capability has been added to the steppar command and can be invoked using the parallel command. - Markov Chain Monte Carlo (the chain command) now uses the Goodman-Weare algorithm by default. Previously the default was Metropolis-Hastings. - After a chain run, the best-fit parameters and statistic are now displayed with "chain info", and are available through the "tclout chain" option. - The default atom_db version used in apec models may now be modified with the ATOMDB_VERSION keyword in the user's Xspec.init file. - Steppar now has a 'delta' option for performing grids centered on the best-fit parameters. - The 'setplot delete' option has been enhanced to allow removal of all or a range of commands. - For external programs calling XSPEC, new wrapper functions have been added for retrieving XFLT keywords from data files. - Norm parameters are now set with a default 'soft' upper limit below their 'hard' upper limit. - In PyXspec, the Fit.statMethod and statTest attributes can now be set for individual spectra. Enhancements previously released as patches to 12.8.0: - AtomDB has been upgraded to version 2.0.2. - The tclout 'stat' and 'statmethod' options can now retrieve the test statistic as well as the fit statistic. - The simftest Tcl script command now takes an optional filename argument for output. - Attributes added to PyXspec classes: Xset.parallel, Fit.statTest. All bug fixes to v12.8.0 released as patches are included in v12.8.1. In addition the following problems have been corrected: - The command history file xspec.hty (in the user's ~/.xspec directory) is now updated when exiting XSPEC with the 'quit' command. Previously it was only updated when exiting with 'exit'. - The 'chain' command can now read/write files in ASCII format when running in the default Goodman-Weare mode. Previously this feature was only available for Metropolis-Hastings chains. - Fix to an array access error in the nthcomp model. - PyXspec fix removes error messages generated when accessing response parameters in Python versions 2.6.x. ******************************************************************************** XSTAR ******************************************************************************** Version 2.2.1bn15 - updates since v221bn13 (HEASOFT 6.13) include: - Fixed error which caused spurious features in absorption line profiles: in routine stpcut: dpcrit=1.e-2 --> dpcrit=1.e-6 - Allows density to exceed 1.e+18. This represents some serious approximations, physically: there are various quantities which are tabulated vs. density, and those grids (still) end at 10\^18. For example, the recombination into high n levels for each ion is lumped into one rate, for levels beyond those which are treated spectroscopically. Computationally, the recombination rate into these levels can be written n\_e * alpha\_highn(n\_e, T). So the n\_e which is the argument of the alpha\_highn function still can't go beyond 10\^18. But the n\_e multiplier can be arbitrarily large. Similar comments apply to some other types of rates. - Includes new data on N VI level structure and collisional excitation. ******************************************************************************** EXOSAT ******************************************************************************** - tkexomerge: Invoke "wish" at startup rather than "wish8.0". ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS version 1.2.0 - new software for the NuSTAR mission: * nuattcorr - Correct NuSTAR attitude file * nubackscale - Apply backscale correction to NuSTAR energy spectra * nucalcpha - Correct energy, calculate PHA and assign event grades for NuSTAR event files. * nucalcpi - Calculate PI column values of NuSTAR event files. * nucalcpos - Convert Raw coordinates into Detector coordinates of NuSTAR event files. * nucalcsaa - Calculate SAA passages for NuSTAR * nucoord - Convert Raw coordinates into Detector and Sky coordinates of NuSTAR event files * nuexpomap - Generate exposure maps for NuSTAR event * nufilter - Create a NuSTAR filter file from HK data running 'prefilter' and 'makefilter' * nuflagbad - Flag events for bad pixels in NuSTAR event files * nuflagevt - Flag events according to various cuts criteria in NuSTAR event files * nuhotpix - Search for hot and flickering pixels in NuSTAR event files * nulccorr - Apply livetime correction to NuSTAR light-curves * nulivetime - Apply the dead time correction to the temporal keywords of the NuSTAR event files. * numetrology - Process the metrology data for NuSTAR * numkarf - Generates an ARF file for an input PHA file for NuSTAR * numkrmf - Generates an RMF file for an input spatial region file for NuSTAR * nupipeline - Run in sequence the tasks for NuSTAR data processing * nuproducts - Extract high-level data products from a Level 2 event file for NuSTAR * nuscreen - Generate GTIs and use them together with event properties selection to screen NuSTAR event files * nuskypos - Calculates SKY position of the optical axis, of the aperture stop center and of the DET1 reference pixel for NuSTAR * nuskytodet - Calculates DET1 and DET2 coordinates of a SKY pixel for NuSTAR * nuversion - Report version string for NuSTAR package ******************************************************************************** SUZAKU ******************************************************************************** SUZAKU: - aepipeline, aeattcor2, hxdxb, hxdwampipeline: Fixed deprecated qw( ) syntax in foreach loops. ******************************************************************************** SWIFT ******************************************************************************** BAT: - batcelldetect, batoccultmap: Updated WCSLIB version to 4.16. http://www.atnf.csiro.au/people/mcalabre/WCS/ - batsurvey: By default, prevent operation on data with 20 energy bins instead of normal 80 energy bins. new parameters 'dph_pattern' 'attitude_pattern' 'sao_pattern' 'go_pattern' 'de_pattern' are filename wildcard patterns that give the user control over which files are used for processing. UVOT: - uvotapplywcs: Updated WCSLIB version to 4.16. http://www.atnf.csiro.au/people/mcalabre/WCS/ - uvotdetect: Added a mode that improves source detection in images with few counts: when expopt=EVENTS is specified, an image with discretized counts is passed to SExtractor. - uvotsource, uvotmaghist, uvotproduct, uvotevtlc: Updated the derivation of the rate limit to account for uncertainty in the background. Include the aperture, large scale sensitivity, and detector sensitivity corrections in the upper limit calculations (previously, only coincidence loss was included). Added the CORR_RATE_LIMIT column and derive the MAG_LIM, MAG_HZ_LIM, FLUX_AA_LIM, FLUX_HZ_LIM columns from CORR_RATE_LIMIT instead of COI_RATE_LIMIT. Include the Swift clock correction when converting UTC to MET. - uvotcentroid, uvotgrplot, uvotsequence: PGPLOT-perl module updated to v2.21, ExtUtils-F77 updated to v1.17. Distributed by Karl Glazebrook via http://search.cpan.org/~kgb/. Modified K. Glazebrook's build to allow universal architecture formats of PGPLOT.bundle on Mac OS X. XRT: - xrtcalcpi: Bug fixed handling 'seed' input parameter. - xrtpccorr: Bug fixed. - xrtpipeline: Use of the "pat" attitude file by default. Handle SLEW and SETTLING mode while correcting bias for Photon Counting mode. ******************************************************************************** XTE ******************************************************************************** - pcarsp: - comma-separated list of PCU weights now works properly - exit task if no detector/layers are requested - pcaextspect2: - remove unused and undocumented 'src_pha_file_nodt' and 'bkg_phafile_nodt' parameters, in favor of new 'deadcorrtype' parameter to control how dead-time is calculated - 'filtfile' parameter now accepts @filtfiles.lis form of input; 'filtfile' is only prompted if 'respfile' is not NONE - handle case when final EXPOSURE is zero, new 'phazeroexp' keyword controls what happens in this situation - better parsing of 'pculist' and 'layerlist', including ranges - pcadeadspect2: - new parameter 'deadcorrtype' allows to correct for LIVE- or ON-time - output keyword is now DEADAPP instead of DEADCORR for compatibility - new parameters 'gtiarray' 'lcbinarray' 'maxmiss' 'mfracexp' to handle all possible time binnings - pcaextlc2 (NEW TASK): extracts Standard2 light curve with corrections - pcaprepobsid (NEW TASK): prepares an entire RXTE observation for PCA analysis - pcamergeobsids (NEW TASK): merges individual observations into a single data set - pcaprepfile2: small cleanups - saextrct: version 4.3a: Lift formal limit on number of input files to 999 files instead of 100. ******************************************************************************** GLOBAL CHANGES / CONFIGURATION ******************************************************************************** - Issue a warning on Darwin if Perl is not co-located with C since XCode C is not likely to play nice with non-XCode Perl. - hwrap: New utility to create a wrapper environment for HEASOFT tasks to prevent clashes with other software packages (e.g. XMM-SAS, CIAO). See http://heasarc.gsfc.nasa.gov/lheasoft/hwrap.html for more information. - All Perl scripts: Replace "require getopt|s.pl" with "use Getopt::Std", as getopt.pl and getopts.pl are no longer distributed with the latest Perl (~v5.15.x - 5.16.x). Replace "&Getopt|s()" calls with getopt|s(). - Older Fortran-based ftools: change all udmget arrays MEMB/S/I/L/R/D/X of size (1) to size (100) to get past new aggressive optimization in gfortran 4.8.x. The new compiler decides that e.g. MEMI(1) can never have more than one element so when doing loop unrolling optimization appears to (incorrectly) remove the loop over its elements. - Add checks for -fno-automatic (gfortran) or -fstatic (g95) compiler flags to protect un-SAVEd variables in Fortran. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.15 November 25, 2013 ******************************************************************************** The HEASoft 6.15 release is primarily driven by updates to the NuSTAR software, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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. ******************************************************************************** CCFITS ******************************************************************************** - Added read/write capability for images of LONGLONG type. - Added a missing 'break' statement to 'case Tlonglong' in the FITSType2String function. ******************************************************************************** HEASP ******************************************************************************** Library for manipulating spectra and responses, including a Python interface. A detailed guide to the library and its use when writing programs or using Python is available in $HEADAS/../heacore/help/headas_guide.pdf. - (rmf.cxx) Do a reverseRows if necessary in convertUnits. Removed the switch of ChannelLowEnergy and ChannelHighEnergy since this should not be necessary as long as the input is correct. - Added trap for wrong keyword value type in the keyword methods. - Added a routine to write the CREATOR keyword in a file. - (ARF) Added methods to rebin and multiply by a constant. - (RMF) Added methods to multiply by a constant. - (PHA) Added method to select a subset of channels. Also, added a workaround for CCfits currently not automatically converting when reading a real as a string. - Make sure that any carriage-return or new-line is removed when reading from a text file. - Fixed bug in rebinning ARFs. - Python module: Added rebin and multiply by a constant for arf. ******************************************************************************** FV ******************************************************************************** - Fix logic that generated large temporary data file when displaying vector columns with ds9 (Table.tcl). - Correct the check for number of parameters to translatedKeywords to 7 (fitsTcl library). ******************************************************************************** FUTILS ******************************************************************************** - fverify: Changes to ignore blank keywords immediately preceding the END keyword, and added support for large files where the size of the heap, as given by the PCOUNT keyword, is greater than the 2.1 GB 32-bit integer limit. ******************************************************************************** HEATOOLS ******************************************************************************** - ftverify: Changes to ignore blank keywords immediately preceding the END keyword, and added support for large files where the size of the heap, as given by the PCOUNT keyword, is greater than the 2.1 GB 32-bit integer limit. ******************************************************************************** HEAGEN ******************************************************************************** HEAGEN: - flx2tab: Added support for energies in reverse order in input file. Added regression test case for energies in reverse order. Improved checking of the input files. - flx2xsp: Now works with input energies in decreasing order and tests for scrambled order. Added new regression tests. Improved checking of the input file to catch problems such as blank lines. The input file can now contain discontinuous energy bins. - sprbnarf: Replaced C code with C++ for simplicity. - refdata/swco.dat: new version (v096) - SimpleFITS.pm: writecol() now accepts "nulval" parameter; writecol() now accepts "grow" parameter to grow table to match data size. parsekeys() now returns hash ref instead of array. insertcol() has been modified to use this new return value. ******************************************************************************** HEASARC ******************************************************************************** - nh: Mystery seg fault on Fedora 19 (ftghpr returns naxis=0) resolved by turning down compiler optimization. ******************************************************************************** XSELECT ******************************************************************************** XSELECT: - Fix for bug when running saextrct with no phasefile set. - Fix for seg faults when running "save" commands. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.15 includes Xspec 12.8.1g (patches a-g): http://heasarc.gsfc.nasa.gov/xanadu/xspec/issues/issues.html 12.8.1a: The optxagnf additive model component causes a crash when loaded. 12.8.1b: When loading a model explicity of the form: M1((M2(A1+A2)+A3)M3+A4) (that is, doubly-nested component groups AND with a multiplicative component (M3) on the right of the outer group), the model components will be displayed out of order. 12.8.1c: This adds a new feature to PyXspec: a new attribute to the Fit object for retrieving the test statistic value, Fit.testStatistic. 12.8.1d: When a new best fit is found during a steppar run and the user agrees to run fit again, a bug may cause the new fit to start from a bad position in parameter space. 12.8.1e: Bug fix to the eqpair model for the case of a negative kT_bb parameter. 12.8.1f: For PyXspec running on OS X Mavericks, this fixes a bug which occurs when assigning or retrieving a correction file to/from a Spectrum object. 12.8.1g: This adds Mac-specific compiler macros to ease the building of PyXspec with Xcode 5. ******************************************************************************** XSTAR ******************************************************************************** Version 2.2.1bn16 - updates since v221bn15 (HEASOFT 6.14) include: - Change to routine readtbl to expand the temporary array used for reading integers. This caused erroneous input in version 221bn15. This affected only 64-bit PC Linux installations. The fix was applied to HEASoft 6.14 source code downloads on 24 August 2013 and is included here. - Fix to bug which affected printing of atomic data for lines coming from Fe UTA. Bug did not affect calculated quantities. - Change to xstar.f to allow printing of line data when lpri=2. ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS version 1.3.0: Major changes introduced in this version: - numetrology: Addition of the new input parameter psdcal, with default value yes, to optionally (if set to no) disable the linearization of the PSD X/Y coordinates. - nuscreen: for SCIENCE observing mode 1) introduction of a new run of the FTOOL maketime to calculate the ONTIME value during which the PSD coordinates are outside the CALDB metgridfile calibrated grid and 2) addition of a new keyword named NUPSDOUT to the output event file storing the ONTIME calculated value. See the NuSTARDAS users guide sections 4.5 and 6.3. - numkarf: 0) for extended sources (parameter extended=yes) the input parameters grflag and psfflag are automatically set to no; 1) introduction of an energy dependent PSF correction; 2) fixed bug for small values of the input parameter boxsize (extended source case); 3) changed the call to the nuexpomap module. - nuexpomap: introduction of a new algorithm for inclusion of bad/hot pixels in exposure maps. - nulccorr: 1) correction for PSF losses using a CALDB PSF file corresponding to the value of the energy input parameter; 2) changed the call to the nuexpomap module. - nubackscale: changed the call to the nuexpomap module; - nupipeline: 1) addition of the new input parameter psdcal; 2) modified the call to the module numetrology; 3) addition of the ONTIME value during which the PSD coordinates are outside the CALDB metgridfile in the STDOUT final report; modified call to modules nuexpomap and nuproducts to accomodate above changes. - nuproducts: modified the call to the modules nulccorr, numkarf and nubackscale. Summary of changes: numetrology: Allows the pipeline to be run with the calibration of the PSDs off. This prevents data from time periods when the PSDs are out-of-range from being lost in the cleaned event data (for some observations this may be result in as much as a 10-20% increase in exposure). The effect on the event reconstruction varies source-by-source, but the reconstruction will in general, be worse with the calibration turned off. Turning off the PSD calibration may also affect the absolute position reconstruction. nuscreen: In the default setting the pipeline now appends a keyword to the cleaned event files, "NUPSDOUT", that contains the number of seconds lost to the PSD out-of-range filter. If this is a large fraction of the total observation, then the user may want to turn off the PDS calibration and re-run the pipeline. See the NuSTARDAS users guide section 6.3. numkarf: (0) Fixed a bug where the ghost-ray and PSF corrections defaulted to "ON" even for extended sources. These flags correctly default to "OFF" when extended=YES. (1) Includes the effect of the energy-dependent PSF when psfflag=YES. This effect is on the ~5% and primarily acts below 10 keV for sources extracted using small (<<30 arcsecond radius) extraction regions. (2) Bug fix. (3) Keyword maintenance. nuexpomap: Improved the algorithm for recomputing exposure maps. Pixels that are disabled (either in software on by the user via the userbadpix file) are now properly vetoed in the exposure map. nulccorr: Applies energy-dependent PSF corrections as per numkarf. ******************************************************************************** SUZAKU ******************************************************************************** SUZAKU: - Bug fix: fault of an variable initialization and unintended variable substitutions inside if()s. - Minor changes to fix compilation errors under XCode 5 on Mac OS X. ******************************************************************************** SWIFT ******************************************************************************** BAT: - batsurvey: Bug fix to report accurate exit status. ******************************************************************************** XTE ******************************************************************************** - pcadeadcalc2: Make sure the input file is a Standard2 file. Fix bug in computation of NUM_PCU_ON (previously was computing NUM_PCU_OFF, now fixed). - pcaextlc2: Back off on some overzealous error checking: was rejecting X1L style of layer listing, now fixed; die if the user enters an invalid layer specification rather than continuing silently. - pcaextspect2: Back off on some overzealous error checking: was rejecting X1L style of layer listing, now fixed ; die if the user enters an invalid layer specification rather than continuing silently ; do not check filter filter file existence if no response file is requested ; handle X1L - > L1 and X1R - > R1 transformation when calling 'pcarsp'. ******************************************************************************** Configuration / Third-party Packages ******************************************************************************** - Minor updates to code and configuration were made to the v6.14 source code downloads to ensure support of the XCode 5 compiler suite on Mac OS X, and are included here. - CFITSIO Perl Module (Astro-FITS-CFITSIO): updated to v1.10, with additional patch applied to add fits_write_colnull() [ffpcn]. - readline: Applied official patches readline62-001/004 and extended configure switches to Darwin 13.x. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.15.1 January 28, 2014 ******************************************************************************** The HEASoft 6.15.1 release is driven by updates to the NuSTAR and Swift/XRT data analysis software. ******************************************************************************** HEAGEN ******************************************************************************** - barycorr: Updated keywords were {RA,DEC}_NOM, now changed to {RA,DEC}_OBJ to avoid interference with operation of Swift and NuSTAR software; no known impact to RXTE or Chandra; add new keywords TREFPOS & TREFDIR which adhere to new Rots et al. draft standard for timing keywords. ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS version 1.3.1: Major changes introduced in this version: - nuexpomap: addition of the keyword 'PIXBIN' and 'PERCENT' to the header of the output sky exposure maps. - nulccorr: update of the value of the 'DEADAPP' keyword to 'True' in the output light-curve - nupipeline: 1) addition of the new input parameters 'barycorr', 'clockfile', 'srcra_barycorr' and 'srcdec_barycorr'; 2) modified the call to the module 'nuproducts' to enable the barycenter correction - nuproducts: 1) addition of the new input parameter 'barycorr' to optionally apply the barycenter correction to output files with internal runs of the multi-mission FTOOL 'barycorr'; 2) addition of the energy filtering of the output sky images through the input parameters 'pilow' and 'pihigh'. Summary of changes: * nupipeline/nuproducts: Allows the pipeline to produce barycenter corrected event files and lightcurves via a new keyword passed to the "nuproducts" script. The user may set the RA/DEC of the object using the 'srcra_barycorr' and 'srcdec_barycorr' keywords to nupipeline and/or nuproducts. Output sky images are now filtered using the "pilow" and "pihigh" keywords. Previously only the lightcurve was filtered and the images produced by nupipeline/nuproducts were always "full band" images and the user was required to use to XSELECT or "extractor" to produced energy-band images. This has been changed for simplicity. * nulccorr: Some lightcurve analysis suites (e.g. lcurve) read the "DEADAPP" keyword to determine whether or not the deadtime correction has been applied. Previously, the "DEADAPP" keyword had not been set, which could result in livetime corrections being applied twice (once in the bin-by-bin by nulccorr and then the average livetime correction across the lightcurve by lcurve or other XRONOS FTOOLs). DEADAPP is now correctly set if nulccorr has been called on a lightcurve and livetime corrections have been applied. * nuexpomap: The "PIXBIN and "PERCENT" option keywords have been added to the header of the exposure maps to improve self-documentation. ******************************************************************************** SWIFT ******************************************************************************** XRTDAS_v292: Major Changes to tasks: * xrttam - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrtfilter - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrttdrss2 - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrtpccorr - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrthkproc - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrtlccorr - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrtexpomap - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrttimetag - Added check of the 'ATTFLAG' keyword of the input attitude file. * xrtpipeline - Added check of the 'ATTFLAG' keyword of the input attitude file. - Use of the "pat" attitude file by default for data in SETTLING mode. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.16 July 2, 2014 ******************************************************************************** The HEASoft 6.16 release is primarily driven by updates to the NuSTAR and Swift/XRT software, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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 3.37: - Added configure options to support reading bzip2 compressed FITS files. This depends on having the bzlib library installed on the local machine. Patch submitted by Dustin Lang. - Replaced the random Gaussian and Poissonian distribution functions with new code written by Craig Markwardt derived from public domain C++ functions written by John D Cook. - Patched fitsio2.h to support CFITSIO on AArch64 (64-bit ARM) architecture (both big and little endian). Supplied by Marcin Juszkiewicz and Sergio Pascual Ramirez, with further update by Michel Normand. - Fixed bug in fpackutil.c that caused fpack to exit prematurely if the FZALGOR directive keyword was present in the HDU header. - Version 3.36: - Small change to the fileseek function in drvrfile.c to support large files > 2 GB when building CFITSIO with MinGW on Windows. - reorganized the CFITSIO code directory structure; added a 'docs' subdirectory for all the documentation, and a 'zlib' directory for the zlib/gzip file compression code. - made major changes to the compression code for FITS binary table to support all types of columns, including variable-length arrays. This code is mainly used via the fpack and funpack programs. - increased the number of FITS files that can be opened as one time to 1000, as defined by NMAXFILES in fitsio2.h. - made small configuration changes to configure.in, configure, fitsio.h, and drvrfile.c to support large files (64-bit file offsets} when using the mingw-w64 compiler (provided by Benjamin Gilbert). - made small change to fits_delete_file to more completely ignore any non-zero input status value. - fixed a logic error in a 'if' test when parsing a keyword name in the ngp_keyword_is_write function in grparser.c - when specifying the image compression parameters as part of the compressed image file name (using the "[compress]" qualifier after the name of the file), the quantization level value, if specified, was not being recognized by the CFITSIO compression routines. The image would always be compressed with the default quantization level of 4.0, regardless of what was specified. This affected the imcopy program, and potentially other user-generated application programs that used this method to specify the compression parameters. This bug did not affect fpack or funpack. This was fixed in the imcomp_get_compressed_image_par routine in the imcompress.c file. - defined a new CFITS_API macro in fitsio.h which is used to export the public symbols when building CFITSIO on Windows systems with CMake. This works in conjunction with the new Windows CMake build procedure that is described in the README.win32 file. This complete revamping of the way CFITSIO is built under Windows now supports building 64-bit versions of the library. Thanks to Daniel Kaneider (Luminance HDR Team) for providing these new CMake build procedures. - modified the way that the low-level file_create routine works when running in the Hera environment to ensure that the FITS file that is created is within the allow user data disk area. - modified fits_get_compression_type so that it does not return an error if the HDU is a normal FITS IMAGE extension, and is not a tile-compressed image. - modified the low-level ffgcl* and ffpcl* routines to ensure that they never try ro read or write more than 2**31 bytes from disk at one time, as might happen with very large images, to avoid integer overflow errors. - modified Makefile.in so that doing 'make distclean' does not delete new config.sub and config.guess files that were recently added. - adopted a patch from Debian in zcompress.c to "define" the values of GZBUFSIZE and BUFFINCR, instead of exporting the symbols as 'int's. ******************************************************************************** CCFITS ******************************************************************************** - Added proper handling of 'D' exponent notation when reading in keyword values of type float or complex. This is allowed by the FITS standard, but the C++ stringstream conversion operator was not recognizing it. This caused value to be truncated at the 'D' for floats, and to be ignored altogether for complex. The change was made entirely in the parseRecord() function. - CCFITS: In Column::setLimits, removed the dynamic allocation of the static variable arrays. These led to small memory leaks as they are never freed. - Removed vestigal code file NewColumn.h. ******************************************************************************** HEASP ******************************************************************************** - Fixed error when converting flux units. - Fixed problems when creating an RMF with zero channel groups for at least one energy and one channel group for all the rest. - Added an overloaded version of rmf::RandomChannel which takes arrays of energies and number of photons (for each energy). Added a C wrapper called RandomChannelMultiEnergies to Cheasp.h and Cwrappers.cxx. Fixed missing random number initialization in RandomChannels. - Added code to all heasp destructors to clear vectors to avoid memory leaks. - Added a routine, SPmatchString, to SPutils.cxx to do partial string matches to a vector of strings. - Just for completeness added an rmf::uncompress method. - Python module: New source code generated using swig 3.0.0 which gets past compile errors on Mac OS X 10.9 (Mavericks). - Fixed an error in ARFobjectToStruct which wrote the high energies into the effective area array. - Added ReadRMF and WriteRMF wrappers to grab or write the matrix and ebounds data at the same time. - Fixed bug which causes a seg fault when reading a pha file with no statistical errors. ******************************************************************************** CALTOOLS ******************************************************************************** - genrsp: Ensured that E_MIN is always <= E_MAX in the EBOUNDS extension. This was not the case when creating grating spectra and could be interpreted as violating the response matrix standard. ******************************************************************************** FIMAGE ******************************************************************************** - fimgmerge: Fixed strcpy of overlapping strings which aborts on Macs. Raised arbitrary maximum number of input files to 999. ******************************************************************************** FUTILS ******************************************************************************** - ftverify: Squashed erroneous warning messages similar to "CRPIX3A: index 3 is not in range 1-2 (NAXIS)". ******************************************************************************** HEAGEN ******************************************************************************** - flx2tab: The redshift parameter was being ignored. Fixed bug when reading parameter info file. ******************************************************************************** HEASARC ******************************************************************************** - addspec: Improved diagnostic messages. ******************************************************************************** HEATOOLS ******************************************************************************** - ftdiff: Do not perform numerical comparisons of TFORM or TDISP keyword values. Allow for longer file paths/names. - ftverify: Squashed erroneous warning messages similar to "CRPIX3A: index 3 is not in range 1-2 (NAXIS)". ******************************************************************************** XIMAGE ******************************************************************************** - Fixed bug in the AST library which caused a crash when loading an image file without world coordinates. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.16 includes Xspec v12.8.2: http://heasarc.gsfc.nasa.gov/xanadu/xspec/issues/issues.html New features: - The code underlying the NEI models has been rewritten to accommodate the new AtomDB 3.0 files, the beta version of which are included as the default when using any of the NEI models. Older versions can be recovered using xset NEIVERS. The CEI models (apec etc) use some of the same code but there should be no change in their behaviour except for a slight speed-up. - New models: agauss - Gaussian model with units in Angstrom and a gaussian shape in wavelength space. nsx - Neutron star non-magnetic atmosphere model from Wynn Ho and collaborators. nsmaxg - Neutron star magnetic atmosphere model. rnei - NEI recombination model assuming an initial temperature vrnei - rnei with variable abundances for the common elements vvrnei - rnei with variable abundances for all elements (Z<=30). zagauss - The agauss model with a redshift parameter. - The goodness command has added options fit|nofit. The fit option runs a fit on each simulation before calculating the test statistic. - The cstat fit statistic can be modified by appending an integer eg statistic cstat5. In this case the statistic will be evaluated as if the group min N had been used in grppha. This is not as efficient because the rebinning has to be done every statistic evaluation however it is usual for testing using simulations. - The 'model' command now checks that parameters are all within a reasonable order of magnitude (~1e10) of each other, and issues a warning if they are not. - Improved the handling of new-best-fit cases when running the 'error' command on parallel processes. The global new-best-fit is now automatically retained. Previously the user was prompted to re-run 'error' in a single process. - Models can now store (keyword,value) pairs using loadDbValue (C++) or PDBVAL (Fortran). These values can be recovered using the tclout(r) modkeyval option. This provides a way to get internal information from the last invocation of a model. - There is a manual XSFunctions_guide.pdf in Xspec/src/help describing some of the C++ classes used in the XSFunctions library. This is intended to make it easier to use these classes in other models. Enhancements previously released as patches to 12.8.1: - PyXspec: added Fit.testStatistic attribute for retrieving the test statistic value from the most recent fit. - PyXspec: added compiler macros for switching to include paths when building on Mac platforms. All bug fixes to v12.8.1 released as patches are included in v12.8.2. In addition the following problems have been corrected: - Fix for a particular case of non-associative expression evaluation. Models of the form C((M1*A)M2) or C(M1*A)M2, where C is a convolution component, were being wrongly evaluated as (C(M1*A))*M2. - For users with external programs linking to the XSPEC model library, the FNINIT function now properly initializes the AtomDB version to v2.0.2. - Fix for an 'ignore' command syntax evaluation that was causing a crash on OS X Mavericks. ******************************************************************************** XSTAR ******************************************************************************** Version 2.2.1bn21 - updates since v221bn16 (HEASOFT 6.15) include: - v2.2.1bn21 (May 2014): Fix to an error in implementation of Bryans collisional ionization rates. Fix to an error in inclusion of turbulence in implementation of iron M-shell UTA line absorption. - v2.2.1bn20 (Mar. 2014): Fix to a bug which caused the wrong damping value to be used in some cases. This occured for valence shell lines, for which the damping should be just due to the natural radiative lifetime, but for which inner shell Auger damped lines also exist for the same ions. In this case, the widths for the latter lines were incorrectly used instead of the former. - v2.2.1bn19 (Mar. 2014): Fix to bug which led to incorrect f value use for iron UTA lines. Fix errors to routine binemis and linopac associated with attempt to make routines faster: now, always use constant stepsize for internal calculation of line profile. Change to true anders and grevesse abundances - v2.2.1bn18 (Jan. 2014): New atomic data for K shell absorption by neutral and once- and twice-ionized stages of Ne and Mg from Gorczyca. Fix errors in the routine binemis which puts out binned emission lines. These errors led to spurious features in models with very high spectral resolution. Change to the value of the constant hc used in conversion from ev to A and back, to reflect more accurate values for constants. Old value was 12398.54, new value is 12398.41. Also change to Rydberg constant; old value was 13.598, new value is 13.605. Adoption of consistent value of proton thermal speed as 1.29e+6 cm/s at 10^4K. Adoption of routine which calculates photoionization integrals (phint53) which uses interpolation and smoothing. Inclusion of code for calculating aped rates for collisional excitation (not yet fully implemented). Inclusion of Bryans rates for collisional ionization. Added feature which allows an array of densities to be read in. This is described in the chapter on inputs. It requires that the 'radexp' input variable be set to a number more negative than -100. Then ordered pairs of (radius, density) are read in from a file called 'density.dat'. Reading continues until the end of the file is reached. The density and radius values override the values derived from the ordinary input parameters. But execution will stop if other ending criteria are satisfied, i.e. if the model column density exceeds the input value, or the electron fraction falls below the specified minimum. The code will stop with an error if the density.dat file does not exist, or if the radius values are not monotonically increasing. Another new feature allows reading in of table spectra in units of log10(F_e). This requires that the spectrum_units input parameter be set to 2. - v2.2.1bn17 (Dec. 2013): Make calculation of photoionization related quantities modal, using lfpi: 1: total pi only; 2: pi + rec rates only; 3: opacities and emissivities Also make h-c calculation use total rates add special funcsyn, func3p and heatf for calculations of spectral quantities. Add profile calculation (linopac) inside of ucalc when lfpi=3; take out profile calculation from stpcut. This facilitates calculation of continuum photoexcitation (which is not yet included). Change i/o of step quantities; now includes populations, total emissivities and opacities, line emissivities,... Also change savd, unsavd. Also change name of step quantities: xoN...M.fits where N=1,2,3,4 for various quantities and M=pass number. Add column, electron fraction, density as keywords in step files. Add comments in pprint, unify code to use the same statements when stepping thru each physical quantity: levels, lines, all data, etc. Move search for auger width to new rotuine deleafnd ******************************************************************************** NUSTAR ******************************************************************************** - NuSTARDAS v1.4.1: Major changes introduced in this version: * nuproducts: 1) Modification of the internal run of the FTOOL 'grppha' to define a PI energy range by using two new input parameters 'grppibadlow' (replacing 'grppibad') and 'grppibadhigh'; 2) Addition of the new input parameter 'usrgtibarycorr' to regulate the barycenter correction of the optional input user GTI file ('usrgtifile'). * nupipeline: 1) Modification of the call to the 'nuproducts' module; 2) Addition of the new input parameter 'productsgtibarycorr' to regulate the barycenter correction of the optional input user GTI file ('productsgtifile') for spectrum and light curve extraction. Summary of changes: - nuproducts (grppha): Improvements to the user interface for nuproducts allowing the user to automatically apply grppha corrections to the output spectrum. Default values for the low/high bounds of "bad" channels in the grppha call are at 3 and 79 keV, which allows users to "ignore bad" in XSPEC to ignore data outside of the usable science range for NuSTAR. The user accepts responsibility for the effect of binning the data; we encourage the users to explore the literature on binning and the impacts of various fit parameters before using grppha. - nuproducts (barycorr): Improvement to the user interface for nuproducts allowing the user to specific a usrgti file in barycentric time (e.g. for individual pulses or bursts in a pulsar). By default, the pipeline assumes that usrgtis are given in NuSTAR-epoch time and are barycenter corrected. NuSTARDAS v1.4.0: - Major changes introduced in this version: * nuexpomap: 1) addition of a new parameter named 'indet2instrfile' to allow the generation of sky exposure map starting from a DET2 instrument map; 2) algorithm optimization for execution time reduction; * nubackscale: addition of a new parameter named 'inexpomapfile' to provide in input a sky exposure map. This change allows to skip the internal generation of exposure maps and reduces the task execution time; * nulccorr: addition of two new parameters named 'inskyinstrfile' and 'inaspecthistofile' to provide in input a sky instrument map and the associated aspect histogram file. This change allows to skip the internal generation of sky instrument maps and reduces the task execution time; * numkarf: addition of a new parameter named 'inexpomapfile' to provide in input a sky exposure map in the case of extended sources (parameter 'extended=yes'). This change allows to skip the internal generation of exposure maps and reduces the task execution time; * nuproducts: 1) addition of the new input parameter 'rungrppha' to group the source energy spectrum through an internal run of the FTOOL 'grppha'; 2) addition of an internal run of the 'nuexpomap' module and modification of the calls to the 'nubackscale', 'nulccorr' and 'numkarf' modules; * nucalcpi: modification of the algorithm for GRADE 0 and GRADE 9-20 events; * nupipeline: 1) handling of compressed TLE files in input; 2) syntax modification to support latest Perl versions. Summary of changes: - nuexpomap/nubackscale/nulccorr/numkarf/nuproducts: Performance improvement to avoid multiple runs of nuexpomap. The software now allows the user to store a single DET2 instrument map file (through the det2instrfile output keyword call to nuexpomap) and reuse this file for future runs, including changes to the vignetting energy, etc. See section 4.9 of the NuSTARDAS User's Guide for more details and syntax. This has resulted in a dramatic speed increase for nuproducts runs, with decreases in run times of 20 to 80%, depending on the exact parameters. - nucalcpi: Slight change in the reconstruction algorithm for how events with Grade 0 and Grades 9 through 20 are handled in the software. This change allows for fine tuning of the GRADE_GAIN and GRADE_OFFSET columns in the CLC CALDB file. There are associated updates to the CLC CALDB files (see CALDB release notes) which marginally improve the gain correction for all events. ******************************************************************************** SWIFT ******************************************************************************** BAT: - bateconvert, batmasktaglc: Bug fix for closing file more than once (e.g. under OS X 10.9 x86_64). UVOT: - uvotattcorr: Apply delta quaternions for entire duration of exposure instead of at a single epoch. - uvotimage: Work-around rare invalid values in UVOT event file WINDOW extension. - uvotproduct: Since there are rare but intermittent issues using ds9 to retrieve DSS images, try the SAO server if the STSci server fails to provide an image. XRT: - ISAC Build 30 Software Release - XRTDAS_v300: * xrtexpomap - Replaced 'nframe' input parameter with 'pcnframe' and 'wtnframe' - Update 'DATE-OBS' keyword of the output exposure map file * xrtlccorr - Modified default naming convention of output instrument map file * xrtmkarf - Fixed memory bug for the 64-bit architecture on Mac OS X 10.9.x. * xrtproducts - Added optional extraction of background products for PC and WT mode - Added optional correction of the source light curve - Modified default naming convention of some output files * xrtpipeline - Added 'extractproducts' input parameter - Replaced 'exponframe' input parameter with 'expopcnframe' and 'expowtnframe' - Updated xrtproducts task call - Removed use of deprecated 'define' PERL function ******************************************************************************** XTE ******************************************************************************** - fcollect: Fixed strcpy bug with overlapping memory. - seextrct: Update to 4.3a; Increased maximum number of input files in SEEXTRCT from 100 to 999. This is to match a similar change in SAEXTRCT v4.3a made previously. ******************************************************************************** Configuration / Third-party Packages ******************************************************************************** - Macs: Lift restriction on 64-bit builds on Mac OS X when heacore Perl modules are needed in the build. Default Mac build architecture is now 64-bit; 32-bit builds are still available by configuring with --enable-mac_32bit_build(=yes). - readline: Update to v6.3 and patches readline63-001 to 005. - Tcl/Tk: Update to v8.5.15. Tk configuration: Disable use of freetype/fontconfig/xft in Tk. In some Mac X11 installations, Tk's configure successfully finds the routine 'XftFontOpen' linking with -lXft and proceeds to compile an alternate source code file (tkUnixRFont.c instead of tkUnixFont.c) that leads to build errors. - wcslib: Update to WCSLIB version 4.20. http://www.atnf.csiro.au/people/mcalabre/WCS/ - XPA (FV/Hera): Update to XPA v2.1.15. http://hea-www.harvard.edu/saord/xpa/ - Fix deprecated use of 'defined' in Perl arrays (various tasks). -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.17 July 29, 2015 ******************************************************************************** The HEASoft 6.17 release is primarily driven by updates to the NuSTAR and Swift/XRT software, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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 ******************************************************************************** - Updates beyond version 3.37: - Added test to see if HAVE_UNISTD_H is defined, as a condition for including unistd.h in drvrfile.c drvrnet.c, drvrsmem.c, and group.c. - Fixed bug when reading tile-compressed images that were compressed with the IRAF PLIO algorithm. This bug did not affect fpack or funpack, but other software that reads the compressed image could be affected. The bug would cause the data values to be offset by 32768 from the actual pixel values. ******************************************************************************** CCFITS ******************************************************************************** - Bug fix to ImageExt::put (accessed through HDU's "operator<<"). It was not showing output for the highest numbered axis. - Converted 'delete' calls to 'free()' in KeywordCreator's getLongValueString function. This removes memory mismatch errors in valgrind output. ******************************************************************************** HEASP ******************************************************************************** - Fixed bug in arf::write which incorrectly gave the SPECRESP column the name EFFAREA. - Check for multiple SPECTRUM extensions when reading a pha file. - Added a routine to return the extensions with type SPECTRUM in a file. Also fixed a bug that PHAnumber was not being used in all relevant cases. ******************************************************************************** FHELP ******************************************************************************** - fhelp now utilizes a parameter file to allow the setting of display preferences. For example, setting text=yes (the default) will force all help files (.txt or .html) to be displayed in the current terminal in ASCII text format. Setting text=no will allow html files to be displayed in your current browser (if the 'online' or 'local' parameter is set to 'yes'). The lynx linemode browser is now distributed and built as part of HEASoft to ensure that .html files can be parsed as text. Run "fhelp -h" for more information. ******************************************************************************** ATTITUDE ******************************************************************************** - prefilter (geocal library): Update IGRF model to 2015 (version 12). The years touched are 2005-2010 (via derivative term); 2010 (changed from provisional to definitive); 2015 (provisional); 2015-2020 (provisional derivative extrapolation); overall changes are small. ******************************************************************************** CALTOOLS ******************************************************************************** - addarf: Increased length of string for input ARFs to 5,000 characters and fixed compiler warnings. - cmprmf: Fixed so that the NUMELT and NUMGRP keywords are updated. This bug was generating errors (e.g. "Group Array dimension is too small") in downstream tools (i.e. marfrmf). - genrsp: Fixed bug in the case that the response energies extend beyond the channel energies. Any response from the energies outside the channel energy range was not being calculated. ******************************************************************************** FUTILS ******************************************************************************** - flist: Fixed output format (to integer instead of float) for unsigned integer columns with scaling keywords set. - fverify: When checking TDISPn keywords, allow TFORMn='K' when TDISPn has format F, E, or D. ******************************************************************************** HEAGEN ******************************************************************************** - swco.dat: Valid through: 2015Jul06 at 08:24:05.921UTC. ******************************************************************************** HEASARC ******************************************************************************** - addspec: Added single quotes around filenames in the expression passed to mathpha. This allows the filename to include a "/" without mathpha interpreting it as a division. - extractor: Fixed a misleading error message when reading ROSAT data which has a non-standard name for the extension containing the events. ******************************************************************************** HEATOOLS ******************************************************************************** - ftcreate: For on/off bits datatype, use strtoul to read the input data. Using the previous hex format specifier ('%lx') to sscanf the data string wasn't suitable, since it can misinterpret non-hex formats. - ftdiff: If hdumaxdiff <=0, ignore hdumaxdiff and report all differences. - fthedit: For "single keyword" mode, parse the input 'keyword=value' card string to return a properly formatted 80-char string for inserting the new record. - ftverify: When checking TDISPn keywords, allow TFORMn='K' when TDISPn has format F, E, or D. ******************************************************************************** XSELECT ******************************************************************************** - Added a 'history' command to toggle writing of the history file (xselect.hty) on or off, to avoid problems when running multiple instances of xselect. Also allow for an alternate location for xselect.hty to be written, specified via the XSEL_HISTORY_DIR environment variable. - xselect.mdb: Added NICER entries and updated NUSTAR entry for mkf name. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.17 includes Xspec v12.9.0: http://heasarc.gsfc.nasa.gov/xanadu/xspec/issues/issues.html New features: - Mix model components are no longer heavily restricted in their usage. Previously mix components could only be placed at the start of a model expression, to operate on the results of the rest of the expression. Now they can be inserted throughout the expression in the same manner as convolution components. Models with mix components can also be assigned to source numbers other than 1. A corollary of this is that a mix model is no longer required to operate on all currently loaded spectra. To allow more than one mix model at a time the syntax for XFLT#### keywords has been generalized. These keywords are now strings of form "key: value" with xspec maintaining an internal database of key, value pairs which mixing model code can access. Backward compatibility with the old version of XFLT#### containing only a value is maintained. - Expanded the types of expressions allowed in parameter linking. It can now handle the same mathematical functionality supported in mdefine equations. Related to this, parameters can also be specified as 'p#' and 'modelName:p#' in link expressions, as well as the old '#' and 'modelName:#'. The link expressions are now displayed using the 'p#' format. - The output of the 'plot margin' command is now independent of the grid size. There is a new 'plot integprob' command which also must be run after the 'margin' command and which plots the integrated probability within the contours shown. - The data and back commands now handle files with multiple SPECTRUM extensions. There are a number of ways of specifying a particular extension: filename{N} will use the Nth SPECTRUM extension; filename{SPECTRUM2} will look for an extension called SPECTRUM2; filename{back} will use the first SPECTRUM extension with the HDUCLAS2 keyword set to 'BKG'; filename{name=value} will look for a SPECTRUM extension with keyword name set to value (in this case there must be no spaces within the {}). If the BACKFILE keyword in a source filename is set to the filename itself then XSPEC will get the background from the extension with HDUCLAS2 set to 'BKG' (this, finally, makes Chandra level 3 files work seemlessly in XSPEC). - The 'error' command now has a 'nonew' option. This determines whether to repeat the calculation when a new minimum is found. Previously it was relying on the 'query' setting to make this decision. - Added grey-scale image as background to to contour plots. 'dem' plots now display a histogram. The new 'eqw' plot option shows the distribution of equivalent width values after running the eqwidth command with the err option. - New model 'nlapec'. There is also an APECNOLINES xset option which will turn off lines for all apec models. - The models using AtomDB files now require the line files to be sorted in increasing order of energy within each element and ion. This allows a speed-up in the model calculation. - Replaced the rescalecov script with the 'chain rescale' command. - The 'plot delc' command now works for cstat, plotting (obs-mod)/error, however it is important to remember that this is not plotting contributions to the statistic. Enhancements previously released as patches to 12.8.2: - A new -udmget64 option has been added to initpackage. This is intended for Mac platform users with local Fortran models which still make use of the udmget memory allocation function. - 'tclout steppar' can now retrieve values of the variable parameters as well has the fixed parameters which are being stepped through. All bug fixes to v12.8.2 released as patches are included in v12.9.0. In addition the following problems have been corrected: - For the case where counting statistics are not applied, 'fakeit' now outputs the spectrum in a RATE column rather than COUNTS. This is to remove bias caused by truncation errors. It also now outputs a STAT_ERR column and sets the POISSERR flag to false. - Special characters have been removed from all model parameter names and (generally) replaced with underscores. This is to make their name strings more easilty accessible in PyXspec. - When calculating 'tclout peakrsid' with Cstat, it should not make use of correction files. - Redundant model fold calculations have been removed during certain update contexts. - Fix to vequil model array assignment error. - The default filenames for fakeit output should always be in the current run directory, even when the response file is in a different directory. - A file-write race condition has been eliminated for the case of running 'lmod' in parallel XSPEC sessions. - The vvnei model had the tau and meankT parameters flipped. - The AtomDB input files were being reopened unnecessarily often. ********************* PyXSpec Change Log: New Features: - Local models may now be written in Python and inserted into XSPEC's models library with new AllModels.addPyMod() function. - The plot array retrieval interface (ie. Plot.x(), Plot.y()) has been expanded to allow retrieval from secondary plot panels in a multi-panel plot. - New Parameter.index attribute. - New backscale attribute for Spectrum and Background classes. - Added new function Fit.stepparResults() for retrieving results of most recent steppar run. (Previously available as a patch) - New noWrite option added to AllData.fakeit (Previously available as a patch) Fixes: - The Model.__call__ function now returns Parameter objects by reference rather than by value. This is to allow the returned object to retain any custom attributes the user may have added. - Improved handling of Ctrl-c breaking in several prompting contexts. ******************************************************************************** XSTAR ******************************************************************************** Version 2.2.1bn24 - updates since v221bn21 (HEASOFT 6.16) include: - Fixed error in distributing collision rates between magnetic sublevels of H and He-like ions in atomic data atdb.fits. - Make the printing of heating and cooling rates rational: httot and cltot are the true total heating and cooling. Also decrease the number of lines which are binned and written to xout_spect1.fits in the interest of speeding things up. - Include print-out of column densities in xstinitable. - New version of xstar database which includes fine structure for He-like ions. - Fixed error in calculation of rates from data type 16 (Iron collisional ionization). - Photoionization integration routine now uses thresholds calculated on energy bin boundaries. This allows for better evaluation of the Milne integral, though it may affect photoionization rates in the case of very coarse energy bins. - Removed redundant subroutine phint53new.f. - Added code to print ion column densities as part of lpri=2 output - Increased buffer size in subroutine fstepr2 which writes to xo01\_detal2.fits such that table of lines is not artificially truncated. ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS v1.5.1: Major changes introduced in this version: - numkarf: 1) addition of the new input parameters 'pilowarf' and 'pihigharf' to define the energy range used to calculate the box ARF weights for the 'addarf' internal run (extended sources case); 2) addition of the new input parameter 'flatflag' to apply a flat spatial counts distribution to calculate the box ARF weights for the 'addarf' internal run (extended sources case). - numkrmf: bug fix for addrmf execution when CALDB in remote mode is used. - nuproducts: addition of the new input parameters 'pilowarf', 'pihigharf' and 'flatflagarf' to support the numkarf changes. - nupipeline: 1) addition of the new input parameters 'pilowarf', 'pihigharf' and 'flatflagarf' to support the numkarf changes; 2) handling of the cases 'createexpomap=yes' and/or 'exitstage=3' when the '01' cleaned event file is empty. Summary of changes: - numkarf: When observing extended sources it's often the case that the high-energy photons have a different spatial distribution than the low-energy photons. Prior to this patch, the ARF generator used the spatial distribution for all photons over the allowed NuSTAR energy range (1.6-165 keV) to determine the box ARF weights. The new keywords (pilowarf and pighigharf) can be used to set a specific energy range (e.g above >40 keV or 5-7 keV). Recall that the conversion between energy and PI is : PI = (keV - 1.6) / 0.04 channels. Additionally, we have added the option to use a "flat" spatial distribution over the source region (e.g. if the intrinsic source distribution is unknown) which equally weights all boxes in the source region when generating the ARF. - nupipeline / nuproducts : Added feed through keywords to support the above changes to numkarf. Also improved handling of cases when high level (Stage 3) science products are being produced but the SCIENCE data mode file is empty. This commonly occurs during SLEW sequence IDs and previously the pipeline would exit with an error. ******************************************************************************** SUZAKU ******************************************************************************** - xisexpmapgen: Fix a malloc error resulting from (at least one) use of a combined (3x3 and 5x5) XIS0 event file. - aexisconf.list (aepipeline): New version which adds the following: 2011-05-17: New list required after sequence 106001010 Code 'f' was recycled 2012-02-17: New list required after sequence 506025010. Code 'k' was recycled 2013-10-25: New list required after sequences 408009010 and 408024010 Code 'w' was recycled; Code 'x' was recycled 2014-10-16: New list required after sequences 409008010 and 709020010 Code 't' was recycled; Code 'g' was recycled 2014-11-10: New list required after sequence 109008020 Code 'n' was recycled; Code 'o' was recycled ******************************************************************************** SWIFT ******************************************************************************** UVOT: - uvotexpmap / uvotshiftadd: Fixed UVOT exposure maps created with method=SHIFTADD to match EXPOSURE (previously missing dead time correction). - uvotsequence: Corrected the labels on the UGRISM/VGRISM rows of the plot. XRT (ISAC Build 31 Software Release - XRTDAS_v310): - xrtmkarf: Fixed memory bug that occur when the number of the extraction region sub-boxes is larger than 100 Fixed bug in exposure map pixels numbering. Modified 'expofile' input parameter type from "hidden" to "queried". - xrtproducts: Changed default value of 'correctlc' parameter from "no" to "yes". Modified 'expofile' input parameter type from "hidden" to "queried". - xrtexpomap: Updated 'DATE-END' and 'MJD-OBS' keywords of the output sky exposure map. - xrtgrblc: Changed default value of 'lccorravg', 'pcreglist' and 'wtreglist' input parameters. - xrtpipeline: Updated 'SOFTVER' and 'CALDBVER' keywords in output event files. Updated xrtproducts task call to handle 'expofile' input parameter as "queried" type. ******************************************************************************** XTE ******************************************************************************** - correctlc: Fixed runtime abort caused by variable of insufficient size. ******************************************************************************** Configuration / Miscellaneous ******************************************************************************** - Updated reference data files (leapsec.fits, tai-utc.dat) for 2015-07-01 leap second. - PGPLOT: Added configurable option for the PNG driver. To enable the PNG driver, run the heasoft-6.17/BUILD_DIR/configure with the option "--enable-png", and use "--with-png" to specify the location of the PNG library (if it is in a non-standard location). - Mac OS X: Build "Universal" (both i386 & x86_64 architectures) libraries in heacore to prevent missing symbol errors when trying to use the heacore Perl module libraries. - (FV) Update to FitsTcl 2.4 (used by the FV GUI). -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.19 May 11, 2016 ******************************************************************************** The HEASoft 6.19 release is primarily driven by updates to the NuSTAR software and the first public release of analysis software for the Hitomi mission, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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 ******************************************************************************** HEACORE: - CFITSIO: Version 3.39: - Added new routines suggested by Eric Mandel (CFA): 1) ffhisto3 is similar to ffhisto2, except that it does not close the original file. 2) fits_open_extlist is similar to fits_open_data except that it opens the FITS file and then moves to the first extension in the user-input list of 'good' extensions. - In ffpsvc and ffprec, it is necessary to treat CONTINUE, COMMENT, HISTORY, and blank name keywords as a special case which must be treated differently from other keywords because they have no value field and, by definition, have keyword names that are strictly limited in length. - Added the Fortran wrapper routines for the 2 new string keyword reading routines (FTGSKY and FTGKSL), and documented all the routines in the FITSIO and CFITSIO users guides. - In ffinttyp, added explicit initialization of the input 'negative' argument to 0. - Added new routine to return the length of the keyword value string: fits_get_key_strlen / ffgksl This is primarily intended for use with string keywords that use the CONTINUE convention to continue the value over multiple header records, but this routine can be used to get the length of the value string for any type keyword. - Added new routine to read string-valued keywords: fits_read_string_key / ffgsky This routine supports normal string keywords as well as long string keywords that use the CONTINUE convention. In many cases this routine may be more convenient to use then the older fits_read_key_longstr routine. - Changed the prototype of fits_register_driver in fitsio2.h so that the pointer definition argument does not have the same name as the pointer itself (to work around a bug in the pgcc compiler). - Added the missing FTDTDM fortran wrapper definition to f77_wrap3.c. - Modified Makefile.in and configure.in to add LDFLAGS_BIN for task linker flags, which will be the same as LDFLAGS except on newer Mac OS X where an rpath flag is added. - Modified Makefile.in to add a new "make utils" command which will build fpack, funpack, cookbook, fitscopy, imcopy, smem, speed, and testprog. These programs will be installed into $prfix/bin. - Fixed a bug when attempting to modify the values in a variable- length bit ("X") column in a binary table. - Reinstated the ability to write HIERARCH keywords that contain characters that would not be allowed in a normal 8-character keyword name, which had been disabled in the previous release. ******************************************************************************** FUTILS ******************************************************************************** - fverify: Fixed one-line summary in batch (file list) mode. fverify was erroneously reporting one-line summary success for files which actually should have failed. ******************************************************************************** HEASARC ******************************************************************************** - extractor: Read in the DETNAM keyword from the input event files and include in the keywords written out. Added copying of keywords from the EVENTS extension in the input file into the SPECTRUM extension of the output file. Remove duplicate TELESCOP etc keywords. Fixed bug when writing an event file from multiple input event files using the "slow" method when there are vector columns. ******************************************************************************** HEATOOLS ******************************************************************************** - ftverify: Fixed one-line summary in batch (file list) mode. ftverify was erroneously reporting one-line summary success for files which actually should have failed. ******************************************************************************** XIMAGE ******************************************************************************** - Fixed memory fault that occurred when remapping images with a wide pixel FOV (on the order of 864x864 pixels) and a dense photon distribution (i.e. something such as a 1536x1536 image with a rebin scale of 16). - ximage.mdb: Added instrument definition for Hitomi. ******************************************************************************** XSELECT ******************************************************************************** - Improved diagnostic output and changed to handle tabs in xselect.mdb. Modified so that select chip will work for any mission and instrument which has ccol set in the xselect.mdb. Only in the case of Chandra and XMM will it check for the chip(s) selected to be within the valid range. Added HITOMI entries to xselect.mdb. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.19 includes Xspec v12.9.0n (patch level "n"): http://heasarc.gsfc.nasa.gov/xanadu/xspec/issues/issues.html ******************************************************************************** XSTAR ******************************************************************************** Version 2.31 - updates since v221bn26 (HEASOFT 6.18) include: An error affecting the use of the optical depths and escape probabilities in the continuum escape from 2-sided models was fixed. An error in the atomic data (statistical weights) for the upper levels of N VI n=1-2 lines was fixed. Change to pprint to make line labels for inward and outward emission consistent. Updates to version 2.3 which fix the compton heating error found in 10/2015. ******************************************************************************** NUSTAR ******************************************************************************** - Updates for NuSTARDAS 1.6.0: Please note that this version requires NuSTAR CALDB dated 2016 03/15 or newer and will not work with older versions of the CALDB. Major changes introduced in this version: nusplitsc (NEW TASK): When the primary star tracker (also known as a camera head unit, or CHU) is blinded by the Earth limb or glint from the Sun the data is recorded in 'Mode 06' by the pipeline. In this mode the pipeline uses the spacecraft start rackers (CHUs 1, 2, and 3) to determine the sky position of each count. This sky position can be subtly different when different combinations of star trackers are guiding the observatory pointing, resulting in blurring of the output image. nusplitsc allows the user to generate separate independent output files for each CHU combination, each of which should have reduced blurring and higher fidelity. We note that the absolute position of these images may still be different than the Mode 01 data set and do not recommend using RA/DEC coordinates when extracting produces in these modes without first inspecting the images. See the Observatory Guide as well as Walton et al. (2016) and Grefenstette et al. (2016) for more details. - nucalcsaa: The SOC has optimized new algorithms to automatically generate GTIs that exclude regions of the orbit that produce enhanced background counts in the detector. See the Observatory Guide for a full description of these new modes and their effects. - nupipeline: New options to accomodate the nusplitsc and nucalcsaa tasks. Added optional call to the new 'nusplitsc' module (parameter 'runsplitsc', set to 'no' by default) and modified the call to 'nucalcsaa' from nupipeline. - nuflagbad: Minor bug fix to exclude hot pixels in the output badpixel file (nu*_bp.fits) in case of reprocessed files; - nuscreen: Addition of a new keyword (OBSMODE) storing the NuSTAR observing mode to the output cleaned event files; - nufilter: Addition of the keywords MJDREFI and MJDREFF in the output filter (nu*.mkf) file; - nucoord: Value update of the RA_NOM and DEC_NOM keywords in the +0 and +6 extension of unfiltered event files. ******************************************************************************** SWIFT ******************************************************************************** UVOT: - uvotcentroid: Allow sexigesimal position in region file. Correct typo in variable name (was mixing ccord (wrong) and coord. - uvotproduct: Modified to use swifttime when converting between MET and UTC and updated labels to reflect that. - uvotscreen: Update GTI and WINDOW extensions to reflect screening. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.20 January 18, 2017 ******************************************************************************** The HEASoft 6.20 release is primarily driven by updates to XSPEC, NuSTARDAS, XRTDAS, and the Hitomi software, but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package means that users who already have HEASoft v6.x.x 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 3.41: - The change made in version 3.40 to include strings.h caused problems on Windows (and other) platforms, so this change was backed out. The reason for including it was to define the strcasecmp and strcasencmp functions, so as an alternative, new equivalent functions called fits_strcasecmp and fits_strncasecmp have been added to CFITSIO.as a substitute. All the previous calls to the str[n]casecmp functions have been changed to now call fits_str[n]casecmp. In addition, the previously defined ngp_strcasecmp function (in grparser.c) has been removed and the calls to it have been changed to fits_strcasecmp. - The speed.c utility program was changed to correctly call the gettimeofday function with a NULL second arguement. Version 3.40: - fixed a bug when writing long string keywords with the CONTINUE convention which caused the CONTINUE'd strings to only be 16 characters long, instead of using up all the available space in the 80-character header record. - fixed a missing 'defined' keyword in fitsio.h. - replaced all calls to strtok (which is not threadsafe) with a new ffstrtok function which internally calls the threadsafe strtok_r function. One byproduct of this change is that must also be included in several of the C source code files. - modified the ffphbn function in putkey.c to support TFORM specifiers that use lowercase 'p' (instead of uppercase) when referring to a variable-length array column. - modified the lexical parser in eval.y and eval_y.c to support bit array columns (with TFORMn = 'X') with greater than 256 elements. Fix to bitcmp function: The internal 'stream' array is now allocated dynamically rather than statically fixed at size 256. This was failing when users attempted a row filtering of a bitcol that was wider than 256X. In bitlgte, bitand, and bitor functions, replaced static stream[256] array allocation with dynamic allocation. - modified the ffiter function in putcol.c to fix a problem which could cause the iterator function to incorrectly deal with null values. This only affected TLONG type columns in cases where sizeof(long) = 8, as well as for TLONGLONG type columns. - Fix made to uncompress2mem function in zcomprss.c for case where output uncompressed file expands to over the 2^32 (4Gb) limit. It now checks for this case at the start, and implements a 4Gb paging system through the output buffer. The problem was specifically caused by the d_stream.avail_out member being of 4-byte type uInt, and thus unable to handle any memory position values above 4Gb. - fixed a bug in fpackutil.c when using the -i2f (integer to float) option in fpack to compress an integer image that is scaled with non-default values for BSCALE and BZERO. This required an additional call to ffrhdu to reset the internal structures that describe the input FITS file. - modified fits_uncompress_table in imcompress.c to silently ignore the ZTILELEN keyword value if it larger than the number of rows in the table - Tweak strcasecmp/strncasecmp ifdefs to exclude 64-bit MINGW environment, as it does not lack those functions. (eval_l.c, fitsio2.h) - CMakeLists.txt: Set M_LIB to "" for MINGW build environment (in addition to MSVC). - Makefile.in: Add *.dSYM (non-XCode gcc leftovers on Macs) to clean list. Install libs by name rather than using a wildcard. - configure: Fix rpath token usage for XCode vs. non-XCode gcc on Macs. ******************************************************************************** HEASP ******************************************************************************** - Added interpolateAndMultiply to multiply rmf by a vector of factors on energy binning different from the response. - Fixed bug in writeMatrix which caused an empty ORDER column to be written if there was no ORDER information. - Added overloads of SPstring2Real and SPstring2Integer to convert vectors of strings. - Added handy utility routine to parse ranges in a string. - Added routines to return a vector of strings containing all the keywords from the primary or extension header. - Added support for the LOELIMIT and HIELIMIT keywords in the table model file. These are stored as LowEnergyLimit and HighEnergyLimit in the object and assumed to specify the model value to be used when the energy is below/above those tabulated. ******************************************************************************** ATTITUDE ******************************************************************************** - prefilter: Add 'timeadj' parameter to address Swift's clock drift. This parameter can be used to adjust times used for calculations. TIME_ADJ = TIME + offset where the value of offset depends on the value of the timeadj parameter. The default setting (timeadj=DEFAULT) allows mission-specific determination of offset. timeadj=CONST: sets offset to value. timeadj=KEY: sets offset to the value of a keyword from the attitude file. timeadj=LEAPS sets offset to the opposite of the number of leap seconds since missepoch to start. For the Swift mission, DEFAULT is treated as KEY:UTCFINIT (if that keyword is present), or LEAPS if it is not. For all other missions, DEFAULT is treated as LEAPS. Note that LEAPS is consistent with past behavior. ******************************************************************************** CALTOOLS ******************************************************************************** - genrsp: Set resp_file and chan_file to 'none' when inrfil is not 'none'. Fixes a bug in which genrsp reported 'Failed to open response energy relation file' because resp_file was neither specified nor set to 'none' and was just an empty string. ******************************************************************************** FUTILS ******************************************************************************** - fverify: Added checks and warnings for 'P' format variable length columns when either the row length or heap offset is detected to be greater than the max signed 4-byte int. CFITSIO allows these values up to max unsigned int, which is more lenient than the FITS standard. Also updated to allow for longer input file names. ******************************************************************************** FV ******************************************************************************** - Allow a build of FV in the Cygwin environment for MS Windows. The POW display device is partially inoperative, but the ds9 device may be used instead. ******************************************************************************** HEAGEN ******************************************************************************** - arftable: * Behavior change: Converts energy units of output file to be the same as those of the input RMF file if they are different. * New parameter: writeevtfile (boolean): if set to yes, a file will be written listing the subset of photons that reach the focal plane unblocked by any object in the optical path. Objects are specified by the parameters objecttype, imimagefile, objectheights, objectradii, imagerotangles, xoffsets, and yoffsets. * Bug-fix: The raytracing photon history file is now read and processed in chunks of 1000000 rows, rather than all at once, in order to mitigate memory problems resulting from large files. - barycorr: * Fix HDU position handling: HDU position was not properly being updated, with the effect that TSTART/TSTOP/etc. in the final time-related HDU were not being corrected. - xrtraytrace: * Behavior change: Accounts for a rotation between the reference frame of the Telescope Definition File (TDF) and the telescope physical coordinate system. This angle is given by the TELFPROT keyword in the TDF MIRROR extension. - swco.dat: Update to include 2017.0 leap second. ******************************************************************************** HEASARC ******************************************************************************** - extractor: Correctly handle the case of a vector column in the event file before the X and Y columns. Ignore trailing blanks in values when comparing for duplicate keywords. ******************************************************************************** HEATOOLS ******************************************************************************** - ftdiff: Fix case of TBIT columns where an incorrect col_repeat value caused ftdiff to miss cases where bits differed. - ftverify: Added checks and warnings for 'P' format variable length columns when either the row length or heap offset is detected to be greater than the max signed 4-byte int. CFITSIO allows these values up to max unsigned int, which is more lenient than the FITS standard. Also updated to allow for longer input file names. ******************************************************************************** XSPEC ******************************************************************************** Xspec v12.9.1: New features: - New Models: carbatm - NS non-magnetic C atmosphere clumin - calculates luminosity hatm - NS non-magnetic H atmosphere ismabs - High-resolution ISM absorption rfxconv - reflection from ionized disk slimbh - slim accretion disk snapec - galaxy cluster spectrum using SN yields (b)(v)(v)tapec - apec model with different temperatures for continuum and emission lines tbfeo - tbabs model with O and Fe only variable tbgas - tbabs model with no grains tbpcf - tbabs model with partial covering tbrel - tbabs model that allows negative columns vashift - velocity shift an additive component vmshift - velocity shift a multiplicative component voigt - emission line with a Voigt profile xilconv - reflection from ionized disk xscat - dust scattering out of the beam - Updated Models: - apec models updated to AtomDB 3.0.7 - nei models updated to AtomDB 3.0.4 eigen files - The apec code now has the ability to add new line shapes for broadening although at present only a single Gaussian line shape is operational. - A new xset option APECMINFLUX can be used to specify a minimum line flux below which lines are not broadened. Also the maximum flux in any line in the apec model is saved as apecmaxlineflux and this can be recovered using tcloutr modkeyval apecmaxlineflux. At the moment both this and APECMINFLUX do not include the 1e14 normalization factor and any time dilation correction. - the code for the various CEI models was rationalized and there is a new C++ routine calcMultiTempPlasma which can be used by other models. The old Fortran sumdem routine remains as a wrapper for old models. - tbabs model code has been updated. The old version is available by using xset TBABSVERSION 1. - updated nsmaxg model with new tabulated model files. - increased the speed for accessing values from table models. - modified table model code to support new keywords LOELIMIT and HIELIMIT to specify model values to be taken below and above the tabulated energies. - Plotting: - added low and high energy limits to setplot id so lines are only shown for the specified energy range. - added setplot (no)contimage to turn on (off) the background image in contour plots. - the keV to Angstrom conversion value stored in Numerics.h has been updated to that from CODATA 2014. - Fitting: - Added parallelization to chain walker calculations and to the goodness simulations. - The 'error' command can now process parameters from more than 1 model in a single call. - In the various cstat statistics any correction file spectrum is now taken account. This does implicitly assume that the correction file has Poisson statistics. - the Tcl script lrt.tcl now uses the fakeit nowrite option so intermediate faked files are not written out. Also, now works for multiple data groups. - Input/Output: - increased the precision of the reported output from the 'tclout' command options. - increased the allowed flux (counts) to beyond the 4-byte limit when running 'fakeit' with counting statistics selected. - new tclout option fileinfo writes the value of the keyword given as the fileinfo argument. e.g. tclout fileinfo detnam returns the value of the detnam keyword in the spectrum extension. - Xspec.init file: - added PARALLEL to set default parallelization options - added NEI_VERSION to set default version for NEI models - added CONTOUR_IMAGE to set default for adding image to contour plots - changed default cross-sections from bcmc to vern - The manual has now been rewritten in LaTeX. The appendix on statistics has been expanded. Cross-referencing has been improved. All bug fixes to v12.9.0 released as patches are included in v12.9.1. In addition the following problems have been corrected: - A previous revision to the 'goodness' command removed the requirement that the fit must be in a valid state at the start, however it was incorrectly marking the fit as being in a valid state at the end. - When re-reading a previously loaded table model file, was not correctly recognizing whether or not parameter error values existed. - A spectrum's displayed net count rate variance needs to be updated when the fit weighting method gets changed. ****************** PyXspec Change Log (v2.0): New Features: (*) = previously available as XSPEC patches. - Now compatible with Python 3.x. (No longer compatible with Python versions prior to 2.5.) - Added `Xset.save()` and `restore()` functions for saving and recovering the state of a PyXspec session. - New adjustable attributes for the `Chain` class: `walkers` and `algorithm`.* - `AllModels.tclLoad()` method added to provide a lower-level alternative to the `lmod()` local model loading scheme.* - `Xset.allowPrompting` attribute provides option for turning on/off XSPEC prompting. This can be useful in iPython environments where certain contexts can lead to infinite prompting loops. - PyXspec manuals have been converted from Doxygen-generated to Sphinx-generated HTML and PDF. Fixes: - Was previously unable to unlink a linked parameter in a Python-coded local model.* ******************************************************************************** XSTAR ******************************************************************************** Version 2.39 - updates since v2.31 (HEASOFT 6.19) include: - Changes to turn on printing in the rstepxx and fstepxx routines. Also, increase size of temporary arrays in those routines to match nnnl. - Changes to correct for incorrect dimension in PARAM file which led to bad numerical results for Cu and Zn. Changes to add printing of element by element heating and cooling rates. - Fixed error in pprint which prevented correct filling of xout_abund1.fits. - Fixes to atomic data to account for direct excitation of fine structure levels of He-like ions. - Strip out fictitious fe xxiv collisional ionization to 1s2s level of fexxv. - Fix to ucalc.f which calculates detailed balance for data type 95 (Bryans collisional excitation) without numerical errors. - Changes to include updates to ucalc to include calculation of type 97 rates (inner shell collisional ionization; currently no data of this type is included). - Local version of getlun and associated routines to properly keep track of opened and freed logical units. - Repair extra data records for type 76 data, 2 photon decays, and changes which prevent printing of type 76 data along with lines. - Fixes to He-like atomic data to correct for some missing rates affecting levels created when mapping from ls to lsj levels. - Change to ucalc and calling routines to not call linopac for lines when opacity*delta(r) is less than 1.e-8. This saves execution time. - New feature: no fits files will be saved if lwrite < 0. ******************************************************************************** HITOMI ******************************************************************************** Patch Hitomi V005a released Jan 18, 2017 Mission Applications: - aharfgen , ahsxtarfgen , hxirspeffimg New parameter: polydeg (string): polynomial order for the fitting. For the HXI, the DEFAULT value sets the polynomial order to 5. For the SXI and SXS, the DEFAULT value sets the polynomial order to an internal test for the best polynomial order. Other allowed values are 1 to 5 for the HXI and 1 to 10 for the SXI and SXS. - ahsxtarfgen Behavior change: the default behavior is changed since the polynomial order to provide a stable fit solution is tested internally with a minimization technique. The parameter value polydeg determines whether or not the routine should use the default behavior. - xrtraytrace Bug-fix: correct the behavior of decreasing area with increasing number of input photons for large region. This affects the raytracing output when run with flat or beta model in conjunction with very large regions (~above 12 arcmin) and number of events larger than 200000 on axis. SXI - sxipi Bug-fix : in a debug statement array out of range for window mode data when reading CTI from CALDB giving seg fault. No effect on the actual calculation but just on the print statements SXS - mxstime Bug-fix : fine gti overlapping are checked using the pulselength and compare the afterglow length. For files where the start of the mxs is outside of the start of file the code was not using the correct pulselength from the last row. This is only affected if the afterglow flag is set to yes. Hitomi V005 - Major changes introduced in this version: General Applications: - ahgtigen: * Bug-fix: Handling of the parameters cpkeyword and upkeyword was corrected. If upkeyword=yes, timing keywords are updated in all output GTI files, whereas previously, this update happened only for files resulting from a merging of GTI. If cpkeyword=all, keyword copying is now delegated solely to the maketime task, whereas previously, the copying was done a second time redundantly by ahgtigen. - ahpipeline: * Behavior change: MKF and EHK GTI are now copied to the end of unfiltered event files. * Behavior change: Updates timing keywords in the MKF and EHK GTI for all instruments and copies other keywords from unfiltered event file. * Behavior change: The EHK file is now replaced with the EHK2 file (which includes columns based on SXS antico rates) if the latter is successfully created. * Behavior change: For SXS screening, the PIXEALL2 label has been changed to PIXELALL3. * Parameter change: r2tol, bisectolshift, bsectolwidth (SXS gain fitting parameters): default values changed from 0.01, 0.1, and 0.2, respectively, to 0.001, 0.001, and 0.001. * Bug-fix: For SXS, the PIXEL column was omitted from lost fake GTI extensions; now included. * Behavior change: Moved proximity flagging from the first run of sxsflagpix to the second run of sxsflagpix. * Behavior change: For SXS, Perseus observation stop date and time have been changed from 2016-03-08T00:38:00 to 2016-03-04T00:41:00. Mission Applications: - aharfgen * Parameter change: auxtransfile: If set to CALDB, a CALDB query is done. Previously, the string CALDB was not detected and was passed unmodified to the called tasks. * Parameter change: regmode: Now should be set to RADEC to indicate that the regionfile is in world coordinates, for consistency with coordinate terminology in other tools. Previously, the value SKY was used incorrectly to indicate world coordinates. - ahbackscal * NEW TOOL: Corrects the BACKSCAL keyword in a spectrum file that has been extracted using xselect. - ahcalcl32ti * Behavior change: TZEROn keyword is now written for L32TI column to make it effectively unsigned. - ahfilter * Bug-fix: Under certain conditions, the output EHK file was incorrectly deleted at the end of processing like a temporary file. This happened when the output EHK file path contained more than one dot and the infileroot parameter was a non-empty string. The parsing of file names has been corrected to avoid this outcome. - ahgainfit * Parameter change: r2tol (convergence criterion for R^2): default value changed from 0.01 to 0.001. * Parameter change: bisectolshift (tolerance of shift to stop bisection method): default value changed from 0.1 to 0.001. * Parameter change: bisectolwidth (tolerance of width to stop bisection method): default value changed from 0.2 to 0.001. - ahmktim * Bug-fix: Corrected a double-free failure which sometimes occured when task was built with gcc 5.4 with optimization. - ahnxbgen * Bug-fix: Incorrect Perl function call get_column_number() has been corrected to get_column_num(). * Bug-fix: One case-sensitive test of regmode parameter is now case- insensitive. - ahsxtarfgen * Behavior change: Writes PSF fraction inside detector area and/or inside region to the screen. * New parameter: auxtransfile: Auxiliary transmission file, containing transmission as a function of energy to be applied to final ARF. * Parameter change: skyregfile: Wording of the parameter prompt was changed to make clear that this region file is in world coordinates (RADEC), not Cartesian SKY coordinates. * Bug-fix: In applying the contamination CALDB file, now reinitializes the sum of weights and weighted sum to zero for each fine energy bin. Previously, this reinitialization was not done, so that incorrect transmission values for contamination were used in the ARF. - hxirspeffimg * Parameter change: auxtransfile: If set to CALDB, a CALDB query is done. Previously, the string CALDB was not detected and was treated as a normal filename. - sxsnxbgen * New parameter: picol: Name of PI column to read from input event file. HXI/SGD Applications: - sgdarfgen * Behavior change: Checks SGDID parameter vs. INSTRUME keyword in input file, and includes SGDID as part of output file name. - sgdevtid * Behavior change: Uses underscore instead of blank in fluorescence material names; e.g., 'CdTe btm' is now 'CdTe_btm'. * Bug-fix: Throws error if the program attempts to find a fluorescence line for a material that is absent from the CALDB file. Previously, such fluorescence lines were silently omitted in event reconstruction. SXI Applications: - sxiflagpix * Bug-fix: Program was segfaulting when the parameter echoflag was 'no' and the parameter echomap was 'yes'. This bug was corrected by ignoring echomap when echoflag is 'no'. - sxipi * Bug-fix: Some CALDB files can have blocks of lines with the same timestamp. Previously, CALDB files containing more than one such block were being read incorrectly. The bug was fixed by correcting the flow of control in nested loops that process each group of equal times within each file. SXS Applications: - sxsextend * NEW TOOL: Reruns tasks sxspha2pi, sxsperseus (if necessary), and ahscreen in order to produce SXS event files in extended energy mode. ` - sxsanticolc * Behavior change: Sets TUNIT keywords for output RATE and ERROR columns. Previously, these keywords were omitted. - sxsflagpix * Behavior change: If MXS GTI times do not overlap with the time range of the input file. prints log message and skips MXS flagging. Previously in this case, the task threw an error. - sxsgain * Parameter change: r2tol (convergence criterion for R^2): default value changed from 0.01 to 0.001. * Parameter change: bisectolshift (tolerance of shift to stop bisection method): default value changed from 0.1 to 0.001. * Parameter change: bisectolwidth (tolerance of width to stop bisection method): default value changed from 0.2 to 0.001. * Behavior change: Instead of using theoretical average when determining the temperature from the fitted shift, now uses the tabulated profile average. - sxsperseus * Behavior change: For extended energy mode, reads columns EPIE and EPI2E rather than EPI and EPI2, and writes columns EPIEPER and EPI2EPER rather than EPIPER and EPI2PER. * Bug-fix: Now checks whether PI or PIE column already exists before inserting it into the output file. * Parameter change: binwidth (PI bin width for extended energy range): Default value changed from 0.5 eV to 1.0 eV. - sxspha2pi * Behavior change: In extended energy mode, automatically adds "E" to column name in ADDEPICOL parameter to form the name of the output column for energy with secondary correction. * Behavior change: Now writes PIOFFST and PIWIDTH keywords (PI energy offset and bin width) in non-extended-energy mode. (Similar keywords PIEOFFST and PIEWIDTH were already written for extended energy mode.) * Bug-fix: Skips events with PIXEL=NULL to guard against a segfault. Normally, this condition is never encountered because the PROC_STATUS column should indicate a bad event, but PROC_STATUS has not been updated in teh pre-pipeline for this condition. - sxspixgti * Behavior change: Updates timing keywords if upkeyword=yes (upkeyword is also passed to the called task ahgtigen, as before). - sxsregext * New parameter: extended (boolean): extended=yes causes the PIE column to be read from the event file rather than the PI column. * Behavior change: Substitutes USER=sxsregext for USER=[user name] in output header to facilitate unit testing. * Parameter change: regmode: WCS coordinates for the regionfile are now indicated by regmode=RADEC rather than regmode=SKY. Libraries: - ahgain * Bug-fix: Memory leak eliminated in deallocation of fit results structure. - rmflib * Behavior change: CHANNEL column in EBOUNDS RMF extension changed from I type to J. ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS v1.7.0 software patch: - nucalcsaa: Adjust the behavior of nucalcsaa so that fselect is no longer run even when saamode='NONE' & tentacle=no. This resolves the known issues where nupipeline was crashing when the 01 and 02 event files were empty (mostly when looking at the Sun). - nupipeline: (1) nupipeline now selects an appropriate TLE file from the auxil directory instead of simply exiting with an error message. (2) Corrected a bug in the input parser that occurred when parameter 'statusexpr' was not set to 'DEFAULT'. - nuscreen: Correction of a bug when input parameter 'statusexpr' is not set to DEFAULT. NuSTARDAS v1.7.1 software patch: - nufilter: added the parameter 'timeadj=DEFAULT when running the multi-mission FTOOL prefilter. ******************************************************************************** SWIFT ******************************************************************************** XRTDAS Build 33: - xrtpipeline: Disabled the option to call the xrttam module (removal of the input parameters applytamcorr, tamfile, tamrefx1, tamrefy1, tamrefx2, tamrefy2, attcorrout) - xrtwtcorr: Bug fixed in the bias adjustment calculation. - xrtscreen: Fixed some keywords duplication in output GTI files. - xrtfilter: Modified the call to the multi-mission FTOOL prefilter. - xrtgrblc: Update of the clean-up of temporary files. - xrtgrblcspec: Adjust some output formatting to mimic behavior prior to a recent increase in output precision from Xspec. ******************************************************************************** XTE ******************************************************************************** - GUIs xdf and xsut have been relocated to live with the rest of the XTE software instead of the "FV/GUIs" package. ******************************************************************************** MISC. ******************************************************************************** - tai-utc.dat, leapsec.fits: Added 2017-01-01 leap second. - PLT: Fix for problem in contour plot when the label to set the cross can fail if the first position given is of the form #e... where # is a single integer. The issue arises because GTPEEK returns only the first two characters of the token while ISNUM checks for a token being a number by testing that the first and last characters are integers. There are a number of other places that GTPEEK is followed by ISNUM so these could generate similar problems. It would be better to have a complete solution to these however the obvious fix of changing GTPEEK to return the entire token causes a failure when using text surrounded by double quotes. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.22 August 15, 2017 ******************************************************************************** The HEASoft 6.22 release is driven by updates to several mission-specific software packages (NICER, Hitomi, NuSTAR, Swift, XTE), but also includes updates to other packages which have been revised to mirror the current development versions in use at the HEASARC. As before, configuration-related changes thoughout the package mean that users who already have HEASoft v6.x.x 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 ******************************************************************************** Updates to version 3.42: - Added HTTPS support to the collection of drivers handled in cfileio.c and drvrnet.c. This also handles the case where HTTP transfers are rerouted to HTTPS. Note that this enhancement introduces a dependency on the libcurl development package. If this package is absent, CFITSIO will still build but will not have HTTPS capability. - Made fix to imcomp_init_table function in imcompress.c. It now writes ZSIMPLE keyword only to a compressed image that will be placed in the primary header. - Fix made to fits_get_col_display_width for case of a vector column of strings. ******************************************************************************** FV ******************************************************************************** - Fixed abort under Apple XCode 8.3.x with update to use Tcl/Tk 8.6.6. - Fixed bug in which the original file was mistakenly updated after a 'Save As' copy was made. ******************************************************************************** HEASP ******************************************************************************** - Changed definition in heasp.h of Real from float to double for consistency with xspec. - Modified grouping class to make Flag be 1 for start and -1 for continuation of a bin for consistency with the OGIP standard. - Added option to pha class to group by signal-to-noise. - Modified table class read to have the option of not loading all the tabulated spectra at the same time. Added a new method to then load spectra for a list of index positions. Added a method to return the interpolated spectrum on the tabulated energy bins for an input set of parameter values. ******************************************************************************** ATTITUDE ******************************************************************************** - prefilter: Update to v3.4: add orbmode=XTE which allows XTE-style orbit as input (also Chandra & NICER). Add attfile=QUAT(x,x,x,x) which allows static attitude quaternion to be entered instead of an attitude file. Fix bug in handling of Z position vector. Fix bug converting to kilometers that prefilter wants. Add timing tolerance for orbit extrapolation, between large gaps that still bracket the desired point. Add TDISPn output to prefilter FITS file for better visibility. ******************************************************************************** CALTOOLS ******************************************************************************** - quzcif: Added hidden 'quality' parameter so users can search for CALDB files where quality is not 0. This is useful for seeing the number of "bad" files in a CIF, or for setting a non-zero quality to use if a calibration file that would normally be avoided may be appropriate in certain circumstances. ******************************************************************************** FUTILS ******************************************************************************** - finterp: Fix interpolation of multiple columns. ******************************************************************************** HEAGEN ******************************************************************************** - barycorr: Major rewrite to version 2.0: Changes to the internal C code of barycorr to properly handle multiple orbit files and orbit files with gaps. Reduce the amount of extraneous checking by the perl wrapper script. Unit tests still pass to within 500 nanoseconds. The orbit interpolation algorithm is slightly revised to a true cube spline interpolation, but should be improved over the one originally used. In practice this new algorithm causes <100 nsec differences from the previous one, which is negligible. Missions should decide how much or little interpolation/extrapolation is required. The search functions have separate tolerances for both interpolation and extrapolation. In practice, RXTE and Chandra do not allow extrapolation; Swift and NuSTAR allow up to 2 seconds of extrapolation. All missions: If CLOCKAPP exists, it is set to true upon successful return of the task. Add new ephem parameter to either choose a JPL planetary ephemeris file name, or DEFAULT to choose based on the reference frame. Update for NICER files. Swift: v2.0 correctly updates the DATE-OBS and DATE-END keywords. This is a change from previous behavior where the perl wrapper updated TSTART and TSTOP but not the DATE-* keywords. The task no longer creates a RAWTIME column. This column was not meant to be useful for scientists, but was used in the internal calculations of the task. v2.0 has improved behavior around UTC leap second rollover boundaries. Previously there could be several 10s of seconds of error around the new year. With the new version, this problem area is reduced to a ~1 second window where errors could occur. Apply barycenter correction to a column named 'ENDTIME' for Swift XRT hk data. This is required to handle XRT light curves obtained from barycenter-corrected event files when running `xrtlccorr' to account for time-dependent PSF/EXPOSURE losses. v2.0 no longer assumes that the current directory is writable. Fix bug in double-counting TIMEZERO, which shows up in output of extractor light curves. - barycen: Reports error from getPar function using C printf rather than writing output to log, which is not yet initialized at that point. - xrtraytrace: Fixed memory leaks to address segfault that occurred only for the option source=PHOTONLIST, under Mac OSX with Xcode 8.3.x. - VOtable2xsp: Changed all filename parameters to be *file, not *fil. ******************************************************************************** HEASARC ******************************************************************************** - extractor: Fixed errors when reading and writing multiple event files with different column ordering which contain A and/or X format columns. This serendipitously appears to also fix a memory fault from the same bug report. ******************************************************************************** HEASIM ******************************************************************************** - Bug-fix: No longer segfaults by attempting to free an unallocated instrument map array, when SKIPFOV=YES. - Behavior change: When the XSPEC library is used for a single Gaussian line spectral component, the sigma is set explicitly to 1e-6 keV instead of accepting the library internal default. ******************************************************************************** HEATOOLS ******************************************************************************** - ftlist: Fix ftlist output for case of vector columns. Fix incomplete output for files with "+0" in their name. - ftmgtime (NEW TASK): Merge two or more GTI FITS files. Improves upon the older task "mgtime" in several ways; run "fhelp ftmgtime" for more information. ******************************************************************************** XSELECT ******************************************************************************** - xselect.mdb: Changed NICER instrument name to XTI and default spectrum column to PI. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.22 includes Xspec v12.9.1m. See the Xspec issues page for more information: https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html ******************************************************************************** XSTAR ******************************************************************************** - New version 2.41: Fix to type 70 calculation (recombination to pseudo-levels) for He-like ions which partially smooths the density-dependent behavior near density of 10$^{10}$ cm$^{-3}$, by using quadratic interpolation rather than linear. Fix which passes real*4 variable to FITSIO routine in fstepr4. Increase size of temporary array in routine reading atomic database. Update to treatment of dielectronic satellite emission in calt72. Remove arrays called vsav, rates, and idrates which contained temporary saved rates in order to save memory space. Increase value of crit and crit2 in msolvelucy from 1.e-10 to 1.e-4. Add data type 96, safranova satellite emission for Fe XXIV. Changes to atomic database: update to Fe XXIV DR satellite emission using rates from Bautista et al. 2003; fix to the Fe XXV forbidden line (2 photon) decay; addition of direct excitation of Fe XXIV satellites using rates from atomdb; also direct excitation of Fe XXV lines using rates from atomdb. ******************************************************************************** HITOMI ******************************************************************************** Hitomi Version 006 (2017 April) Major changes introduced in this version: Mission Applications: - aharfgen: * Behavior change: Processing of heasim photon list now uses ftools rather than Perl code. * Bug-fix: For sourcetype=IMAGE, corrected a formula involved in converting simulated event coordinates to RA and Dec. The error was affecting the effective area of off-axis positions at high Declination. Only IMAGE mode was affected. - ahgainfit: * Bug-fix: Error bands for 'width' and 'shift' computed using the criterion delta chi^2 = 1 were erroneous for cases with poor fits. Fixed by adding a subscript bounds check to loops that search arrays of chi^2 values. - ahnxbgen: * Behavior change: Intermediate file extractspback.pha is now deleted if CLEANUP=YES. - ahsxtarfgen: * Bug-fix: PSF fraction computation corrected. HXI/SGD Applications - hxievtid: * Bug-fix: Now stores correct value of TLMAX for FOCX, FOCY, X, and Y coordinate columns (Note: these values were always correct in any case after running task coordevt.) SXS Applications - sxsbranch: * Bug-fix: Crosstalk event counting for flight data files corrected. * Behavior changed: Now outputs branching ratio per pixel rather than exposure time per pixel. * New parameter: TSTART. * Deleted parameters: RTMAX and DMMIN. - sxsextend: * Bug-fix: Now uses EPIPER and EPI2PER columns for input instead of EPI/EPI2 when running in fast mode on a sequence requiring the Perseus correction. * Libraries: - ahfits: * Behavior change: Default TUNIT, TLMIN, etc. keyword comments have been changed to match the Astro-H SCT FITS document standards. * Bug-fix: In writeKeyVal* functions, if an empty string is given as the comment, the existing comment is now retained. This change prevents accidental deletion of the comment field of NAXIS2 when the number of rows in a binary table is updated. * Behavior change: Added comment argument to the set functions for TNULL, TDISP, etc. * Behavior change: Keywords set by writeImage() now have comments. ******************************************************************************** NICER ******************************************************************************** NICER DAS Version 1.0 (new tasks): - nicercal: Apply standard calibration to NICER observation - nicerpi: Apply gain calibration to NICER event file (calculate Energy/PI) - niextract-events: Fast event filtering, similar to extractor - nimaketime: Create standard NICER screening GTI - nimpucal: Apply standard NICER calibration to MPU data - nimpumerge: Merge NICER event data from multiple MPUs (or observations) - niprefilter: Create NICER-specific filter file - nicerversion: Report NICER software version ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS v1.8.0 software patch: Note that the CALDB patch 20170727 is required when using the new 'saacalc=3' mode. - nucalcsaa: Add new 'saacalc=3' operation mode. This accounts for the changes in the internal background related to the evolution of the South Atlantic Anomaly (SAA) throughout the solar cycle. This improves on the 'saacalc=2', though users should check the background filtering reports provided by the NuSTAR SOC (http://www.nustar.caltech.edu/page/background) when deciding which filter parameters to use. Improve handling of input cleaned event files. This patch adjusts the behavior of nucalcsaa so that the fselect FTOOL is no longer run if the SHIELD column is not present in the cleaned event file. The SHIELD column is truncated when the 'cleancols=no' keyword is used by nupipeline, which is the default case. - nuexpomap: Improve the evaluation method for calculating the time-averaged optical axis location. Before the change, the brightest point on the vignetting- corrected exposure map could be off from the time-averaged optical axis position by up to 10". This has been fixed and the two locations will now correspond to each other. This change affects only the vignetting corrected exposure map, which is used in the light curve generation. It has no impact on the ARF and RMF generation. - nuscreen: Suppress warning messages that occur when a particular event mode does not contain any exposure time and therefore its associated cleaned event file is not generated. This commonly occurs for several of the available data modes (i.e., calibration source data, slew data, and/or data obtained during the SAA passages). - numkarf: Improve effective area calculation for the extended sources in the 'flatflag=yes' case. In the 'flat' ARF case, where the effective area is not weighted by the observed count rate, the effective areas were before evaluated with the same weight in each box that covered the extraction region, regardless of how much area of each box was actually contained in the extraction region. This was particularly sensitive to gaps between the CZT detectors that were inside the boxes but outside the extraction region. To obtain a more accurate effective area, we now weigh the effective areas with the covering region of each box. This change only influences the 'flatflag=yes' case. - nupipeline: Now supports the keywords for the handling of the new case 'saacalc=3' of the module nucalcsaa. ******************************************************************************** SWIFT ******************************************************************************** GEN: - swifttime & swtimecorr: Allow https prefix for clock file. BAT: - Error checking for http now includes https too. UVOT: - uvotimage: Raw UVOT images have the left-most 8 unbinned columns wrapped from the right side. Zeroed them out to prevent unintended consequences due to counts in the wrong position. - uvotinteg: Fix length argument of strncpy; was causing run-time failures when built with Apple XCode 8.3.x. - uvotproduct: Add support for ds9 v.7. XRT (XRTDAS 3.4.0): - xrtfilter: Add internal run of 'finterp' to extrapolate the values of the STAST_LOSSFCN/SAC_MODESTAT columns of the filter file. - xrtpipeline: Add new input parameter 'mkfextrapolate' used for the xrtfilter run. ******************************************************************************** XTE ******************************************************************************** - correctlc: Fix abort for method=max case: change size of pcuchar from [1] to [2] to prevent abort in the sprintf of pculist[i] into pcuchar[0], and set trailing pcuchar[1] to 0. Also, initialize pculist for the case where it isn't queried. - hxtdead: Version 3.0.0: Major rewrite to take out artificial limits (there was a limit of 8192 x 16 sec samples, or 1.57 days); records are now a structure which are easier to (re)allocate; error checking to prevent out of bounds memory accesses; address most compiler warnings; tested against 400 spectra of XTE J1751-305 (obsid 70131) and all were identical. - pcabackest: Bug fixes: write more compliant TDISP values for background estimates (F8.2 instead of E5); off-by-one bug in string manipulation; initialization bug. Add the 'modelfamily' parameter which helps the task find the right CALDB file; sensible defaults are applied; use the PCABGFAM keyword in the model file to actually say what family it is, and write that keyword to the output. - pcadeadcalc1: Improve the compliance of output keywords; remove output columns LiveTimeVect and OnTimeVect which are not used downstream and are difficult to format properly. - pcadeadcalc2: Improve compliance of output keywords. Calculate L7CntPcuN column so L7 is available. - pcaextspect2: Handle user-specified RA/Dec more robustly; fix bug in writing BACKFILE with path components; write RESPFILE, with no path components. Warn when XPCAARF emits a cryptic error message: it's really because the analyst entered a bad target position. Added 'respdate' parameter; default is to use the centroid-weighted centroid time; set HDUCLAS2=BKG in output background spectrum; fixed typos in computing centroid time. - pcamergeobsids: Add support for Standard1 files via pcaprepfile1, both preparing and merging. More careful checking/display of target positions; target positions are computed and compared and outliers are flagged; make missing Standard1 files non-fatal. Ensured that merged observations are merged in time-order. - pcaprepfile1, pcaextlc1: New tasks for preparing Standard1 files and making standard light curves from them. - pcaprepobsid: Add support for Standard1 files via pcaprepfile1, both preparing and merging. More careful checking/display of target position. Handle user-specified RA/DEC by writing {RA,DEC}_{OBJ,PNT} into the output dead-time and background files; warn if datamodes does not include Standard2; version 1.2. ******************************************************************************** MISC ******************************************************************************** - wcslib: Update to version 5.16. http://www.atnf.csiro.au/people/mcalabre/WCS/ -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.25 October 22, 2018 ******************************************************************************** The HEASoft 6.25 release is primarily driven by updates to the NICER data analysis software, but also includes other enhancements and fixes. As before, configuration-related changes thoughout 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 3.46 - October 2018 - Added wildcard deletion syntax for columns, i.e. -COLNAM* will delete the first matching column as always; -COLNAM*+ will delete all matching columns (or none); exact symmetry with the keyword deletion syntax. - Improved the algorithm for ensuring no tile dimensions are smaller than 4 pixels for HCOMPRESS compression. - Added new functions intended to assist in diagnosing (primarily https) download issues: fits_show_download_progress, fits_get_timeout, fits_set_timeout. - Added the '-O ' option to fpack, which previously existed only for funpack. Also added fpack/funpack auto-removal of .bz2 suffix equivalent to what existed for .gz. - For the fpack '-table' cases, warning message is now sent to stderr instead of stdout. This is to allow users to pipe the results from stdout in valid FITS format. (The warning message is otherwise placed at the start of the FITS file and therefore corrupts it.) - Fix made to the '-P' file prefix option in funpack. Version 3.45 - May 2018 - New support for reading and writing unsigned long long datatypes. This includes 'implicit datatype conversion' between the unsigned long long datatype and all the other datatypes. - Increased the hardcoded NMAXFILES setting for maximum number of open files from 1000 to 10000. - Fixed a parsing bug for image subsection and column binning range specifiers that was introduced in v3.44. ******************************************************************************** CCFITS ******************************************************************************** - Enabled support of long string keywords (which use the CONTINUE key) - Replaced all uses of std::auto_ptr with std::unique_ptr. This is made in tandem with configuration changes which add a C++11 compiler flag when necessary. - Added capability for user to specify keyword categories to read/copy. Removed TYP_WCS_KEY,TYP_CMPRS_KEY from s_iKeywordCategories, as they are file-specific keywords. - Bug fix to writeHistory and writeComment functions: when copying via the get/write functions, mult-line input was not properly formatted upon output. ******************************************************************************** ATTITUDE ******************************************************************************** - prefilter: Avoid invalid memory access ******************************************************************************** CALTOOLS ******************************************************************************** - quzcif: Added https support with retrieve=yes. Added optional download progress bar display when retrieve=yes and chatter > 10 ******************************************************************************** FIMAGE ******************************************************************************** - chimgtyp: Reworked prompt for output datatype parameter; this prevents an infinite loop which occurred when the datatype was invalid or incorrectly entered. ******************************************************************************** HEAGEN ******************************************************************************** - Replaced some tasks with wrappers to their new counterparts in the heasptools component: old heagen task: wraps to heasptools task: flx2tab -> ftflx2tab flx2xsp -> ftflx2xsp mkfiltrsp -> ftmkfiltrsp rgsrmfsmooth -> ftrgsrmfsmooth rsp2rmfarf -> ftrsp2rmfarf sdss2xsp -> ftsdss2xsp sprbnarf -> ftrbnarf - barycorr: Fixed bug in handling GTI extensions that are not exactly named 'GTI'; allow orbitfiles=GEOCENTER for geocenter-to-barycenter only correction - ftadjustgti [NEW]: Perform filtering and normalization of good time interval (GTI) - xrtraytrace: Fixed bug that failed to detect an input energy value mismatch with all energies in the array of multilayer reflectivity file energies when the input energy list contained a valid energy immediately following an invalid energy. The effect of the bug was to calculate the wrong reflectivity value for all the input energy values that did not have a counterpart in the reflectivity file. - xrtreftable: Corrected some sign errors in relectivity and transmission calculations. The use of the function cxpower for the square root of a complex number was replaced by the intrinsic C++ square root function. These corrections have no net effect on the reflectivity or transmission because they exactly cancel each other out. ******************************************************************************** HEASARC ******************************************************************************** - extractor: Speed up in the case of a very large number of gti bins by fixing calcbinsize so that it does not have to start at the first gti every time. ******************************************************************************** HEASP ******************************************************************************** HEASP is updated to v2 which involves significant internal changes: - All internal class members are now private and are accessed using get and set routines. For example in pha the member m_FirstChannel is set using setFirstChannel(value) and got using getFirstChannel(). For members which are vectors individual elements can be got and set using for example getPhaElement(i) and setPhaElement(i,value). - The Python module now uses numpy arrays for C++ vector quantities. For example the Pha vector in pha can be set using setPha(array([0.1,0.2,0.3,0.4,0.5])) - Modified all methods for consistent use of const on input variables and made methods themselves const if the object is not modified. - Added more load methods and constructors. - Removed members which store OGIP version numbers since it made no sense to store these in classes. - Added writeChecksum() functions when writing extensions - Modified table::getValues to report to the SP error stack if a requested parameter value is outside the tabulated values - Removed copying of other keywords and extensions since these are not operations from classes as these are not operations on the class. - Improved error reporting on methods which call checkCompatibility(). - Added copying of COMMENT and HISTORY keywords to SPcopyKeys. - Trapped possible seg fault and fixed error setting m_FirstElement in rmf::update and fixed error in rmf::interpolateAndMultiply. Corrected error in rmf::convertUnits when converting from wavelength units. Fixed potential seg fault in rmf::estimatedFWHM when the response maximum is in the first or last channel. - Fixed bug in arf::rebin which was causing the arf to be summed instead of averaged in the rebinning process. ******************************************************************************** HEASIM ******************************************************************************** - skyback: Fixed subscript order in maps; fixed bugs in using degree-pixel sky maps. Updated FITS headers with full description in comments. ******************************************************************************** HEASPTOOLS ******************************************************************************** - ftaddarf: Fixed bug which caused a zero length arf to be written - ftdmprmf: Fixed so that it doesn't also write to the terminal when an output file is set - ftflx2tab: Fixed bug which caused REDSHIFT keyword to always be set to F - ftflx2xsp: Fixed memory error on channel vector and incorrect setting of detchans. - ftgenrsp: Fixed typo causing seg fault when reading a resolution file; Improved reading of input files and fixed error in calculating response when setting the norm vector; Fixed bug in setting channel and energy bins when using their respective break parameters - ftrbnarf: Fixed prompting for binfact parameter - ftrbnpha: Corrected errors in reading parameters and in calculating binning factors for the FAINT2BRIGHT and BRIGHT2LINEAR methods - ftrbnrmf: Minor efficiency improvement trapping cases when channel or energy binning is linear with unit binning factor ******************************************************************************** HEATOOLS ******************************************************************************** - ftcalc: Added 'coldesc' parameter to allow specifying description of a new column; default value coldesc=INDEF will preserve existing function. - ftleapsec [NEW]: Calculate number of leap seconds at requested epoch - ftlist: Fixed bug for case of reading 0-length variable-width bit columns (type -TBIT). Fixed bug for case of variable-length string columns (-TSTRING) in which the number of elements was incorrectly calculated (can only be 0 or 1). - ftsort: Allow sorting of 0-row input (produces 0-row output). - ftsort + ftmergesort: Fixed compatibility with tables with variable- length columns: ftsort and ftmergesort cannot copy a subset of a table with variable-length columns (i.e. they can only copy the entire table). ******************************************************************************** TIME ******************************************************************************** - maketime: Added parameters 'premax' and 'postmax' to allow finer control over how files with large gaps are dealt with; premax=-1, postmax=-1 is the default and recovers previous behavior for backwards compatibility Added parameters 'mingti' and 'emptygti' to allow more fine-grained control over GTI creation; defaults maintain existing expected behavior; output can now be piped to STDOUT Added parameter 'extname', which defaults to STDGTI for compatibility with previous versions; added descriptions to START and STOP columns ******************************************************************************** XIMAGE ******************************************************************************** - Fixed random aborts when setting log file option on the command line - Addressed Tcl "::unknown " messages in batch (.xco) processing - skyview: Fixed to handle https addressing ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.25 includes Xspec 12.10.1. - New models: - zbknpower - zlogpar - agnsed - qsosed - (v)cph (note this included change to calcCoolingFlow function) - relline, relline_lp, relline_lp_ext - relconv, relconv_lp, relconv_lp_ext - Modifications to models: - Added an xset LINECRITLEVEL option for crtLevel for gaussian/lorentzian/voigt lines. If set this overrides the coded values. - Modified diskline, rdblur, kdblur, kdblur2, laor, laor2, kerrconv, kerrdisk for high resolution spectroscopy. - Added tabint C/Fortran wrapper for tableInterpolate. - Added statistic cstatbN option. - PyXspec: - It is now possible to call XSPEC's model functions directly from PyXspec using the new function xspec.callModelFunction(). This utility is particularly useful for users who wish to access particular XSPEC model functions within their own local model Python code. - Some XSPEC model parameter names contained parentheses, which were incompatible when used in PyXspec. Therefore parentheses have been replaced with a single underscore. See also: https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html ******************************************************************************** XSTAR ******************************************************************************** Xstar v2.53: Changes since 2.5: - Implementation of lpri=-1 for very streamlined output; change to xstinitable.par to allow for larger model grids - Minor changes to print switches and more accurate criterion for determining which lines are included in spectrum synthesis. - Numerous Fortran syntactical changes - Improved precision tests for which lines to include in emission spectral calculation (binemis) - Added emissivities to quantities output to file xo01_detal4.fits ******************************************************************************** EXOSAT ******************************************************************************** - exovig: Fixed "exovigrun: command not found" error ******************************************************************************** MAXI ******************************************************************************** - New package of analysis tasks for the MAXI mission: mxextract - Extract source event from multiple HEALPix event files. mxgrmfgen - Generate the response matrix file for GSC instrument. mxgscandat - Calculate the time to when a source is in each of the GSC FOV detectors. mxgtiwmap - Calculate a weighted spatial distribution of events on the detector. mxlscan - Calculate a source lightcurve. mxproduct - Generate the high level products (images lightcurves spectra and response) for both instruments. mxscancur - Determine the source position relative to the GSC or SSC instrument. mxsrmfgen - Generate the response matrix file for SSC instrument. mxsscandat - Calculate the time to when a source is in SSC instrument FOV. mxdownload_wget - Search and retrieve the archived MAXI data for a given sky position and time interval mxversion - Print the MAXI software package version ******************************************************************************** NICER ******************************************************************************** NICERDAS Version 5.0: - nicerl2, nicercal, nicertimecal, nimpucal: Added leapinit option to calculate leap seconds - nicertimecal: Allow 0-row input files; Fixed bug when running non- CALDB (wasn't querying leap seconds properly) - nicertimeconv [NEW]: Basic time conversion for NICER time values - nicerpi: Allow 0-row input files; Added new functions for NICER gain calibration; added energycol output to get ENERGY column in output if desired; allow PHA input to be float instead of int; change trend stuff to MV_TREND instead of FT_TREND - nimaketime: Updated maketime call to handle new {pre,post}max and emptygti options - nimpucal: Improved memory efficiency when calculating PI_RATIO - niprefilter: Added column defaults when an APID file is missing; added robofile support - niextract-events: Fixed timefile=@name.lis bug; added history task parameter ******************************************************************************** NUSTAR ******************************************************************************** - Improved handling of remote CALDB and file i/o diagnostic output. ******************************************************************************** SUZAKU ******************************************************************************** - xisrmfgen: Change to model the Si-K edge when calculating the response function. The software includes new parameters (xi[0/1/2/3]_jmp_loene, xi[0/1/2/3]_jmp_hiene, jnct_hiene, s1_factor) used in the model. This software change requires the new CALDB version 20181010. ******************************************************************************** SWIFT ******************************************************************************** - uvotmaghist: Allow ignoring uvotsource errors; this sounds odd but is allowed for the case where some UVOT images do not include the regions of interest. Activate by setting the UVOTMAGHIST_IGNORE_UVOTSOURCE_ERRORS environment variable to 1. - XRTDAS: Improved handling of remote CALDB and file i/o diagnostic output. ******************************************************************************** MISC ******************************************************************************** - PGPLOT: Added Jonathan Irwin's SVG driver - READLINE: Updated to v7.0 + current patches - WCSLIB: Updated to v5.19.1 -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.26 May 17, 2019 ******************************************************************************** The HEASoft 6.26 release is driven by several updates to mission-specific data analysis software (MAXI, NICER, et al.), but includes many other enhancements and fixes, including updates to most legacy software which fix run-time memory issues under newer Debian-based Linux OS (i.e. Ubuntu 18.10 and 19.04). 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 ******************************************************************************** - Added set of drivers for performing ftps file transfers. - Tile sizes for compression may now be specified for any pair of axes, where previously 2D tiles where limited to just X and y. - Fix to ffgsky and ffgkls functions for case of keyword with long string values where the final CONTINUE statement ended with '&'. If the final CONTINUE also contained a comment, it was being repeated twice when passed back through the 'comm' argument. - Fix made to ffedit_columns() for case of multiple col filters containing wildcards. Only the first filter was being searched. - fits_copy_rows (ffcprw) can now handle 'P'-type variable-length columns. - Fix made to an obscure case in fits_modify_vector_len, where a wrongly issued EOF error may occur. - Added internal fffvcl() function. - Fixed bug in new 0-or-more wildcard pattern matching; one is to handle the match like -#COMMENT+ which doesn't have a wildcard, but still needs to match 0-or-more; a second is a 'bug' dealing with how CFITSIO scans for keywords with and without wildcards and whether the 'current' header position is reset or not. ******************************************************************************** ATTITUDE ******************************************************************************** - prefilter: Replaced call to obsolete atRigidity (float) with atRigidityD (double), and excised call to initialize_asca_derive_cor which was just a wrapper to the obsolete function atRigSet. - aspect: Initialized local variables ******************************************************************************** CALTOOLS ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: addarf, addrmf, cmppha, cmprmf, col2img, dmprmf, marfrmf, rbnrpsf, rpsf2eef, rpsfqdp, st2rpsf - Replaced older tools with Perl wrappers to their newer counterparts in the heasptools package: gcorpha -> ftgcorpha gcorrmf -> ftgcorrmf genrsp -> ftgenrsp rbnrmf -> ftrbnrmf rsp2rmf -> ftconvoldrsp ******************************************************************************** FIMAGE ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: fadapt, fboxcar, fgauss, fim2lst, fimconcat, fimgbin, fimgdmp, florentz, fmedian, fvec2img ******************************************************************************** FUTILS ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: fcurve, fplot - Removed deprecated task 'findex' ******************************************************************************** FV ******************************************************************************** - Fixed random Mac OS crashes of iwidget radio box in menus for Preferences, 'Export table to text', 'Create new table', 'Create new extension' - Fixed export to text for image extensions on Mac OS - Updated scripting capability; added 'closehelp' and 'closetool' options to enable closing of help and skyview, catalog, vizier via script - Fixed exporttable issue and also allow the function to bypass GUI interaction via script - Removed GUI to run ftools ******************************************************************************** HEAGEN ******************************************************************************** - barycorr: (v2.2) Added support for NuSTAR 'fine' clock correction; allow clockfile=NONE for all missions ******************************************************************************** HEASARC ******************************************************************************** - nh: Changed the default map to the HI4PI (A&A, 594, A116); changed the default parameters size and disio to be optimized to the HI4PI map; changed array size and type; added code to trap nh negative value, coordinates wrap - Replaced udmget/udmfre with allocate/deallocate in the following tasks: ascii2pha, extrpsf, fadmap, grppha, hkexpand, mathpha, sf2pha - rbnpha: Replaced by a wrapper to ftrbnpha (heasptools) ******************************************************************************** HEASP / HEASPTOOLS ******************************************************************************** - Changed rmf compression criterion to only include elements with values > LO_THRES instead of >= LO_THRES - Updates to Python module to work for both Python 2 and 3. - Trapped a potential problem in getValues if maxEindex < minEindex; Write EBOUNDS and MATRIX energy columns as D instead of E to avoid precision issues with high-resolution optical/UV spectra - ftsdss2xsp: Fixed check of PLATEID keyword. It is in the primary header, not the COADD extension. - Added wrappers for some old CALTOOLS and HEASARC tasks (see above): rbnpha, rbnrmf, gcorpha, gcorrmf, genrsp, rsp2rmf ******************************************************************************** HEATOOLS ******************************************************************************** - ftmerge: (v2.3) Flush output table after each input is processed - ftsort (v1.8), ftmergesort (v2.0): Improved to handle variable-length columns - ftverify: (v4.19) Added option to test that HIERARCH keywords conform to the ESO convention ******************************************************************************** TIME ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: deadtime, fltime, mgtime - maketime: (v2.15) Fixed bug in new premax/postmax code - now correctly handles gaps; improved premax/postmax logic for corner cases ******************************************************************************** XRONOS ******************************************************************************** - Note that under newer Debian-based systems (e.g. Ubuntu 18.10 and newer), many XRONOS tasks currently suffer memory faults. These are expected to be fixed in a later HEASoft release or patch. - (libxronos) Fixed attempts to address arrays with 0 index as kmax array has not been initialized ******************************************************************************** XSELECT ******************************************************************************** - Fix for 'select hk' command: Needed to specify prefr/postfr parameters to maketime to avoid an output message that xselect interpreted as a failure. - Trapped case of region not being set when one is required to make the response. - When writing out the observation catalog no longer page but write the whole thing out in one go. Since everyone has scrolling terminal windows paging is no longer necessary and the change enables running scripts with large observation catalogs. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.26 includes Xspec 12.10.1f. See also: https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html ******************************************************************************** XSTAR ******************************************************************************** Xstar v2.54: - Changes to improve printout of abundances and other input parameters. Repair of a bug affecting the output to xout_spect1.fits which mixed the incident continuum into the outward-emitted radiation field. ******************************************************************************** ASCA ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: ascaarf, ascaeffmap, cleansis, ghkcurve, sisclean ******************************************************************************** CGRO ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: bcmppha, like, specmat ******************************************************************************** EXOSAT ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: cmadead, exomerge - automerge: Modified temporary output filenames. ******************************************************************************** MAXI ******************************************************************************** - Updated solar paddles ASCII files used in the task mxscancur - Updated keywords for ver2 processing - Update code in libraries to support version 2 of the data - mxdownload_wget.pl: Changed to make default for data download to point to HEASARC instead of DARTS - mxproduct: Now handles the leap second file from REFAREA as the first choice; includes a more robust check for CALDB; fixes multiple spectra sum ******************************************************************************** NICER ******************************************************************************** NICERDAS Version 6: - nicerl2: (v1.7) Fixed bug in passing nimaketime parameter with quotes; now runs nipprefilter2 to update the filter file - nicerl2, nimaketime, niprefilter2: Changes to accomodate new parameter options of nimaketime and niprefilter - nicertimeconv: Added nicer_epoch_time() function to relate NICER MET to Unix MET - nimaketime: Changed data screening defaults based on 18 months of operation ******************************************************************************** ROSAT ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: ao, calcbgdcor, detect, hriaspcor, hriexpmap, hrifilt, hrirpsf, mkqsrc, pcarf, pcecor, pcexpmap, pcfilt, pcparpha, pcrpsf, pcsasscor, pctcor, src2pha, tilt ******************************************************************************** SWIFT ******************************************************************************** XRTDAS Build 35 (v3.5.0): - xrtcalcpi: Added dependence on event grade for the energy offset correction associated to charge traps - xrtpipeline: Added new input parameters used for the `xrtwtcorr' run - xrtwtcorr: Added identification and flagging of trailing charge pixels for data taken in Windowed Timing mode Note that these updates require CALDB updates XRT 20190412 and MIS 20180305 ******************************************************************************** VELA5B ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: fvelalc, fvelgallc, fvelmap - fvelalc: (fvelalc.par) Added default values to maxflux & maxerr parameters - fvelgallc: Commented out NAXIS=2 error condition trap as NAXIS comes up as 0 incorrectly in some rare instances (unless optimization is lowered) and is otherwise unused; other FITS characteristics are correct ******************************************************************************** XTE ******************************************************************************** - Replaced udmget/udmfre with allocate/deallocate in the following tasks: addshots, addsine, fakelc, hxtarf, pcaclrsp, perdgrm, saextrct, seextrct, xpcaarf, xtecol - pcabackest: (v3.12) Code cleanup including new more mathmatically correct interpolation routines which are strictly flux conserving - Removed deprecated task 'fgabor' ******************************************************************************** MISC. ******************************************************************************** - PGPLOT: Made checking for drivers that use 'vector' fonts more generic; Prevent text field overflow when writing PostScript files; modified degrees-minutes-seconds labeling code to be more visually consistent; old symbols were effectively superscripted twice, which leads to small and high symbols; now they are at same level and size as 'd' 'h' 's' symbols - Updated handling of shared libraries on Linux, i.e. to use rpath and to resolve symbols (where possible) at library build time. Reworked linker flags on Macs: synchronized shared library linker flags to all use "-undefined dynamic_lookup", adding "-flat_namespace" when using XCode clang[++] or (just) for Python libraries when _not_ using XCode clang[++]. This approach fixes problems loading Python libraries when built with a complete (third-party) GCC suite. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** 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. ******************************************************************************** CFITSIO ******************************************************************************** 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 syntax. - 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. ******************************************************************************** CCFITS ******************************************************************************** - Converted all cases of catching std::bad_cast exceptions from by-value to by-reference. ******************************************************************************** HEASP ******************************************************************************** General: Made arf, pha, and rmf classes a bit more tolerant by allowing reading of files where extensions are identified only by HDUCLAS* keywords. 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. grouping: 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. pha: 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 written. 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. arf: Added handy routines to return the extension numbers of SPECRESP extensions in a file and the type of an extension. arfII: Made recognition of arf extensions more flexible in NumberofARFs. rmf: 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. table: 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 ******************************************************************************** ATTITUDE ******************************************************************************** - 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 compatibility 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): MAGFIELD MAGFIELD_MIN MAGVECT MAGVECT_POL ZENITH_ANGLE EAST_ANGLE NORTH_ANGLE BEARING_ANGLE EARTHPNT_LAT EARTHPNT_LON EARTHPNT_RANGE 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 ******************************************************************************** FIMAGE ******************************************************************************** - flst2im: (v1.4.1) Added support for columns scaled with non-integer TSCALn keywords ******************************************************************************** FUTILS ******************************************************************************** - 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 Tn 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 ******************************************************************************** FV ******************************************************************************** - Fixed crash when plotting image tables - Fixed crash stemming from incorrect WCS initialization ******************************************************************************** HEAGEN ******************************************************************************** - barycorr: In the case where TSTART & 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 & valuef to avoid returning an undefined value (to e.g. barycorr) when TSTART & TSTOP are missing Handle Swift UVOT event files and Swift MAGHIST files (output of uvotevtlc) 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 intended. ******************************************************************************** HEASARC ******************************************************************************** - 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 ******************************************************************************** HEASPTOOLS ******************************************************************************** - 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 extension. - 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 & nchan; if an ebinfile is specified, pass ecmpmode=ebinfile; otherwise pass ecmpmode=linear and the ebfact value. ******************************************************************************** HEATOOLS ******************************************************************************** - 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). ******************************************************************************** XRONOS ******************************************************************************** - All tasks updated to fix memory faults occurring under recent Debian- based systems (e.g. Ubuntu 18.10 and newer) ******************************************************************************** XSELECT ******************************************************************************** - 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. ******************************************************************************** XSPEC ******************************************************************************** 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 routine. 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: https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html ******************************************************************************** XSTAR ******************************************************************************** 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. ******************************************************************************** ASCA ******************************************************************************** - 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 routines - ofaintdfe: Removed this deprecated task ******************************************************************************** EXOSAT ******************************************************************************** - tkexomerge: Altered window parenting to make children windows visible ******************************************************************************** MAXI ******************************************************************************** - 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 ******************************************************************************** NICER ******************************************************************************** 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, prefilter_columns) - nicerpi, nicertimecal, nicertimeconv, nimaketime, niprefilter, niprefilter2: Changes to fix the timegm() Y2020 "trap": This affects routines that use Perl's Time::LocalTime::timegm() function: http://blogs.perl.org/users/grinnz/2019/07/the-timelocal-trap.html 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 ******************************************************************************** NUSTAR ******************************************************************************** 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. ******************************************************************************** ROSAT ******************************************************************************** - 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) ******************************************************************************** SUZAKU ******************************************************************************** - xisarfgen: Updated to support PHAFILE==NONE ******************************************************************************** SWIFT ******************************************************************************** BAT: - 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: http://blogs.perl.org/users/grinnz/2019/07/the-timelocal-trap.html - batcelldetect: MPFIT: Bug fixes for two-sided derivative mode (buffer overflow avoidance as well as correct two-sided calculation) UVOT: - uvotmaghist, uvotproduct, uvotsource: Improved region validation for UVOT photometry/light curves. - uvotproduct: Install uvotproduct ds9 v7 grid file in REFDATA XRT: - 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 ******************************************************************************** XTE ******************************************************************************** - 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: http://blogs.perl.org/users/grinnz/2019/07/the-timelocal-trap.html 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 ******************************************************************************** MISC. ******************************************************************************** - Dropped support for Cygwin in favor of Windows Subsystem for Linux (WSL) - Fixed bugs in the DESTDIR mechanism - HEASoft now includes the GSL & 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 -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.27.1 April 13, 2020 ******************************************************************************** The HEASoft 6.27.1 release is driven by critical updates to the mission- specific NuSTAR data analysis software, but includes bug fixes in the HEASP and HEASPTOOLS packages as well. Patches are available for users who wish to update their existing 6.27 installation to 6.27.1. Please see our download page for more information: https://heasarc.gsfc.nasa.gov/lheasoft/download.html ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS V1.9.1 and V1.9.2: numetrology: This NuSTARDAS release is required for analysis of all NuSTAR observations performed after March 16, 2020. On that date the on-board metrology system (which tracks the relative motion of the NuSTAR optics bench and the focal plane bench) underwent a flight software upgrade to improve the longevity of the metrology laser system. NuSTARDAS V1.9.1 and V1.9.2 are upgrades to handle metrology data in METSTATE 4 and 6, respectively, which are flags in the data stream that self-document the state of the laser metrology system. These software changes are transparent to the user requiring no syntax changes when calling Stage 1 of nupipeline. There is no change to the quality of the science data. Please note that attempting to use NuSTARDAS V1.9.0 (released with HEASoft 6.27) or any earlier versions of the NuSTARDAS with data taken after March 16, 2020 will result in an error during Stage 1 of the pipeline processing and result in empty PSD, corrected PSD, and mast files. This version of NuSTARDAS is backward compatible with all NuSTAR data in the HEASARC from before March 16, 2020. More details can be found in the NuSTAR Software Users's Guide. ******************************************************************************** HEASP ******************************************************************************** pha: Fixed bug when grouping by S/N which caused last set of channels, which do not achieve the required S/N, to be incorrectly labeled as good quality. ******************************************************************************** HEASPTOOLS ******************************************************************************** - All tools now copy any primary array and keywords from the input file to the output file. Also, where feasible, any extra columns in the extension(s) being modified are also copied from the input file to the output file. - ftdmprmf: Fixed bugs in writing out the number of response values per group, total efficiency, and missing final energy range. -------------------------------------------------------------------------------------------------------------------------------------- ******************************************************************************** RELEASE NOTES FOR HEASOFT 6.28 August 11, 2020 ******************************************************************************** The HEASoft 6.28 release is driven primarily by updates to mission- specific data analysis software (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 ******************************************************************************** Version 3.49: - Fix to imcompress.c. It now turns off quantization if ZSCALE and ZZERO columns are missing. Treatment will be the same as if ZQUANTIZ were set to 'NONE', even if ZQUANTIZ is present and set to something else. - Added mutex to fits_execute_template() function so that the creation of files using ASCII templates will be thread safe. - In fpack when using -table flag, replaced warning message with a more detailed description mentioning FITS format update. - Added flag to CMake builds to disable curl dependency. Also only add CURL_LIBRARIES to CMake link target if curl is found. - Minor adjustment to download progress output. - Added support for Haiku OS. ******************************************************************************** CCFITS ******************************************************************************** - Bug fix in setLimits functions needed to create objects of type ColumnVectorData ******************************************************************************** HEASP ******************************************************************************** - Fixed a bug which could cause pha files to have both a keyword and column with the same name. - Changed read column methods so that they check for a keyword if the column is not found rather than the other way round. This avoids a possible problem if the extension has both. - Efficiency improvements. - Added options for start and end channel to grouping::loadOptimal. - Fixed a bug in grouping::GroupBin which was not taking into account the quality flag. - In arf::read check for an EBOUNDS extension to read ENERG_LO and ENERG_HI which might occur in a type II file - Fixed a bug in rmf::check which incorrectly flagged an error if the F_CHAN column had the maximum channel value and the first channel was non-zero. - Modified the rmf and rmft classes to change from vectors to vectors of vectors for the first channel in group, number of channels in group, order of group, and matrix elements. This leads to a simplification in the code. - Added a new version of rmf::addRow which takes the channel group information. Added a rmf::substituteRow method which takes a compressed format row as input. - Changed rmf::normalize to return the vector of normalization factors. - Added an rmf::changeFirstChannel method to change the first channel value used (usually switching between 0 and 1. - Trapped case in table::getValues of there being no overlap between the input energy range and the tabulated energy range. ******************************************************************************** CALTOOLS ******************************************************************************** - addarf: Fixed bug preventing clobber parameter from working - dmprmf: Replaced with a wrapper to ftdmprmf (heasptools) ******************************************************************************** FUTILS ******************************************************************************** - fverify: Synchronized with ftverify (improved checking for duplicate HIERARCH keywords) ******************************************************************************** HEASARC ******************************************************************************** - addspec: Updated to use ftmarfrmf & ftaddrmf (heasptools) instead of marfrmf & addrmf - extractor: Fixed bug writing a region extension if the region contains shapes with different numbers of points ******************************************************************************** HEASPTOOLS ******************************************************************************** - Changes for new internal structure of rmf class. - ftaddrmf: Slight efficiency improvement: reduces number of rmf object copies by one. - ftflx2xsp: Added a first parameter to let the user control the first channel number. - ftgrouppha: Added option to use minchannel and maxchannel parameters with the opt method; modified so if the backfile or respfile parameters are set then it writes the appropriate keyword values to the output spectrum; added reading background and/or response file from the input file if the parameters are set to %; also, do not reset the ANCRFILE in the output file. - ftrbnrmf: Improved testing and diagnostic information for user setting inconsistent input - ftrgsrmfsmooth: Fixed bug in reading the image description file. Slight efficiency improvement from not copying an rmf object. ******************************************************************************** HEATOOLS ******************************************************************************** - ftjoin: Minor pattern matching improvements - ftmerge: Added support for tables with variable-length arrays - ftsort: Changed way that variable columns are checked for ******************************************************************************** XSELECT ******************************************************************************** - Fixed problem with the gisclean command if a filename included an environment variable. ******************************************************************************** XSPEC ******************************************************************************** HEASoft 6.28 includes Xspec 12.11.1, a patch release: All fixes and enhancements contained in 12.11.0 patches (a-m) are included. The following are also included: - Added new "show bayes" option to display all non-constant Bayesian prior assignments to individual parameters. - All Bayesian prior assignments are now properly stored in files generated by 'save' command. - Added new tclout(r) modnames option to write out model names. Added new tclout(r) pfree option to give T/F on whether a parameter is free. Added new tclout(r) option "tclout modgroups " which returns the data groups associated with a particular model. - Modified tclout(r) so it only writes out each model once, not one time for each data group to which the model applies. - Removed the requirement of a valid fit to perform a "flux error" calculation, provided that a proper chain file for the model is loaded. - Improved the generation of parameters using simpars when parameters have widely varying sizes. It is still better in this case to define a new model using mdefine which scales the parameter values appropriately. - Trapped problem in table models if there is no overlap between the response energies and the tabulated energies. - Fixed problem that if two different response matrices with the same name but in different directories are used then xspec assumes that they are the same. - Fixed problem that generated an error if the response F_CHAN had the maximum channel value and the first channel was non-zero. - Fixed bug for corner-case of attempting to fit when response parameters are assigned to inactive models. See also: https://heasarc.gsfc.nasa.gov/lheasoft/xanadu/xspec/issues/issues.html ******************************************************************************** NUSTAR ******************************************************************************** NuSTARDAS v2.0.0: Requirements: NuSTAR CALDB 20200YXX This NuSTARDAS implements a new temperature-dependence during the ARF generation that should improve performance in a small number of cases for FPMA. The software change is required to account for cases where the optic for FPMA is "cold", implying a decrease in the effectiveness of the thermal blanketing (MLI) and a corresponding increase in the low-energy transmission. This primarily affects observations after 2018. This builds on the long-term ARF changes for FPMA documented here: https://heasarc.gsfc.nasa.gov/docs/heasarc/caldb/nustar/docs/release_20200429.txt The accompany CALDB patch 20200YXX contains the temperature-dependent corrections and is required for this software version. Details on the issue can be found in this paper: https://arxiv.org/abs/2005.00569 More details about the MLI correction can also be found here: http://www.srl.caltech.edu/NuSTAR_Public/NuSTAROperationSite/mli.php :: Note :: This patch requires access to the optics bench housekeeping file (obebhkfile). This file is distributed for each observation in the "hk" subdirectory from the HEASARC. If an observation is downloaded from the HEASARC, as always, we recommend running nupipeline to recalibrated the data using the latest CALDB files. This will copy the OBEB HK file into the output directory (commonly the "event_cl" directory). No further action is required by the user as these input files are automatically detected by nuproducts during later analysis if they are present in the event_cl directory. To call nuproducts directly on the data downloaded from HEASARC requires the use of new input keyword: `inobebhkfile'. Details of this are described in the software user's guide https://heasarc.gsfc.nasa.gov/docs/nustar/analysis/nustar_swguide.pdf and in the quickstart guide: https://heasarc.gsfc.nasa.gov/docs/nustar/analysis/nustar_quickstart_guide.pdf :: Software changes :: The major changes introduced in this version are: - numkarf: 1) Added temperature dependency for ARF files CALDB query; 2) Added new 'obebhkfile' input parameter and computation of "OPT0_5TEMP" average value. - nuproducts: 1) Modified call of numkarf task; 2) Added new 'obebhkfile' input parameter. - nupipeline: 1) Modified call of nuproducts task; 2) Added new `inobebhkfile' and `obebhkfile' input parameters. - nu_highfits: Modified to support TFORM values '1PD(X)/1PI(X)'. ******************************************************************************** SWIFT ******************************************************************************** BAT: - (batgrbproduct) bat-burst-advocate: minor typo fix in filtering expression UVOT: - (uvotimage) uvotrawevtimg: BUG FIX: update attitude for each new event time. The primary impact of this bug was star trails in settling images. XRT: - XRTDAS v3.6.0 (build 36): Modifications to support variable- length arrays (TFORM '1PD(X)/1PI(X))' (as are now generated by extractor) - xrtlccorr: Corrected minor bug in a few error messages - xrtgrblcspec: Minor correction to avoid empty channels with small gap intervals ******************************************************************************** XTE ******************************************************************************** - xenon2fits: Fixed crash - pcarsp: Fixed call to ftrbnrmf (no chatter parameter) ******************************************************************************** MISC. ******************************************************************************** - Miscellaneous updates to support GCC 10 (previously included with HEASoft v6.27.2a)