[Ifeffit] continuous scan data

Matt Newville newville at cars.uchicago.edu
Thu Jul 18 08:25:29 CDT 2002

Hi Carlo,

Sorry I didn't answer this more clearly.

 CS> What is done with the high density data when converting to
 CS> k-space?  Do you rebin (averaging both E and mu data) or do you
 CS> use a smoothing fit to take advantage of the statistics present
 CS> in the excess data points, or do you just interpolate and throw
 CS> away the extra statistics?

BR> ... However, mesuring for one second per point on, say, a
BR> 0.25 eV grid is similar in a counting statistics sense to
BR> two measurements of one second per point on a 0.5 eV grid.
BR> That counting statistics improvement is not lost in the
BR> interpolation of chi(E) to chi(k).

CS> I think that this last sentence is the answer that I was
CS> looking for.  I wanted to know if the counting statistics
CS> improvement is propagated in the transformation to k-space.
CS> This is good since it means that we do not have to write
CS> our own rebinning or smoothing routines before handing the
CS> data off to athena and ifeffit.

MN>  -- spline() generates k and chi arrays using a 0.05Ang-1 grid
MN>     using a three-point interpolation of the chi(e) data.
MN>     That could possibly be improved, I suppose.

CS> I take this to mean, as Bruce mentioned in the previous
CS> message, that the counting statistics improvement in these
CS> fine-gridded data is used with this three point
CS> interpolation.  If this was not the case, I would write a
CS> program to rebin by averaging multiple points to an equally
CS> spaced > k-grid in order to use the increased statistics.

The three-point interpolation done probably WILL lose some
statistics for finely gridded data.  That is, if data is binned
at fine energy intervals through the EXAFS region, the method
currently used will not use all that data to construct chi(k).
As an example :
   k = 10.00  ->  E-E0 = 381.0
   k = 10.05  ->  E-E0 = 384.8
   k = 10.10  ->  E-E0 = 388.7

Currently, ifeffit marches in k-space in steps of 0.05Ang-1,
and uses three energy points (the energy just below, the energy
just below, and the next closest point) to make a parabola
through chi(E) [that is, xmu(E)-bkg(E) at the energy points of
the data], and uses the value of that parabola as chi(k).  The
result is that if data is binned on a 0.5eV grid, some of it
will be ignored when making chi(k) at k=10.Ang^-1.

This could be improved.  Ifeffit really wants chi(k) on an even
k-grid, so the options would be either a finer k-grid or a
better interpolation scheme.  A finer grid in ifeffit could be
possible, but it's a non-trivial change.

A better interpolation scheme is easier to do.  Changing from
3-point interpolation to a cubic spline that passes through all
the data points of chi(E) would be easy, and would use all the
data for each chi(k) point.  Whether it actually 'preserves
statistics' is a harder question to answer.  I think that any
griddign of data could be said to lose statistics.  Some sort
of rolling averaging could be used, which might preserve
statistics better at the (small) expense of resolution.

Anyway, the reason that's not cubic spline interpolation is not
currently done is execution speed, but that's probably less
important than throwing away data!

Changing to the better interpolation scheme is easy enough to
try.  I could send altered code if you like.


More information about the Ifeffit mailing list