[Ifeffit] continuous scan data
newville at cars.uchicago.edu
Sun Jul 28 20:06:18 CDT 2002
I made some small, probably incomplete, progress on dealing
with the problem of continuous scan (or QEXAFS) XAFS data for
which the XAFS data is sampled on a fine energy grid -- 1eV was
used for the data Raul posted.
As mentioned earlier, Ifeffit currently uses a fixed k-grid of
0.05Ang^-1 for chi(k). At k = 10Ang^-1, this corresponds to
energy steps of nearly 4eV. Any scheme to use "all the data"
to map to chi(k=10) may be tricky. The basic approaches are
1) better interpolation algorithm.
2) change the k-space grid size.
3) doing some sort of averaging of the data around a
particular k value.
At this point I've tried the first 2 of these. More details
are posted at
including data files and some plots figures. This is all with
'experimental' versions of ifeffit.
First, I made the interpolation scheme used for the translation
of chi(E) to chi(k) in the spline command have a few options:
'linear' using two surroundings data points
'quadratic' or parabolic using three data points
'cubic spline' put a cubic spline through all the data points
Linear interpolation is not very satisfying. The results from
'quadratic' and 'cubic spline' are very similar.
The next thing I did was to change the k-grid spacing from
0.050 to 0.025 and to 0.010 Ang^-1, and repeated the use all 3
interpolation schemes. Using 0.050 is noticeably different from
0.025, while 0.025 and 0.010 seem pretty similar to me. This
was all done by changing the kgrid at compile time, which will
be possible in 1.0073.
I also played around with trying to make the kgrid and size of
the FFT array variables that can be set at run-time. This
seems highly desirable for cases like this. Surprisingly to
me, it also seems possible. I have a *highly* experimental
version that allow kgrid to be set at run time. In favorable
conditions, it even works correctly. There are still some
severe bugs with this version that I do not fully understand,
and I doubt I'll have much time to work on it soon. But if
anyone is very eager to try it, I'd be willing to send it.
I have not yet tried implementing any 'averaging of adjacent
points' such based on a rolling boxcar or a convolution with a
Lorenztian. I could be persuaded to try such things, but at
this point I'm not sure what the right thing is.
Finally, coming back to the interpolation of the continuous
scan data, the data Raul sent has some systematic effects going
on that might complicate these comparisons. The effects can be
seen from the un-interpolated chi(k) data:
and the attempts to interpolate this data:
It looks like there are systematic trends due to insufficient
precision (only 4 digits in the mu(E) data). I don't know
enough about the electronics used to know if this is intrinsic
to the measurements or not. Also, does anyone know how
accurate the energies are with this kind of data?
More information about the Ifeffit