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.6.0.tar.gz (60.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.6.0-py3-none-any.whl (74.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyprobe_data-2.6.0.tar.gz
  • Upload date:
  • Size: 60.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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}

File hashes

Hashes for pyprobe_data-2.6.0.tar.gz
Algorithm Hash digest
SHA256 f25b15e6e4ccc7c7bbebd7f63d44bb2e6f210345c9cd5920f56e8788ec2a3d62
MD5 cd41f8736539d5a747325f51c5b2e237
BLAKE2b-256 e6b330f1adc6a772bf20e703093f81a9422802eca7c4edc69f41cd880dcade2b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyprobe_data-2.6.0-py3-none-any.whl
  • Upload date:
  • Size: 74.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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}

File hashes

Hashes for pyprobe_data-2.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06377dbb8d7c23358758eb7e37569690d739ee4e97d1d09584e43ba39306cd0e
MD5 3507402cd50d42a99b54e1ce51e9a15b
BLAKE2b-256 92ce25cd368328fd8d3a524344ea8154dfa2d9a33b5c09d874ec7a93ec6bc973

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