Originally published by ECS The Electrochemical Society
Mark Orazem, Ph.D., a Distinguished Professor and the Dr. and Mrs. Frederick C. Edie Professor in the Department of Chemical Engineering at the University of Florida, and his student William Watson published their ground-breaking impedance spectroscopy measurement model program, “EIS: Measurement Model Program.” It is available at no cost (for non-commercial use) on ECSarXiv, the Society’s free online service for preprints and other preliminary communications. Orazem began working on the program in the early 1990s. His undergraduate student, William Watson, provided the final key—using Python—to make distribution of the program viable.
The measurement model is used to analyze electrochemical impedance spectroscopy (EIS) data. The easy-to-use program makes it possible to:
- Identify the stochastic error structure of measurements used to weight further regressions;
- Determine what part of a measurement is inconsistent with the Kramers-Kronig relations;
- Estimate capacitance and ohmic resistance, from which the characteristic frequency above which the geometry of the electrode may cause frequency dispersion can be identified;
- Test the system using sample files before working on your own data;
- Fit custom models to your data.
The measurement model installation file works with the Microsoft Windows operating system. For Apple users, Orazem recommends installing a Windows emulator. Links to sample data, custom models, and Python code are available in the 130+ page reference manual: “A Python-based Measurement Model Toolbox for Impedance Spectroscopy,” reached on the program’s Help tab. The measurement model may be especially useful during the COVID-19 pandemic when many scientists cannot access their labs and are crunching existing data.
The tool Orazem and his team developed filters lack of replication to find the standard deviation of the random noise—as well as figuring out what part of the measurement has been corrupted. In addition to allowing use of a measurement model to assess the error structure, his program allows regression of custom models to fit impedance data. The custom or process models are input by the user as Python code. “I made a conscious decision, and my students agreed, to not build custom models with electrical circuits but to work with code,” said Orazem.
The measurement model program differs from commercial programs that perform regression of impedance data. “Standard commercial programs don’t do the error analysis that we’re doing (with this program),” stated Orazem. In addition, the measurement model allows insertion of sophisticated Python code into the custom model. For example, a look-up-table code, used to provide accurate treatment of the convective diffusion impedance for a rotating disk electrode, is provided with the program distribution.
The final program was developed with William Watson, a student who completed his BS at the University of Florida in May 2020. He now works at the Southwest Research Institute in San Antonio, Texas. “William was the first student to actually succeed in getting this program written. He was the one who said we should do this in Python. Before, my program was written in a combination of FORTRAN and MATLAB. However, every time a new version of MATLAB came out, the program had to be rewritten,” said Orazem. Python emphasizes code readability with a simple syntax much like the English language. It is used for rapid prototyping and can handle big data and perform complex mathematics.
“Over the past 20 years, I have taught probably 1,000 students in my ECS Electrochemical Impedance Spectroscopy (EIS) Short Courses. I’ve been promising this program to them for about 10 years! My students love it, but want to know when it will be available for them to use. I have always said, ‘We’re working on it!’ Now I can say it’s available to everyone,” said Orazem.