impedance.py
is a Python module for working with impedance data.
This project started at the 2018 Electrochemical Society (ECS) Hack Week in Seattle and has grown from there.
Using a scikit-learn-like API, we hope to make visualizing, fitting, and analyzing impedance spectra more intuitive and reproducible.
impedance.py is currently under development and new features are rapidly being added. If you have a feature request or find a bug, please feel free to file an issue or, better yet, make the code improvements and submit a pull request! The goal is to build an open-source tool that the entire impedance community can improve and use!
impedance.py currently provides:
- preprocessing functions for easily loading in impedance data from a wide variety of file types
- a simple API for fitting, predicting, and plotting impedance
- validation methods for checking measurement validity
- equivalent circuit fitting with customizable models
- convenient Nyquist plots including confidence interval estimation for fit circuits
several features are currently being improved upon:
- interactive plotting with altair
- physics-based impedance models for lithium-ion batteries
impedance.py requires:
- Python (>=3.6)
- SciPy (>=1.0)
- NumPy (>=1.14)
- Matplotlib (>=3.0)
- Altair (>=3.0)
Several example notebooks are provided in the examples/ directory. Opening these will require Jupyter notebook or Jupyter lab.
The easiest way to install impedance.py is from PyPI using pip (see Getting started with impedance.py for instructions).
Several examples can be found in the examples/
directory (the fitting_tutorial.ipynb is a great place to start) and the documentation can be found at impedancepy.readthedocs.io.
Thanks goes to these wonderful people (emoji key):
Lok-kun Tsui 💻 |
Brian Gerwe 💻 |
Neal 👀 |
Matt Murbach 📖 👀 |
Kenny Huynh 🐛 💻 |
lawrencerenna 🤔 |
Rowin 🐛 💻 |
Michael Plews 🤔 |
Chebuskin 🐛 |
environmat 🐛 |
Abdullah Sumbal 🐛 |
nobkat 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!