zahner-analysis


Namezahner-analysis JSON
Version 1.1.1 PyPI version JSON
download
home_page
SummaryPython package for the analysis of electrochemical impedance spectra.
upload_time2023-11-28 12:02:44
maintainer
docs_urlNone
author
requires_python>=3.9
licenseMIT License Copyright (c) 2023 Zahner-Elektrik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords potentiostat electrochemistry chemistry eis cyclic voltammetry fuel-cell battery
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Zahner-Analysis-Python](https://doc.zahner.de/github_resources/zahner_analysis.png)

[zahner_analysis](zahner_analysis) is a Python package which uses the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) to evaluate measured electrochemical data.

The Python package [zahner_analysis](zahner_analysis) is a client for the [REST interface](https://en.wikipedia.org/wiki/Representational_state_transfer) of the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) module *Remote Evaluation*. This module is optional and must be [selected for installation](https://doc.zahner.de/zahner_analysis/analysis_connection.html#basic-informations) when installing the Zahner Analysis.

A equivalent electrical circuit model for an impedance measurement can be easily developed with the graphical interface of the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis). The *Magic Wand Preset Element Tool* tool is available to determine appropriate initial values for the fit.

![Zahner Analysis Screenshot](https://doc.zahner.de/github_resources/AnalysisScreenshot.png)

With Python the equivalent electrical circuit models, which have been created with the GUI, can be fitted to impedance spectra.
The elements and parameters of the model can be read and processed with Python.

With the Python package [thales_remote](https://github.com/Zahner-elektrik/Thales-Remote-Python) as a supplement, EIS measurements can be performed with a Zennium and immediately evaluated. The [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) is not required for importing and plotting data with Python.

Additional features are the import of measurement data for CV and I/E measurements (isc and iss files). For this the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) is not necessary.

# 📚 Documentation

## Python Package

The complete documentation of the individual functions can be found on the [API documentation website](https://doc.zahner.de/zahner_analysis/).

## REST-API

The REST-API was documented using OpenAPI. The configuration [file](openapi.yaml) is in the repository and the generated html page can be found at the following [url](https://doc.zahner.de/zahner_analysis/analysis_remote.html).

# 🔧 Installation

The package can be installed via pip.

```text
pip install zahner_analysis
```

The [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) must be downloaded from the [Zahner-Elektrik website](https://zahner.de/products-details/software/Zahner-Analysis) in order to be installed.

# 🔨 Basic Usage

The [Jupyter](https://jupyter.org/) notebook [BasicIntroduction.ipynb](Examples/BasicIntroduction/BasicIntroduction.ipynb) explains the fundamentals of using the library.

```python
"""
Load data and model
"""
impedanceCircuitModel = IsfxModelImport("li-ion-model.isfx")
impedanceData = IsmImport("li-ion-battery.ism")

"""
Create the EisFitting object
"""
fitting = EisFitting()

"""
Fit the equivalent electrical circuit model to the data
"""
fittingResult = fitting.fit(impedanceCircuitModel, impedanceData)

"""
Plot the result
"""
EisFittingPlotter.plotBode(fittingResult)
```

![fittingResult Screenshot](https://doc.zahner.de/github_resources/bode_fitted.png)

# 📖 Examples

The following examples are build on each other, you should read and understand them in sequence.

If measurement data are saved from the examples, they are located in the corresponding directory of the example.

## [BasicIntroduction.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/BasicIntroduction/BasicIntroduction.ipynb)

* Load the data and the model
* Fit the model to the data
* Plot the result

## [ComplexFitConfigurations.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/ComplexFitConfigurations/ComplexFitConfigurations.ipynb)

* Showing all configuration options
* Customize the connection to Zahner Analysis Software
* Optional fit and simulation parameters
* Optional plotting parameters

## [ImpedanceVsVoltageSeriesFit.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/ImpedanceVsVoltageSeriesFit/ImpedanceVsVoltageSeriesFit.ipynb)

* EIS series fit
* Load all files from a directory
* Plot circuit element vs series parameter

## [ZHIT.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/ZHIT/ZHIT.ipynb)

* Fit the model to the data
* Load the data and the model
* Perform ZHIT evaluation
* Plot the result

## [SetupCompensation.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/SetupCompensation/SetupCompensation.ipynb)

* Apply Short-Open-Load correction to EIS data

# 📧 Having a question?

Send an [mail](mailto:support@zahner.de?subject=Zahner-Analysis-Python%20Question&body=Your%20Message) to our support team.

# ⁉️ Found a bug or missing a specific feature?

Feel free to **create a new issue** with a respective title and description on the the [Zahner-Analysis-Python](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/issues) repository.  
If you already found a solution to your problem, **we would love to review your pull request**!

# ✅ Requirements

Programming is done with the latest Python version at the time of commit.

If you work with equivalent circuits and you need the fit and simulate functions, you need the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) with its REST interface. To use the REST interface, you need a licensed [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) with at least version **3.2.1**. The [Zahner Analysis Software](https://zahner.de/products-details/software/Zahner-Analysis) is **not required for importing and plotting** data.

The packages [matplotlib](https://matplotlib.org/), [SciPy](https://scipy.org/) and [NumPy](https://numpy.org/) are used to display the measurement results. The [requests package](https://pypi.org/project/requests/) is necessary to communicate with the Zahner Analysis. Jupyter is not necessary, each example is also available as a Python file.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "zahner-analysis",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "potentiostat,electrochemistry,chemistry,eis,cyclic voltammetry,fuel-cell,battery",
    "author": "",
    "author_email": "Maximilian Krapp <maximilian.krapp@zahner.de>",
    "download_url": "https://files.pythonhosted.org/packages/0a/e7/649dc8d0fddbbd0b889182a5f0d6b3e57d8c2a1c2aa8a487b218dad13146/zahner_analysis-1.1.1.tar.gz",
    "platform": null,
    "description": "![Zahner-Analysis-Python](https://doc.zahner.de/github_resources/zahner_analysis.png)\n\n[zahner_analysis](zahner_analysis) is a Python package which uses the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) to evaluate measured electrochemical data.\n\nThe Python package [zahner_analysis](zahner_analysis) is a client for the [REST interface](https://en.wikipedia.org/wiki/Representational_state_transfer) of the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) module *Remote Evaluation*. This module is optional and must be [selected for installation](https://doc.zahner.de/zahner_analysis/analysis_connection.html#basic-informations) when installing the Zahner Analysis.\n\nA equivalent electrical circuit model for an impedance measurement can be easily developed with the graphical interface of the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis). The *Magic Wand Preset Element Tool* tool is available to determine appropriate initial values for the fit.\n\n![Zahner Analysis Screenshot](https://doc.zahner.de/github_resources/AnalysisScreenshot.png)\n\nWith Python the equivalent electrical circuit models, which have been created with the GUI, can be fitted to impedance spectra.\nThe elements and parameters of the model can be read and processed with Python.\n\nWith the Python package [thales_remote](https://github.com/Zahner-elektrik/Thales-Remote-Python) as a supplement, EIS measurements can be performed with a Zennium and immediately evaluated. The [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) is not required for importing and plotting data with Python.\n\nAdditional features are the import of measurement data for CV and I/E measurements (isc and iss files). For this the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) is not necessary.\n\n# \ud83d\udcda Documentation\n\n## Python Package\n\nThe complete documentation of the individual functions can be found on the [API documentation website](https://doc.zahner.de/zahner_analysis/).\n\n## REST-API\n\nThe REST-API was documented using OpenAPI. The configuration [file](openapi.yaml) is in the repository and the generated html page can be found at the following [url](https://doc.zahner.de/zahner_analysis/analysis_remote.html).\n\n# \ud83d\udd27 Installation\n\nThe package can be installed via pip.\n\n```text\npip install zahner_analysis\n```\n\nThe [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) must be downloaded from the [Zahner-Elektrik website](https://zahner.de/products-details/software/Zahner-Analysis) in order to be installed.\n\n# \ud83d\udd28 Basic Usage\n\nThe [Jupyter](https://jupyter.org/) notebook [BasicIntroduction.ipynb](Examples/BasicIntroduction/BasicIntroduction.ipynb) explains the fundamentals of using the library.\n\n```python\n\"\"\"\nLoad data and model\n\"\"\"\nimpedanceCircuitModel = IsfxModelImport(\"li-ion-model.isfx\")\nimpedanceData = IsmImport(\"li-ion-battery.ism\")\n\n\"\"\"\nCreate the EisFitting object\n\"\"\"\nfitting = EisFitting()\n\n\"\"\"\nFit the equivalent electrical circuit model to the data\n\"\"\"\nfittingResult = fitting.fit(impedanceCircuitModel, impedanceData)\n\n\"\"\"\nPlot the result\n\"\"\"\nEisFittingPlotter.plotBode(fittingResult)\n```\n\n![fittingResult Screenshot](https://doc.zahner.de/github_resources/bode_fitted.png)\n\n# \ud83d\udcd6 Examples\n\nThe following examples are build on each other, you should read and understand them in sequence.\n\nIf measurement data are saved from the examples, they are located in the corresponding directory of the example.\n\n## [BasicIntroduction.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/BasicIntroduction/BasicIntroduction.ipynb)\n\n* Load the data and the model\n* Fit the model to the data\n* Plot the result\n\n## [ComplexFitConfigurations.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/ComplexFitConfigurations/ComplexFitConfigurations.ipynb)\n\n* Showing all configuration options\n* Customize the connection to Zahner Analysis Software\n* Optional fit and simulation parameters\n* Optional plotting parameters\n\n## [ImpedanceVsVoltageSeriesFit.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/ImpedanceVsVoltageSeriesFit/ImpedanceVsVoltageSeriesFit.ipynb)\n\n* EIS series fit\n* Load all files from a directory\n* Plot circuit element vs series parameter\n\n## [ZHIT.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/ZHIT/ZHIT.ipynb)\n\n* Fit the model to the data\n* Load the data and the model\n* Perform ZHIT evaluation\n* Plot the result\n\n## [SetupCompensation.ipynb](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/blob/main/Examples/SetupCompensation/SetupCompensation.ipynb)\n\n* Apply Short-Open-Load correction to EIS data\n\n# \ud83d\udce7 Having a question?\n\nSend an [mail](mailto:support@zahner.de?subject=Zahner-Analysis-Python%20Question&body=Your%20Message) to our support team.\n\n# \u2049\ufe0f Found a bug or missing a specific feature?\n\nFeel free to **create a new issue** with a respective title and description on the the [Zahner-Analysis-Python](https://github.com/Zahner-elektrik/Zahner-Analysis-Python/issues) repository.  \nIf you already found a solution to your problem, **we would love to review your pull request**!\n\n# \u2705 Requirements\n\nProgramming is done with the latest Python version at the time of commit.\n\nIf you work with equivalent circuits and you need the fit and simulate functions, you need the [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) with its REST interface. To use the REST interface, you need a licensed [Zahner Analysis](https://zahner.de/products-details/software/Zahner-Analysis) with at least version **3.2.1**. The [Zahner Analysis Software](https://zahner.de/products-details/software/Zahner-Analysis) is **not required for importing and plotting** data.\n\nThe packages [matplotlib](https://matplotlib.org/), [SciPy](https://scipy.org/) and [NumPy](https://numpy.org/) are used to display the measurement results. The [requests package](https://pypi.org/project/requests/) is necessary to communicate with the Zahner Analysis. Jupyter is not necessary, each example is also available as a Python file.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 Zahner-Elektrik  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Python package for the analysis of electrochemical impedance spectra.",
    "version": "1.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/Zahner-elektrik/Zahner-Analysis-Python/issues",
        "Documentation": "https://doc.zahner.de/zahner_analysis",
        "Examples": "https://github.com/Zahner-elektrik/Zahner-Analysis-Python/tree/main/Examples",
        "Homepage": "https://zahner.de/",
        "Source Code": "https://github.com/Zahner-elektrik/Zahner-Analysis-Python"
    },
    "split_keywords": [
        "potentiostat",
        "electrochemistry",
        "chemistry",
        "eis",
        "cyclic voltammetry",
        "fuel-cell",
        "battery"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "343acfa10e5b824b715f7ea797e264f3d5a66e4d4cdb9a35b6f7643f37619c6e",
                "md5": "90460b30bbd748f815eaa9630e46facd",
                "sha256": "b75177ea36dae917f273a60a05a9e69199eeb44641585c8a0947aa007c45ecea"
            },
            "downloads": -1,
            "filename": "zahner_analysis-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "90460b30bbd748f815eaa9630e46facd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 42008,
            "upload_time": "2023-11-28T12:02:42",
            "upload_time_iso_8601": "2023-11-28T12:02:42.586240Z",
            "url": "https://files.pythonhosted.org/packages/34/3a/cfa10e5b824b715f7ea797e264f3d5a66e4d4cdb9a35b6f7643f37619c6e/zahner_analysis-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ae7649dc8d0fddbbd0b889182a5f0d6b3e57d8c2a1c2aa8a487b218dad13146",
                "md5": "a138a5967abf300d989b249bce7c5a54",
                "sha256": "1f7e7ae93c52019b72a370601e63bad6eccf72d1e2353c5a09a664b51ebafda8"
            },
            "downloads": -1,
            "filename": "zahner_analysis-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a138a5967abf300d989b249bce7c5a54",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 2160576,
            "upload_time": "2023-11-28T12:02:44",
            "upload_time_iso_8601": "2023-11-28T12:02:44.945504Z",
            "url": "https://files.pythonhosted.org/packages/0a/e7/649dc8d0fddbbd0b889182a5f0d6b3e57d8c2a1c2aa8a487b218dad13146/zahner_analysis-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-28 12:02:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Zahner-elektrik",
    "github_project": "Zahner-Analysis-Python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "zahner-analysis"
}
        
Elapsed time: 0.15335s