Skip to main content

PyProBE

CI pre-commit.ci status Documentation Status codecov

License Python Version from PEP 621 TOML PyPI - Version DOI status

PyProBE (Python Processing for Battery Experiments) is a Python package designed to simplify and accelerate the process of analysing data from battery cyclers.

PyProBE is documented here. Examples are stored in docs/source/examples and are integrated into the documentation here.

Installing PyProBE

Install PyProBE with pip:

pip install PyProBE-Data

For more detail see the user installation guide.

To install from source see the developer installation guide.

PyProBE Objectives

1. Ease of use

PyProBE breaks down complex battery data into simple, easy to understand objects that can be accessed with a few lines of code using natural language. The procedure shown below:

Procedures and experiments

can be filtered into the experiments that make up the procedure:

cell.procedure['Reference Test'].experiment('Initial Charge')
cell.procedure['Reference Test'].experiment('Discharge Pulses')

And filtered by cycle, step or step type:

cell.procedure['Reference Test'].step(1)
cell.procedure['Reference Test'].experiment('Discharge Pulses').cycle(3).discharge(0)

This makes it easy to quickly access the data you need for analysis. See the filtering data example to see this in action.

See the documentation for a detailed user guide. Start with the following pages to get PyProBE set up with your data:

PyProBE works with numerous cyclers. For guidance on how to export your data to work with PyProBE see the Input Data Guidance.

2. Accelerate battery data exploration

PyProBE has built-in plotting methods that integrate with matplotlib, hvplot and seaborn for fast and flexible visualization of battery data. It also includes a graphical user interface (GUI) for exploring data interactively, with almost no code. Run the getting started example locally to try the GUI.

PyProBE Dashboard

PyProBE is fast! Built on Polars dataframes, PyProBE out-performs manual filtering with Pandas and stores data efficiently in Parquet files:

PyProBE performance

3. Encourage data processing aligned with FAIR principles

PyProBE is designed to encourage good practice for storing and processing data PyProBE requires a README file to sit alongside your experimental data which is:

Human readable: Sits alongside your data to allow others to quickly understand your experimental procedure.

Computer readable: Simplifies the PyProBE backend, maximises flexibility to different input data and makes the setup process fast and intuitive for new data.

README file

See the guidance for writing README files for your experiments.

4. Host a library of analysis methods

PyProBE's analysis module contains classes and methods to perform further analysis of battery data. It is designed to maintain compatibility with the PyProBE data format and plotting tools while ensuring functions are simply defined, portable and tested.

The currently implemented analysis methods includes:

  • Summarise pulsing experiments with resistance information from each pulse
  • Summarise cycling experiments with SOH quantification for each cycle
  • Differentiation of any quantity
    • Finite-difference based method
    • Level Evaluation ANalysis method
  • Data smoothing
    • Level-based method
    • Spline fitting
    • Savitzky-Golay filtering
  • Degradation mode analysis
    • Curve fitting to pseudo-OCV, Incremental Capacity Analysis (ICA) or Differential Voltage Analysis (DVA) curves
    • Charge/discharge pseudo-OCV curve averaging for resistance compensation

It is easy to contribute to the analysis module. See the developer guide and contributing guidelines.

Contributing to PyProBE

Contributions to PyProBE are welcome. Please see the contributing guidelines.

Citing PyProBE

If you use PyProBE for a scientific paper, please cite our paper:

Holland, T., Cummins, D., & Marinescu, M. (2025). PyProBE: Python Processing for Battery Experiments. Journal of Open Source Software, 10(106), 7474. https://doi.org/10.21105/joss.07474

License

PyProBE is fully open source. For more information about its license, see LICENSE.

Contributors

tomjholland
Tom Holland
FW-Coding
Felix Watson
mohammedasher
Mohammed Asheruddin (Asher)

Metadata

Release files for PyProBE-Data 2.6.1

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

Source distribution (sdist)

Source distribution for PyProBE-Data 2.6.1
File Size Uploaded
pyprobe_data-2.6.1.tar.gz 60.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyProBE-Data 2.6.1
File Interpreter ABI Platform
pyprobe_data-2.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 135.6 kB

Release files / pyprobe_data-2.6.1.tar.gz

Download URL pyprobe_data-2.6.1.tar.gz
Size 60.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e3074c8c39869dfe3c3dee7eb8159672a385ace520cf6f5fca73ac5c4eb42473
BLAKE2b-256 checksum
How to use checksums
b5a49eed1c4e7978a628f2630ad8c72747d82394286f2e04cd1079969b818caa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyprobe_data-2.6.1-py3-none-any.whl

Download URL pyprobe_data-2.6.1-py3-none-any.whl
Size 74.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6054b40da0a5a925196297aeacecdc93463bacbd3c2da9381cd63ea7548e5b3
BLAKE2b-256 checksum
How to use checksums
2d1f143c8bd7e5619c6f4ad78bf5016ec59cc6dd6d397a3759aad91253126f37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

2.6.1 This release

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.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