Note
Go to the end to download the full example code.
EELS curve fitting#
Performs curve fitting to an EELS spectrum, plots the result and saves it as png file.
import hyperspy.api as hs
s = hs.load("../coreloss_spectrum.msa", signal_type="EELS")
low_loss = hs.load("../lowloss_spectrum.msa", signal_type="EELS")
s.add_elements(("Mn", "O"))
s.set_microscope_parameters(
beam_energy=300, convergence_angle=24.6, collection_angle=13.6
)
Create a model and fit it to the data.
Note
By default, generalized oscillator strength (GOS) calculated using density functional theory (DFT)
are used. Use the GOS parameter to change to use other GOS, for example GOS="dirac".
m = s.create_model(low_loss=low_loss)
m.enable_fine_structure()
m.multifit(kind="smart")
Print the fitted intensities and convert them to areal density (atoms/nm²). This assumes the low-loss spectrum was passed raw (counts) and that both spectra share the same dwell time.
m.quantify()
for edge in m.edges:
N = edge.intensity.value * 1e10
print(f"{edge.name}: {N:.3e} atoms/nm²")
Absolute quantification:
Elem. Intensity
O 0.001607
Mn 0.000463
O_K: 1.607e+07 atoms/nm²
Mn_L3: 4.626e+06 atoms/nm²
Mn_L2: 4.626e+06 atoms/nm²
Mn_L1: 4.626e+06 atoms/nm²
Plot the model fit result
m.plot()

Total running time of the script: (0 minutes 2.286 seconds)