ARpest
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.
Features
Core Capabilities
- 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
Performance
- Optimized rendering for smooth visualisation
- Fast numpy slicing for data extraction
- In-place data updates
🎥 Live Demo
Watch real-time interaction with a 3D ARPES dataset: ➡️ https://github.com/OlaKenji/ARpest/wiki/Live-Demo
Installation
Requirements
- Python 3.7 or higher
- PyQt5
- NumPy
- SciPy
- h5py
- igor
- matplotlib
- pyqtgraph
Quick Install
# Install ARpest from PyPI
pip install arpest
# Launch the GUI
arpest
Usage
Basic Workflow
-
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
Supported Beamlines
Diamond Light Source - I05
MAX IV - Bloch
Roadmap
- Additional beamline support (SLS, SOLEIL, etc.)
- Additional analysis methods
Contributing
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
License
This project is licensed under the MIT License.
Citation
If you use ARpest in your research, please cite:
@software{arpest2025,
author = {Ola Kenji Forslund},
title = {ARpest: Interactive ARPES Data Analysis Tool},
year = {2025},
url = {https://github.com/OlaKenji/arpest}
}
Screenshots
3D Fermi Surface Mapping
Fermi surface with momentum cuts. Data from Phys. Rev. Lett. 134, 126602 (https://doi.org/10.1103/PhysRevLett.134.126602).
Metadata
Release files for arpest 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arpest-1.0.4.tar.gz | 103.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arpest-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 238.5 kB
Release files / arpest-1.0.4.tar.gz
| Download URL | arpest-1.0.4.tar.gz |
|---|---|
| Size | 103.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2762cf791be0450d46ffc0724a6a25a8e575f4ef1564f8c1d365ff54b359cd1c
|
|
BLAKE2b-256 checksum How to use checksums |
45179e312d7522c74e2f493eef762bdc0622cf21df0f30b901c15fdcc04fee9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.7.13
|
Release files / arpest-1.0.4-py3-none-any.whl
| Download URL | arpest-1.0.4-py3-none-any.whl |
|---|---|
| Size | 135.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b57b70f725c092270c97ec1b7c16b1da22963c25186a914f70bc9fda78c7630c
|
|
BLAKE2b-256 checksum How to use checksums |
c58de8755b5b5f76e9222c25b6fb1b26d522d0f3b5e83bcb556ea512b9748016
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.7.13
|