Package: autoeis
AutoEISWhat is AutoEIS?AutoEIS is a Python package that automatically proposes statistically plausible equivalent circuit models (ECMs) for electrochemical impedance spectroscopy (EIS) analysis. The package is designed for researchers and practitioners in the fields of electrochemical analysis, including but not limited to explorations of electrocatalysis, battery design, and investigations of material degradation.AutoEIS is still under development and the API is not stable. If you find any bugs or have any suggestions, please file anissueor directly submit apull request. We would greatly appreciate any contributions from the community.InstallationPipOpen a terminal (or command prompt on Windows) and run the following command:pipinstall-UautoeisJulia dependencies will be automatically installed at first import. It's recommended that you have your own Julia installation, but if you don't, Julia itself will also be installed automatically.How to install Julia?If you decided to have your own Julia installation (recommended), the official way to install Julia is viajuliaup.Juliaupprovides a command line interface to automatically install Julia (optionally multiple versions side by side). Working withjuliaupis straightforward; Please follow the instructions on its GitHubpage.WorkflowThe schematic workflow of AutoEIS is shown below:It includes: data pre-processing, ECM generation, circuit post-filtering, Bayesian inference, and the model evaluation process. Through this workflow, AutoEis can prioritize the statistically optimal ECM and also retain suboptimal models with lower priority for subsequent expert inspection. A detailed workflow can be found in thepaper.UsageTo use AutoEIS, you can either perform the circuit generation and Bayesian inference step by step or use theperform_full_analysisfunction to perform the whole process automatically. The following is an example of how to use theperform_full_analysisfunction:importnumpyasnpimportautoeisasae# Load test dataset shipped with AutoEISZ,freq=ae.io.load_test_dataset()# Perform automated EIS analysiscircuits=ae.perform_full_analysis(Z,freq,iters=100,parallel=True)print(circuits)Z: Electrochemical impedance measurements (complex array)freq: Frequencies corresponding to the impedance measurementsiters: Numbers of equivalent circuit generation to be performedtol: Tolerance for the evolutionary algorithm for generating equivalent circuitsparallel: Whether to use parallel processing to speed up the analysisAn example notebook that demonstrates how to use AutoEIS can be foundhere.AcknowledgementThe authors extend their heartfelt gratitude to the following individuals for their invaluable guidance and support throughout the development of this work: Prof. Jason Hattrick-Simpers, Dr. Robert Black, Dr. Debashish Sur, Dr. Parisa Karimi, Dr. Brian DeCost, Dr. Kangming Li, and Prof. John R. Scully.The authors also wish to express their sincere appreciation to the following experts for engaging in technical discussions and providing valuable feedback: Dr. Shijing Sun, Prof. Keryn Lian, Dr. Alvin Virya, Dr. Austin McDannald, Dr. Fuzhan Rahmanian, and Prof. Helge Stein.Special thanks go to Prof. John R. Scully and Dr. Debashish Sur for graciously allowing us to utilize their corrosion data as an illustrative example to showcase the functionality of AutoEIS. Their contributions have been immensely helpful in shaping this research, and their unwavering support is deeply appreciated.