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 
Preedge 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 preedge peaks. 
NO 

mback 
an alternative to pre_edge ? data are matched to the tabulated values of the imaginary part of the energydependent correction to the Thompson scattering factor 
YES 

over_absorption correction 
needed for fluorescence when too much of the total Xray absorption coefficient is from the absorbing element 
NO 

spectral deconvolution 
to compare XAFS data from different source 
NO 

preedge peak fitting 
Xray Absorption Near Edge Structure technique 
NO 

Linear Combination Analysis 
Xray Absorption Near Edge Structure technique 
NO 

PCA 
Xray Absorption Near Edge Structure technique 
NO 

autobk 
Postedge 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 preedge curve 

post_edge 
determined postedge, 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

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) 