******************************************************************************** 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).