Skip to main content

No project description provided

Project description

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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyprobe_data-2.5.0.tar.gz (59.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyprobe_data-2.5.0-py3-none-any.whl (73.9 kB view details)

Uploaded Python 3

File details

Details for the file pyprobe_data-2.5.0.tar.gz.

File metadata

  • Download URL: pyprobe_data-2.5.0.tar.gz
  • Upload date:
  • Size: 59.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.8

File hashes

Hashes for pyprobe_data-2.5.0.tar.gz
Algorithm Hash digest
SHA256 88292b10c18f0490f8faf83ff8861514bdb1eb9ac214399364e800110b4cbe2f
MD5 7c77482ee9eede949d78a09ef4d0e98d
BLAKE2b-256 14eabeff10992c53c98e686a8c4048acbe1e3b7ac201c4a098da564cbf4a4a04

See more details on using hashes here.

File details

Details for the file pyprobe_data-2.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pyprobe_data-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9cc24550d2528e24947d61ff2163f859432a148ce1e51739a7d9432e77614e46
MD5 4c7cc0b47e1074e49568d74e992db6d8
BLAKE2b-256 427ed7854aad730f12bccd6e88ec2c59264a1e36ab2f7a0a2fdea082aeaebdd6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page