PyProBE-Data


NamePyProBE-Data JSON
Version 1.4.0 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2025-01-31 19:03:51
maintainerNone
docs_urlNone
authorThomas Holland
requires_python<3.13,>=3.11
licenseBSD 3-Clause License Copyright (c) 2024, Thomas Holland Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyProBE
![CI](https://github.com/ImperialCollegeLondon/PyProBE/actions/workflows/ci.yml/badge.svg)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ImperialCollegeLondon/PyProBE/main.svg)](https://results.pre-commit.ci/latest/github/ImperialCollegeLondon/PyProBE/main)
![Docs](https://github.com/ImperialCollegeLondon/PyProBE/actions/workflows/sphinx.yml/badge.svg)
[![codecov](https://codecov.io/gh/ImperialCollegeLondon/PyProBE/graph/badge.svg?token=Y5H9C8MA0A)](https://codecov.io/gh/ImperialCollegeLondon/PyProBE)

[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![PyPI - Version](https://img.shields.io/pypi/v/PyProBE-Data?label=pip%20install%20PyProBE-Data)](https://pypi.org/project/PyProBE-Data)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14635070.svg)](https://doi.org/10.5281/zenodo.14635070)
[![status](https://joss.theoj.org/papers/0657708fc7e6ac46fd1f4160aabe6da8/status.svg)](https://joss.theoj.org/papers/0657708fc7e6ac46fd1f4160aabe6da8)


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](https://imperialcollegelondon.github.io/PyProBE/). Examples are stored in ```docs/source/examples``` and are integrated into the documentation [here](https://imperialcollegelondon.github.io/PyProBE/examples/examples.html).

## Installing PyProBE
Install PyProBE with pip:

```bash
pip install PyProBE-Data
```

For more detail see the [user installation guide](https://imperialcollegelondon.github.io/PyProBE/user_guide/installation.html).

To install from source see the [developer installation guide](https://imperialcollegelondon.github.io/PyProBE/developer_guide/installation.html).

## PyProBE Objectives
<details open>
<summary><strong style="font-size: 1.2em;">1. Ease of use</strong></summary>
        
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](./docs/source/user_guide/images/Procedures_and_experiments.jpg)

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

```python
cell.procedure['Reference Test'].experiment('Initial Charge')
cell.procedure['Reference Test'].experiment('Discharge Pulses')
```
And filtered by cycle, step or step type:

```python
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](https://imperialcollegelondon.github.io/PyProBE/examples/filtering-data.html) example to see this in action.

See the [documentation](https://imperialcollegelondon.github.io/PyProBE/) for a detailed user guide. Start with the following pages to get PyProBE set up with your data:
- [Importing data](https://imperialcollegelondon.github.io/PyProBE/user_guide/importing_data.html)
- [Accessing data](https://imperialcollegelondon.github.io/PyProBE/user_guide/accessing_data.html)
- [Plotting](https://imperialcollegelondon.github.io/PyProBE/user_guide/plotting.html)

PyProBE works with numerous cyclers. For guidance on how to export your data to work with PyProBE see the [Input Data Guidance](https://imperialcollegelondon.github.io/PyProBE/user_guide/input_data_guidance.html).
</details>

<details>
<summary><strong style="font-size: 1.2em;">2. Accelerate battery data exploration</strong></summary>

PyProBE has built-in plotting methods that integrate with [matplotlib](https://matplotlib.org/), [hvplot](https://hvplot.holoviz.org/) and [seaborn](https://seaborn.pydata.org/index.html) 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](./docs/source/examples/getting-started.ipynb) example locally to try the GUI.

![PyProBE Dashboard](./docs/source/user_guide/images/Dashboard.png)

PyProBE is fast! Built on [Polars](https://docs.pola.rs/) dataframes, PyProBE 
out-performs manual filtering with Pandas and stores data efficiently in Parquet files:

![PyProBE performance](./docs/source/user_guide/images/execution_time.png)
</details>

<details>
<summary><strong style="font-size: 1.2em;">3. Encourage data processing aligned with FAIR principles</strong></summary>

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](./docs/source/user_guide/images/Readme.jpg)

See the [guidance](https://imperialcollegelondon.github.io/PyProBE/user_guide/writing_a_readme_file.html) for writing README files for your
experiments.
</details>

<details>
<summary>4. <strong style="font-size: 1.2em;">Host a library of analysis methods</strong></summary>

PyProBE's [analysis](https://imperialcollegelondon.github.io/PyProBE/api/pyprobe.analysis.html) 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](https://imperialcollegelondon.github.io/PyProBE/developer_guide/contributing_to_the_analysis_module.html)
and [contributing guidelines](CONTRIBUTING.md).
</details>

## Contributing to PyProBE

Contributions to PyProBE are welcome. Please see the [contributing guidelines](CONTRIBUTING.md).

## Citing PyProBE

TBC


## License

PyProBE is fully open source. For more information about its license, see [LICENSE](LICENSE.md).


## Contributors
<!-- readme: contributors -start -->
<table>
<tr>
    <td align="center">
        <a href="https://github.com/tomjholland">
            <img src="https://avatars.githubusercontent.com/u/137503955?v=4" width="100;" alt="tomjholland"/>
            <br />
            <sub><b>Tom Holland</b></sub>
        </a>
    </td>
    <td align="center">
        <a href="https://github.com/mohammedasher">
            <img src="https://avatars.githubusercontent.com/u/168521559?v=4" width="100;" alt="mohammedasher"/>
            <br />
            <sub><b>Mohammed Asheruddin (Asher)</b></sub>
        </a>
    </td></tr>
</table>
<!-- readme: contributors -end -->

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "PyProBE-Data",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": "Thomas Holland",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/24/e5/df3adc02886226149e248c8b26bd8e7d2f647798bb6747873c76cefbc446/pyprobe_data-1.4.0.tar.gz",
    "platform": null,
    "description": "# PyProBE\n![CI](https://github.com/ImperialCollegeLondon/PyProBE/actions/workflows/ci.yml/badge.svg)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ImperialCollegeLondon/PyProBE/main.svg)](https://results.pre-commit.ci/latest/github/ImperialCollegeLondon/PyProBE/main)\n![Docs](https://github.com/ImperialCollegeLondon/PyProBE/actions/workflows/sphinx.yml/badge.svg)\n[![codecov](https://codecov.io/gh/ImperialCollegeLondon/PyProBE/graph/badge.svg?token=Y5H9C8MA0A)](https://codecov.io/gh/ImperialCollegeLondon/PyProBE)\n\n[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![PyPI - Version](https://img.shields.io/pypi/v/PyProBE-Data?label=pip%20install%20PyProBE-Data)](https://pypi.org/project/PyProBE-Data)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14635070.svg)](https://doi.org/10.5281/zenodo.14635070)\n[![status](https://joss.theoj.org/papers/0657708fc7e6ac46fd1f4160aabe6da8/status.svg)](https://joss.theoj.org/papers/0657708fc7e6ac46fd1f4160aabe6da8)\n\n\nPyProBE (Python Processing for Battery Experiments) is a Python package designed to simplify and accelerate the process of analysing data from \nbattery cyclers.\n\nPyProBE is documented [here](https://imperialcollegelondon.github.io/PyProBE/). Examples are stored in ```docs/source/examples``` and are integrated into the documentation [here](https://imperialcollegelondon.github.io/PyProBE/examples/examples.html).\n\n## Installing PyProBE\nInstall PyProBE with pip:\n\n```bash\npip install PyProBE-Data\n```\n\nFor more detail see the [user installation guide](https://imperialcollegelondon.github.io/PyProBE/user_guide/installation.html).\n\nTo install from source see the [developer installation guide](https://imperialcollegelondon.github.io/PyProBE/developer_guide/installation.html).\n\n## PyProBE Objectives\n<details open>\n<summary><strong style=\"font-size: 1.2em;\">1. Ease of use</strong></summary>\n        \nPyProBE breaks down complex battery data into simple, easy to understand objects \nthat can be accessed with a few lines of code using natural language. The \nprocedure shown below:\n\n![Procedures and experiments](./docs/source/user_guide/images/Procedures_and_experiments.jpg)\n\ncan be filtered into the experiments that make up the procedure:\n\n```python\ncell.procedure['Reference Test'].experiment('Initial Charge')\ncell.procedure['Reference Test'].experiment('Discharge Pulses')\n```\nAnd filtered by cycle, step or step type:\n\n```python\ncell.procedure['Reference Test'].step(1)\ncell.procedure['Reference Test'].experiment('Discharge Pulses').cycle(3).discharge(0)\n```\n\nThis makes it easy to quickly access the data you need for analysis. See the [filtering data](https://imperialcollegelondon.github.io/PyProBE/examples/filtering-data.html) example to see this in action.\n\nSee the [documentation](https://imperialcollegelondon.github.io/PyProBE/) for a detailed user guide. Start with the following pages to get PyProBE set up with your data:\n- [Importing data](https://imperialcollegelondon.github.io/PyProBE/user_guide/importing_data.html)\n- [Accessing data](https://imperialcollegelondon.github.io/PyProBE/user_guide/accessing_data.html)\n- [Plotting](https://imperialcollegelondon.github.io/PyProBE/user_guide/plotting.html)\n\nPyProBE works with numerous cyclers. For guidance on how to export your data to work with PyProBE see the [Input Data Guidance](https://imperialcollegelondon.github.io/PyProBE/user_guide/input_data_guidance.html).\n</details>\n\n<details>\n<summary><strong style=\"font-size: 1.2em;\">2. Accelerate battery data exploration</strong></summary>\n\nPyProBE has built-in plotting methods that integrate with [matplotlib](https://matplotlib.org/), [hvplot](https://hvplot.holoviz.org/) and [seaborn](https://seaborn.pydata.org/index.html) for fast and flexible visualization of battery data. It also includes a graphical user interface (GUI) \nfor exploring data interactively, with almost no code. Run the \n[getting started](./docs/source/examples/getting-started.ipynb) example locally to try the GUI.\n\n![PyProBE Dashboard](./docs/source/user_guide/images/Dashboard.png)\n\nPyProBE is fast! Built on [Polars](https://docs.pola.rs/) dataframes, PyProBE \nout-performs manual filtering with Pandas and stores data efficiently in Parquet files:\n\n![PyProBE performance](./docs/source/user_guide/images/execution_time.png)\n</details>\n\n<details>\n<summary><strong style=\"font-size: 1.2em;\">3. Encourage data processing aligned with FAIR principles</strong></summary>\n\nPyProBE is designed to encourage good practice for storing and processing data PyProBE \nrequires a README file to sit alongside your experimental data which is:\n    \n**Human readable:** Sits alongside your data to allow others to quickly understand your experimental\nprocedure.\n\n**Computer readable:** Simplifies the PyProBE backend, maximises flexibility to different input data and\nmakes the setup process fast and intuitive for new data.\n\n![README file](./docs/source/user_guide/images/Readme.jpg)\n\nSee the [guidance](https://imperialcollegelondon.github.io/PyProBE/user_guide/writing_a_readme_file.html) for writing README files for your\nexperiments.\n</details>\n\n<details>\n<summary>4. <strong style=\"font-size: 1.2em;\">Host a library of analysis methods</strong></summary>\n\nPyProBE's [analysis](https://imperialcollegelondon.github.io/PyProBE/api/pyprobe.analysis.html) module contains classes and methods to\nperform further analysis of battery data. It is designed to maintain compatibility \nwith the PyProBE data format and plotting tools while ensuring functions are simply \ndefined, portable and tested.\n\nThe currently implemented analysis methods includes:\n\n- Summarise pulsing experiments with resistance information from each pulse\n- Summarise cycling experiments with SOH quantification for each cycle\n- Differentiation of any quantity\n    - Finite-difference based method\n    - Level Evaluation ANalysis method\n- Data smoothing\n    - Level-based method\n    - Spline fitting\n    - Savitzky-Golay filtering\n- Degradation mode analysis\n    - Curve fitting to pseudo-OCV, Incremental Capacity Analysis (ICA) or Differential Voltage Analysis (DVA) curves\n    - Charge/discharge pseudo-OCV curve averaging for resistance compensation\n\nIt is easy to contribute to the analysis module. See the [developer guide](https://imperialcollegelondon.github.io/PyProBE/developer_guide/contributing_to_the_analysis_module.html)\nand [contributing guidelines](CONTRIBUTING.md).\n</details>\n\n## Contributing to PyProBE\n\nContributions to PyProBE are welcome. Please see the [contributing guidelines](CONTRIBUTING.md).\n\n## Citing PyProBE\n\nTBC\n\n\n## License\n\nPyProBE is fully open source. For more information about its license, see [LICENSE](LICENSE.md).\n\n\n## Contributors\n<!-- readme: contributors -start -->\n<table>\n<tr>\n    <td align=\"center\">\n        <a href=\"https://github.com/tomjholland\">\n            <img src=\"https://avatars.githubusercontent.com/u/137503955?v=4\" width=\"100;\" alt=\"tomjholland\"/>\n            <br />\n            <sub><b>Tom Holland</b></sub>\n        </a>\n    </td>\n    <td align=\"center\">\n        <a href=\"https://github.com/mohammedasher\">\n            <img src=\"https://avatars.githubusercontent.com/u/168521559?v=4\" width=\"100;\" alt=\"mohammedasher\"/>\n            <br />\n            <sub><b>Mohammed Asheruddin (Asher)</b></sub>\n        </a>\n    </td></tr>\n</table>\n<!-- readme: contributors -end -->\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License  Copyright (c) 2024, Thomas Holland  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": null,
    "version": "1.4.0",
    "project_urls": {
        "Changelog": "https://github.com/ImperialCollegeLondon/PyProBE/blob/main/CHANGELOG.md",
        "Documentation": "https://imperialcollegelondon.github.io/PyProBE/",
        "Homepage": "https://github.com/ImperialCollegeLondon/PyProBE",
        "Releases": "https://github.com/ImperialCollegeLondon/PyProBE/releases",
        "Repository": "https://github.com/ImperialCollegeLondon/PyProBE"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98622759b06a69116aaa7f282e895e8b13ca85b3fc4be8901179b1c28e42e980",
                "md5": "69719a8013cde2e324a213931e12107a",
                "sha256": "bc60e7798ad226e1482ce4f127395b46af97fe6ac995748a1d73877e1959548c"
            },
            "downloads": -1,
            "filename": "pyprobe_data-1.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "69719a8013cde2e324a213931e12107a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.11",
            "size": 70947,
            "upload_time": "2025-01-31T19:03:50",
            "upload_time_iso_8601": "2025-01-31T19:03:50.069133Z",
            "url": "https://files.pythonhosted.org/packages/98/62/2759b06a69116aaa7f282e895e8b13ca85b3fc4be8901179b1c28e42e980/pyprobe_data-1.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "24e5df3adc02886226149e248c8b26bd8e7d2f647798bb6747873c76cefbc446",
                "md5": "20cc4a56d802fa53cf0eac672170bf89",
                "sha256": "c82dc91361700cde16eb49fb8bc7f4df18fea0bbe62d8c1dcc35200f778d1076"
            },
            "downloads": -1,
            "filename": "pyprobe_data-1.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "20cc4a56d802fa53cf0eac672170bf89",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.11",
            "size": 56893,
            "upload_time": "2025-01-31T19:03:51",
            "upload_time_iso_8601": "2025-01-31T19:03:51.824198Z",
            "url": "https://files.pythonhosted.org/packages/24/e5/df3adc02886226149e248c8b26bd8e7d2f647798bb6747873c76cefbc446/pyprobe_data-1.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-31 19:03:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ImperialCollegeLondon",
    "github_project": "PyProBE",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyprobe-data"
}
        
Elapsed time: 1.33001s