Angle Resolved Photoemission Electron Spectroscopy Tool
A modern, interactive GUI application for analysing ARPES (Angle-Resolved Photoemission Spectroscopy) data from multiple synchrotron beamlines. Coding or scripting is not needed.
- Multi-beamline support: Load data from Diamond Light Source (I05) and MAX IV (Bloch)
- Multiple file formats:
.nxs,.zip,.ibw - 2D, 3D & 4D visualisation: Single cuts and photon energy/deflector angle scans
- Interactive visualisation: Real-time cursor tracking with live EDC/MDC updates
- Proces the data: Convert to k-space, correct the Fermi level based on a reference measurent etc.
- State management: Undo/redo functionality with complete processing history
- Analyse the data: Fit the process data
- Tabbed interface: Work with multiple datasets simultaneously
- Save dataset: Save and comeback where you where
- Optimized rendering for smooth visualisation
- Fast numpy slicing for data extraction
- In-place data updates
Watch real-time interaction with a 3D ARPES dataset: ➡️ https://youtu.be/LxjP9kRJ8GY
- Python 3.7 or higher
- PyQt5
- NumPy
- SciPy
- h5py
- igor
- matplotlib
- pyqtgraph
# Install ARpest from PyPI
pip install arpest
# Launch the GUI
arpest-
Launch the application:
arpest
-
Configure settings:
- Click ⚙️ Settings to set default data directory
- Choose preferred colormap
- Settings persist between sessions
-
Load data:
- Click the 📂 Open File button in the toolbar
- Select your ARPES data file (
.nxs,.h5,.zip, or.ibw)
-
Interactive visualisation:
- Click & drag: Continuously update cuts in real-time
- 3D data: Use energy slider to navigate through different energy slices
-
Analyse and process the data:
- Apply data processing: Convert to k-space, correct the Fermi level based on a reference measurent and more
- Analyse by fitting the processed data: Fit EDC/MDC curves
- Additional beamline support (SLS, SOLEIL, etc.)
- Additional analysis methods
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.
If you use ARpest in your research, please cite:
@article{ARpest2025,
title = {ARpest: A GUI-driven ARPES analysis platform},
journal = {SoftwareX},
volume = {34},
pages = {102573},
year = {2026},
issn = {2352-7110},
doi = {https://doi.org/10.1016/j.softx.2026.102573},
url = {https://www.sciencedirect.com/science/article/pii/S2352711026000671},
author = {Ola Kenji Forslund},
}Fermi surface with momentum cuts. Data from Phys. Rev. Lett. 134, 126602 (https://doi.org/10.1103/PhysRevLett.134.126602).
