Edge detection
\(E_{0}\) estimation is a crucial step in XAS data analysis. It identifies the absorption edge position, which is essential for aligning spectra and calculating energy-dependent quantities like the photoelectron wavevector. EstraPy provides two commands for this taks:
align
: estimates the reference \(E_{0}\), relative to theref
column, and shifts the dataset to align to a target edge energy.edgeenergy
: estimates \(E_{0}\) from the experimental section, relative to thea
column. Computes relative energy (e
) and wavevector (k
).
The two commands share the same estimation logic, based on a customizable chain of processing operations called a method.
Align
The align
command calculates the \(E_{0}\) on the ref
column, representing \(\alpha_{ref}(E)\), and shifts each spectrum in order to align the file to the correct \(E_{0}\) value for the selected element.
align <method> [--options]
Argument | Explanation |
---|---|
method | Defines the method used in the \(E_{0}\) estimation. The method syntax is defined below |
--E0 / -E <energy> | The tabulated \(E_{0}\) value for the analyzed edge. The energy can be specified either by the value, such as 14652eV , or as an element edge, such as Pd.K . If needed, the tabulated edge can be shifted, e.g. Pd.K+1.2eV |
--dE0 / -d <value> | The range around which to search for the \(E_{0}\). |
--search / -s <energy> | The energy around which to search for the \(E_{0}\). If not specified, searches around --E0 . The energy value follows the same syntax as --E0 . |
--wplot | Plots each step of the \(E_{0}\) detection. |
EdgeEnergy
The edgeenergy
command calculates the \(E_{0}\) on the a
column, that is on \(\alpha_{exp}(E)\). Afterwards, the command also calculates the indices e
, representing the relative energy from the determined \(E_{0}\) value, and k
, representing the wavevector. The k
column also contains negative values, as this column is calculated with a symmetrical square root function. This is only for mathematical convenience.
edgeenergy <method> [--options]
Argument | Explanation |
---|---|
method | Defines the method used in the \(E_{0}\) estimation. The method syntax is defined below |
--E0 / -E <energy> | The tabulated \(E_{0}\) value for the analyzed edge. The energy can be specified either by the value, such as 14652eV , or as an element edge, such as Pd.K . If needed, the tabulated edge can be shifted, e.g. Pd.K+1.2eV |
--dE0 / -d <value> | The range around which to search for the \(E_{0}\). |
--wplot | Plots each step of the \(E_{0}\) detection. |
Method
Methods for both commands can be constructed from a series of operations, defined in the table below. The operations must end with a terminal method, which estimates a single number.
Operation | n | Explanation |
---|---|---|
c | ✓ | Cuts the current data range to the range defined as E0 -dE0 ~E0 +dE0 . If n is specified, expands the range by n \(\cdot\)dE0 on both sides to provide a buffer for other operations. |
p | ✓ | Performs polynomial regression of order n on the current data. |
s | ✓ | Smooths the data, with a window of size n . |
d | ✓ | Calculates the n -th derivative of the data. |
i | ✓ | Interpolates the data with a spline of order n . |
M | ✗ | Terminal method, calculates the maximum of the current data. |
m | ✗ | Terminal method, calculates the minimum of the current data. |
Z | ✗ | Terminal method, calculates the zero of the current data. |
S | ✗ | Terminal method, bypasses all instructions and sets the E0 value to the given E0 . |
Alternatively, the method can be one of the following options, which are simply aliases for some common methods.
Alias | Operations |
---|---|
set | S |
fitderivative | c1.s5.d1.p3.M |
fitpolynomial | c1.p3.d1.M |
fitmaximum | c1.p3.M |
interpderivative | c1.s5.d1.i3.M |
maximum | c1.i3.M |