Skip to main content

SOCEIS – Electrochemical Impedance Spectroscopy Analysis Suite

Project description

SOCEIS Logo

EPFL GEM Hydro-Québec BFH

SOCEIS - Electrochemical Impedance Spectroscopy Analysis Suite

SOCEIS is under active development (beta stage).

Overview

SOCEIS is a Python desktop application for electrochemical impedance spectroscopy workflows, integrating:

  1. EIS preprocessing and validation (cutting, significance/outlier filtering, KK validation, optional Z-HIT)
  2. DRT analysis (regularized inversion and lambda-related tools)
  3. CNLS / equivalent-circuit fitting (interactive model setup and constrained fitting)

The GUI is implemented with DearPyGui and organized into dedicated tabs for SOCEIS home, EIS, DRT, and CNLS analysis.

What This Repository Contains

  • SOCEIS.py: startup script that checks dependencies and launches the GUI (src.GUI.gui_main)
  • src/GUI/: user interface, tab layouts, callbacks, plotting, and table rendering
  • src/Methods/DRT/ and src/Methods/CNLS/: core analysis algorithms and fitting logic
  • src/Functions/01_Data_read/: instrument/file reader implementations
  • soceis/assets/: icons, fonts, and screenshots used by the application

Key Capabilities

This section maps the current implemented features to scientific/technical references.

1. Data import and instrument adaptation

  • Multi-format file ingestion for BioLogic, Gamry, Zahner, and generic text/CSV readers in src/Functions/01_Data_read/.
  • Unified conversion to internal impedance arrays (f, Re, Im, Z) and sample-area normalization for consistent downstream analysis.
  • Related references: [R1], [R2]

2. EIS preprocessing workflow (EIS tab)

  • Upper/lower frequency cutting, low-significance filtering, optional outlier removal, and manual point removal are integrated in the process_data pipeline.
  • The preprocessing sequence is designed to improve data consistency before model-based validation/fitting.
  • Related references: [R1], [R3]

3. Kramers-Kronig (KK) consistency validation

  • Linear/nonlinear KK-related testing and residual-based point rejection are used to evaluate physical consistency of spectra.
  • KK-derived residual views and fitted-vs-measured overlays are available in plotting tabs.
  • Related references: [R4], [R5]

4. Z-HIT modulus/phase validation

  • Optional Z-HIT processing is exposed in the EIS parameter tab (ZHIT) and plotted against measured/KK results.
  • Residual and smooth-comparison views support practical quality control of low-frequency behavior.
  • Related references: [R1], [R6]

5. DRT inversion (Tikhonov and RBF workflows)

  • DRT analysis includes Tikhonov-style regularization controls and an RBF-DRT route in the DRT tab.
  • The RBF implementation in src/Methods/DRT/Utils/DRT_rbf.py follows the DRTtools discretization framework and includes Bayesian/hierarchical Bayesian options consistent with published DRT methodology.
  • Regularization/lambda handling is integrated with single-file and batch plotting.
  • Related references: [R7], [R8], [R9], [R10]

6. CNLS equivalent-circuit fitting

  • CNLS supports interactive element configuration, parameter bounds, and constrained optimization against selected data domains.
  • The workflow combines circuit definition, parameter initialization, fit execution, and single/all visualization.
  • Related references: [R11], [R12], [R13]

7. Single vs all-file comparative analysis

  • All major modules (EIS, DRT, CNLS) provide Single and All views to compare one file or many selected files in the same project.
  • This supports trend analysis for degradation and operating-condition studies.
  • Related references: [R1], [R2]

8. Batch-oriented project management

  • Folder-oriented persistence for EIS/DRT/CNLS outputs, startup reloading, and backup-oriented operations are implemented for long campaigns.
  • This design targets practical lab/industrial pipelines with repeated measurements.
  • Related references: [R1], [R2]

Supported Input Formats

Current readers in src/Functions/01_Data_read/ include:

  • BioLogic: .mpt
  • Gamry: .dta
  • Zahner: .txt, .csv (including multichannel variants)
  • General text/CSV readers for standardized frequency-Re/Im formats

Quick Start

Requirements

  • Python 3.8+ (64-bit recommended)

Run

python SOCEIS.py

The launcher will attempt to install missing dependencies from src/GUI/requirements.txt automatically.

Main dependencies (from current requirements)

  • numpy==2.2.6
  • scipy
  • pandas
  • matplotlib
  • dearpygui
  • openpyxl
  • natsort
  • requests
  • streamlit
  • plotly
  • psutil
  • cvxopt

Method References

  • [R1] Orazem, M. E., and Tribollet, B. Electrochemical Impedance Spectroscopy. 2nd ed., Wiley, 2017.
  • [R2] Lasia, A. Electrochemical Impedance Spectroscopy and its Applications. Springer, 2014.
  • [R3] Savitzky, A., and Golay, M. J. E. "Smoothing and Differentiation of Data by Simplified Least Squares Procedures." Analytical Chemistry 36 (1964): 1627-1639.
  • [R4] Boukamp, B. A. "A Linear Kronig-Kramers Transform Test for Immittance Data Validation." Journal of The Electrochemical Society 142 (1995): 1885-1894.
  • [R5] Schoenleber, M., Klotz, D., and Ivers-Tiffee, E. "A Method for Improving the Robustness of Linear Kramers-Kronig Validity Tests." Electrochimica Acta 131 (2014): 20-27.
  • [R6] Ehm, W., Goehr, H., Kaus, R., Schiller, C. A., and Strunz, W. "New Methods for Automatic Impedance Spectra Evaluation." Electrochimica Acta 46 (2000): 145-154.
  • [R7] Tikhonov, A. N., and Arsenin, V. Y. Solutions of Ill-posed Problems. Winston, 1977.
  • [R8] Wan, T. H., Saccoccio, M., Chen, C., and Ciucci, F. "Influence of the Discretization Methods on the Distribution of Relaxation Times Deconvolution: Implementing Radial Basis Functions with DRTtools." Electrochimica Acta 184 (2015): 483-499.
  • [R9] Ciucci, F., and Chen, C. "Analysis of Electrochemical Impedance Spectroscopy Data Using the Distribution of Relaxation Times: A Bayesian and Hierarchical Bayesian Approach." Electrochimica Acta 167 (2015): 439-454.
  • [R10] Caliandro, P., Nakajo, A., Diethelm, S., and Van herle, J. "Model-Assisted Identification of Solid Oxide Cell Elementary Processes by Electrochemical Impedance Spectroscopy Measurements." Journal of Power Sources 436 (2019): 226838.
  • [R11] Levenberg, K. "A Method for the Solution of Certain Non-Linear Problems in Least Squares." Quarterly of Applied Mathematics 2 (1944): 164-168.
  • [R12] Marquardt, D. W. "An Algorithm for Least-Squares Estimation of Nonlinear Parameters." SIAM Journal on Applied Mathematics 11 (1963): 431-441.
  • [R13] Boukamp, B. A. "A Nonlinear Least Squares Fit Procedure for Analysis of Immittance Data of Electrochemical Systems." Solid State Ionics 20 (1986): 31-44.

Citing SOCEIS

If you use SOCEIS in your work, please cite our papers:

Caliandro, P., Nakajo, A., Diethelm, S., & Van herle, J. (2019).
Model-assisted identification of solid oxide cell elementary processes by electrochemical impedance spectroscopy measurements.
Journal of Power Sources, 436, 226838.

Yu, H., Frantz, C., Savioz, L., Aubin, P., Fronterotta, D., Geipel, C., Moussaoui, H., Jeanmonod, G., Wang, L., & Van herle, J. (2025).
Poisoning and recovery behavior of Ni-GDC based electrolyte-supported solid oxide fuel cell exposed to common sulfur compounds under processed biogas environment.
Journal of Power Sources, 642, 236901.


You can use the BibTeX

@article{caliandroModelassistedIdentificationSolid2019,
  title = {Model-Assisted Identification of Solid Oxide Cell Elementary Processes by Electrochemical Impedance Spectroscopy Measurements},
  author = {Caliandro, P. and Nakajo, A. and Diethelm, S. and {Van herle}, J.},
  year = {2019},
  month = oct,
  journal = {Journal of Power Sources},
  volume = {436},
  pages = {226838},
  issn = {0378-7753},
  doi = {10.1016/j.jpowsour.2019.226838},
  urldate = {2022-06-24},
  lccn = {2}
}

@article{yuPoisoningRecoveryBehavior2025,
  title = {Poisoning and Recovery Behavior of {{Ni-GDC}} Based Electrolyte-Supported Solid Oxide Fuel Cell Exposed to Common Sulfur Compounds under Processed Biogas Environment},
  author = {Yu, Hangyu and Frantz, C{\'e}dric and Savioz, Louis and Aubin, Philippe and Fronterotta, Dante and Geipel, Christian and Moussaoui, Hamza and Jeanmonod, Guillaume and Wang, Ligang and {Van herle}, Jan},
  year = {2025},
  month = jun,
  journal = {Journal of Power Sources},
  volume = {642},
  pages = {236901},
  issn = {0378-7753},
  doi = {10.1016/j.jpowsour.2025.236901},
  urldate = {2025-04-13},
  lccn = {3}
}

Major updates

---------- Date: 2025.05.07 ----------

Beta version 0.2 with complete EIS, DRT and CNLS fit functionalities. Small bugs to be fixed

To do list

  • If CNLS fit results are not completely saved, error.
  • Pop-up window to indicate the fault operation
  • Simply the batch process name with ID+number-file_name
  • Pop-up progress bar for the saving, processing
  • Modularized code design
  • Delete only the curves instead of the whole tab
  • Add functions
    • Add Frequency-Tau switch for CNLS fit
    • Add Error bar for CNLS fit in long-term durability data
    • Add Warburg element for Li-BAT
    • Peak finder for quick frequency selection
    • Plot lambda in DRT
    • Plot ohmic resistance and polarization resistance trend in EIS and DRT tabs
      • Interactive manual selected points for CNLS fit frequency determine
      • Visualized equivalent circuit model assembly and usage of only basic circuit component R, C, L, Q, fFLW, FLW, G, etc.
      • Z-HIT smoothing from Zahner
      • Different DRT methodologies
      • Image save

---------- Date: 2025.02.12 ----------

To do list

  • Translate all the codes in Matlab environment into python code
    • Check the results between the matlab environment and python environment
  • Define the best HMI tool in python with open-access

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

soceis-1.0.5.tar.gz (19.4 MB view details)

Uploaded Source

Built Distribution

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

soceis-1.0.5-py3-none-any.whl (19.4 MB view details)

Uploaded Python 3

File details

Details for the file soceis-1.0.5.tar.gz.

File metadata

  • Download URL: soceis-1.0.5.tar.gz
  • Upload date:
  • Size: 19.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for soceis-1.0.5.tar.gz
Algorithm Hash digest
SHA256 c167e948de0795ac6f31a6fb10ce163b40a90053ecb3acce24a3b14ba0db84e8
MD5 6570ac58ba95a2839b5533cecbe0f3e7
BLAKE2b-256 857a13a6acae4f563bebe60028d8b29644c25eb77cbfbc29ad84c21a72ba7509

See more details on using hashes here.

File details

Details for the file soceis-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: soceis-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 19.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for soceis-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 da18bc0eaf8840c7e4640a9473be746e472b1e9d0b3a54e412adf80221276d74
MD5 ccf49ecab126a147e713f8432813a7f4
BLAKE2b-256 9d568117a19da6a0c21782ca99e805f1b068db57e68a37fe50f71fe88acba177

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