[Ifeffit] Autobk parameters

Matt Newville newville at cars.uchicago.edu
Wed May 26 11:51:34 CDT 2004


Stefano,

> 1) I understand that energy calibration should be performed, and I 
> did so by using the atomic edge energy. I also understand that this 
> parameter could be fluctuating in the subsequent fitting. Any comment 
> on this procedure?

The most important thing is to have your different data sets aligned in
energy.  If the monochromator slips in energy (and some do), then using a
metal reference foil can help greatly to help line up spectra.

Once lined up, picking a consistent e0 is more important than picking the
right one, especially as it will be refined later.  Autobk/spline() chooses
the max of the first derivative because this is easy to pick with no other
knowledge.  Feff generally puts e0 somewhat higher up the absorption edge.
 
> 2) The next parameter is Rbkg. I have read the literature about this 
> parameter, especially the 1993  paper by Matt. I sort of understood 
> the rationale and method, but I also gathered that the default 
> parameter of 1.0 can be changed. What are the criteria for changing 
> this? I tend to keep it to the default value, but I feel a bit uneasy 
> about not being able to control this parameter intelligently.

Starting with 1.0 is usually about as good as anything else.  Then you can 
inspect chi(R) to see where the first shell is and adjust Rbkg from there.

> 3) I understood from the paper by Matt (and from the "Using Athena" 
> manual by Bruce) that one could use a "standard" to estimate the 
> level of leakage into the small chi(R) region (apodization effects 
> due to Fourier window filtering). The manual states that one can read 
> in a chi.dat file produced with feff. However, I do not understand 
> how to build the feff.inp for feff and produce a useful chi.dat to 
> use as a "standard". Please help?

With ifeffit, the easiest thing to do is to use ff2chi() to convert the
one or two Feff paths for the first shell into chi(k):
   path(1, feff0001.dat)
   ff2chi(1, group=std)
   spline(data.energy, data.xmu,..,k_std=std.k, chi_std=std.chi)

The standard does not have to be perfect -- getting Z and distance
for the first shell should be plenty good enoug. Using no standard
is usually fine, but a standard can really help for short, low-Z
ligands.

> 4) Then there is the k-weight parameter to be changed for the 
> background removal. The default value for this is 1, but higher 
> values are allowed. I noticed that increasing the k-weight for 
> background removal produces a curve in the chi(E) which more and more 
> appear to disregard the edge peak, resembling more and more a 
> smoothly monotonically increasing curve. Consequently, the chi(k) 
> changes depending on this parameter, and I again start to be worried 
> about the following fit of it. What are the criteria to choose this 
> k-weight for the background?

The k-weight is used to weight different parts of the spectra in the
background subtraction. kweight of 1 or 2 is generally appropriate. 

> 5) The Pre-edge range: here the manual (and the online help) states 
> that the range is -200 to - <snip> (btw, is there a way to see the 
> end of the long sentences in the echo area?) but the actual default 
> values are -150/-75 for most cases, while it can be different for 
> different spectra. I do not understand the rationale in choosing 
> these default values. I am guessing that the program somehow finds 
> the "best" range and uses it. If so, i would like to know the 
> criteria for this choice. Also, I read somewhere in your documents 
> that one should try to have the pre-edge and the post-edge lines to 
> run parallel. Is this a good criterium? Should I change the pre- and 
> post-edge ranges in order to satisfy this criterium? If the default 
> values yield non-parallel lines should I worry? If so, what should I 
> do?

Like Bruce said, these parameters had to have defaults,  and these seemed
reasonable at the time....

> 6) Spline range: this is another important issue, I think. In the 
> paper by Matt it is stated that "standard practice ... has been to 
> ignore everything below an energy typically 30 eV above the E0" and 
> that Autobk is an advantage because it can read in data very close to 
> the E0. My question is: the default value for k in the spline range 
> is set to 0.5 eV (0.952 eV). What are the criteria to change this 
> default value? Also, is there any relationship between this range and 
> the range subsequently used for FT? My guess is that the k-min for FT 
> should be always higher that the k-min for the spline range, but 
> please comment on this.  Also, what are the criteria to set the 
> default value for k-max in the background removal spline? Does this 
> relate to k-max for FT in the sense that the latter should always be 
> smaller than k-max used for spline background calculation? I also 
> noticed that (obviously) the peak in the chi(R) spectrum which is at 
> R values smaller than the first shell coordination distance decreases 
> as I increase the k-min for the spline calculation, while the first 
> and more distant shells are less influenced by this parameter (even 
> though to a significant extent, which, again, worries me). What is 
> the best value for k-min for the spline and what are the criteria for 
> deciding?

There is no relation between the FT used for the spline and the one
used for the analysis.  I typically use kmin=0, kmax=last_data_point, 
dk=0 for the spline (which are the defaults).  Bruce seems to prefer 
kmin=0.5 or so: it shouldn't make a difference.
 
> 7) for the FT parameters: Shelly's protocol to define the k-range to 
> best calculate the chi(R) was clear and useful to me. However, I 
> would like to know more about choosing the dk parameter and the 
> window-type. I need some general criteria to choose between the 
> various possibilities.  I noticed that the kaiser-bessel window is 
> the default, but in the literature I almost invariably find the 
> Hanning window. Please comment.
> 
> I come from the NMR spectroscopy world, and I am used to run FT and 
> play around with the parameters defining the type of apodization 
> function. However, in that case, it was pretty clear to me what are 
> the standard parameters used by most people, while here, being new to 
> the game, I need some guidance. I tried to read all the material 
> available (thanks a lot for such a great effort) and also the 
> previous mailing list messages, but I thought that it was time to ask 
> al the questions I have at once.
> I feel like a naive cook who is afraid of making mistakes, and 
> therefore reads a receipe very carefully, not to mix the wrong 
> ingredients in the wrong amounts. So, again, please bear with me.

For FTs, I typically start with kmin=~2 to 3, and kweight=2.  Having kmin
at a place where chi(k)=0 is often recommended -- I would not call that a
rigid rule but 'good practice' (and you have to put kmin somewhere). Many
people prefer kweight=3, especially when the backscatters are low-Z.  I
think it's probably more important to be consistent than what value you
actually use.  kmax is typically where the data gets noisy or obviously
bad.  For a Hanning Window function, dk=~1 or 2 is generally good, while
for a Kaiser window, dk~=4 seems more appropriate.

The Hanning Window has historically been used for lots of EXAFS analyses,
and no one will say it's bad to use this.  Ifeffit uses a lot of
conventions from the 'U Washington school' and older analysis programs
dating back to the 1980's and earlier, and the Hanning Window is one of
them.  We're keeping one foot firmly in the traditional approaches (the 
wisdom of those who went before us is valuable), but are willing to step 
into new approaches when it seems worthwhile.  I think it's generally 
agreed that the Window / apodization functions don't matter much, but 
also that the Kaiser-Bessel seems slightly better at peak separation
than the Hanning Window.

> I would like to estimate the area of a small pre-edge peak in a 
> Nickel spectrum. It is known that the area of this peak, compared to 
> the XANES, is correlated to the degree of symmetry for the Ni(II) 
> ion. I tried to use the peak fitting procedure implemented in Athena, 
> but unsuccessfully. If I limit the fitting region to close to the 
> pre-edge peak, and use either gaussian or lorentzian lineshape, the 
> fitting is bad, really bad (shift of the fitted maximum, wrong 
> linewidth). Maybe the peak is just too small. If I try to fit the 
> entire XANES in addition to this small peak, I get very good fit for 
> the XANES features, but negative intensities for the pre-edge peak. 
> Any clues?

Since the pre-edge peaks can be very close to the main edge, it's often
necessary to include a function that at least partly accounts for the main
edge.  An arctangent is typically used, but you could use a very broad
Gaussian or Lorenztian centered at higher energy too.  Also, many (most?)
of the 3d metal pre-edges are actually a superposition of two peaks, so
it's not unusual for them to look noticeably asymmetric. Finally, you may 
want to limit the energy range of the XANES fit to just cover the pre-edge 
peak and about half way up the main edge.

Hope that helps,

--Matt




More information about the Ifeffit mailing list