Working with XPS data
X-ray Photoemission Spectroscopy (XPS) data is recorded in the same way as the ARPES spectra. It records two dimensional (energy- and angle- resolved) intensities. Since the energy range for XPS scans are often very large, the data files could be very large (up to several hundred megabytes). Generally, we do not need any angle-resolved information, therefore the spectra can be saved in simple energy vs. intensity two column format.
XPS data are generally measured in transmission mode, which has angular range about (-3, 3) degree. Often there are some artifacts on the edge of detector, so we can restrict only to the central part with integration limits for line profile.
import arpespythontools as arp
import numpy as np
data, energy, angle = arp.load_ses_spectra("xps_data.txt")
intensity = arp.line_profile(data, angle, -2.5, 2.5)
If you require energy in terms of binding energy instead of kinetic energy, you can convert using:
where is Fermi energy, and is work function which is about 4.5 eV for our setup.
If you do not need to specify the integration limits i.e., you want to sum over
full angle range, it is simpler to use numpy.sum
method instead.
import numpy as np
intensity = np.sum(data, axis=1)
Save/export XPS data
xps_data = np.array([energy, intensity]).T
np.savetxt("xps_data.x_y", xps_data)
In the above example, we have saved the data in two column (.x_y
) format,
which is suitable for importing to other XPS analysis software (like CasaXPS).
We may also use the module save_xps
to save data.
arp.save_xps(energy, intensity, "xps_data.x_y")
If you need to load the two column data using python:
energy, intensity = np.loadtxt("xps_data.x_y", unpack=True)
If you only need to obtain integrated intensity from the SES spectra for XPS data analysis, you may try our web application.