EISy-as-Py / eisy

UW DIRECT DataScience Project, to [ Import / Process / Store / Report ] Data related to Electrochemical Impedance Measurements
MIT License
7 stars 6 forks source link

Build Status Documentation Status Coverage Status Conda Status Downloads License Anaconda-Server Badge

eisy

UW DIRECT DataScience Project, to Import/Process/Store/Report Data related to electrochemical impedance measurements.

Feel free to READ THE DOCS to learn more, or Visit the Wiki to learn more about the project!

eisy is a Python module for simulating and classifying impedance data.

Using different combinations of circuit elements and their expression for impedance, the simulation module is able to reproduce the overall impedance response of the selected circuit. Look into the circuit.py page to see which configurations are already supported. The data_simulation.py module allows to simulate the impedance response in the frequency domain and saves the result as a pandas.DataFrame . The impedance response is presented both in its complex form, as well as separated in its real and imaginary parts. Additionally, the data_simulation.py module allows for the creation of a .csv file containing metadata of the simulation just performed (i.e. circuit used, circuit elements values, etc.), as well as appending the raw data of the simulation. Finally, the simulation module provides option of generating a plot of the impedance response. This can be generated for immediate inspection of the data trend, or saved automatically in a .png file having the same file name as the raw .csv file.

An SQL database was created to preserve the simulation files produced and to allow for long term storage of electrochemical impedance spectroscopy data, as well as any data generate from future features added to the package. There is a SQL-generating function which opens up a standardized schema. Once this database is set up, users should be able to query and add new experiments (either simulated or real life data sets) to the database. In the future, this schema should be declared in a YAML configuration file, so it can be set up exactly how a user wants it to be. (For now, it is a hard-coded schema designed for our uses). Furthermore, we don't yet have the database entries automated from after classification and processing, which should be a logical future feature to implement. In the mean time, standardized SQL query language can be used to add and inspect data.

Deep learning is implemented in the project to identify the raw graph images in .png format whether the raw data is bad or worth taking a second look.

Sample of Testing Data: Data

.. note:: eisy is a new Python model and will be continuously updated as more feature are developed.

For any suggestions or request for specific features, please visit the eisy issue page Otherwise, there is always the option of submitting a pull request eisy pull request page

How to install eisy

The package can be easiliy installed by executing the following commands:


   conda install -c politim eisy

Dependencies

The following packages are required for using eisy

Some notebooks are available in the examples/ directory. In order to make use of them, jupyter notebook or alternatively jupyter lab will also be requred.

More requirements can be found in the requirements.txt file.

Deep Learning - Convoluted Neural Network

Deep learning is implemented in the project to identify the raw graph images in .png format whether the raw data is bad or worth taking a second look . Convoluted Neural Network technology allows users to simply upload their raw impedance plots, Nyquist or real and imaginary components of hte impedance versus the frequency, in .png format to determine whether or not the experiment has been performed considerably. At the current stage of development, the images used for training can be generated using teh simulation modules found in the package.

Future features

The following are implementations that are planned for the eisy package:

Suggestions of modifications or additions are welcomed and encouraged. File an issue here