Demeter revision history

Table of Contents

1 0.9 series

1.1 0.9.26 ?? January 2017

1.1.1 Athena

  • fix XDI headers in “save marked groups” output files, also add templates to provide for the special case in k of two abscissa columns
  • Boxcar average smoothing failed to copy bkg_eshift to the new group (Thanks to Ian Godrey) Fixed same error in Gaussian filter smoothing.
  • Fixed a spurious error message reporting results of an LCF fit. (Thanks to Fred Mosselmans)
  • When doing things with marked groups in diff spectrum tool, be sure that standard is removed from the list of marked groups. (Thanks to Sinead Rowe)
  • Fix a problem processing keV data when using Larch (Thanks to Juan de la Figuera) (See issue #42)
  • Bug fix for the SSRLA filetype plugin (Thanks to Simon Bare)

1.1.2 Artemis

  • Actually use the user-supplied value of epsilon_k (Thanks to Victor Streltsov)
  • disable C-left on path list, which was used (I think) to clone paths. This is a loss for dnd a path to another data set, but I suspect that is not much used.
  • Fix several bugs in multiple data set fits using Larch
  • Change the symbol for an excluded path from three parens (((path))) to --(path)--
  • Improved validator for N path parameter – it can now be blank. Also selecting all then typing works sensibly

1.1.3 Atoms

1.1.4 Hephaestus

  • Added P K, S K, Cl K, Ag L3, and Pb L3 standards contributed by Lisa Bovenkamp-Langlois

1.1.5 Demeter

  • Try to start Larch, if no success fall back to Ifeffit. Accept a PR from Matt related to this.
  • Delay loading of more stuff to speed start-up
  • Update non-root installation instructions (Thanks to Patrick Browne)
  • DEMETER_MODE and DEMETER_NO_BACKEND environment variables recognized. The first provides a way to set the Mode ui very early in startup. The second blocks using either Larch or Ifeffit for an application that is entirely contained within Demeter (WebAtoms, which does not plot, is an example).
  • Recognize and use web import mode, i.e. use Demeter qw(:ui=web);
  • Attempt to teach STAR::Parser to deal with “_eof” in a CIF file. (Thanks to Alessandro Longo)
  • Fixed a few testing bugs, skip XDI tests, force use of Ifeffit for testing. The last two are not permanent. In particular, testing with Larch is very important.
  • All tests passing with Larch (also still pass with Ifeffit)!

1.1.6 Windows

  • Upgrade to Strawberry with perl 5.24, upgrade to 64 bit Gnuplot 5.0.4

1.2 0.9.25 24 August 2016

1.2.1 Athena

  • Menus of groups names not updating correctly in data summation tool. (thanks to Matteo Busi)
  • Attempt to handle non-US-ASCII characters in file names gracefully using wxWindows. (thanks to Marcelo Eduardo Alves for bringing this to my attention)
  • Fixed missing columns from mu(E) and norm(E) output files for XANES data (thanks to Jeff Catalano)
  • Fixed a problem with selections in data summer being unset in certain situations (thanks to Ian Godrey)
  • Offer a useful warning when trying to read an Artemis project file into Athena (thanks to Galen O’Neil)
  • Add filetype and beamline plugins related to BL8 at SLRI (thanks to Wantana Klysubun for beamtime!)
  • Fix display issues in peak fitting tool, use three-letter strings rather than numbers as identifiers, discarding works better, action buttons disabled when last function is discarded (thanks to Wantana Klysubun and the participants of the 2016 ASEAN Workshop on XAS)
  • persistence in project file for LCF, PCA, peak fit (thanks to Sunil Patil) works for both original and JSON style project files
  • Plot indicator in MEE tool

1.2.2 Artemis

  • Control for enabling 5- and 6-legged paths in Feff tab
  • Don’t consider skip parameters when checking for unique parameter names
  • Fixed the incorrectly implemented data-collision Fit sanity check (thanks to Isabelle Kieffer)

1.2.3 Hephaestus

  • Configurable plotting range in standards tool
  • Compute transmitted fraction in formulas tool
  • Add newly named element data Nh, Mc, Ts, & Og
  • Added a buffer for displaying ifeffit/larch and plot commands

1.2.4 Atoms

1.2.5 Demeter

  • When saving LCF results, sort the standards alphabetically. (thanks to Florian Werner)
  • Disable check to see if a file is locked. Currently does not work over NFS and I do not know how to check is a drive is an NFS mount (thanks to Karen Chen-Wiegart)
  • Add 5- and 6-legged paths to pathfinder
  • Add xyz, alchemy, and overfull output types for Atoms
  • Added Demeter::UI::Wx::ConfigurationDialog
  • Added a fitting sanity check to verify that the ScatteringPath object actually exists
  • Removed {\267} from gnuplot plots in k-space (thanks to @roentgenium and many others)
  • Explicitly set SIGALRM in several more places, which is helpful for command line scripts
  • Remove t/t symlink. See #26. (thanks to @dkriegner)
  • Add chi(E) column to xmu output file (thanks to Matteo Busi)
  • Fixed a perl 5.22 issue with Atoms potential list creation
  • Preserve Scan.start_time metadatum of first group when making a merge
  • Move several shared GUI modules into Demeter/UI/Common

1.2.6 Windows

  • Add Win32::Unicode::File to dependency list
  • use latest Strawberry Perl in installer
  • add Xray::XDI to package
  • recognize Windows 10 (thanks to Jeff Catalano)
  • fix a problem finding fefftab and cldata files
  • include new documentation

1.2.7 Documentation

  • Begin using new, sphinx-based documentation
  • Fixed a misstatement in the Athena document about the order of columns in the norm(E) output file (thanks to Jeff Catalano)
  • Add link to Hiroyuki Asakura’s translation to sidebar of Athena document
  • Finish off FeS2 example in Artemis doc (thanks to Matthew Marcus for the push)

1.3 0.9.24 23 October 2015

1.3.1 Demeter

  • Fix a problem related to spaces in path names when opening the pipe to gnuplot

1.3.2 Artemis

  • Half-hearted attempt to fix an odd edge case in importing old-style project files with a FEFF.INP file (in caps).

1.3.3 Hephaestus

  • A few changes to display of beamline customizations

1.4 0.9.23 15 October 2015

1.4.1 Athena

  • In plugin configuration tool, fix crashiness of “reset all” button (thanks to roentgenium, issue #23) Note: in the end, the reset_all button was commented out – it is implemented awkwardly.
  • Changes made to plugin configuration now correctly saved to and restored from demeter.ini (thanks to roentgenium, issue #23)
  • implement a functional normalization control (thanks to Giuliana Aquilanti) {pre3} also athena->show_funnorm configuration parameter, enable control if athena project file is read which uses funnorm.
  • rearrange controls in normalization and background removal group to better distinguish which parameters control normalization and which background removal

1.4.2 Artemis

  • Fixed a serious problem setting windowing function in Artemis. There was a situation where the function could change between successive fits, resulting in different fitting results without changes to the model. (thanks to Ian Godfrey)

1.4.3 Hephaestus

  • configurable energy width used for computing edge steps. see comment from Matthew Marcus {pre3}
  • on Data tool, added Shannon atomic radii using json version of David van Horn’s compilation of the Shannon data (thanks to Neil Hyatt)
  • On Data tool, added neutron scattering lengths and cross sections from V.F. Sears, Neutron News, 3:3 (1992) pp. 26-37 and NIST NCNR.
  • Better handling of enabled element buttons
  • New colors for lanthanides, actinides, and unknowns
  • Added discovery date to elemental data display
  • Added elements 110 to 118
  • Added beamline customization to Absorption page
  • Abstract element enabler for use in several places in Hephaestus
  • On Data tool: buttons for showing Mossbauer-active elements and elements by decade of discovery

1.4.4 Demeter

  • Fixed a crashy bug in Demeter::Data::XDI
  • Removed a bit of code related to choice of plot terminal with Gnuplot 5 that was not respecting the configured terminal value (thanks to Ian Godfrey)
  • use instead of in DemeterBuilder, see this
  • implement a functional normalization for use in tender energy fluorescence EXAFS data where I0 changes a lot over the course of the scan. this divides mu(E) by (post-pre) before removing background (thanks to Giuliana Aquilanti) {pre3}
  • Plucking now works with the qt terminal, although the first double click of the session will always fail to return something useful (simply do another double-click before the time out).

1.4.5 Windows

  • Handle path munging at the level of the .bat file header. take care with relocation (thanks to Matt)

1.5 0.9.22 29 July 2015

1.5.1 Athena

  • Fixed behavior of UI::Athena::Cursor when time-out happens by checking if a vary large negative number is returned (thanks to Ian Godfrey) {pre1}
  • Fixed import of pre-nomralized XANES data (thanks to Ken Latham) {pre4}
  • Deglitching now plots with points (thanks to Shoaib Muhammad) {pre4}
  • Deglitching now uses energy shift correctly (thanks to Shoaib Muhammad) {pre4}
  • Do not disable “Save fit sequence” button when selecting groups. (Thanks to a fellow named Muhammad at the 2015 ASEAN Workshop on X-ray Absorption Spectroscopy)
  • A change in 0.9.20 made it impossible to change the defaults for plotting ranges in the four spaces. This has been fixed. (thanks to Lisa Bovenkamp)
  • Fix buglet with ln checkbutton in col. sel. dialog reported as issue #22 (thanks to roetgenium)
  • Better handle case of i0_string = 1, leading to an array of ones for the i0 array

1.5.2 Artemis

  • Care with path-like objects when Xray::XDI is not available. (thanks to Ian Godfrey) {pre1}
  • Issue with how log file is displayed in the history window. Had been regenerated from Fit object, which could cause confusion related to current state of Data object(s). Now simply using log file which is saved in the fit folder. (thanks to Ian Godfrey and Jason Gaudet) {pre2}
  • Fix display of path labels using pathfinder->name mini-templates (thanks to Anna Wolska) {pre4}
  • Accommodate linear polarization (but not ellipticity) in Artemis (thanks to Anna Wolska and Shoaib Muhammad) {pre4} + proper handling of persistance in Artemis
  • Making VPaths and transfering paths now also plots in R automatically. Also, options for all/marked paths. (Thanks to Matt) {pre4}
  • plot after fit now certain to respect k-weight setting in Plot window
  • data+fit save file in Artemis are now XDI files
  • crude fix for an odd situation where the _fit group’s k array gets reset to something different from the Data k grid. Interpolate back onto the expected k-grid. (thanks to Rosalie Hocking)
  • Remove spurious minus sign appended to results of GDS evaluate button
  • remove wxSHAPED attribute from GDS window’s toolbar

1.5.3 Hephaestus

  • Added annotations for many Ag standards. (thanks to Ian Godfrey) {pre1}
  • Fixed molarity calculation in formula tool and set density/molarity units correctly (thanks for Guanghui Zhang)

1.5.4 Demeter

  • Manage deprecation of Module::Build from perl core by placing Module::Build in `inc/`. See this and this.
  • Fix several minor gnuplot display problem
  • Attempt to sensibly default to wxt terminal with gnuplot 4.6 and qt with gnuplot 5.0
  • Adjust build script to try to set the terminal default sensibly at install time
  • Fix is_json file test for files with CR line termination (thanks to Anna Zimina) {pre3}
  • Add capacity to Atoms, Feff, ScatteringPath objects to accommodate polarization
  • In some cases, chi_noise called with 0 for kmax. Use fft_kmax in that case.
  • Change default for copyright statement in plot to false
  • Fixed a testing bug resulting from gnuplot not being found (thanks to Isabelle Kieffer, see mailing list for 15 July, 2015)
  • Kernel width for rebinning is now configurable (thanks to Joel Ullom)

1.5.5 Windows

  • Now using gnuplot 5.0.0 in the Windows installer

1.6 0.9.21 26 February 2015

Begin practice of using {preN} tags to indicate exactly when a feature was added. Also begin practice of acknowledging the (appropriate individual) directly with the change log entry.

1.6.1 Athena

  • XDI integration (available in Demeter, but Xray::XDI is not currently in the Windows distribution)
  • pluck button for MEE
  • fixed a bug related to the inv button in Col Sel dialog (thanks to Ian Rosbottom)
  • Fixed the appearence of the Busy cursor in column & project selection dialogs on Windows (thanks to Ian Godrey)
  • Improvements to import of chi(k) data + LCF using chi(k) imported data (thanks to Andrea Foster)
  • Menu items for reporting a bug and asking a question
  • Add energy columns to chi(k) output files. (thanks to Karina Mathisen) {pre3}
  • Take care to handle xdifile Data attribute when Xray::XDI is not available (thanks to Ian Godfrey) {pre3}
  • Fixed faulty output file from log-ratio analysis {pre5}
  • Fixed a problem whereby a group using a bkg removal standard not present in the project would cause a crash (thanks to Allen Robert Morris)
  • Option for writing and reading Athena project files in a JSON format. (thanks to Matt for the prompt)

1.6.2 Artemis

  • Disable run atoms and run feff buttons after first DnD of a path (thanks to Yanyun Hu)
  • XDI related bug in Demeter::Fit (thanks to Allen Robert Morris)
  • Add a line about background removal parameters to Artemis log (thanks to Sebastiano Cammelli)
  • Menu items for reporting a bug and asking a question
  • Fix problems importing a project file containing FSPaths – need to recompute Feff at the correct time. (thanks to Ian Godfrey) {pre2}
  • Correctly display initial guesses of 0 when reading GDS values from a project file. (thanks to Ian Godfrey) {pre3}

1.6.3 Atoms

  • Menu items for reporting a bug and asking a question
  • slapped an eval around the feff run. this allows feff to fail a bit more gracefully. feff’s error message gets sent to STDERR (i.e. the screen or the log file on Windows) and an inscrutible message gets posted via carp, but Artemis/Atoms does not crash. (thanks to Stephen Parry) {pre4}

1.6.4 Hephaestus

  • Menu items for reporting a bug and asking a question

1.6.5 Demeter

  • Sensible message and die when encountering a problem loading or (thanks to Eric Breynaert)
  • Expunge all reference to my email address, replacing it with a link to my homepage
  • Work around the mysterious situation on Windows wherein the MRU file gets overwritten with a few hundred NUL characters, causing a crash in Config::INI::Reader. I have no idea what causes this, but changing from croak to carp when handling an unparsed line avoids it and issues a useful error message. (thanks to Kurinji Krishnamoorthy)
  • XKCD-ish plots in A&A
  • font picker control now available in Demeter::Wx::Config
  • Update tests to reflect recent larch-related changes (thanks to Stevan Ognjanovic)
  • Fix a silly mistake introduced to one of the Chantler data files when I did s{2014}{2015}g in January (thanks to Stevan Ognjanovic)

1.6.6 Larch

  • Much work on both Athena and Artemis to work properly with Larch, particularly in light of recent changes to larch server
  • Made “l” versions of A, A, and H. These set DEMETER_BACKEND to “larch” in the BEGIN block
  • Made larch_server.ini file, specify windows path for larch_server

1.6.7 Windows

  • Add Demeter version number to screen/log file messages {pre3}

1.7 0.9.20 12 May 2014

1.7.1 Athena

  • File drag-n-drop onto the group list from the system file manager
  • Control-left-click for reorganzing group list items disabled in favor of file drag-n-drop
  • Booth self-absorption algorithm now implemented correctly
  • Added Hephaestus doc to the Athena Users’ Guide
  • remove coloration characters when saving the contents of the status bar buffer so as not to trigger perl’s wide character warning
  • error messages for zero plotting range, excessive columns in save marked groups with Ifeffit, and lots of groups with Ifeffit
  • added refresh project menu option as a fallback for occassional problem of data not updating
  • fixed a bug processing normalized groups
  • added biquad plot, in Plot menu + right click on purple q button
  • wxWidgets 3.0 changes the semantics for the GetSelection method for controls that can possibly have multiple selection, including the widget used to select a processing standard. In those cases GetSelection is now explicitly called with scalar so that single selection is processed correctly
  • deglitch and truncate parameters are now persistent within an instance – this facilitates efficient processing of many data sets with a similar problem, such a diffraction peak

1.7.2 Artemis

  • Drag and drop Athena or Artemis project files onto the Data list
  • Drag and drop CIF, Atoms, Feff input files onto the Feff list
  • Removed dependence on Wx::Html (causes seg fault on Mac, not really very important) and removed print and print preview buttons from History, Log, and Journal
  • fixed problems handling import of chi(k) data into Artemis
    • fixed a problem serializing data that had been imported as chi(k)
    • take care to toggle the from_yaml attribute to true when importing data from a project file. this was needed to pass the “data exists” fit sanity check
  • corrected an odd bug whereby relation between a FSPath and it’s Feff calculation could be lost in a project file (see thread starting at
  • save path interpretation from Path page in Atoms window
  • reorganized some buttons in the Atoms window
  • attempted to fix a bug wherein an incorrect argument could be sent to Wx::ComboBox’s SetStringSelection method in Align, LCF, and a few other places
  • parse a feff.inp file for feff8/9 correctly for use with feff6
  • I think I’ve fixed the problem of the data set being lost if a project is saved before a fit is made
  • fixed a display problem with radio button label widths on SS tab in Atoms

1.7.3 Hephaestus

  • Document now displayed in the system web browser (Wx::Html was not working on the Mac)
  • Removed dependence on Wx::Html by not loading Demeter::UI::Hephaestus::Help
  • added some more standards and using new standards subsystem enhancements
  • fixed a bug computing unit edge steps in materials with close edges
  • made the main window a bit bigger so that all controls are properly displayed

1.7.4 Atoms

  • sensible error messages from CLI version when no input file specified or when file does not exist
  • added atoms-gui script to bin folder
  • fixed a bug related to importing a feff.inp file directly onto the feff page in the Atoms GUI
  • import buttons on Atoms and Feff pages respond sensibly to files that are not CIF/atoms or feff files
  • enable aggregate calculation (given that paper will be accepted for publication by the time this is released), but only for Atoms in Artemis, not for stand-alone. Wrote documentation page for aggregate calculation
  • put controls for degeneracy margins front and center
  • deal sensibly with Feff’s hard-wired maximum cluster size of 500 atoms by writing only the first 499 sites, regardless of how many atoms are within Rmax
  • somehow, the shift vector never got implemented in Demeter (even though there are controls for it in the Atoms GUI). Wow! That is now fixed.
  • fixed a mistake reading space group symbols from CIF files when an alternate orthorhombic setting was used in the CIF file
  • progress on getting Atoms and the GUI to work correctly with rhombohedral groups
  • new button in GUI for inserting shift vector from Int’l tables
  • launching GUI from command line now respects input file argument
  • handle :R, :H, :1, and :2 symbol modifiers

1.7.5 Larch

  • Athena w/Larch now mostly works on Windows
  • use fill_value=0.0 with interp() to avoid issues with NaN values in arrays (no longer necessary, see
  • escape backslashes in filenames before sending them to Larch

1.7.6 Demeter

  • lots of code clean-up
  • improved methodology for populating Config pages in the GUIs
  • improvements to the PDF versions of the users’ guides
  • return to using wxFD_OVERWRITE_PROMPT with Wx::FileDialog rather than Demeter::UI::Wx::OverwritePrompt, which was fixing a problem in GTK 2.20
  • several enhancements to standards subsystem

1.7.7 Windows / Mac

  • This is the drop-the-D edition for Windows. The desktop icons no longer have “(D)” in their names.
  • Athena w/Larch now mostly works on Windows
  • Fixed a problem with real and integer configuration parameters being unset upon first time running Demeter. This was the problem requiring the withdrawal of 0.9.19
  • Attempt to deal with background color problem on Mac with Demeter::UI::Wx:Colours
  • Added Encoding::FixLatin::XS to the package to suppress a spurious message triggered when drag-n-dropping files in Athena and made it recommended in Build.PL
  • now building 32 and 64 bit packages for Windows
  • using head of ifeffit repo at github

1.7.8 Acknowledgements

  • Georges Siddiqi, Kevin Jorissen, Robert Gordon, Shoaib Muhammad all helped me address the problems with the 0.9.19 release on Windows
  • Frank Schima made yeoman’s progress on a MacPorts version of Demeter. He also suggested file drag-n-drop.
  • George Strbinsky helped me track down some issues in the Macports version
  • Ian Godfrey filed a bug report that uncovered two problems with importing chi(k) data directly into Artemis
  • Zack Gainsforth for additions/enhancements to standards system
  • Mengling Stuckman for reporting on an odd FSPath bug
  • Matt Frith for reporting a bug importing a feff.inp directly into the Feff page of the Atoms GUI
  • Dean Hesterburg pointed out a bug processing normalized groups.
  • Daniel Haskel noticed the Hephaestus bug for unit edges steps in materials with close-by edges
  • Madhusmita Sahoo noticed that the shift vector was unimplemented
  • Badari Rao reported the problem with data being lost when saving an Artemis project before doing a fit

1.8 0.9.19 8 January 2014 (withdrawn)

The windows installer for this release had too many problems and was withdrawn a couple of days after its release. One of the goals of 0.9.20 is to correct those problems.

1.8.1 Athena

  • escape group names when renaming, i.e. treat metacharacters in group names as normal characters
  • fixed a bug which disabled the Plot->Merge groups menu
  • Added datatype display on main window, Ctrl-Alt-Left click to toggle between xmu and xanes, abuse a HyperlinkCtrl to get a mouseover hint
  • improved X23A2MED plugin to deal with situation where tranmission is measured with the cap on the detector, resulting in some 0s in the slow column
  • choice of X-ray absorption tables now easily configurable in “absorption” group
  • fixed a bunch of problems with the Booth self-absorption algorithm
  • keyboard shortcuts for merging (C-S-m, C-S-n, C-S-c for merging in mu, norm, chi)
  • right click on several plot buttons makes a special plot from the Plot menu + status bar hints
  • added “Shrink” to plot options. this hides the k-weight and plot options controls, allowing more room for the group list. also shows a button for restoring the k-weight and plot options controls
  • added “Show measurement uncertainties” submenu to Group menu with options for this, marked, and all

1.8.2 Artemis

  • Fixed a bug in SSPath creation by drag-n-drop from pathlike tab
  • Add a site button now working on Atoms page
  • Graceful failure and useful warning message if crystal data results in 0 scatterers
  • Fixed a crashy bug running feff resulting a missed step after discarding a Feff calculation
  • Merged fix for unicode filenames in Artemis project file (see
  • Deal better with a project file saved before performing a fit
  • A bit more control over labels in path list with artemis->feffpathlist config parameter
  • Athena file MRU list now remembers record number and defaults to that record when selected
  • fixed a bug resulting in repetitious display of parameter values in log file
  • save VPaths to and restore from Artemis project files
  • added “transfer all” button to VPaths tab in Plot window

1.8.3 Atoms

  • fixed a bug processing hexagonal and trigonal groups with the command line atoms. oddly, these were handled correctly by the Wx version
  • Implemented Aggregate Feff calculation on Atoms Xtal tab
  • use path ranking choice to make intrp and display all rankings from button on intrp page

1.8.4 Demeter

  • Made the Demeter::Feff::Aggregate object for performing the pathfinder fuzzily over multiple crystallographic sites.
  • Addressed some failed tests in 012_atoms
  • Fixed a problem with fixed edge step value and XANES data
  • Added plus/minus sign to Demeter::UI::Wx::SpecialCharacters
  • Require MooseX::Types::LaxNum since Moose now has a much more strict definition of Num in a type constraint.
  • Fixed an issue surrounding Plot object’s terminal_number parameter and pgplot
  • Fixed a bug in the filetype plugin for the Lytle database
  • Require Archive::Zip >= 1.31 to get the option of Archive::Zip::UNICODE=1 which should help computers with unicode language settings
  • Implement Karine Provost’s path ranking criteria

1.8.5 Windows

  • New installer package with perl 5.18.1 and most recent versions of all dependencies
  • New installer removes old installation before installing

1.8.6 Acknowledgments

  • Fred Mosselmans noticed that the add a site button didn’t work in Atoms and that a project file saved before a fit is performed will crash Artemis
  • Andrei Shiryaev and Fen Fen Zhu noticed that unicode in Artemis project files was problematic and Matt Newville suggested a solution
  • Denis Testamale noticed that test 012_atoms was failing
  • George Sterbinsky for noting that a fixed edge step value was not respected for XANES data, for noticing the problem renaming Athena group names, and for noticing numeric type constraint issue with Moose>=2.0900.
  • Eric Breynaert for noticing a crash after discarding a Feff calculation
  • Julius Campecino for noticing an inelegant handling of a situation where running atoms results in 0 scatterers
  • Karin Provost for the idea of path ranking
  • Daniel Olive and Corwin Booth for pointing out that the Booth self-absorption implementation was horribly flawed

1.9 28 January 2014

This is a branch created to facilitate development of the Macports package. It has the following changes:

  1. Remove the dependence on Wx::Html and Wx::HtmlEasyPrinting, which is my suspect for the source of the seg fault
  2. Backport a requirement of MooseX::Types::LaxNum from 0.9.19. This solves a problem resulting from a recent change to the Moose object system, which Demeter relies upon.
  3. Backport from HEAD the use of Wx::LaunchDefaultBrowser in Hephaestus. This removes the need for Wx::Html and uses the system browser to display the documentation, which works in Athena.
  4. Adds the CPAN modules MooseX::Types::LaxNum to the requirements in Build.PL
  5. Backports from HEAD a page in the Athena Users’ Guide and several image file so that Hephaestus has something to show in the browser
  6. Backport from HEAD the changes to the datoms script

1.10 29 August 2013

1.10.1 Artemis

  • Fixed several bugs importing old-style artemis projects

1.10.2 Acknowledgments

  • Mattie Peck for reporting these problems importing old-style Artemis projects

1.11 28 August 2013

1.11.1 Athena

  • Fixed a bug involving the order of items in Athena’s main menu

1.12 0.9.18 27 August 2013

1.12.1 Athena

  • Display uncertainties in fitted E0 shifts
  • fixed an issue making plots via orange and purple buttons with certain tools displayed
  • Improvements to LCF tool
    • LCF tool: the interaction of individual and over-all e0 shifts now makes sense
    • linear term in LCF fit disabled when using ifeffit
    • reorganized widgets on LCF tool, added mouseover hints
  • improvements to the peak fitting tool
    • scrolled area now working correctly
    • now capable of 4-parameter lineshapes
    • initial guess for step width is core hole lifetime
    • fit sequence on marked groups
    • plot of individual parameter values over a sequence
    • pseudo-Voigt now available from Ifeffit
    • sanity check of parameter values before fitting
    • pluck buttons for fit range work
  • Applications of white line position finder
    • set e0 to white line top
    • find + plot (this group) or tabulate (all and marked) white line positions
    • configuration parameter group for controlling algorithm
  • Multi-electron excitation removal tool
  • Move several items from Group menu to a new Energy menu
  • fixed a bug that had the red save indicator changing color too quickly
  • use new list-returning filetype plugin by calling Import recursively after generating the list
  • up and down, (alt/ctrl)-(j/k) now mapped correctly (j=down, k=up)
  • fixed a problem importing chi(k) data from an ascii file
  • in column selection dialog when selecting energy column, Athena rechecks energy units of new selection
  • plot norm(E) scaled by size of edge step (from Plot menu)
  • Fixed a PCA bug involving mistakes keeping track of which groups are included in the PCA stack

1.12.2 Artemis

  • Benefit by improved pathfinder performance
  • Clear project name when closing a project
  • fixed a problem importing data via “Open project or data” in certain situations
  • temporarily disable any non-critical sanity check for a fit
  • button for not saving a fit to the history
  • recognize keep attribute of fit object for finer control over history creation
  • display contents of misc.dat in Path page header
  • pathinder->postcrit parameter to restrict pathlist on intrp page
  • use new path selection tool on Path page
  • remove autosave files if user chooses not to import them
  • data from Athena project file which uses a background removal standard is now imported correctly along with the data for the removal standard
  • add tool for computing bond valence sums from marked path(s)
  • new pre-fit sanity check to make sure that GDS parameter names only have allowed characters
  • right click on cards in feff.inp to go directly to the on-line Feff documentation
  • button to evaluate and display GDS parameter without fitting (i.e. “spell-check” your def parameters)
  • can now stretch the Data window and adjust the size of the path list

1.12.3 Demeter

  • switching between ifeffit and larch is more sensible with DEMETER_BACKEND and DEMETER_DEVFLAG environment variables
    • export DEMETER_BACKEND = ifeffit|larch to control which backend is used
    • export DEMETER_DEVFLAG = 0|1 to control whether development screen messages are printed
  • Did some profiling on path finder, found a way to significantly improve performance
  • Added Eric Breynaert’s SPEC file plugin for SNBL at ESRF
  • Deal more gracefully with a corrupted MRU file
  • Add interface to bond valence sum database
  • Record uncertainty in E0 shift when auto-aligning
  • Coerce values for weights, e0s, and their uncertainties to numbers in LCF object
  • LCF linear term now works, but only in Larch
  • changed ifeffit attribute in Mode object to backend
    • made “ifeffit” and “larch” as aliases for “backend”
    • replaced “ifeffit” with “backend” everywhere in the distribution
  • removed dependence on MooseX::StrictConstructor (this addresses a problem with backwards compatibility of project files which have newly implemented attributes of Demeter objects. this is not actually solvable looking backwards, but should be forwards)
  • improved Dump method in to allow use of Data:Dump::Color or Data::Dump if available
  • Peak fitting improvements
    • collecting statistics in peak fit
    • method for fit sequence over a set of groups
    • deal sensibly with 4-parameter lineshapes
    • implemented pseudo-Voigt function with Ifeffit
    • fixed an ifeffit bug related to e0 shifts in peak fitting that has been plaguing Athena for a long time
    • updated Athena Users’ Guide page to explain all the new features
  • deglitching no longer prohibited on datatype=xanes
  • respect the gnuplot->datastyle configuration parameter
  • method for finding peak position of white line, both ifeffit & larch
  • fixed a bug generating paths.dat for a fuzzily degenerate path from a feff.inp with the absorber not at (000)
  • allow file type plugins to return a list of processed files, made to demonstrate
  • keep attribute of Fit object for use in Artemis project creation
  • fixed a bug identifying absorber species in Feff object which manifested for some hand-made feff.inp files
  • multi-electron excitation removal in Demeter::Data::Process
  • howlong method in Demeter::Tools + refactored some code to use it
  • document temp and log file locations for A&A

1.12.4 Larch

  • Larch templates for LCF fitting
  • Reset symbol table after a call to minimize in Larch templates that do so
  • Larch templates for Peak fitting
  • wrote empirical standard template, but need analysis templates to make use of empirical standards, so disabled empirical standard export in Athena when larch is in use

1.12.5 Wx

  • Fixed a Wx bug involving misuse of the wxNullColour symbol
  • Fixed a trivial display issue when config panel is first opened from plugin registry
  • indicate parameter units in Demeter::UI::Wx::Config more concisely
  • identify backends at GUI startup

1.12.6 Top of the to do list

  1. certainly for 0.9.19:
    • Implement dispersive data tool (acknowledgment: Pinit Kidkhunthod)
    • Address several Atoms bugs (acknowledgment: Chanapa Kongmark)
    • Problem with display of $S02 character on some Windows platforms (several)
    • Move all paths between path lists in multile data set fit (acknowledgment: Shelly Kelly)
    • Verify proper performance of Ctrl-DND of paths, update? renamed name preserved?
  2. hopefully for 0.9.19:
    • Fuzzy degeneracy over multiple sites (Shelly pushed for this)
    • feff8.5exafs integration (
    • PCA improvements (better TT, indicator functions, cluster analysis)

1.12.7 Acknowledgments

With so many new features and bug fixes, I owe a big “Thank You!” to lots of people:

  • John Hayes (reported a PCA bug)
  • Martin Stennet and Neil Hyatt (for requesting the multi-electron excitation tool)
  • Chachi Rojas and Anthony Ardizzi (for bug reports and suggestions regarding to Artemis’ fit history)
  • Shelly Kelly (for pointing out bugs involving background removal standards and importing chi(k) data and for suggesting improvements to the Path Interpretation page)
  • Eric Breyneart (for contributing a SPEC file plugin and for reporting a bug in the use of fuzzy degeneracy)
  • Alessandra Leri (for suggesting the white line finder and its applications, the edge step uncertainty tool, and the plot of norm(E) scaled by edge step)
  • Roberto Rodriguez (for reporting a bug involving a corrupted MRU file)
  • George Strbinsky (for reporting bugs in the deglithing tool and in the gnuplot interface)
  • Joe Woicik and others (for noticing several bugs in Artemis’ File->Import data menu item)
  • Shoaib Muhammad (for suggesting a change to Artemis’ interaction with autosave files and for reporting a bug in clearing Feff calculcation when closing projects
  • Simon Bare (for pointing out that (Ctrl/Alt)-(j/k) were implemented inconsistently
  • Kevin Jorissen (for suggesting direct linking to the on-line Feff document)

I think that’s everyone. If I missed your name, it’s just that I suck at record-keeping, not that I don’t value your input.

1.13 0.9.17 28 May 2013

1.13.1 Athena

  • Fixed a bug where a column label of “xmu” would cause a definition loop
  • Fixed an issue regarding selection of energy units in column selection dialog
  • Fixed a problem with rebinning parameters not being honored when making a rebinned group from the rebin tool or column selection dialog
  • Plotting with E0=0 now respects marked groups normalization button
  • Added a status bar warning when plotting marked groups of different elements

1.13.2 Artemis

  • Scrub characters from atom tags that will confuse Feff. This was first seen with a tag with an apostrophe, which confused Feff when reading the paths.dat file
  • Fixed a bug whereby creating a VPath would erase the _fit and _res arrays
  • Fixed an error importing non-guess GDS parameters from a dpj (or apj) file
  • Message discouraging use of external feff import
  • Fixed a bug importing external feff calculations related to identifying which atoms contribute to the geometry listed in a feffNNNN.dat file
  • Attempt a fix to an as-yet unclear problem with a Fit object not yet being defined when a fit is run

1.13.3 Demeter

  • Lots more Larch templates
  • updater.iss now includes more things, including Ifefgfit.dll

1.14 0.9.16 28 March 2013

1.14.1 Athena

  • fixed a couple bugs in difference spectrum tool
  • fixed an error importing data+reference when the energy column is something other than column 1.
  • align using smoothed derivative is now the default for both preprocessing and for the alignment tool
  • fixed an issue involving import of chi(k) from column data file
  • improvements to difference spectrum tool

1.14.2 Artemis

  • phase corrected transforms implemented
  • turn off indicators for Rk plot
  • better documentation for PC plots

1.14.3 Hephaestus

  • fixed an error precluding the formulas tool from reporting the penetration depth for a unit edge step for a nearby edge

1.14.4 Demeter

  • rebinning was ridiculously broken
  • much progress on Larch templates
  • fixed an issue surrounding the conditional loading of either or
  • added a new unit test file 023_miscellany
  • fixed a bug bringing data up to date before calling write_many

1.15 0.9.15 21 February 2013

1.15.1 Athena

  • manage update flags in a much better way, making Athena much snappier by reducing the number of calls to pre_edge() and autobk()
  • Interface to Athena Users’ Guide from within Athena via browser
  • Improved plucking from gnuplot window, the interaction is much more natural – no intermediate dialog window
  • Implemented Data Summation tool
  • menu items for sending last plot to png or pdf file
  • compute ave/stddev when presenting a parameter table
  • LCF sequence report button no longer mistakenly disabled after sequence
  • corrected a bug in which many Peak Fitting buttons could become irreparably disabled
  • editing journal sets save indicator on
  • fixed a bug related to importing reference channels for multiple files
  • command line switches to aid in larch integration

1.15.2 Artemis

  • Interface to Artemis Users’ Guide from within Artemis via browser
  • menu items for sending last plot to png or pdf file
  • added right click context menu to the items in the Data and Feff lists
  • fixed the fit sanity checker to notice if a data set has been excluded from the fit and not run sanity checks on it or its paths.
  • improved identification of paths in fit sanity checking and in GDS find function
  • added menu item for saving current fit to a project (i.e. current fit without history)
  • added Plot menu items for turning on and off plot_after for all data sets
  • more sensible default for Data plot_after_fit parameter
  • unfreeze data as imported from an Athena project file
  • better error message for paths outside of fintting Rmax
  • can enlarge GDS window vertically
  • tab order set sensibly between path parameter text boxes on Path page
  • data plot_after flags managed more sensibly in a MDS fit
  • fit history enhancements
  • can save current fit to a project without history (good for bug reports!)

1.15.3 Demeter

  • Begin work on Larch integration, normally disabled
  • mirroring repository at Bitbucket
  • send gnuplot plot to file terminal type with special configuration for PDF terminal and no real support for many of the terminal types. Gif and jpg, for instance, look like crap.
  • Install Artemis Users’ Guide into Demeter/UI/Artemis/share
  • added code to to build artug reliably even on Windows
  • added data summation recipe
  • correct legend keys for R123 plots
  • made Demeter::UI::Wx::VerbDialog – a generic yes/no dialog using a specified verb on the yes button
  • configurable column numbers in X15B plugin

1.16 0.9.14 2 January 2013

1.16.1 Athena

  • Plot indicators when plotting from deglitch tool
  • Filename for combinatorial output spreadsheet uses group name
  • Fixed a bug causing a crash in LCF tool related to recent renaming of fit sequence report.
  • Fixed several problems interacting with the results of a fit sequence
  • Improvements to copy series tool: busy cursor, plot appropriately, compute avg and stddev of edge steps for norm parameters
  • Implemented deglitching by margins
  • Reset smoothing parameter after plot or fit in the align tool
  • Constraining parameters no longer pushed value of bkg_eshift
  • Difference spectra:
    • can be made of mu, norm, deriv, second, norm/deriv, and norm/second. norm is the default
    • marked groups functionality
    • made groups naming template
  • Implemented functionality for difference of marked groups
  • Calculation of approximate uncertainty in edge step
  • Set E0 of all/marked groups using an algorithm, see Group menu
  • Added a specified multiplicative constant in the column selection dialog and its persistence file
  • Fixed a column selection bug: when importing multi-column data with the each column button ticked on along with a reference spectrum, each group (one per column) will get a reference spectrum. The reference is now cloned for each group. Previously, each reference group pointed at the same Ifeffit data group. Removing one reference group from an Athena project would remove the Ifeffit group, leaving the remaining copies unplottable. By cloning, the reference groups are now completely independent.
  • Fixed a problem in the column selection dialog when specifying no denominator for the reference channel
  • Added smoothing tool with various smoothing options

1.16.2 Artemis

  • LOTS of work on Users’ Guide
  • fixed a problem where crystal data entered by hand got flagged as unused, resulting in crashy behavior when running Atoms
  • Fixed a bug causing a crash when restoring a fit from the fit history
  • Plot history tool now seems to be working
    • Notice if a historical item is already in the Plot list
    • Import fit history from a project in a way that allows the plot tool to work and imports sufficiently quickly
  • Corrected a problem plotting immediately after importing a project with a fitting model but without a fit having been run
  • log file shows R-factor by k-weight for MDS fit
  • corrected a problem importing a project with a Feff calculation having a disabled Atoms tab (i.e. one which started from a feff.inp file)
  • Data toggle buttons now display Show/Hide correctly as data/project imported

1.16.3 Atoms

  • fixed a crashy problem in getting space group symbol from some CIF files
  • menu and keyboard controls for moving between tabs in stand-alone
  • improved CIF parsing by making the tags case insensitive. this was done by redefining a STAR::DataBlock method in the Demeter::Atoms::CIF file
  • fixed a display issue with very recent Wx – needed to SetSizerAndFit in make_feff_frame to fully size the Atoms page

1.16.4 Hephaestus

  • Display wavelengths in several places where energies are displayed
  • Rewrote document and reimplemented Document tool
  • Keyboard shortcuts for moving between tools

1.16.5 Demeter

  • Nicer looking plot indicators in gnuplot backend (now plot as full y-scale in graph)
  • Fixed a bug recording title lines from feff.inp files. This was not causing a problem running or using feff, but it was causing two test failures
  • added the fit -> zeros template to correct a problem importing a project with a fitting model but no fit
  • Demeter::UI::Artemis::ShowText now has a save button
  • added EdgeStep recipe
  • plot margins
  • Diff object, flags for disabling integration + setting datatype, use indicators rather markers in plots
  • fixed an error recognizing a double click in the gnuplot cursor interface
  • fixed an erf/erfc typo resulting in problems doing peak fitting with error function
  • more robust Demeter::Diff object, dynamic naming of derived Data objects
  • added multiplier attribute to the Data object
  • At build, do a simple test to determine if gnuplot is present on the system and modify ’plot.demeter_conf’ accordingly. This works for new installations, it will not retrofit an existing installation. In that case, user should modify “plot->plotwith”.
  • Fixed an issue with Wx::FileDialog on Ubuntu 12.10 – GetDirectory returns the wrong thing, use GetPath instead
  • compute R-factor by k-weight per data set after an MDS fit
  • Added smoothing of data by boxcar average, Gaussian filter
  • Corrected spurious warnings in t/005_plot.t and t/016_fspath.t

1.16.6 Windows

  • downgraded to Ifeffit 1.2.11d to correct a problem in how Ifeffit got compiled. I did, however, apply the patch to Feff6 allowing it to compute up to element 96.
  • added a work-around in the BEGIN block of each item in bin/ folder to deal with the MinGW version skew problem on Windows caused by having some MinGW location in the PATH before the various strawberry entries.
  • added more information to the log files written by the GUI programs

1.17 0.9.13 2 October 2012

1.17.1 Athena

  • Updated the HXMA plugin
  • Attempt to deal better with unreadable data file by bailing out before the column selection dialog

1.17.2 Artemis

  • read files.dat from old-style fit serialization so that path ranking can be done
  • projects with quick first shell paths now imported properly
  • display warning about excessively long QFS distances in a better manner

1.17.3 Demeter

  • Coerce numbers 0-5 into sensible window functions in Demeter::StrTypes for Demeter::Data
  • save files.dat (if it exists) to the fit serialization
  • removed several images from repository
  • error attribute for FSPath object to facilitate warning reporting in Artemis
  • spiffier product page at github

1.17.4 Windows

  • Implemented updater packages using Inno and wrapping up the entire Demeter folder under {app}\perl\site\lib\. Also added Inno script updater.iss to repo

1.18 0.9.12 26 September 2012

1.18.1 Athena

  • Fixed a crashy bug when changing normalization order
  • Flag for setting difference group as re-normalizable
  • Fix bugs in selecting XANES as datatype in column selection dialog

1.18.2 Artemis

  • P1 output from Atoms now correctly sets space group as “P 1”
  • Better (and less crashy) error message in case of multiple occupancy in crystal data
  • Fixed a problem importing a project file containing only a feff calclation and no data
  • Fits folder underneath project folder was not cleaned out when closing a project
  • Plot space is set correctly on intrp tab

1.18.3 Demeter

  • Added CONTRIBUTING file to distro for use at GitHub

1.19 0.9.11 18 September 2012

1.19.1 Athena

  • Self absorption: plot information depth in energy and check to be sure that absorber is in the formula
  • Fixed a bug reading data files with very line column label lines
  • Added a filetype plugin for LNLS data files
  • Fixed a bug where edge step value may not have been updated after a plot
  • Correctly import reference spectra of a different edge from the data

1.19.2 Artemis

  • fixed a bug in Artemis’ quick first shell interface to allow Am through Cf as absorbers (although Feff only allows up to Cm)
  • fixed some problems related to importing old-style Artemis projects
  • Control-w now hides Data window
  • Implement use of path ranking

1.19.3 Demeter

  • dispense method at a wrapper around dispose and template
  • chart method at a wrapper around dispose and template for plotting
  • several new templates to abstract out direct calls to Ifeffit in preparation for Larch integration
  • fixed bugs in how rebinning parameters were determined and used
  • extensive preparation for Larch
  • added a test for clear_ifeffit_methods in 004_data.t
  • fixed several bugs in difference spectrum calculation
  • fixed various problems involving the use of rebin parameters
  • framework for path ranking
  • Better values of Type attribute for FPath and FSPath

1.19.4 Windows

  • updated to most recent Ifeffit from github + patched Feff6L to allow Am and Cm as absorbers
  • fixed a problem following shortcuts into folders in certain situations
  • explicitly call demeter’s version of perl from BAT files, this invloved a post-installation script run by Inno

1.19.5 Acknowledgements for this release

  • Eric Breynaert
  • Shelly Kelly
  • Karine Provost
  • Andreas Voegelin
  • Amy Gandy
  • Bradley Miller
  • Jason Gaudet
  • Alfred Hummer
  • Daniel Whittaker
  • Matt Frith
  • The participants of the 2012 ASEAN Workshop on XAS

1.20 0.9.10 17 July 2012

1.20.1 Athena

  • Improved X23A2 and HXMA plugins
  • Add a select range button to column selection dialog to help process data with a large number of columns (e.g. NSLS X3b)
  • Fixed a bug involving the import plot for the first item in a prj file when that group uses a background removal standard
  • File selection dialog presents plotting options based on the datatype of the selection, also chooses sensible fallback plotting selection
  • Generic utility for presenting a table of a single parameter value. Context menu entries for this under energy shift and edge step labels.
  • Recognize if data sets included in a merge are substantially shorter than the first set in the group. If so, exclude them from the merge. Made configuration parameters for defining how much shorter and whether to exclude.
  • Fixed behavior of up arrow for Athena’s string entry dialogs that have buffers. The first time pressing up arrow went to an unpredictable part of the buffer. It now will go to the most recent entry.
  • Force dk and dr to 0 when making empirical standards.

1.20.2 Artemis

  • Display a useful error message when the phase.bin file is not computed correctly. Also clear and do not display intrp tab.
  • Take care to update paths in Artemis before beginning fit so that everything (i.e. FPaths) passes sanity checks
  • Sentinals now work correctly in Artemis for all histogram functions so that useful updates get written to Data frame statusbar
  • Fixed several display issues
  • Correctly add a new row when using the restraint builder
  • Save initial guesses of GDS parameters to a project and restore them
  • Fit description updated (crudely) when data are replaced
  • Fixed a bug when discarding a Feff calculation before any paths have been assigned to a data set
  • Fixed (I think) a crashy bug when removing GDS parameters
  • Fixed a bug involving the import of data from a prj file when that group uses a background removal standard
  • Ignore data from an Athena project file that cannot be displayed as chi(k), e.g. XANES data.
  • Correctly initialize row on GDS page whenever a new parameter is created

1.20.3 Atoms

  • Disable path DnD for stand-alone Atoms
  • Added a right click action to the paths list to display details of scattering geometry

1.20.4 Hephaestus

  • Prevent notebook from capturing carriage return on Windows

1.20.5 Demeter

  • Convert histogram calculations to use PDL – much faster! (backends: LAMMPS, )
  • Fixed a bug building the ifeffit wrapper
  • Improved installation.pod
  • Changed default gnuplot color #4 to yellow4 (#808000)
  • Added window functions to Rk plot
  • Made ed plot
  • Begin Artemis Users’ Guide
  • Prefer the Co K edge to the Re L3 edge when finding the edge (is that the right choice?)

1.21 0.9.9 20 April 2012

1.21.1 Athena

  • Delay laying out most windows until needed for the first time. This speed up startup at the cost of a bit more time later on. Start-up went from about 6 1/2 sec to under 4 seconds on my work computer
  • Mostly functional file watcher + added functionality to IO methods
  • Importance was not being imported from a project file
  • Made the importance control normal width
  • Added athena->interactive_fixstep configuration parameter for disabling the interaction between pre-edge, normalization, and edge step controls and the fixstep button.
  • when importing a sequence of files and one cannot be imported (e.g. aborted scan) offer to continue or quit importing sequence
  • XDI as a known file extension when importing data
  • Importance and plot_multiplier functionality for bent Laue data from 10ID
  • Return to main button was being displayed incorrectly
  • Found a normalization bug in Ifeffit, norm_order not respected in call to spline(). Submitted patch to Matt.
  • Smooth works in Calibrate tool
  • Visual feedback when element < 5 or E0 < 150
  • Implemented a spin button for incrementing/deincrementing Rbkg
  • Attempt to recognize data with a zero value in the denominator
  • Implemented frozen groups + Freeze menu + Athena->frozen config parameter for color of frozen group display + button
  • Display of peak fitting page is functuional (but not quite right) even on Windows.
  • Fixed a column selection bug involving the “import each channel” button
  • Edge step was not reliably updated after a new plot

1.21.2 Artemis

  • Fixed (mostly) a bug laying out Atoms/Feff notebook tabs when importing a project file.
  • Fixed a sanity check that got incorrectly triggered when replacing data with the same data (for example, after going back to Athena to adjust E0)
  • Fixed a problem displaying the new name in the hide/show button when replacing a data group

1.21.3 Hephaestus

  • Delay laying out most windows until needed for the first time. This speed up startup (~6 1/2 seconds before, now just under 3 second) at the cost of a bit more time later on.
  • Fixed a bug in furmulas tool where missing density caused a divide by zero crash

1.21.4 Atoms stand-alone

  • Used delayed layout and careful loading of Demeter modules to reduce start-up from over 5 sec to under 3 seconds.
  • Fixed a bug reading a CIF file that does not properly identify the material. This resulted in the record selection dialog being posted without any content – not so helpful.

1.21.5 Demeter

  • Begin using Perl::Version to manage version numbering of files and brought every file up to 0.9.9
  • Replaced Readonly with Const::Fast. See
  • Abstracted many common constants to Demeter::Constants
  • Replaced Config::IniFiles with Config::INI for a small performance improvement
  • Made Demeter::IniReader, a subclass of Config::INI
  • Fully deprecate use of MooseX::AttributeHelpers and remove it as a dependency
  • Make a recommended module (for data watcher)
  • More care and more options for loading “pragmata” for improved startup times
  • Take better care when processing Data not to do normalization and spline more often than is necessary
  • Take care not to “use Demeter” unless absolutely necessary throughout code base
  • Deal with Unity’s use of a global menu
  • Many improvements to histogram subsystem
  • Added a Build directive for forcing update to ifeffit wrapper
  • Cut >20 seconds off the running of the test suite by correctly using import “pragmata”
  • Implemented frozen groups as an attribute trait which silently disables setting an attribute – see MooseX::Quenchable. Implementing it this deeply in the underlying object obviates the issue of disabling Athena’s various “action at a distance” features, e.g. constaining parameters.
  • Fixed a bug whereby a group with datatype of xanes did not have its normalized derivative and second derivative spectra calculated.

1.22 0.9.8 30 January 2012

1.22.1 Athena

  • Only set project name if the project name is unset and an entire project file is imported
  • In LCF, make the maximum number of groups to use for combinatorial fitting practically unlimited
  • In combinatorial fits, sort everything according to position in group list
  • Fixed a potantial bug determining units in the CSD when selecting chi(k) as the data type

1.22.2 Artemis

  • Can now export a particular fit from the history to an fpj file
  • Fixed a bug repopulating the recent files menu
  • Fixed a bug in which the <data>.fit file was deleted as a project was imported. This was the main reason the history plot tool was broken.

1.22.3 Demeter

  • Add file-chik_out parameter to control how writing a chi(K) output file work. “all” means write a multicolumn file, 0, 1, 2, 3, or kw mean to write a two-column file using that k-weight
  • Added a tool for efficiently merging a large number of data files, see Demeter::Data::BulkMerge
  • Added denergy script

1.22.4 Acknowledgements for this release

  • Eric Breynaert
  • Scott Calvin
  • Andreas Voegelin

1.23 0.9.7 12 January 2012

1.23.1 Athena

  • Fixed a problem in the X23A2MED plugin – it was getting confused by an incomplete set of (roi, slow, fast) columns.
  • Fixed a bug resulting in bkg_fixstep sometimes getting unset when plotting multiple groups
  • Constraining “Current group” parameters via context menu now works correctly. It had mistakenly changed group attribute, a very dangerous thing!
  • Extensive support for current XDI draft
  • In column selection dialog, change reference radio buttons to checkbuttons so that either numerator or denominator can be unselected.
  • In column selection dialog, unchecking reference ln button triggered a crash.
  • Fixed incorrect color sequence for marked group I0 plot. This also made marked group I0 plot crash with >6 marked groups.
  • Post busy cursor when closing a project
  • Reorganized Monitor and debug menus

1.23.2 Artemis

  • New icons!
  • Added preview and print buttons to log, history log, history report, and journal
  • plot stacking parameters could evaluate to an empty string, so explicitly make the 0 in that case
  • can now discard and rename Feff calculations + simple “about Feff” dialog
  • fixed a bug causing a segfault when discarding data or feff
  • capture Atoms’ statusbar messages in Artemis’ status buffer
  • Faster project file import using partial deserialization of each item in the fit history. However, history plot tool is not currently working.
  • Reduce R-factor penalty by factor of 10 when fitting in k-space
  • Can now restore a previous fit reliably.

1.23.3 Demeter

  • explicitly unset xrange at the start of every gnuplot plot. this should fix any problem where zooming results in a backwards x-axis.
  • added clear_ifeffit_titles method to clear out $group_title_NN strings when no longer needed, use wrap to make this more efficient
  • bkg_eshift was not applied when saving a group as mu(E) or norm(E)
  • serializing Atoms object made safe for GUI display of object contents
  • Mechanism for associating metadata with files imported using a plugin

1.23.4 Acknowledgements for this release

  • Eric Breynaert
  • Scott Calvin
  • Jack Hitch
  • George Sterbinsky
  • Andreas Voegelin

1.24 0.9.6 12 December 2011

1.24.1 Athena

  • Fixed bug preventing import of multiple files with each channel as a separate group
  • Fixed a bug in which importing MED data as separate groups failed to initialize data processing parameters
  • Update column selection dialog when switching from eV to keV units
  • Handle keV units correctly for data and reference
  • Handle very noisy reference data by setting the default E0 to the tabulated value if the ifeffit-found value is far from the e0 of the associated data. This is essential for data that needs rebinning.
  • Correctly handle the situation where a column data file has a column named “xmu”. Previously, that situation could lead to data being corrupted in an unrecoverable manner as the column selection dialog uses that same suffix to hold the mu(E) data. This is done by constantly rereading the data file – something that will not happen (happily, since doing so is slow) for any file without that column label.
  • Added functionality to column selection dialog for bulk (de)selection of numerator checkboxes and for pausing the replot of the data while selecting columns (all of which may be useful for an MED file)
  • Do some sanity checking on Rebin values in column selection dialog before actually rebinning
  • Fixed a bug in both Plot->marked groups menu options

1.24.2 Artemis

  • Trim leading and trailing spaces from gds names.
  • Write parameter history reports correctly.
  • Improved window management. Showing and hiding windows now works correctly in conjunction with the window manager’s minimize (iconize) function.
  • When right clicking on a word in a path parameter math expression to define a parameter, the value is now sensitive to which path parameter the work comes from (s02 -> 1, sigma2 -> 0.003, else 0)
  • Fixed a windows only bug – when a feff.inp file is imported, the Atoms tab is supposed to be disabled, but the mechanism I used to disable selection of that tab was guaranteed to fail on Windows (see

1.24.3 Hephaestus

  • Allow floats as values in the ion chamber tool

1.24.4 Demeter

  • Check that user value, then default value of executable path (i.e. gnuplot and feff) actually exists before attempting to run them. Also properly quote executable name in system call or pipe so that things like spaces and parens are interpeted correctly. This guards against a number of issues. If Demeter is installed on Windows in one location, then unistalled and reinstalled elsewhere, the ini file will retain the incorrect value. This also guards against having an executable in a place with somethinng like “system (x86)” or a unicode character in the path.
  • Begin playing around with using Demeter::Return as a function’s return value (see rebin_is_sensible in Demeter::Data::Process
  • Explicitly reset xtics when starting a new plot with gnuplot. This is necessary because the components plot afetr a fit sequence specifies an array of xtic labels.
  • Prefer the Pd K edge to the Bk L2 edge when finding the edge
  • Set bkg_pre2 to a value which is sensitive to the edge energy. For higher energies (i.e. broader edges) move bkg_pre2 to a lower energy to improve the default pre-edge line
  • Do a better job of recognizing as data are imported whether an energy array is in keV units
  • Filetype plugin written for ESRF BM23, which uses a single scan SPEC file.
  • Added rebin->use_atomic configuration parameter
  • Added a filetype plugin for data from the old SRS. This is intended to cover data from DUBBLE as well (thus deprecating the DUBBLE plugin).
  • Test to see whether local time can be used in Demeter’s now method. Using local time will make a program die if the computer's time zone is not set. The fallback is to use DateTime's floating time zone.
  • Fixed 2 tests in the test suite to respond to recent changes to the alignment algorithm and the Fit object’s fetch_gds method
  • Correctly identify files as being not data in the case where it nominally looks like data (i.e. it has a header and column labels as Ifeffit expects), but which has 0, 1, or too few lines of data
  • Made file->minlength configuration parameter to define “too few” points in a data file.

1.24.5 Acknowledgements for this release

  • The participants of the Diamond 2011 XAFS course who unwittingly became beta testers for this software
  • Eric Breynaert
  • George Sterbinsky
  • Brian Mattern

1.25 0.9.5 11 November 2011

1.25.1 Athena

  • Fixed a crash caused by constraining all parameters

1.26 0.9.4 10 November 2011

1.26.1 Athena

  • Fixed a problem accessing the column selection persitance file for the first time
  • Fixed a possible crash when importing a damaged project file

1.26.2 Artemis

  • Don’t list excluded paths in the log file

1.27 0.9.3 8 November 2011

1.27.1 Athena

  • Progress messages when autoaligning marked groups (also truncating)
  • Better first guess for autoalignment ($DS->bkg_e0 - $D->bkg_e0)

1.27.2 Artemis

  • Fix a problem importing a project file into which data and Feff have been imported, but no paths have yet been assigned to any data
  • Check parameter types when importing GDS parameters from a text file

1.27.3 Demeter

  • Added current attribute to Mode as a way of identifying data groups in asequence when making progress messages in a GUI

1.28 0.9.2 7 November 2011

1.28.1 Athena

  • Preserve source attribute when reading a project, display it as a mouseover for file TextCtrl
  • Plot after pluck
  • Bigger Rbkg control
  • Added some Athena config parameters
  • Fixed a problem with DUBBLE plugin

1.28.2 Artemis

  • Fixed spurious creation of feff workspaces when importoing FSPaths from a project
  • Begin work on making Artemis/Atoms fail gracefully with CIF file that trigger problems. Here, it fails gracefully for CIF files with partial occupancy.
  • Store parameter and path evaluations in the Fit YAML so that fit history can be correctly reconstructed. This has the drawback of breaking old fpj files, in that they will no longer display correctly in the history. Oh well….

1.28.3 Thanks to

  • Jason Gaudet
  • Eric Breynaert

1.29 0.9.1 2 November 2011

1.29.1 Artemis

  • Take care with fit_include attribute of the Data in a Fit. Need to set data_total correctly in Ifeffit
  • Fix lots of issues with importing FSPaths from a project file
  • Take care with path seperators when moving aproject between windows and unix
  • Take care to populate plot list only with data that was included in the fit
  • Added a Fit sanity check to see that each data set has at least one path associated with it

1.29.2 Thanks to

  • Jason Gaudet

1.30 0.9.0 31 October 2011

This is substantively identical to beta release 9. This initial release will be announced broadly on the mailing list and will be used at the XAS course at Diamond, Nov. 14-16 2011.

Path to 1.0:

  1. A few successful months of use
  2. PCA, peak fitting, LCF fully implemented in Athena
  3. Histogram fully implemented in Artemis

1.30.1 Artemis

  • Verify that fit folder exists before trying to deserialize it

2 Beta testing releases:

2.1 Release 9: 30 October 2011

2.1.1 Athena

  • Display YAMLs for PCA and PeakFit objects
  • Fixed a bug using one of the self-absorption algorithms
  • YAML displays in Athena for PCA and PeakFit objects
  • changing edge or element now triggers modified indicator
  • rebinning parameters in column selection dialog were not being used properly, nor restored for the next data set
  • correctly tie reference channels from project files generated by old Athena
  • after a merge group list selection and marking of merged group now done correctly
  • Athena project file now records and recovers marked state
  • Record imported and exported athena project files for use in “recently used” menus in such a way that they show up in Artemis’s MRU menu as well.
  • Refuse to plot xanes or chi data as a quadplot.
  • Added a user-specified pause between traces in a marked group plot – this slows down the display of a sequence of traces

2.1.2 Artemis

  • Fixed a bug deleting items from plotting list
  • Fixed a bug computing happiness, excluded paths should not be evaluated for the pathparam penalty
  • commented out tic mark munging for history reports
  • suppress an extraneous warning box when a fit fails its sanity checks
  • Several improvements to behavior of GDS grid
  • Facelift on Atoms page
  • Check to see if temp and theta already exist as parameters when using Debye or Eins model from context menu
  • better display of numbers/mathexps in GDS grid with configurable precision
  • Atoms was setting angles incorrectly formonoclinic groups at the step of verifying angle values against space group and setting
  • it was possible to drag and drop non-numeric text onto the N TextCtrl
  • Prompted to save current project if importing a project while there appears to be a project started in Artemis. The current is saved or not, then Artemis is cleared, then the new project is imported.

2.1.3 Demeter

  • Atoms cluster list now tags atoms by shell
  • Forcing display of debug menus in A&A until they become more stable
  • Added a recipe for using Empirical standards
  • override all method in Demeter::PeakFit
  • standards from column files did not have datatype attribute set correctly, so standards part of Hephaestus was broken
  • don’t run find_edge method on data if the element is already set to something other than H
  • Made a marked attribute of Demeter::Data object for use with Athena
  • Corrected an error is sorting the display of the MRU files
  • added plot_pause attribute to the Plot object

2.1.4 Windows installer

  • have inno make an Atoms desktop icon

2.1.5 Acknowledgements for this release

  • Emmanuel Doelsch
  • Jason Gaudet
  • Shelly Kelly

2.2 Release 8: 11 October 2011

2.2.1 Athena

  • use Demeter::FPath so that empirical standard can be written
  • fixstep button was being erroneously ticked due to a bug in pre/norm/step interaction
  • ignore project file records that are malformed due to missing data arrays
  • resort data if energy column other than 1 is selected in any way when using the column selection dialog
  • Now correctly importing MED columns as separate channels

2.2.2 Artemis

  • fixed a bug importing chi(k) column data file

2.2.3 Demeter

  • Datatype was not set correctly in Data::MultiChannel object

2.2.4 Acknowledgements for this release

  • Fred Mosslemans
  • George Sterbinsky

2.3 Release 7: 10 October 2011

2.3.1 Athena

  • Handle changes to rmax_out correctly
  • Handle the absence of PDL more gracefully
  • Implemented peak fitting tool
  • Fixed a bug that was slowing down the response of the column selection dialog
  • Fixed a bug causing a crash when importing keV data
  • Fixed display of ISO-8859 encoded data files in the column selection dialog.
  • Attempt to deal more gracefully with unreadable files

2.3.2 Artemis

  • Fixed a formatting error reporting correlations in the log file
  • Changed the logic for how GDS params get updated before a plot
  • Issue Ifeffit’s unguess command at the beginning of a fit to make sure that discarded or skipped (or def-ed or set) guess parameters do not remain as guesses in Ifeffit, which makes it impossible to evaluate uncertainties.
  • Fixed a bug in how the pathfinder->label configuration parameter was being interpreted. Also changed the default absorber token to @
  • Handle changes to rmax_out correctly
  • Fixed a bug importing projects from earlier versions of Artemis (deprecated nindicators attribute of the Plot onject)
  • Quick first shell (FSPath) now properly respects a change in N
  • Fixed a bug wherein Artemis would crash reading a project file with a quick first shell (FSPath) object
  • Implemented drag-n-drop for cloning a path and copying a path to other data sets
  • Fixed a bug cloning quick first shell (FSPath) objects
  • Artemis now respects choice of fit space.
  • Right click on words in path parameter math expressions to post a context menu for creating/modifying GDS parameters
  • Fixed a bug precluding creating an atoms.inp by hand via the GUI

2.3.3 Demeter

  • Fixed a problem interpreting rhombohedral space groups in Atoms.
  • Implemented peak fitting using Ifeffit as the backend (other option is fityk)
  • Files with very wide column label lines can run into a length limit in Ifeffit, specifically in ishtxt iff_show.f. Since Demeter relies on Ifeffit reporting $column_label correctly, this lead to truncation of columns available when importing such data.
  • Made the save_many and save(“fit”,…) methods understand either set of strings denoting the part to be saved. (save_many took things like ’chik2’ and ’chir_mag’, which save(“fit”,…) took things like ’k2’ and ’rmag’). Also added a useful error message to save_many warning against passing it ScatteringPath objects.
  • Improvements to the Dubble plugin
  • Fit sanity check: notice an obvious case of attempting to use the same data set more than once in a multiple data set fit. This is presumed to be a naughty attempt to increase Nidp.
  • Inverted residual function in PCA plots
  • Fixed several bugs importing already-normalized data
  • Added Encoding::FixLatin as a dependence. There is some chance of data corruption using this tool, but since it is only used for display of text in a GUI and not for passing data to Ifeffit, this is not a very serious problem.
  • Fixed a bug wherein a cloned Data group did not have its derivative computed
  • Fixed a bug in aligning data. Also modified code to perform alignment exactly like the old version. Made “interp” the default interpolation function (was qinterp).
  • Found a few places where files or directories were opened and not closed
  • The element symbol type constraint was missing Am through Cf
  • New “trace” method for printing a colorized stack trace from any location to stdout
  • Fixed a bug in the automated alignment algorithm (now using data’s current bkg_eshift as the initial guess)

2.3.4 Acknowledgements for this release

  • Eric Breynaert, superstar (literally dozens of bug reports from the last release!)
  • George Sterbinsky
  • Shelly Kelly
  • Erik Farquhar
  • Scott Calvin

2.4 Release 6: 09 September 2011

2.4.1 Athena

  • Corrected the behavior of the LCF tool when plotting without fitting in several edge cases that involve either a single standard or weights set by hand
  • Added a fourth plotting terminal
  • Issue error to statusbar when kmax_suggest is oddly small
  • Implemented Scott’s deriv(phase(chi(R))) idea with a configuration parameter for turning it on and off
  • Copying a group now copies its marked state
  • Added invert button to column selection dialog
  • Implemented PCA tool
  • Commented out Freeze menu since group freezing is currently unimplemented

2.4.2 Artemis

  • Added a fourth plotting terminal
  • Make the import file menu entry recognize all plausible file types and do the right thing. This makes the Import submenu somewhat redundant.
  • Issue error to statusbar when kmax_suggest is oddly small
  • Add triangular paths to Histogram subsystem

2.4.3 Demeter

  • When reading epsilon from Ifeffit, recognize when it finds NaN and do something sensible
  • Implemented Scott’s deriv(phase(chi(R))) idea in all plotting backends and in column output
  • Boolean flag for indicating a single data group fit and setting the Data plotkey attribute appropriately in R or q.
  • Fixed a configuration bug wherein the GUIs could clobber one another’s configuration changes
  • Added inv attribute for negating column selection
  • Implemented PCA using PDL + specialty plots

2.4.4 Acknowledgements for this release

  • Fred Mosselmans
  • Scott Calvin
  • Eric Breynaert

2.5 Release 5: 18 August 2011

2.5.1 Athena

  • Fixed a display problem in the column selection dialog
  • Fixed several problems with restoring LCF fits after performing a combinatorial sequence
  • Allow seeting window function for back transform independently
  • Fix default settings for LCF object in athena’s LCF dialog
  • Tie together merge and reference for merge when the reference for the merge is also made
  • Added a “change all groups” option to the chnage type dialog
  • Made the LCF layout a bit prettier
  • Do not unlink autosave file at start-up – it needs to stick around in case the problem that lead to the crash happens again
  • Improved behavior for Copy group feature

2.5.2 Artemis

  • Allow seeting window function for back transform independently
  • Fixed a bug involving non-zero values of arbitrary k-weighting when importing old-style project files

2.5.3 Demeter

  • Correctly restore restoring LCF fits after performing a combinatorial sequence

2.5.4 Acknowledgements for this release

  • Eric Breynaert
  • Emmanuel Doelsch
  • Scott Calvin
  • Van Vu
  • Chris Patridge

2.6 Release 4: 12 August 2011

2.6.1 Athena

  • Inmplemented an autosave feature + recovery of autosave after a crash
  • Fixed several LCF bugs
  • Use arbitrary k-weights more sensibly
  • Fixed a bug plucking spline range in k
  • Better message in pluck dialog
  • Use demeter’s configuration dialog to configure Plugins that have configuration parameters (currently, 10BMMultiChannel and X23A2MED)

2.6.2 Artemis

  • The path-like tab in the Atoms/Feff frame is now set correctly when importing a project file
  • Replacing chi(k) on a Data frame now works correctly
  • More descriptive update messages in statusbar during histogram processing
  • Histogram interface is more sensitive to whether time-consuming chores need to be redone
  • Grid in GDS frame now recognizes smart keys for changing parameter type. Change all selected params:
    • Alt-g: guess
    • Alt-s: set
    • Alt-d: def
    • Alt-l: lguess
    • Alt-k: skip
    • Alt-a: after
    • Alt-r: restrain
    • Alt-p: penalty
  • New config parameter (artemis->plot_frame_x) for aligning the Plot window properly on a multiple monitor setup (something I am having trouble figuring out properly)
  • Follow Windows link files for various import types
  • Check file type on import for:
    • fitting projects
    • Athena projects
    • old-style fitting projects
    • demeter serializations
    • chi(k) data (this is imperfect – mu(E) data, for instance,will pass the test)
  • Use arbitrary k-weights more sensibly
  • Fix a bug creating a blank Atoms frame wherein one could not return to the Atoms tab
  • Fixed a bug importing autosave file

2.6.3 Demeter

  • Integrate VASP MD output into histogram subsystem
  • Follow Windows link files now done for every object that has a file attribute
  • More sensible behavior using arbitrary k-weighting
  • Fixed a bug plotting indicators with phase part of chi(R)

2.6.4 Windows installer

2.6.5 Acknowledgements for this release

  1. Scott Calvin
  2. Emmanuel Dolsch
  3. Van Vu

2.7 Release 3: 8 July 2011

2.7.1 Athena

  • Plugin registry: right click open a menu with for plugin documentation (POD converted to text, displayed in a Demeter::UI::Artemis::ShowText) and a configuration utility for those plugins with an ini file.
  • Fixed several problems with the automation of the column selection dialog
  • The X23A2MED plugin now configures itself on the first use and responds gracefully to misconfiguration. It also handles data from the 1-element Vortex.
  • Pluck buttons implemented in more places
  • Merging groups with reference channels also merges reference channels into a reference group for the merge
  • Tools for monitoring Ifeffit’s memory use
  • Modified SSRLA plugin to handle data from the ESRF ROBL beamline. ROBL writes some high-ASCII characters in a way that confuses the column selection dialog, so theplugin strips them from the file
  • Athena is now capable of following windows shortcut (.lnk) files

2.7.2 Artemis

  • Pluck buttons now work on the Data page and on the indicators tab

2.7.3 Demeter

  • Changed the default color of indicators to a dark brown, which stand out better against a red trace (i.e. line color #2)
  • Mode object now has attributes for keeping track of Ifeffit’s memory use. Data and Path _update methods + Fit and LCF fit methods update those attributes.

2.7.4 Windows installer

  • This time I really made it so that all bat file launchers save STDOUT and STDERR from the current session to a log file in %APPDATA%\demeter\
  • Make %APPDATA%\demeter\ at install time if it does not already exist
  • Compile Ifeffit with an 8 Mb heap, more arrays, and more Feff paths.

2.7.5 Acknowledgements for this release

Same gang as last time + Stephen Price.

2.8 Release 2: 24 June 2011

2.8.1 Athena

  • Fixed some language issues in the Files menu
  • Fixed several bugs surrounding the bkg_fixstep Data attribute and made its behavior in relation to editing the normalization, pre-edge, and edge step text entry boxes more sensible
  • Added wxTE_PROCESS_ENTER style to all text entry boxes. This allows replotting or other actions (or none at all) upon hitting return with focus in a text box. This is in response to a complaint that hitting enter in a text box caused focus to shift unexpectedly and to a request for more functionality.
  • Rewrote the quad plot
  • Clarified language used in stack tab of plotting options section
  • Fix a problem doing LCF fits with the final weight being negative when weights constrained to be non-negative and to sum to one.
  • Escape underscores in gnuplot plot legend for LCF plots
  • Fixed a bug using a background removal standard
  • Athena now reads chi(k) data files correctly
  • Group list:
    • Control-drag to rearrange groups in group list
    • Ctrl-j/Ctrl-k to change focus up and down in the groups list
    • Alt-j/Alt-k to move groups up and down in the groups list
  • Work around spurious error message when plucking from Gnuplot on Windows
  • Multiple plotting terminals with Gnuplot
  • Configure utility for filetype plugins that come with configuration files

2.8.2 Artemis

  • Completely rewrote mechanism for importing old-style Artemis project files, which now works much more reliably.
  • Feff object’s rdinp method now recognizes a Feff8 input file. This is mostly used by Artemis to refuse to import such a thing as Feff8 is not yet supported in Demeter
  • Implemented Rk plot and made a button for it
  • Added wxTE_PROCESS_ENTER style to all one-line text entry boxes.
  • Multiple plotting terminals with Gnuplot

2.8.3 Demeter

  • Changes to selection of the plotting backend just prior to R1 broke most of the tests. Both the selection mechanism and all the tests were fixed.

2.8.4 Windows Installer

  • Renamed desktop icons so as to not overwrite Horae’s icons
  • All bat file launchers save STDOUT and STDERR from the current session to a log file in %APPDATA%\demeter\

2.8.5 Acknowledgements for this release

  1. Scott Calvin
  2. Shelly Kelly
  3. Eric Breynaert
  4. LachLan MacLean
  5. Andreas Voegelin

2.9 Release 1: 10 June 2011

Initial beta testing release

Author: Bruce Ravel