Software package

for Exafs Data Extraction and Modeling

Laboratoire de Cristallographie, CNRS
BP 166
F38042 Grenoble cedex 9 France

This " SEDEM " package is divided in four items :

  1. The XAFS item is used to extract the EXAFS from raw data which can by read on line during acquisition. The tools for extraction are built in order to provide a very accurate control on every step. No extrapolation of base line is necessary. The decreasing behaviour of data intensity is modeled according to the atomic absorption computed with the Crome & Liberman fPrime program.
  2. The small XAFSSUM item is designed to sum spectra before processing, with special care to any possible dispersion of the data in energy.
  3. The MODL item is used for simulation and modelisation. Reference data may be either extracted from experiment, or read from FEFF files. McKale tables are also available. Procedures for decorrelation of phases and amplitudes are implemented, which are more efficient to obtained best parameters than the classical gradient minimization algorithm, under the condition that a good reference is available. It also permits to handel non harmonic systems via a Cumulant expansion. Statistics includes statistical uncertainties of data, output of correlation matrix, and calculations of correlations between pairs of parameters.
  4. The small CUMUL item is intended to recover the distance distribution function, given the cumulant expansion of the non harmonic or disordered material.

The development of X ray absorption at ESRF made it useful to have at hand a program able to run online, and which may be improved according to merging problems. The present program runs on PC with 386 or more recent processors. It is in use at the French CRG line (BM 32 line) for about three years, and users find it convenient enough to use it home to analyse their datas. It comprises four moduli :
the "xafssum" modulus to sum spectra before processing, the "Xafs" modulus to extract the function from the data, the "Modl" modulus to adjust models to the function, and finally the "Cumul" modulus to build radial distribution function of distances from the cumulant expansion determined in the course of the model adjustment process.

The xafs.exe modulus

The " xafs " modulus is conceived to examin rapidly the data during the acquisition campaign in order to check the quality of the acquisition set-up, or to carefully treat the data after the acquisition campaign is over. It is able to read many formats of text file, either locally on the PC computer hard disk or on the working station which drives the SPEC acquisition program on the X-ray beam line. Before processing data, it is possible to sum spectra with the xafsSum modulus, specially designed to take care of any possible dispersion of the data in energy.

A particular attention has been paid on processing spectra recorded in extreme conditions. This goal is reached by first measuring carefully the step height and position and then giving the atomic absorption the shape of the atomic absorption computed with the Cromer & Liberman fPrime program. The program then offers various techniques (Fourier filtering, polynomial fitting, gliding window smoothing, weighted cubic spline smoothing) to monitor carefully the extraction, normalization and weighing of the EXAFS oscillations, and to get the weighted EXAFS function . The derivative of the " atomic absorption " base line is always displayed to check whether it contains undesirable oscillations. After apodization by a Kaiser Bessel window, with or without a plateau, the EXAFS function is then Fourier transformed using a true Fourier Integral algorithm. This gives the uncorrected radial distribution of distances in a range of distances limited by the Nyquist's criterion. Together with this Fourier transform is also displayed the Fourier transform of the " atomic absorption " base line.

Back Fourier transform allows filtering of shell contributions. An original feature of the program is that back Fourier transform may be used to build up a " noise function " in k-space. This noise function will be useful later on to estimate error bars on extracted parameters.

The modl.exe modulus

The " modl " item allows to build pure simulations as well as to adjust simulation parameters in such a way to minimize the " distance " between simulation in one hand and the EXAFS function or filtered shell contributions in the other hand.

If a " noise function " has been built by back Fourier transform, a special section in the program makes use of this function to build a table of sigma's, the statistical uncertainties on the measurements, which are assumed to fit with the standard gaussian distribution, (a rather severe assumption).

If no " noise function " was built, sigma's may be either defined from some formulae or built from the square differences between the experimental function and the back Fourier filtered data. This last procedure have little meaning if the number of shells contributing to the experimental signal and to the Fourier filtered data is different.

Simulations are built according to the standard EXAFS formula, or with an EXAFS formula including a Cumulant expansion (see below).

The necessary phase and amplitude functions are read from either reference amplitude and phase tables extracted in a previous step by the program from a spectrum recorded on a reference sample, together with the corresponding set of reference parameters (r-Ref, nV-Ref, sig-Ref,...), or theoretical amplitude and phase tables computed with the FEFF program, again with the corresponding set of reference parameters (r-Ref, nV-Ref, sig-Ref,...), or theoretical amplitude and phase tables built by McKale. In that case, no set of reference parameters is available.

Using a guess set of parameters, read either from a file or from the keyboard, the program uses phases and amplitudes to perform a n-shell simulation, which is displayed together with the Fourier-filtered data. The number of shells contributing to the simulation is read together with the shell parameters. The maximum shell number is five.

If a reference set of parameters is available, two routines allow decorrelation of phase and amplitude parameters, which lead to the optimal set of parameters for the unknown sample much more efficiently than the usual least mean square gradient minimization. An implicit assumption, however, is that the phase difference between the reference and the unknown sample is purely of geometrical origin. In other words this assumption means that the reference sample is a good one! This routines can solve only for one shell at a time.

At this stage, non linear fitting of the phase difference and of the logarithm of the amplitude ratio is possible. This permits the computation of a cumulant expansion of the radial distribution function of distances, in case of large static disorder and/or of large anharmonicity of thermal vibrations. The " Cumul " modulus then permits to build the corresponding distribution of distances.

If assumptions allowing the use of the decorrelation routines are not fulfilled, then, a least-mean-square gradient minimization algoritm may be used to search for the parameters of the unknown sample. The number of parameters that may be left free to vary at the same time is computed from the number of independent variables.

The program displays the correlation matrix, and a quality factor which depends of course of the statistical sigma's, defined at the beginning. The standard deviations for adjusted parameters is computed in two steps.

The first step consists in calculating the standard deviations of parameters as if they were not correlated to any other parameter. This is done with the help of the covariance matrix.

The second step consists in computing the correlations of each pair of parameters, displayed in the form of a contour of constant deltaChi2, defined from a given confidence limit (0.683). Then the standard deviation is chosen as the width of the largest contour.

The Fourier transform of the optimum simulation, of the filtered data, and of their difference may be computed and graphically superimposed for easy comparison.

This package of programs is freely distributed. Programs may be improved or adapted to specific problems. The SEDEM.ZIP file contains all executable, directories and accessories required to run the programs. However, it is recommended to contact Daniel Aberdam,


for installation, and introduction to the program use.

References :

[1] From Habenschuss (Oak Ridge Nat. Lab.) implementation of Cromer & Liberman program,

D. T. Cromer and D. Liberman, J. Chem. Phys. 53 n 5 (1970) 1891



Comments to