Skip to main content

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.

Python PyQt5 License

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

  1. Launch the application:

    arpest
    
  2. Configure settings:

    • Click ⚙️ Settings to set default data directory
    • Choose preferred colormap
    • Settings persist between sessions
  3. Load data:

    • Click the 📂 Open File button in the toolbar
    • Select your ARPES data file (.nxs, .h5, .zip, or .ibw)
  4. Interactive visualisation:

    • Click & drag: Continuously update cuts in real-time
    • 3D data: Use energy slider to navigate through different energy slices
  5. 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:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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

3D Analysis

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)

Source distribution for arpest 1.0.4
File Size Uploaded
arpest-1.0.4.tar.gz 103.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arpest 1.0.4
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page