Suite of scripts to analyze annular shear experiments with a machine learning approach. From a series of experiments at different conditions, specific segments are extracted, features generated and then used as input for a machine learning algorithm. For the terms used and a short explanation of what to expect from the data see [Terminology](https://gitext.gfz-potsdam.de/analab-code/shear-madness/blob/master/Terminology.md).## OverviewAll relevant scripts are located in the [src](https://gitext.gfz-potsdam.de/analab-code/shear-madness/blob/master/src) directory it contains two 'master' scripts that show a full processing pipeline either for a single set or for multiple sets within a single folder. The scripts use several [modules](https://gitext.gfz-potsdam.de/analab-code/shear-madness/blob/master/src/modules) representing different stages of processing:1. Data Preparation > `preparation.py` _Splits the raw data into smaller sets of equal loading rate. Afterwards even smaller subsets are generated and certain subsets are omitted according to certain limitations. The subsets now contain an equal amount of samples and a certain number of events._2. Feature Generation > `feature_functions.py` and `feature_generation.py` _Generates features with the functions implemented in `feature_functions.py`. The output is going to be a 2D feature array `X` with a column for each feature and row for each sample and a one-dimensional array containing the data labels. You can add new feature functions to `feature_functions.py` following the instructions therein._3. Learning > `learning.py` ___To be implemented!__ Uses the chosen machine learning model (from scikit-learn) to fit the labeled data._The other modules contain helper functions for easy file handling and saving the current stage of processing etc.## DocumentationBecause most of the work is outsourced into modules the two 'master' scripts and the comments inside them should provide enough documentation to assess the project pipeline. A more in-depth documentation of what the functions do including more comments on the source code is given in the form of jupyter notebooks in [Notebooks](https://gitext.gfz-potsdam.de/analab-code/shear-madness/tree/master/notebooks). Because GitLabs supports the display of jupyter notebooks very well they can be viewed online like a normal documentation. If you want to follow the individual steps and actually run the jupyter notebooks you have to make sure to install [↪jupyter (external link!)](https://jupyter.org) on your machine and run a jupyter notebook server. In some cases you need to place them into the src folder to properly pick up the modules. They are not required to run the main scripts.