Skip to main content

A package for analyzing electrochemical impedance data (with support for GA, PSO and least_squares or combinations thereof)

Project description

[![DOI]] GitHub release

PyPI - Downloads All Contributors

Build Status Documentation Status Coverage Status

impedance_extend.py

impedance_extend.py is a Python package for making electrochemical impedance spectroscopy (EIS) analysis reproducible and easy-to-use. It extends impedance.py by adding least_squares, GA (using pygad), and PSO (using pyswarms) as additional optimization methods. impedance_extend.py additionally supports sequential optimization (such as running GA/PSO followed by least_squares), and adding soft-constraints (such as ensure R1 < R2 or R1*C1 < 1 etc.).

Aiming to create a consistent, scikit-learn-like API for impedance analysis, impedance.py contains modules for data preprocessing, validation, model fitting, and visualization.

For a little more in-depth discussion of the package background and capabilities, check out our Journal of Open Source Software paper.

If you have a feature request or find a bug, please 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!

Installation

The easiest way to install impedance_extend.py is from PyPI using pip.

pip install impedance_extend

See Getting started with impedance.py for instructions on getting started from scratch.

Dependencies

impedance.py requires:

  • Python (>=3.10)
  • SciPy (>=1.0)
  • NumPy (>=1.22.4)
  • Matplotlib (>=3.5)
  • Altair (>=3.0)
  • Pandas
  • pygad>=3.6.0
  • pyswarms>=1.3

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

Examples and Documentation

Several examples can be found in the docs/source/examples/ directory (the Fitting impedance spectra notebook is a great place to start) and the documentation can be found at impedancepy.readthedocs.io.

Citing impedance.py

DOI

If you use impedance.py in published work, please consider citing https://joss.theoj.org/papers/10.21105/joss.02349 as

@article{Murbach2020,
  doi = {10.21105/joss.02349},
  url = {https://doi.org/10.21105/joss.02349},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {52},
  pages = {2349},
  author = {Matthew D. Murbach and Brian Gerwe and Neal Dawson-Elli and Lok-kun Tsui},
  title = {impedance.py: A Python package for electrochemical impedance analysis},
  journal = {Journal of Open Source Software}
}

Contributors ✨

This project was adapted from a fork of [impedance.py] (https://github.com/k-vijayaraghavan/impedance_extend.py). [Impedance.py] (https://github.com/k-vijayaraghavan/impedance_extend.py) was started at the 2018 Electrochemical Society (ECS) Hack Week in Seattle and has benefited from a community of users and contributors since. Thanks goes to these wonderful people (emoji key):

Krishna Vijayaraghavan
Krishna Vijayaraghavan

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

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

impedance_extend-1.0.0.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

impedance_extend-1.0.0-py3-none-any.whl (53.3 kB view details)

Uploaded Python 3

File details

Details for the file impedance_extend-1.0.0.tar.gz.

File metadata

  • Download URL: impedance_extend-1.0.0.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for impedance_extend-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a2edad956e3b64c320ab2a8506879b7dd37e1b2cf010a0646b576ea1354d0d6b
MD5 78d3ab46d6c0c24c039a1ced6eb81275
BLAKE2b-256 f4e222f4c94068f198bac0aca390df9f93df5e576636409c59e46900f2073768

See more details on using hashes here.

File details

Details for the file impedance_extend-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for impedance_extend-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 946eb0b8dd288690c540146be91868f46bab56997ac020fa52aa729d84015c77
MD5 79000598ca3befd657dd8a45a6920e99
BLAKE2b-256 d938ca48dd64b9f02d7772bf42802ebc0ed9ac2861385825a544b2a6e9b93677

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