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.
Please follow the user installation guide to install PyProBE.
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:
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 a built-in plotting module for fast and flexible visualisation 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 is fast! Built on Polars dataframes, PyProBE out-performs manual filtering with Pandas and stores data efficiently in Parquet files:
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.
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.
Contributions to PyProBE are welcome. Please see the contributing guidelines.
TBC
PyProBE is fully open source. For more information about its license, see LICENSE.
Tom Holland |
Mohammed Asheruddin (Asher) |