[Ifeffit] normalization methods

Matthew Marcus mamarcus at lbl.gov
Wed May 15 09:57:14 CDT 2013

What I typically do for XANES is divide mu-mu_pre_edge_line by a linear function which goes through the post-edge oscillations.
This division goes over the whole data range, including pre-edge.  If the data has obvious curvature in the post-edge, I'll use a higher-order
polynomial.  For transmission data, what sometimes linearizes the background is to change the abscissa to 1/E^2.7 (the rule-of-thumb absorption
shape) and change it back afterward.  All this is, of course, highly subjective and one of the reasons for taking extended XANES data (300eV,
for instance).  For short-range XANES, there isn't enough info to do more than divide by a constant.  Once this is done, my LCF programs allow
a slope adjustment as a free parameter, thus muNorm(E) = (1+a*(E-E0))*Sum_on_ref{x[ref]*muNorm[ref](E)}.  A sign that this degree of freedom
may be being abused is if the sum of the x[ref] is far from 1 or if a*(Emax-E0) is large.  Don't get me started on overabsorption :-)

On 5/15/2013 7:35 AM, Matt Newville wrote:
> Hi Folks,
> Over on the github pages for larch, Mauro and Bruce raised an issue
> about the "flattening" in Athena. See
> https://github.com/xraypy/xraylarch/issues/44
> I've added a "flattened output" from Larch's pre_edge() function, but
> the question has been raised of whether this is "better" than the
> simpler normalized spectra, especially for doing PCA and/or LCF for
> Currently, the "normalized" spectra is just "(mu -
> pre_edge_line)/edge_step". Clearly, a line fitted to the pre-edge of
> the spectra is not sufficient to remove all instrumental backgrounds.
> In some sense, flattening attempts to do a better job, fitting the
> post-edge spectra to a quadratic function.  As Mauro, Bruce, and
> Carmelo have pointed out, it is less clear that it is actually better
> for XANES analysis.  I think the main concerns are that a) it is so
> spectra-specific, and b) it turns on at E0 with a step function.
> Bruce suggested doing something more like MBACK or Ifeffit's bkg_cl().
>   It would certainly be possible to do some sort of "flattening" so
> that mu follows the expected energy dependence from tabularized mu(E).
> Does anyone else have suggestions, opinions, etc?  Feel free to give
> them here or at the github page....
> --Matt
> _______________________________________________
> Ifeffit mailing list
> Ifeffit at millenia.cars.aps.anl.gov
> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit

More information about the Ifeffit mailing list