December 2020, V3 Release: The current relase focuses on improving usage and workflow for less experienced Python users, lifting version incompatibilities with dependencies, and ironing out edges in the user experience.

For the most part, existing users of PyARPES should have no issues upgrading, but we now require Python 3.8 instead of 3.7. We now provide a conda environment specification which makes this process simpler, see the installation notes below. It is recommended that you make a new environment when you upgrade.

You can find more usage and example videos here.

PyARPES is an open-source data analysis library for angle-resolved photoemission spectroscopic (ARPES) research and tool development. While the scope of what can be achieved with PyARPES is general, PyARPES focuses on creating a productive programming and analysis environment for ARPES and its derivatives (Spin-ARPES, ultrafast/Tr-ARPES, ARPE-microspectroscopy, etc).

As part of this mission, PyARPES aims to reduce the feedback cycle for scientists between data collection and producing publication quality analyses and figures. Additionally, PyARPES aims to be a platform on which new types of ARPES and spectroscopic analyses can be rapidly prototyped and tested.

For these reasons, PyARPES includes out of the box a large variety of analysis tools for

  1. Applying corrections to ARPES data

  2. Doing gap analysis

  3. Performing sophisticated band analysis

  4. Performing rapid and automated curve fitting, even over several dataset dimensions

  5. Background subtraction

  6. Dataset collation and combination

  7. Producing common types of ARPES figures and reference figures

  8. Converting to momentum space

  9. Interactively masking, selecting, laying fits, and exploring data

  10. Plotting data onto Brillouin zones

These are in addition to facilities for derivatives, symmetrization, gap fitting, Fermi-Dirac normalization, the minimum gradient method, and others. Have a look through the crash course to learn about supported workflows.

By default, PyARPES supports a variety of data formats from synchrotron and laser-ARPES sources including ARPES at the Advanced Light Source (ALS), the data produced by Scienta Omicron GmbH’s “SES Wrapper”, data and experiment files from Igor Pro (see in particular the section on importing Igor Data), NeXuS files, and others. Additional data formats can be added via a user plugin system.

If PyARPES helps you in preparing a conference presentation or publication, please respect the guidelines for citation laid out in the notes on user contribution. Contributions and suggestions from the community are also welcomed warmly.

Tool Development

Secondary to providing a healthy and sane analysis environment, PyARPES is a testbed for new analysis and correction techniques, and as such ships with scikit-learn and open-cv as compatible dependencies for machine learning. cvxpy can also be included for convex optimization tools.


See the Installation page for details.

Contributing and Documentation

See the section on the docs site about contributing for information on adding to PyARPES and rebuilding documentation from source.

Copyright © 2018-2020 by Conrad Stansbury, all rights reserved. Logo design, Michael Khachatrian

Installation + Technical Notes

Detailed Guides