Skip to main content

pesfit

License Downloads PyPI version

Scalable distributed multicomponent lineshape fitting routines and benchmarks for spectral or spectrum-like data

Rationale

Lineshape fitting is a universal task in photoemission spectroscopy and can be a tedious endeavor due to the increasing amount of data measured in modern instruments (e.g. angle-resolved hemispherical analyzer, time-of-flight electron momentum microscope). It extracts physically meaningful quantities directly related to the materials' electronic properties, which can be reproduced from theory calculations. However, the efficiency bottleneck in lineshape fitting puts constraints on the potential new physical insights obtainable within a meaningful time frame. We set up here examples of multiband photoemission spectra along with existing domain knowledge in the field. The routines and benchmarks featured here offer an open-source data and algorithm platform for continuous algorithm development to improve the computational efficiency of the lineshape fitting task, which, in the meantime, also paves the way towards the automation of materials characterization using photoemission spectroscopy.

Design and scope

The fitting part of the package builds and improves on the existing Model and CompositeModel classes in the widely-used lmfit package to include multiband lineshapes (involving an arbitrary number of peaks) evaluated using map-reduce operations. Fitting of many intensity profiles (i.e. line spectra) can be carried out either in sequence or in parallel (built in using dask and multiprocessing).

The focus of the software and its benchmarks in on determining the momentum-dependent band positions in valence band photoemission data at scale (e.g. 104-105 spectra with each containing 10+ bands), which meets the needs for a global understanding of these complex data with reasonable accuracy (not necessarily accounting for all photoemission physics) to yield empirical structural information (i.e. band structure parameters). For conventional data analysis of core-level photoemission spectroscopy that often exhibits a complex background, please consult software packages such as lmfit, xps, and gxps.

Installation

  1. Install from scratch

     pip install git+https://github.com/mpes-kit/pesfit.git 
  2. Upgrade or overwrite an existing installation

     pip install --upgrade git+https://github.com/mpes-kit/pesfit.git 
  3. Install from PyPI

     pip install pesfit 

Data source

Please download the data from mpes-kit/pesarxiv. To run the examples and benchmarks, create a ./data folder in the cloned repository and copy the downloaded data into it.

Benchmarks and examples

Besides source code, the package comes with examples presented in Jupyter notebooks and benchmarks for multiband dispersion fitting routines in scripts, using the data described above.

Documentation

Online documentation is provided here.

Reference

Please cite the following paper if you want to refer to the software:

R. Patrick Xian, R. Ernstorfer, Philipp M. Pelz, Scalable multicomponent spectral analysis for high-throughput data annotation, arXiv: 2102.05604.

Metadata

Release files for pesfit 0.6.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pesfit 0.6.6
File Size Uploaded Provenance
pesfit-0.6.6.tar.gz 2.1 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pesfit 0.6.6
File Interpreter ABI Platform
pesfit-0.6.6-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 2.1 MB

Release files / pesfit-0.6.6.tar.gz

Download URL pesfit-0.6.6.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
d508e9f9efa6384f8ed7a12306fc25bf0fc35f5cfe4a7d96c4dba17a08a69906
BLAKE2b-256 checksum
How to use checksums
9148c9256c69eb9246189185696c22801ee8a4aa1f0fb87ae9cf5717ed817199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.56.0 CPython/3.6.4

Release files / pesfit-0.6.6-py2.py3-none-any.whl

Download URL pesfit-0.6.6-py2.py3-none-any.whl
Size 22.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
4c478c6e5fad3e71678bcc0f0a1d279c815a7b690b4a65382b655857c5e4f107
BLAKE2b-256 checksum
How to use checksums
90ff311eb9ae0cc7501a89b4f4f99a9fc550c4fa94b4a3aaef32fbe0645a12a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.56.0 CPython/3.6.4

Security for pesfit 0.6.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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