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 the ref column, and shifts the dataset to align to a target edge energy.
  • edgeenergy: estimates \(E_{0}\) from the experimental section, relative to the a 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