Larch and pymca compatibility#

The library is using the XASObject to associate larch and pymca treatments and create as much as possible a bridge between those two.

Here is a small summary about current (August 2019) larch processes and pymca processes :

Original functions goals:

larch functions

pymca functions

description

is currently accessible from est

processSpectrum

compute all variables for the given spectrum

YES

fourierTransform

compute spectrum for fourier transform spectroscopy

YES

postEdge

YES

normalize

spectrum normalization

YES

pre_edge

Pre-edge subtraction and normalization - determine E0 - fit a line of polynomial to the region below the edge - fit a polynomial to the region above the edge - extrapolate the two curves to E0 to determine the edge jump

YES

pre_edge_baseline

needed for metal oxides to determine oxidation state and molecular configuration. To analyze the energies and relative strengths of these pre-edge peaks.

NO

mback

an alternative to pre_edge ? data are matched to the tabulated values of the imaginary part of the energy-dependent correction to the Thompson scattering factor

YES

over_absorption correction

needed for fluorescence when too much of the total X-ray absorption coefficient is from the absorbing element

NO

spectral deconvolution

to compare XAFS data from different source

NO

pre-edge peak fitting

X-ray Absorption Near Edge Structure technique

NO

Linear Combination Analysis

X-ray Absorption Near Edge Structure technique

NO

PCA

X-ray Absorption Near Edge Structure technique

NO

autobk

Post-edge Background Subtraction Background subtraction, convert mu to \(\chi(k)\) for quantitative analysis (post_edge background function)

YES

xftf

Forward XAFS Fourier transforms forward Fourier transform converts \(\chi(k)\) to \(\chi(R)\) and is of primary importance for XAFS analysis

YES

xftr

Reverse XAFS Fourier transforms

NO

ftwindow

Generating Fourier transform windows

NO

cauchy_wavelet

Continuous Cauchy Wavelet transform of Munoz et al

NO

reading and using Feff paths

NO

fitting XAFS to Feff paths

NO

computing anomalous scattering factors from XAFS data

NO

From it we can create the theoretical related functions:

goal

larch function(s)

pymca function(s)

Notes

pre edge sub and normalization

pre_edge

normalize

post edge substraction

autobk

EXAFS (postEdge (include postEdge)

fourier transform

xftf

fourier transform

Finally this is the list of variables used in larch and pymca. An important point is that larch uses a ‘group’ and can store any of this values ‘on the fly’ during the processing. Pymca uses dictionary as ‘XASObject’ to store results. So XASObject has to adapt to both behavior as much as possible.

larch variables

pymca variables

info

norm

normalized spectrum, using polynomial

norm_area

normalized mu(E), using integrated area

edge_step

edge step of spectrum

flat

flattened, normalized mu(E)

pre_edge

determined pre-edge curve

post_edge

determined post-edge, normalization curve

dmude

derivative of mu(E)

fpp

mback matched spectrum

f1

tabulated f1(E)

f2

tabulated f2(E)

delta_bkg

delta_chi

e0

_energy0

energy origin/offset

chi

EXAFSValues

chie

bkg

k

k

kmin

kmin

kmax

kmax

knots

KWeight

KnotsX

x position of knots

KnotsY

y position of knots

PostEdgeK

PostEdgeB

energy

Energy

mu

Mu

Jump

edge

NormalizedEnergy

NormalizedMu

NormalizedBackground

NormalizedSignal

EXAFSEnergy

EXAFSValues

EXAFSSignal

EXAFSNormalized

FT

  • WindowRange

  • Set

  • InterpolatedK

  • InterpolatedSignal

  • KWeight

  • K

  • FTRadius

  • FTIntensity

  • FTReal

  • FTImaginary

dictionary containing fourier transform result

kwin

window function Omega(k) (length of input chi(k))

r

uniform array of R, out to rmax_out

chir

complex array of chi(R)

chir_mag

magnitude of of chi(R)

chir_re

real part of of chi(R)

chir_im

imaginary part of of chi(R)

chir_pha

phase of of chi(R)

chir

complex array of chi(R)