/impedance.py

A Python package for working with impedance data

Primary LanguagePythonMIT LicenseMIT

Build Status

Coverage Status

Documentation Status

impedance.py

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 in the alpha phase 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:

  • a simple API for fitting, predicting, and plotting impedance
  • equivalent circuit fitting with customizable models
  • convenient Nyquist plots including confidence interval estimation for fit circuits

several features are currently being improved upon:

  • implementation of measurement models as a data validation method
  • interactive plotting with altair
  • adding more impedance elements
  • physics-based impedance models for lithium-ion batteries

Installation

Dependencies

impedance.py requires:

  • Python (>=3.5)
  • SciPy (>=1.0)
  • NumPy (>=1.14)
  • Matplotlib (>=2.0)

Several example notebooks are provided in the examples/ directory. Opening these will require Jupyter notebook or Jupyter lab.

User Installation

The easiest way to install impedance.py is using pip:

pip install impedance

Examples and Documentation

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.