A package for parsing, validating, analyzing, and simulating impedance spectra.
Pyimpspec is a Python package that provides an application programming interface (API) and a command-line interface (CLI) for working with impedance spectra. The target audience is researchers who use electrochemical impedance spectroscopy (EIS) though the program may also be useful in educational settings. Those looking for a program with a graphical user interface may wish to instead use DearEIS, which is based on pyimpspec.
The interfaces of pyimpspec implement features such as:
- reading certain data formats and parsing the experimental data contained within
- validation of impedance spectra using linear Kramers-Kronig tests or the Z-HIT algorithm
- construction of circuits by, e.g., parsing circuit description codes (CDC)
- support for user-defined circuit elements
- estimation of the distribution of relaxation times (DRT)
- complex non-linear least squares fitting of equivalent circuits
- simulation of the impedance spectra of circuits
- visualization of impedance spectra and various analysis results
See the official documentation for instructions on how to install pyimpspec, examples of how to use the API, and the API reference.
See CHANGELOG.md for details.
If you wish to contribute to the further development of pyimpspec, then there are several options available to you depending on your ability and the amount of time that you can spare.
If you find bugs, wish some feature was added, or find the documentation to be lacking, then please open an issue on GitHub.
If you wish to contribute code, then start by cloning the repository:
git clone https://github.com/vyrjana/pyimpspec.git
The development dependencies can be installed from within the repository directory using pip:
pip install -r ./dev-requirements.txt
Create a new branch based on either the main
branch or the most recent development branch (e.g., dev-*
), and submit your changes as a pull request.
Code contributions should, if it is applicable, also include unit tests, which should be implemented in files placed in the tests
folder found in the root of the repository along with any assets required by the tests.
It should be possible to run the tests by executing the run_tests.sh
script, which uses the test discovery process built into the unittest
module that is included with Python.
If it is possible, then delay the importing of dependencies until they are needed in order to reduce the overhead associated with just importing pyimpspec. Ignoring this guideline may, e.g., make using the CLI slower than it needs to be.
See CONTRIBUTORS for a list of people who have contributed to the pyimpspec project.
Copyright 2024 pyimpspec developers
Pyimpspec is licensed under the GPLv3 or later.
The licenses of pyimpspec's dependencies and/or sources of portions of code are included in the LICENSES folder.