XAS Tutorials

XAS Data Reduction (PROCESS)

Once you have pre-processed the raw XAS data and created the averaged data file (*.AVE), you can use the program PROCESS to reduce the data. This tutorial will walk you through the standard treatment. There are many advanced features of PROCESS (e.g., Fourier filtering, scattering phase and amplitude extraction) that you can learn by consulting the SSRL EXAFSPAK Manual.

PROCESS

C:\dir>process <input_file_spec>

<input_file_spec> is the file created by MAVE (the .AVE extension need not be specified).

This program handles all the data reduction, including pre-edge subtraction, spline fit for removing atomic-like absorption, and normalization by the McMaster absorption curve, all of which are necessary to extract the EXAFS from XAS data. After obtaining the EXAFS function, PROCESS can also be used to FT, filter, and extract backscattering amplitudes and phase shifts for model compounds. It also creates all the necessary output files for plotting data in Igor.

All communication with PROCESS is handled through the X-window generated when the program is executed. This X-window uses the top portion to display pseudo-GUI menus and data graphs and the bottom (2 lines by default) for prompts and user input. The verb convention used is that when the prompt says Press, a single keystroke is sufficient to provide necessary input, but when the prompt says Enter, the user must enter a response using the keyboard, then press the Enter/Return key(just pressing Enter/Return uses the default input that is always displayed in [ ] at the end of the prompt). In this tutorial, the use of Serif font implies prompts and user input in the bottom portion of the X-window.

Upon executing PROCESS (with process fx12b), the X-window displays the MAIN menu:

Your first job is to examine the raw averaged data. Pressing 1 takes you into the sequence of prompts

Press 1 to plot raw data :1

Anytime there is a graph displayed, this prompt

Press 1 to plot, 2 for hardcopy, 3 to edit, 4 for cursors, 5 for peaks :

appears first on the bottom of the X-window. This allows the user to edit the range of the graph, find peaks, make documents for hardcopy, etc. Pressing Enter/Return takes you to the next prompt in the sequence. (At any time in this sequence, you may use Ctrl-Z to immediately return to the MAIN menu.)

Press 1 to subtract baseline file :

Press 1 to plot baseline subtraction :

(If no red input appears after prompts that begin with Press, Enter/Return has been pressed.) A baseline file is an experimental spectrum of a blank sample that is meant to represent the true baseline. In practice this is seldom collected.)

Press 1 to subtract pre-edge :1

Press 1 for polynomial pre-edge fit, 2 for Gaussian, 3 for erf function :2

With fluorescence XAS data, the pre-edge background consists of scattered X-rays passing through the detector window. Since the detector acceptance function (SCA window) acts like a Gaussian, these scattering pre-edge backgrounds can be modeled as Gaussians. The middle of SCA window should be the energy of the K-alpha emission for the element being examined and this is usually chosen as the default (6403.00 below). A Gaussian window width and a detector resoln are also needed for the fitting.

Enter eV(low), eV(high) [0.0, 7085.00] :

This is the range of the data in the .AVE file that will be fit. 0.0 means use all the data on the low end.

Enter energy eV for middle of SCA window [6403.00] :

Enter window width, detector resoln. (eV) [750.000, 250.000] :

Unless you know how this particular data set will behave, try the defaults first.

Enter scaling factors a, b (y=a*y+b) [1.72782, .127105] :

These were calculated by the fit, but you are allowed to manually adjust them to improve the fit. This is usually difficult to do well.

Press 1 to plot pre-edge result :

Press 1 for total pre-edge plot :1

The total pre-edge plot includes the raw data, the Gaussian fit, and the difference (whereas the pre-edge result is just the difference).

The (green) difference spectrum does not display a flat pre-edge region, so this was not a very good fit. Comparing the red Gaussian, it appears too wide compared to the data (white). So a reduction in the Gaussian window width might help. To try this again, just enter Ctrl-Z to go back to the MAIN menu and enter 2.

Press 1 to subtract baseline file :

Press 1 to plot baseline subtraction :

Press 1 to subtract pre-edge :1

Press 1 for polynomial pre-edge fit, 2 for Gaussian, 3 for erf function :2

Enter eV(low), eV(high) [0.0, 7085.00] :

Enter energy eV for middle of SCA window [6403.00] :

Enter window width, detector resoln. (eV) [750.000, 250.000] :600

(Try a significant change; you can always try again.)

Enter scaling factors a, b (y=a*y+b) [2.75582, .149118] :

Press 1 to plot pre-edge result :

Press 1 for total pre-edge plot :1

Now the pre-edge region of the difference appears pretty flat and the Gaussian fits the data well. This is an acceptable pre-edge subtraction. The most important result of this subtraction is that the resulting data just before the edge are defined as ZERO.

Pressing Enter/Return in response to this plot prompt takes you to the next step in the sequence, the spline background removal.

Press 1 to subtract Spline :1

Do you wish to reset to defaults? [y/n] [Y] :

PROCESS is pretty good about selecting default parameters for spline fits. Until you know that you need to change some of the defaults, you should choose to do this reset.

Enter Spline eV(low) & eV(high) [7130.00, 8163.53] :

This range defaults to start at E(k = 0) (the threshold energy) and stop at the end of the data. If the raw data look all right, you should leave the eV(high) as is. You may decide to truncate the data after seeing the EXAFS.

Enter order of Spline & No. of ranges [4, 3] :

The order is the polynomial order of the fit in each of the spline regions (ranges).

Enter k-weighting for spline [4] :

Enter 1 to use Victoreen [1] :

The Victoreen formula is the accepted method of modeling the atomic fall-off for normalization.

Enter 1 for k-spaced spline points [0] :

1 would generally be used if you had decided to change the eV range of the data to be fit; this would re-space the spline points appropriately.

Enter 2 Spline Points
Spline Point 0 [7130.00] :
Spline Point 1 [7474.51] :
Spline Point 2 [7819.02] :
Spline Point 3 [8163.53] :

Enter symbol for element [FE] :

Enter edge (K, L1,..) [K] :

Enter Victoreen Coefficients Cvic,Dvic [126.000, 27.2000] :

Enter Edge jump u0 for ratio (0 = auto) [0.0] :

Enter eV to calc. u0 [7140.00] :7120

Since we use new values for E(k = 0), you should choose that eV to normalize to 1.0.

final falloff was 0.71

This is the value that is used to scale the data for normalization of the edge height. Press Enter/Return to carry out the spline fit.

Press 1 to plot spline removal :

Press 1 to plot spline removal + Victoreen :1

You will develop an eye for judging good spline fits; looking at the EXAFS and FT will help. On the scale of this graph, the data and spline should be indistinguishable in the high-k region. The spline should also not bend far up or down at the low-eV end. Pressing Enter/Return here takes you to the EXAFS extraction portion of PROCESS.

Press 1 to plot EXAFS :

Press 1 to plot EXAFS + I0 :1

You will see a graph of EXAFS as k3chi(k) vs. k superimposed on a plot of I0 (see figure below with overlaid Fourier transform/filter menu). This is a decision point; if the EXAFS look all right, you can move on to calculating the FT. Several problems can be encountered at this point, requiring re-reduction. First, the EXAFS may be too noisy at high k, in which case you should choose a k value at which to truncate the data and redo the spline fit, stopping at that energy. Second, you may observe a small edge (of the element with next higher atomic number) in the high-k region; this will also require truncation. Third, you may see large spikes in the data at the same k as glitches in I0. PROCESS gives you a way of deglitching the data, which should then go through spline subtraction again.

Assuming you are satisfied with the EXAFS data, the next step is Fourier transformation.

Press 1 to Smooth EXAFS :

Press 1 to plot Smoothed + Unsmoothed EXAFS :

Press 1 to plot Smoothed EXAFS alone :

(We do not generally smooth any EXAFS data.) At this point, the Fourier transform/filter menu appears (on top of the EXAFS/I0 graph as shown below). Press 1 to do the FT.

Press 1 to calculate Fourier transform :1

Enter 0 to use Unsmoothed or 1 to use Smoothed EXAFS [1] :0

Enter Min, Max & width for k-window [1.00000, 16.4810, 0.0] :2,16

Our convention is to always start the k range for FT at k = 2.0.

Enter power for k-Weighting [3] :

Press 1 to plot k-windowing :

Enter 1 for Fast FT, 2 for Simpson rule FT, 3 for Max Entropy Transform [1] :

Enter R(low), R(high) & R(inc) [0.0, 7.00000, .020000] :

It is also our convention to plot FTs between R' = 0.0 - 7.0 Å

Press 1 for phase correction :1

Since the EXAFS function has a phase shift, the FT has a shift in its real space axis. Therefore, the peak position does not really correspond to real distances. Phase correction is an attampt to correct for this effect. A specific scattering atom must be selected so that its phase can be calculated and used for FT correction. It makes only a little difference in the result which scattering phase you choose, but if you know something about the first-shell scattering atoms, choose something realistic. This data set (FX12B) is from a Fe-S protein, so here we will choose S (Z = 16) for the phase correction. (The absorbing atom is Fe with Z = 26.)

Enter Z for Absorber and backscatterer [26.0000, 16.0000] :

Enter 1 for theory, 2 for parameterized, 3 for F.T. [1] :

Enter edge (K, L1,..) [K] :

Enter No. of points for data interpolation [512] :

Forward FFT - Max R : 63.71 R(inc) : 0.0311 .... 512 to 4096 points

Press 1 to plot Transform :1

(Note that the first-shell Fe-S peak is at 2.3 Å or so, a reasonable result for an Fe-S cluster.) This is another decision point. If the FT magnitude in the R' = 5 - 7 Å range are too large (these represent noise since no real backscattering is ever seen at this long distance), then you may want to truncate the data at a lower k and redo the spline fit as above. If the FT peaks around 1 Å are too high, then the spline subtraction has not done a good job of removing low-frequency background from the EXAFS. Consider re-fitting the spline with additiona regions, a new starting spline point (this is the one that makes most difference), or consider using the program autobk to do the background removal.

Once you are satisfied with the FT (and presumably the EXAFS that gave rise to it), you are finished with the job of data reduction. At this point, all that remains is to generate some output files with (x,y) data that can be used in Igor to make plots of the results for reporting purposes. Pressing Enter/Return at this plot prompt results in

Press 1 to plot Real & Imaginary components :

Press 1 to generate transform file :

Press 1 to read R-window :

Press 1 to back-transform :

We are returned to the Fourier transform/filter menu (above), and now we are finished with the FT so we press 5 to return to the MAIN menu, then press 6 to get to the FILES menu.

First, we need to save all our work to the .AVE file, so we press 1.

Enter .AVE filename to write [FX12B.AVE] :

Next, we need to save a delimited text file with the EXAFS data (as chi(k) and k3chi(k) vs. k), so we press 2.

Enter formatted filename for output [FX12B.frm] :FX12B-K3X.FRM

Press 1 for DATA file, 2 for HEX dump :1

Enter No. array positions to write [4] :3

Enter array position to write to file col. No. 1 [1] :2

Enter array position to write to file col. No. 2 [2] :7

Enter array position to write to file col. No. 3 [3] :9

This file will be opened in Igor and Data | Load Waves | Load General Text … will be used to save the three columns as FX12B-k, FX12B-chi, and FX12B-k3x. This .FRM file can also be converted (using the first two columns) into a .chi file using Athena.

Then, we need to save a delimited text file with the FT data (as FT magnitude vs. R), so we press 2.

Enter formatted filename for output [FX12B.frm] :FX12B-FT16.FRM

(Should you change your mind about the k range for the FT, you can come back and save multiple versions of the FT file with different end points. Note that if you come back to PROCESS to do this on a previously saved file, you must actually calculate the FT again before you save this file; otherwise, it will be empty.)

Press 1 for DATA file, 2 for HEX dump :1

Enter No. array positions to write [4] :2

Enter array position to write to file col. No. 1 [1] :17

Enter array position to write to file col. No. 2 [2] :11

This file will be opened in Igor and Data | Load Waves | Load General Text … will be used to save the two columns as FX12B-r16 and FX12B-ft16.

The only data left to be saved are the normalized edge vs. eV. This can be done by saving a standard .EDG file through the UTILITIES menu. Back in the FILES menu, press 5 to return to MAIN menu, press 7 to access the UTILITIES menu, and press 1 to calculate derivs. etc to get to the Manipulate data menu:

Press 3 to normalize data and then answer the prompts shown by using the Enter key twice. Pressing 8 to write .EDG file generates the prompt below which should also be answered by using the Enter key.

Enter filename for .EDG file [fx12b.edg] :

.EDG data file written - Column 1:x 2:y 3:deriv

This writes the normalized edge as FX12B.EDG. Using Data | Load Waves | Load General Text … in IGOR on this file and loading the first two columns as FX12B-eV and FX12B-edg, provides the normalized edge data.

After writing the .EDG file, we are back in the Manipulate data menu; press B to return to the UTILITIES menu. Another useful utility is to examine the data in "memory" for this PROCESS session. Pressing 8 for memory map generates the following ouput in the X-window. Note that Array position 2 contains K and array position 9 contains K WTD EXAFS. These are the columns written to the FX12B-K3X.FRM file above. (You can always examine graphically memory arrays by pressing 7 to plot memory in the UTILITIES menu.)

Pressing any key takes you to a prompt that allows you to modify the memory; this is not recommended since some of the actions in PROCESS assume default locations of arrays. Just pressing Enter/Return takes you back to the UTILITIES menu; then press A to return to MAIN menu, then press 9 (and confirm with Space bar) to quit PROCESS.

Don't forget to archive the results and document your data reduction activity on the Data Log Form and in the data index as detailed in the XAS Data Handling Protocol.

scott@chem.uga.edu
Department of Chemistry
University of Georgia
Athens, GA 30602-2556
706 542-2240 | FAX: 706 542-2295