├── .gitignore
├── .log
├── DTW
└── DTW_Pipeline.py
├── MATLAB Codes
├── Example_Usage.m
├── WPT_Frequency_Domain_Features.m
├── WPT_Informative_Packet_Recon.m
└── WP_Energy_Ratio.m
├── Makefile
├── README.md
├── WPT_EEMD_ML
├── EEMD_Classification.py
├── EEMD_Feature_Extraction.py
├── EEMD_Transfer_Learning.py
├── Plot_Results.py
├── WPT_Classification.py
├── WPT_Feature_Extraction.py
├── WPT_Informative_Packet_Recon.py
├── WPT_Transfer_Learning.py
├── WP_Energy_Ratio.py
├── __pycache__
│ ├── EEMD_Feature_Extraction.cpython-37.pyc
│ ├── EEMD_Transfer_Learning.cpython-37.pyc
│ ├── EEMD_Transfer_Learning_2case.cpython-37.pyc
│ ├── WPT_Classification.cpython-37.pyc
│ ├── WPT_Feature_Extraction.cpython-37.pyc
│ ├── WPT_Feature_Extraction_Transfer_Learning_One_Train_One_Test.cpython-37.pyc
│ ├── WPT_Informative_Packet_Recon.cpython-37.pyc
│ ├── WPT_Transfer_Learning.cpython-37.pyc
│ ├── WPT_Transfer_Learning_2case.cpython-37.pyc
│ └── WP_Energy_Ratio.cpython-37.pyc
└── file_paths.txt
├── build
├── doctrees
│ ├── ACF.doctree
│ ├── DTW.doctree
│ ├── EEMD.doctree
│ ├── FFT.doctree
│ ├── MATLAB.doctree
│ ├── PSD.doctree
│ ├── TDA.doctree
│ ├── WPT.doctree
│ ├── chatter_detection.doctree
│ ├── citing.doctree
│ ├── contributing.doctree
│ ├── environment.pickle
│ ├── index.doctree
│ ├── installation.doctree
│ ├── license.doctree
│ ├── modules.doctree
│ └── surface_texture.doctree
├── html
│ ├── .buildinfo
│ ├── .nojekyll
│ ├── ACF.html
│ ├── DTW.html
│ ├── EEMD.html
│ ├── FFT.html
│ ├── MATLAB.html
│ ├── PSD.html
│ ├── TDA.html
│ ├── WPT.html
│ ├── _images
│ │ ├── DTW_Animation.gif
│ │ ├── Results.png
│ │ ├── Violation_Check.png
│ │ ├── WPT-1.png
│ │ ├── WPT_Tree_with_MATLAB_Numbering.png
│ │ ├── WPT_Tree_with_Ordering.png
│ │ └── example.jpg
│ ├── _modules
│ │ ├── DTW
│ │ │ └── DTW_Pipeline.html
│ │ ├── EEMD_Feature_Extraction.html
│ │ ├── EEMD_Transfer_Learning.html
│ │ ├── EEMD_Transfer_Learning_2case.html
│ │ ├── WPT_EEMD_ML
│ │ │ ├── EEMD_Feature_Extraction.html
│ │ │ ├── EEMD_Transfer_Learning.html
│ │ │ ├── EEMD_Transfer_Learning_2case.html
│ │ │ ├── WPT_Feature_Extraction.html
│ │ │ ├── WPT_Transfer_Learning.html
│ │ │ ├── WPT_Transfer_Learning_2case.html
│ │ │ └── WP_Energy_Ratio.html
│ │ ├── WPT_Feature_Extraction.html
│ │ ├── WPT_Feature_Extraction_Transfer_Learning_One_Train_One_Test.html
│ │ ├── WPT_Transfer_Learning.html
│ │ ├── WPT_Transfer_Learning_2case.html
│ │ └── index.html
│ ├── _sources
│ │ ├── ACF.rst.txt
│ │ ├── DTW.rst.txt
│ │ ├── EEMD.rst.txt
│ │ ├── FFT.rst.txt
│ │ ├── MATLAB.rst.txt
│ │ ├── PSD.rst.txt
│ │ ├── TDA.rst.txt
│ │ ├── WPT.rst.txt
│ │ ├── chatter_detection.rst.txt
│ │ ├── citing.rst.txt
│ │ ├── contributing.rst.txt
│ │ ├── index.rst.txt
│ │ ├── installation.rst.txt
│ │ ├── license.rst.txt
│ │ ├── modules.rst.txt
│ │ └── surface_texture.rst.txt
│ ├── _static
│ │ ├── ajax-loader.gif
│ │ ├── basic.css
│ │ ├── classic.css
│ │ ├── comment-bright.png
│ │ ├── comment-close.png
│ │ ├── comment.png
│ │ ├── css
│ │ │ ├── badge_only.css
│ │ │ ├── fonts
│ │ │ │ ├── Roboto-Slab-Bold.woff
│ │ │ │ ├── Roboto-Slab-Bold.woff2
│ │ │ │ ├── Roboto-Slab-Regular.woff
│ │ │ │ ├── Roboto-Slab-Regular.woff2
│ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ ├── fontawesome-webfont.svg
│ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ ├── fontawesome-webfont.woff2
│ │ │ │ ├── lato-bold-italic.woff
│ │ │ │ ├── lato-bold-italic.woff2
│ │ │ │ ├── lato-bold.woff
│ │ │ │ ├── lato-bold.woff2
│ │ │ │ ├── lato-normal-italic.woff
│ │ │ │ ├── lato-normal-italic.woff2
│ │ │ │ ├── lato-normal.woff
│ │ │ │ └── lato-normal.woff2
│ │ │ └── theme.css
│ │ ├── doctools.js
│ │ ├── documentation_options.js
│ │ ├── down-pressed.png
│ │ ├── down.png
│ │ ├── file.png
│ │ ├── fonts
│ │ │ ├── Inconsolata-Bold.ttf
│ │ │ ├── Inconsolata-Regular.ttf
│ │ │ ├── Inconsolata.ttf
│ │ │ ├── Lato-Bold.ttf
│ │ │ ├── Lato-Regular.ttf
│ │ │ ├── Lato
│ │ │ │ ├── lato-bold.eot
│ │ │ │ ├── lato-bold.ttf
│ │ │ │ ├── lato-bold.woff
│ │ │ │ ├── lato-bold.woff2
│ │ │ │ ├── lato-bolditalic.eot
│ │ │ │ ├── lato-bolditalic.ttf
│ │ │ │ ├── lato-bolditalic.woff
│ │ │ │ ├── lato-bolditalic.woff2
│ │ │ │ ├── lato-italic.eot
│ │ │ │ ├── lato-italic.ttf
│ │ │ │ ├── lato-italic.woff
│ │ │ │ ├── lato-italic.woff2
│ │ │ │ ├── lato-regular.eot
│ │ │ │ ├── lato-regular.ttf
│ │ │ │ ├── lato-regular.woff
│ │ │ │ └── lato-regular.woff2
│ │ │ ├── RobotoSlab-Bold.ttf
│ │ │ ├── RobotoSlab-Regular.ttf
│ │ │ ├── RobotoSlab
│ │ │ │ ├── roboto-slab-v7-bold.eot
│ │ │ │ ├── roboto-slab-v7-bold.ttf
│ │ │ │ ├── roboto-slab-v7-bold.woff
│ │ │ │ ├── roboto-slab-v7-bold.woff2
│ │ │ │ ├── roboto-slab-v7-regular.eot
│ │ │ │ ├── roboto-slab-v7-regular.ttf
│ │ │ │ ├── roboto-slab-v7-regular.woff
│ │ │ │ └── roboto-slab-v7-regular.woff2
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── jquery-3.2.1.js
│ │ ├── jquery-3.4.1.js
│ │ ├── jquery-3.5.1.js
│ │ ├── jquery.js
│ │ ├── js
│ │ │ ├── badge_only.js
│ │ │ ├── html5shiv-printshiv.min.js
│ │ │ ├── html5shiv.min.js
│ │ │ ├── modernizr.min.js
│ │ │ └── theme.js
│ │ ├── language_data.js
│ │ ├── logo.png
│ │ ├── minus.png
│ │ ├── plot_directive.css
│ │ ├── plus.png
│ │ ├── pygments.css
│ │ ├── searchtools.js
│ │ ├── sidebar.js
│ │ ├── underscore-1.12.0.js
│ │ ├── underscore-1.13.1.js
│ │ ├── underscore-1.3.1.js
│ │ ├── underscore.js
│ │ ├── up-pressed.png
│ │ ├── up.png
│ │ └── websupport.js
│ ├── chatter_detection.html
│ ├── citing.html
│ ├── contributing.html
│ ├── genindex.html
│ ├── index.html
│ ├── installation.html
│ ├── license.html
│ ├── modules.html
│ ├── objects.inv
│ ├── py-modindex.html
│ ├── search.html
│ ├── searchindex.js
│ └── surface_texture.html
├── latex
│ ├── FeatureExtractionUsingWPTEEMD.aux
│ ├── FeatureExtractionUsingWPTEEMD.fdb_latexmk
│ ├── FeatureExtractionUsingWPTEEMD.fls
│ ├── FeatureExtractionUsingWPTEEMD.idx
│ ├── FeatureExtractionUsingWPTEEMD.ilg
│ ├── FeatureExtractionUsingWPTEEMD.ind
│ ├── FeatureExtractionUsingWPTEEMD.log
│ ├── FeatureExtractionUsingWPTEEMD.out
│ ├── FeatureExtractionUsingWPTEEMD.pdf
│ ├── FeatureExtractionUsingWPTEEMD.tex
│ ├── FeatureExtractionUsingWPTEEMD.toc
│ ├── LICRcyr2utf8.xdy
│ ├── LICRlatin2utf8.xdy
│ ├── LatinRules.xdy
│ ├── Makefile
│ ├── example.jpg
│ ├── footnotehyper-sphinx.sty
│ ├── latexmkjarc
│ ├── latexmkrc
│ ├── make.bat
│ ├── python.ist
│ ├── sphinx.sty
│ ├── sphinx.xdy
│ ├── sphinxhighlight.sty
│ ├── sphinxhowto.cls
│ ├── sphinxmanual.cls
│ └── sphinxmulticell.sty
└── plot_directive
│ ├── WPT-1.hires.png
│ ├── WPT-1.pdf
│ └── WPT-1.png
├── make.bat
├── source
├── ACF.rst
├── DTW.rst
├── EEMD.rst
├── FFT.rst
├── MATLAB.rst
├── New Text Document.txt
├── PSD.rst
├── TDA.rst
├── WPT.rst
├── WPT_Tree_with_MATLAB_Numbering.png
├── WPT_Tree_with_Ordering.png
├── chatter_detection.rst
├── citing.rst
├── conf.py
├── contributing.rst
├── example.jpg
├── figures
│ ├── DTW_Animation.gif
│ ├── Results.png
│ └── Violation_Check.png
├── index.rst
├── installation.rst
├── license.rst
├── logo.png
├── logo.svg
├── modules.rst
├── references.bib
└── surface_texture.rst
└── test
└── Example_Usage.py
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | build/html/WPT-1.hires.png
3 | build/html/WPT-1.pdf
4 | build/html/WPT-1.png
5 | build/html/WPT-1.py
6 | desktop.ini
7 | *.pyc
8 |
--------------------------------------------------------------------------------
/.log:
--------------------------------------------------------------------------------
1 | This is pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7250 64-bit) (preloaded format=pdflatex 2020.2.7) 14 FEB 2020 09:50
2 | entering extended mode
3 | **..
4 | ("C:\Program Files\MiKTeX 2.9\tex/latex/tools\.tex"
5 | LaTeX2e <2020-02-02>
6 | L3 programming layer <2020-01-31> File ignored)
7 | *
8 | (Please type a command or say `\end')
9 | *
10 | (Please type a command or say `\end')
11 | *
12 | (Please type a command or say `\end')
13 | *
14 | (Please type a command or say `\end')
15 | *
16 | (Please type a command or say `\end')
17 | *
18 | (Please type a command or say `\end')
19 | *
20 | (Please type a command or say `\end')
21 | *
--------------------------------------------------------------------------------
/MATLAB Codes/Example_Usage.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/MATLAB Codes/Example_Usage.m
--------------------------------------------------------------------------------
/MATLAB Codes/WPT_Frequency_Domain_Features.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/MATLAB Codes/WPT_Frequency_Domain_Features.m
--------------------------------------------------------------------------------
/MATLAB Codes/WPT_Informative_Packet_Recon.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/MATLAB Codes/WPT_Informative_Packet_Recon.m
--------------------------------------------------------------------------------
/MATLAB Codes/WP_Energy_Ratio.m:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/MATLAB Codes/WP_Energy_Ratio.m
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # Minimal makefile for Sphinx documentation
2 | #
3 |
4 | # You can set these variables from the command line.
5 | SPHINXOPTS =
6 | SPHINXBUILD = sphinx-build
7 | SOURCEDIR = source
8 | BUILDDIR = build
9 |
10 | # Put it first so that "make" without argument is like "make help".
11 | help:
12 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
13 |
14 | .PHONY: help Makefile
15 |
16 | # Catch-all target: route all unknown targets to Sphinx using the new
17 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
18 | %: Makefile
19 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Machine Learning Toolbox for Machining
2 | This toolbox includes the documentation for the Python codes used to diagnose chatter in machining applications.
3 | Wavelet Packet Transform (WPT), Ensemble Emprical Mode Decomposition (EEMD) and the Dynamic Time Warping (DTW) are the approaches included in this repository. Please see the references below for more details about the approaches.
4 |
5 | The experimental data in both raw and processed format can be found in [Mendeley repository](https://data.mendeley.com/datasets/hvm4wh3jzx/1).
6 |
7 | Sphinx documentation for this toolbox is available in this [link](http://firaskhasawneh.com/assets/repo_docs/ML_WPT_EEMD_doc/index.html).
8 |
9 | **Note**: If you are using this toolbox, please cite these papers:
10 |
11 | 1. [Yesilli, Khasawneh, Otto, "On transfer learning for chatter detection in turning using wavelet packet transform and ensemble empirical mode decomposition", 2020](https://www.sciencedirect.com/science/article/pii/S1755581719300690)
12 | 2. [Yesilli, Khasawneh, Otto, "Chatter detection in turning using machine learning and similarity measures of time series via dynamic time warping", 2022](https://www.sciencedirect.com/science/article/pii/S1526612522001682)
13 |
14 | **Note**: Check build folder for the most up-to-date documentation. We will include the documentation in a website soon.
15 |
16 |
--------------------------------------------------------------------------------
/WPT_EEMD_ML/WPT_Feature_Extraction.py:
--------------------------------------------------------------------------------
1 | import time
2 | import numpy as np
3 | from scipy.stats import skew
4 | from WPT_EEMD_ML.WPT_Informative_Packet_Recon import WPT_Informative_Packet_Recon
5 | from WPT_EEMD_ML.WP_Energy_Ratio import AbsFFT
6 |
7 |
8 | def WPT_Feature_Extraction(data_path, list_name,label_name,WF,L,IWP,fs,saving,*args):
9 | """
10 |
11 | :param str (data_path): The path where user keeps the data set
12 |
13 | :param str (list_name): Name of the .txt file that includes the names of time series data
14 |
15 | :param str (label_name): Name of the .npy file that includes labels of the time series
16 |
17 | :param str (WF): Wavelet function
18 |
19 | :param int (L): Level of the transform which will be applied to data set
20 |
21 | :param int (IWP): Informative Wavelet Packet number
22 |
23 | :param int (fs): Sampling frequency of the data set
24 |
25 | :param boolean (saving): Set it to true if you want to save reconstructed signals
26 |
27 | :Returns:
28 |
29 | :feature_mat:
30 | (np.array([])) Feature matrix
31 |
32 | :labels:
33 | (np.array([])) Labels
34 |
35 | :time:
36 | (str) Elapsed time during feature matrix generation
37 |
38 | :Example:
39 |
40 | .. doctest::
41 |
42 | from WPT_EEMD_ML.WPT_Feature_Extraction import WPT_Feature_Extraction
43 |
44 | # parameters
45 |
46 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout'
47 | list_name = 'time_series_name_2inch.txt'
48 | WF = 'db10'
49 | L=4
50 | IWP = 3
51 | label_name = '2_inch_Labels_2Class.npy'
52 | saving = False
53 | fs = 10000
54 |
55 | feature_mat,labels = WPT_Feature_Extraction(data_path, list_name,label_name,WF,L,IWP,fs,saving)
56 |
57 | """
58 |
59 | #%% Loading time series and labels
60 | start = time.time()
61 |
62 | # file path to folder where the data is kept
63 | file_path = data_path+'\\'+list_name
64 | label_path = data_path+'\\'+label_name
65 |
66 | # read the file that includes the name of datafiles
67 | with open(file_path) as f:
68 | data_names = f.read().splitlines()
69 |
70 | N = len(data_names)
71 |
72 | # import the classification labels
73 | label = np.load(label_path)
74 |
75 | # reconstruct signals from informative wavelet packet
76 | if saving:
77 | recon = WPT_Informative_Packet_Recon(data_path,list_name,WF,L,IWP,saving,args[0])
78 | else:
79 | recon = WPT_Informative_Packet_Recon(data_path,list_name,WF,L,IWP,saving)
80 |
81 | # compute features
82 | featuremat= np.zeros((N ,14))
83 |
84 | for i in range(N):
85 |
86 | ts = recon[i]
87 |
88 | # compute time domain features
89 |
90 | featuremat[i,0] = np.average(ts)
91 | featuremat[i,1] = np.std(ts)
92 | featuremat[i,2] = np.sqrt(np.mean(ts**2))
93 | featuremat[i,3] = max(abs(ts))
94 | featuremat[i,4] = skew(ts)
95 | L=len(ts)
96 | featuremat[i,5] = sum(np.power(ts-featuremat[i,0],4)) / ((L-1)*np.power(featuremat[i,1],4))
97 | featuremat[i,6] = featuremat[i,3]/featuremat[i,2]
98 | featuremat[i,7] = featuremat[i,3]/np.power((np.average(np.sqrt(abs(ts)))),2)
99 | featuremat[i,8] = featuremat[i,2]/(np.average((abs(ts))))
100 | featuremat[i,9] = featuremat[i,3]/(np.average((abs(ts))))
101 |
102 | # compute FFT of the reconstructed signals
103 | xf,yf = AbsFFT(recon[i],fs)
104 |
105 | # frequency domain features
106 | featuremat[i,10] = sum((xf**2)*yf)/sum(yf) #mean square frequency
107 | featuremat[i,11] = sum(np.cos(2*np.pi*xf*1/fs)*yf)/sum(yf) # one step auto correlation function
108 | featuremat[i,12] = sum(xf*yf)/sum(yf) # frequency center
109 | featuremat[i,13] = sum(((xf-featuremat[i,12])**2)*yf)/sum(yf) # standard frequency
110 |
111 |
112 |
113 | # concatanate feature matrix and the label matrix and then shuffle them
114 | feat_lab = np.concatenate((featuremat,np.reshape(label,(len(label),1))),axis=1)
115 | np.random.shuffle(feat_lab)
116 |
117 | feature_mat = feat_lab[:,0:14]
118 | labels = feat_lab[:,14]
119 | end = time.time()
120 |
121 | if saving:
122 | output={}
123 | output['features'] = feature_mat
124 | output['labels'] = labels
125 | np.save(data_path+'\\'+args[0],output)
126 |
127 | print("Feature computation is completed in {} seconds.".format(end-start))
128 |
129 | return feature_mat,labels
130 |
131 |
--------------------------------------------------------------------------------
/WPT_EEMD_ML/WPT_Informative_Packet_Recon.py:
--------------------------------------------------------------------------------
1 | import time
2 | import numpy as np
3 | import scipy.io as sio
4 | import pywt
5 |
6 | def WPT_Informative_Packet_Recon(data_path,list_name,WF,L,IWP,saving, *args):
7 |
8 | '''
9 | This function reconstructs signals using the coeffients of informative wavelet packets.
10 |
11 | :param str (data_path): Path to folder where list of time series names and time series data is kept
12 |
13 | :param str (list_name): Name of the .txt file which includes names of time series data
14 |
15 | :param list (label_name): Name of the .npy file which includes labels of time series
16 |
17 | :param str (WF): Wavelet function (see types_ of wavelet functions available in PyWavelet package)
18 |
19 | :param int (IWP): Informative Wavelet Packet Number (IWP)
20 |
21 | :param int (L): Transformation level
22 |
23 | :param bool (saving): It is set to 'True' to save the reconstructed signals
24 |
25 | :param list (*args): Additional parameters such as saving file name for the reconstructed signals if saving is set to true.
26 |
27 | :Returns:
28 | :recon:
29 | Object array that contains the reconstructed signals using informative wavelet packet defined by user.
30 | :time:
31 | Time elapsed during the reconstruction of the signals
32 | :Example:
33 | .. doctest::
34 |
35 | from WPT_Informative_Packet_Recon import WPT_Informative_Packet_Recon
36 |
37 | # parameters
38 |
39 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout'
40 | list_name = 'time_series_name_2inch.txt'
41 | WF = 'db10'
42 | L=4
43 | IWP = 3
44 | saving = False
45 |
46 | recon = WPT_Informative_Packet_Recon(data_path,list_name,WF,L,IWP,saving)
47 |
48 | '''
49 |
50 | start=time.time()
51 | # file path to folder where the data is kept
52 | file_path = data_path+'\\'+list_name
53 |
54 | # read the file that includes the name of datafiles
55 | with open(file_path) as f:
56 | data_names = f.read().splitlines()
57 |
58 | N = len(data_names)
59 |
60 | if IWP<1 or IWP>2**L:
61 | raise Exception('Invalid informative wavelet packet number!')
62 |
63 |
64 | ts = np.zeros((N),dtype=object)
65 | recon = np.zeros((N),dtype=object)
66 |
67 | # compute wavelet coefficients and energy ratios
68 | for i in range(N):
69 | # load mat files
70 | name = data_names[i]
71 |
72 | #load the time series
73 | ts[i] = sio.loadmat(data_path+'\\'+name)['tsDS']
74 |
75 |
76 | # apply wavelet packet decomposition
77 | wp = pywt.WaveletPacket(data=ts[i][:,1], wavelet=WF,maxlevel=L,mode='symmetric')
78 | packet_order = [node.path for node in wp.get_level(L, 'freq')]
79 |
80 | # reconstruct the wavelet packets
81 | # create a empty wavelet packet object
82 | new_wp = pywt.WaveletPacket(data=None, wavelet=WF, mode='symmetric')
83 | new_wp[packet_order[IWP-1]] = wp[packet_order[IWP-1]]
84 | recon[i] = new_wp.reconstruct(update=False)
85 | # find the diff between reconstructed length and time series length
86 | if len(ts[i])>len(recon[i]):
87 | index = len(recon[i])
88 | else:
89 | index = len(ts[i])
90 | recon[i] = recon[i][:index]
91 |
92 | if saving:
93 | np.save(data_path+'\\'+args[0],recon)
94 |
95 | end = time.time()
96 | print("Elapsed time for reconstruction: {} seconds".format(end-start))
97 |
98 | return recon
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/EEMD_Feature_Extraction.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/EEMD_Feature_Extraction.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/EEMD_Transfer_Learning.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/EEMD_Transfer_Learning.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/EEMD_Transfer_Learning_2case.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/EEMD_Transfer_Learning_2case.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WPT_Classification.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WPT_Classification.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WPT_Feature_Extraction.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WPT_Feature_Extraction.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WPT_Feature_Extraction_Transfer_Learning_One_Train_One_Test.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WPT_Feature_Extraction_Transfer_Learning_One_Train_One_Test.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WPT_Informative_Packet_Recon.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WPT_Informative_Packet_Recon.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WPT_Transfer_Learning.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WPT_Transfer_Learning.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WPT_Transfer_Learning_2case.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WPT_Transfer_Learning_2case.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/__pycache__/WP_Energy_Ratio.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/WPT_EEMD_ML/__pycache__/WP_Energy_Ratio.cpython-37.pyc
--------------------------------------------------------------------------------
/WPT_EEMD_ML/file_paths.txt:
--------------------------------------------------------------------------------
1 | D:\Data Archive\Cutting_Test_Data_Documented\cutting_tests_processed\2inch_stickout
2 | D:\Data Archive\Cutting_Test_Data_Documented\cutting_tests_processed\2p5inch_stickout
3 | D:\Data Archive\Cutting_Test_Data_Documented\cutting_tests_processed\3p5inch_stickout
4 | D:\Data Archive\Cutting_Test_Data_Documented\cutting_tests_processed\4p5inch_stickout
5 | D:\Data Archive\Cutting Tool Experiment Data\eIMFs\2inch
6 | D:\Data Archive\Cutting Tool Experiment Data\eIMFs\2.5inch
7 | D:\Data Archive\Cutting Tool Experiment Data\eIMFs\3.5inch
8 | D:\Data Archive\Cutting Tool Experiment Data\eIMFs\4.5inch
--------------------------------------------------------------------------------
/build/doctrees/ACF.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/ACF.doctree
--------------------------------------------------------------------------------
/build/doctrees/DTW.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/DTW.doctree
--------------------------------------------------------------------------------
/build/doctrees/EEMD.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/EEMD.doctree
--------------------------------------------------------------------------------
/build/doctrees/FFT.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/FFT.doctree
--------------------------------------------------------------------------------
/build/doctrees/MATLAB.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/MATLAB.doctree
--------------------------------------------------------------------------------
/build/doctrees/PSD.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/PSD.doctree
--------------------------------------------------------------------------------
/build/doctrees/TDA.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/TDA.doctree
--------------------------------------------------------------------------------
/build/doctrees/WPT.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/WPT.doctree
--------------------------------------------------------------------------------
/build/doctrees/chatter_detection.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/chatter_detection.doctree
--------------------------------------------------------------------------------
/build/doctrees/citing.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/citing.doctree
--------------------------------------------------------------------------------
/build/doctrees/contributing.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/contributing.doctree
--------------------------------------------------------------------------------
/build/doctrees/environment.pickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/environment.pickle
--------------------------------------------------------------------------------
/build/doctrees/index.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/index.doctree
--------------------------------------------------------------------------------
/build/doctrees/installation.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/installation.doctree
--------------------------------------------------------------------------------
/build/doctrees/license.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/license.doctree
--------------------------------------------------------------------------------
/build/doctrees/modules.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/modules.doctree
--------------------------------------------------------------------------------
/build/doctrees/surface_texture.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/doctrees/surface_texture.doctree
--------------------------------------------------------------------------------
/build/html/.buildinfo:
--------------------------------------------------------------------------------
1 | # Sphinx build info version 1
2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3 | config: 56a43fecd69885d1995686ded2cbeddd
4 | tags: 645f666f9bcd5a90fca523b33c5a78b7
5 |
--------------------------------------------------------------------------------
/build/html/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/.nojekyll
--------------------------------------------------------------------------------
/build/html/ACF.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Autocorrelation Function (ACF) — Machine learning toolbox for WPT and EEMD 0.1 documentation
8 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
56 |
57 |
61 |
62 |
63 |
64 |
74 |
75 |
76 |
77 |
78 | Autocorrelation Function (ACF)
79 |
80 |
81 |
82 |
83 |
84 |
98 |
99 |
100 |
101 |
102 |
107 |
108 |
109 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/build/html/FFT.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Fast Fourier Transform (FFT) — Machine learning toolbox for WPT and EEMD 0.1 documentation
8 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
102 |
107 |
108 |
109 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/build/html/PSD.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Power Spectral Density (PSD) — Machine learning toolbox for WPT and EEMD 0.1 documentation
8 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
56 |
57 |
61 |
62 |
63 |
64 |
74 |
75 |
76 |
77 |
78 | Power Spectral Density (PSD)
79 |
80 |
81 |
82 |
83 |
84 |
98 |
99 |
100 |
101 |
102 |
107 |
108 |
109 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/build/html/TDA.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Topological Data Analysis — Machine learning toolbox for WPT and EEMD 0.1 documentation
8 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
102 |
107 |
108 |
109 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/build/html/_images/DTW_Animation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/DTW_Animation.gif
--------------------------------------------------------------------------------
/build/html/_images/Results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/Results.png
--------------------------------------------------------------------------------
/build/html/_images/Violation_Check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/Violation_Check.png
--------------------------------------------------------------------------------
/build/html/_images/WPT-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/WPT-1.png
--------------------------------------------------------------------------------
/build/html/_images/WPT_Tree_with_MATLAB_Numbering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/WPT_Tree_with_MATLAB_Numbering.png
--------------------------------------------------------------------------------
/build/html/_images/WPT_Tree_with_Ordering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/WPT_Tree_with_Ordering.png
--------------------------------------------------------------------------------
/build/html/_images/example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_images/example.jpg
--------------------------------------------------------------------------------
/build/html/_modules/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Overview: module code — Machine learning toolbox for WPT and EEMD 0.1 documentation
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
55 |
56 |
60 |
61 |
62 |
63 |
64 |
65 | - »
66 | - Overview: module code
67 | -
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
All modules for which code is available
76 |
83 |
84 |
85 |
86 |
100 |
101 |
102 |
103 |
104 |
109 |
110 |
111 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/build/html/_sources/ACF.rst.txt:
--------------------------------------------------------------------------------
1 | .. _ACF:
2 |
3 | Autocorrelation Function (ACF)
4 | ======================================
--------------------------------------------------------------------------------
/build/html/_sources/DTW.rst.txt:
--------------------------------------------------------------------------------
1 | .. _DTW:
2 |
3 | Dynamic Time Warping (DTW)
4 | ==========================
5 |
6 | .. image:: figures/DTW_Animation.gif
7 | :class: with-shadow float-center
8 | :scale: 70
9 |
10 | .. automodule:: DTW.DTW_Pipeline
11 | :members:
12 |
13 | ::
14 |
15 | # generate two time series
16 | ts1 = np.linspace(0,6.28,num=100)
17 | ts2 = np.sin(ts1) + np.random.uniform(size=100)/10.0
18 |
19 | # compute the distance between and the plot the warping path
20 | distance = DTW_Distance_Comp(ts1,ts2,5,True,False)
21 |
22 | # generate synthetic data set
23 |
24 | TS1 = []
25 | for i in range(15):
26 | fs, T = 100, 10
27 | t = np.linspace(-0.2,T,fs*T+1)
28 | A = 20
29 | TS1.append(A*np.sin((i+1)*np.pi*t) + A*np.sin(1*t))
30 |
31 | # serial distance computation
32 | DM1 = DTW_Dist_Mat(TS1,False,False)
33 | # parallel distance computation
34 | DM2 = DTW_Dist_Mat(TS1,False,True)
35 |
36 | # Generate the second set of time series so that we can apply transfer learning
37 | TS2 = []
38 | for i in range(20):
39 | fs, T = 100, 10
40 | t = np.linspace(-0.2,T,fs*T+1)
41 | A = 20
42 | TS2.append(A*np.sin((2*i+1)*np.pi*t) + A*np.sin(2*t))
43 |
44 | # serial distance computation
45 | DM_TF1 = DTW_Dist_Mat(TS1,True,False,TS2)
46 | # parallel distance computation
47 | DM_TF2 = DTW_Dist_Mat(TS1,True,True,TS2)
48 |
49 | # perform classification
50 | labels1 = np.random.choice([0, 1], size=(len(TS1),), p=[1./3, 2./3])
51 | out = TS_Classification(1,TS1,labels1,DM1,False)
52 |
53 | # perform classification using transfer learning
54 | labels2 = np.random.choice([0, 1], size=(len(TS2),), p=[1./3, 2./3])
55 | out = TS_Classification(1,TS1,labels1,DM_TF1,True,TS2,labels2,DM_TF2)
56 |
57 | AESA Example
58 |
59 | ::
60 |
61 | # Generate the second set of time series so that we can apply transfer learning
62 | TS3 = []
63 | for i in range(50):
64 | fs, T = 100, 10
65 | t = np.linspace(-0.2,T,fs*T+1)
66 | A = 20
67 | TS3.append(A*np.sin((2*i+1)*np.pi*t) + A*np.sin(2*t))
68 | labels3 = np.random.choice([0, 1], size=(len(TS3),), p=[1./3, 2./3])
69 | # parallel distance computation
70 | DM3 = DTW_Dist_Mat(TS3,False,True)
71 |
72 | # Check if there is any violiation to triangular inequality
73 | H = TriangularInequalityLoosenes(DM3)
74 |
75 | # plot the loosenes constants
76 | plt.figure()
77 | fig = plot_Looseness_Constants(H)
78 | plt.show()
79 |
80 | .. image:: figures/Violation_Check.png
81 | :class: with-shadow float-center
82 | :scale: 40
83 |
84 | ::
85 |
86 | # define a range for the H value
87 | H_range = np.linspace(0,20000,20)
88 |
89 | # run the AESA for each value in H_range
90 | output=[]
91 | for i in H_range:
92 | output.append(AESA_Classification(TS3,labels3,i,DM3,100))
93 |
94 | #plot the results
95 | plt.figure()
96 | plot_AESA_results(output,H_range)
97 | plt.show()
98 |
99 | .. image:: figures/Results.png
100 | :class: with-shadow float-center
101 | :scale: 40
102 |
103 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/build/html/_sources/EEMD.rst.txt:
--------------------------------------------------------------------------------
1 | .. _EEMD:
2 |
3 |
4 | Ensemble Empirical Mode Decomposition (EEMD)
5 | ============================================
6 |
7 | .. automodule:: WPT_EEMD_ML.EEMD_Feature_Extraction
8 | :members:
9 | .. automodule:: WPT_EEMD_ML.EEMD_Transfer_Learning
10 | :members:
11 |
12 | ::
13 |
14 | # Compute IMFs
15 |
16 | from EEMD_Feature_Extraction import EEMD_IMF_Compute
17 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout'
18 | list_name = 'time_series_name_2inch.txt'
19 | label_name = '2_inch_Labels_2Class.npy'
20 | EEMDecs = 'A'
21 | saving = True
22 | saving_path = 'D:\\Repositories\\WPT_EEMD_ML_Machining\\test\\EEMD_Output'
23 |
24 | infoEMF,split_labels = EEMD_IMF_Compute(data_path,list_name, EEMDecs, saving, saving_path)
25 |
26 |
27 | # feature extraction
28 | from EEMD_Feature_Extraction import EEMD_Feature_Compute
29 | p=2
30 | feature_mat = EEMD_Feature_Compute(infoEMF,p)
31 |
32 | # classification
33 | from EEMD_Classification import EEEMD_Classification
34 | cv = 5
35 | labels = split_labels[:,2]
36 | saving = True
37 | param_tuning = False
38 | feature_ranking = False
39 | saving_path = 'D:\Repositories\WPT_EEMD_ML_Machining\\test\EEMD_Output'
40 |
41 | clas_rep_test,clas_rep_train = EEEMD_Classification(feature_mat,cv, labels,param_tuning, feature_ranking, saving, saving_path)
42 |
43 | #plot the results
44 | from Plot_Results import plot_results
45 | import numpy as np
46 |
47 | methods = ['EEMD']
48 | clsf_names = ['SVM','LR','RF','GB']
49 | cv = 5
50 | layout = [1,1]
51 | ylabel_index = np.array([1])
52 | res_path = 'D:\\Repositories\\WPT_EEMD_ML_Machining\\test\\EEMD_Output\\'
53 | n_feature = 7
54 |
55 | # plot the results
56 | fig = plot_results(res_path,param_tuning,feature_ranking,n_feature,methods,clsf_names,cv,layout,ylabel_index)
57 |
58 |
59 |
60 |
61 | # ------------------------------------------------------------------------------
62 |
63 | # EEMD Transfer Learning
64 |
65 | from WPT_EEMD_ML.EEMD_Transfer_Learning import EEMD_Transfer_Learning
66 | from Plot_Results import plot_results
67 | import numpy as np
68 |
69 |
70 | data_paths = []
71 | data_paths.append('D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout')
72 | data_paths.append('D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\4p5inch_stickout')
73 |
74 | list_names = []
75 | list_names.append('time_series_name_2inch.txt')
76 | list_names.append('time_series_name_4p5inch.txt')
77 |
78 | Decomps=[]
79 | Decomps.append('NA')
80 | Decomps.append('NA')
81 |
82 | info_IMFs = []
83 | info_IMFs.append(2)
84 | info_IMFs.append(1)
85 |
86 | saving = True
87 | param_tuning=False
88 | feature_ranking = False
89 | cv=5
90 |
91 | saving_path = 'D:\Repositories\WPT_EEMD_ML_Machining\\test\EEMD_Output'
92 |
93 | EEMD_Transfer_Learning(data_paths,list_names,Decomps, info_IMFs, cv,param_tuning,feature_ranking,saving,saving_path)
94 |
95 |
96 | # plot the results
97 |
98 | methods = ['EEMD']
99 | clsf_names = ['SVM','LR','RF','GB']
100 | cv = 5
101 | layout = [1,1]
102 | ylabel_index = np.array([1])
103 | res_path = 'D:\\Repositories\\WPT_EEMD_ML_Machining\\test\\EEMD_Output\\'
104 | n_feature = 7
105 |
106 | fig = plot_results(res_path,param_tuning,feature_ranking,n_feature,methods,clsf_names,cv,layout,ylabel_index)
107 |
--------------------------------------------------------------------------------
/build/html/_sources/FFT.rst.txt:
--------------------------------------------------------------------------------
1 | .. _FFT:
2 |
3 | Fast Fourier Transform (FFT)
4 | ======================================
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/build/html/_sources/MATLAB.rst.txt:
--------------------------------------------------------------------------------
1 | .. _MATLAB:
2 |
3 | =========================================
4 | MATLAB Codes for Wavelet Packet Transform
5 | =========================================
6 |
7 | MATLAB folder in the `GitHub repository `_ includes four codes.
8 |
9 | * **WP_Energy_Ratio**: Computes the energy ratios of the wavelet packets for specified level of transform for chosen time series. It returns plots which contains energy ratios of each packet for time series, reconstructed time series and their FFT plot. User can define the informative wavelet packet number using these plot.
10 | * **WP_Informative_Packet_Recon**: For selected level of WPT, it reconstructs time series based on chosen informative wavelet packets. It saves the reconstructed time series into specified folder.
11 | * **WP_Frequency_Domain_Features**: Computes the frequency domain features for selected level of Transform by using reconstructed time series with **WP_Informative_Packet_Recon** function. It saves the feature matrix and this feature matrix will be combined with time domain features to be used in classification.
12 | * **Example_Usage**: Provides examples for MATLAB codes.
13 |
14 | **NOTE**: For more details on these functions, please see the function descriptions in MATLAB files.
15 |
16 | Wavelet packet numbering in MATLAB
17 | ----------------------------------
18 |
19 | The numbering of the wavelet packets obtained after applying WPT can confuse user. Therefore, we give proper instructions here how to obtain and track the wavelet packets correctly. There
20 | are two types of ordering of the wavelet packets and these are natural ordering and frequency
21 | ordering. We show these two types of ordering in Wavelet packet tree in :numref:`PacketNum`.
22 |
23 | .. _PacketNum:
24 |
25 | .. figure:: WPT_Tree_with_Ordering.png
26 | :align: center
27 |
28 | Frequency and natural ordering of wavelet packets (resetting the packet numbers to 1 in each level of transformation)
29 |
30 | The ordering is given in natural ordering in MATLAB. However, we use frequency ordering in this toolbox. In addition, MATLAB does not reset the numbering of wavelet packets to 1 in each level of transform.
31 | For example, if the first level wavelet packets are called first and second wavelet packets, first packet of the second level transform is called third wavelet packet.
32 | Please see :numref:`PacketNum_MATLAB` for MATLAB numbering.
33 | The frequency ordering given in :numref:`PacketNum` is resetting the numbers to 1 in each level.
34 | All wavelet packet numbers given in :cite:`1 ` is based on the ordering provided in :numref:`PacketNum`.
35 | One need to find correponding number for each wavelet packet by using :numref:`PacketNum_MATLAB` to reconstruct the time series correctly based on informative wavelet packets in MATLAB.
36 | Also, ordering in :numref:`PacketNum` is obtained by using the MATLAB function **otnodes()**.
37 | Ordering can differ based on wavelet function used in the transform and level of the transform.
38 | Therefore, ordering in :numref:`PacketNum` should only be used in applications which use wavelet function 'db10'.
39 |
40 | .. _PacketNum_MATLAB:
41 |
42 | .. figure:: WPT_Tree_with_MATLAB_Numbering.png
43 | :align: center
44 |
45 | Frequency and natural ordering of wavelet packets in MATLAB
--------------------------------------------------------------------------------
/build/html/_sources/PSD.rst.txt:
--------------------------------------------------------------------------------
1 | .. _FFT:
2 |
3 | Power Spectral Density (PSD)
4 | ============================
--------------------------------------------------------------------------------
/build/html/_sources/TDA.rst.txt:
--------------------------------------------------------------------------------
1 | .. _TDA:
2 |
3 | Topological Data Analysis
4 | =========================
--------------------------------------------------------------------------------
/build/html/_sources/WPT.rst.txt:
--------------------------------------------------------------------------------
1 | .. _WPT:
2 |
3 | Wavelet Packet Transform
4 | ======================================
5 |
6 | Decision Making about Informative Wavelet Packets
7 | -------------------------------------------------
8 | .. automodule:: WPT_EEMD_ML.WP_Energy_Ratio
9 | :members:
10 |
11 |
12 | Feature extraction and supervised classification using WPT
13 | ----------------------------------------------------------
14 |
15 | This algorithm takes time series for turning experiments as input and it generates the feature matrix based on specified WPT level.
16 | The reconstructed Wavelet packets and corresponding frequency domain feature matrices should be computed before running this algorithm. Please see the instructions for Matlab functions on this
17 | documentation before using this algorithm.
18 | The Wavelet packets frequency domain features and datafiles should be in the same folder.
19 | It asks for file paths for the data files.
20 | Algorithm performs the classfication with chosen algorithm and provides results in a np.array.
21 | It plots the mean accuracies and deviations for test and training set with respect to number of features used in classification, if user enables plotting option of the algorithm.
22 | It also prints the total elapsed time.
23 |
24 | .. automodule:: WPT_EEMD_ML.WPT_Feature_Extraction
25 | :members:
26 |
27 | Transfer Learning Application Using WPT
28 | ---------------------------------------
29 |
30 | This function uses transfer learning principles to transfer the knowledge obtained from one cutting configuration to another one.
31 |
32 | .. automodule:: WPT_EEMD_ML.WPT_Transfer_Learning
33 | :members:
34 |
35 | ::
36 |
37 |
38 | # WPT Informative Wavelet Packet Decision Making # ----------------------------
39 | # parameters
40 | from WPT_EEMD_ML.WP_Energy_Ratio import WP_Energy_Ratio
41 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout'
42 | list_name = 'time_series_name_2inch.txt'
43 | ts_no = [1,13,21]
44 | WF = 'db10'
45 | L=4
46 | case_no=2
47 | layout=[4,4]
48 | plot_recon = True
49 | fs= 10000
50 |
51 | WP_Energy_Ratio(data_path, list_name, ts_no, WF, L, case_no, fs, plot_recon,layout)
52 |
53 |
54 | # WPT Reconstruction of Signals from Informative Wavelet Packets # ------------
55 | from WPT_EEMD_ML.WPT_Informative_Packet_Recon import WPT_Informative_Packet_Recon
56 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout'
57 | list_name = 'time_series_name_2inch.txt'
58 | label_name = '2_inch_Labels_2Class.npy'
59 | WF = 'db10'
60 | L=4
61 | IWP = 3
62 | # if saving is true, user needs to provide the name of the file which will contain the reconstructed signals
63 | saving = True
64 | recon = WPT_Informative_Packet_Recon(data_path,list_name,WF,L,IWP,saving,'WPT_Output')
65 | # if saving is false, no additional parameter is needed
66 | saving = False
67 | recon = WPT_Informative_Packet_Recon(data_path,list_name,WF,L,IWP,saving)
68 |
69 |
70 | # WPT Feature Extraction# -----------------------------------------------------
71 | #inputs
72 | from WPT_EEMD_ML.WPT_Feature_Extraction import WPT_Feature_Extraction
73 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\4p5inch_stickout'
74 | list_name = 'time_series_name_4p5inch.txt'
75 | WF = 'db10'
76 | L=4
77 | IWP = 10
78 | label_name = '4p5_inch_Labels_2Class.npy'
79 | fs = 10000
80 | # if saving is false, there is no need for additional parameters
81 | saving = False
82 | feature_mat,labels = WPT_Feature_Extraction(data_path, list_name,label_name,WF,L,IWP,fs,saving)
83 | # if saving is correct, user needs to provide the name of the file which will contain features and the labels
84 | saving = True
85 | feature_mat,labels = WPT_Feature_Extraction(data_path, list_name,label_name,WF,L,IWP,fs,saving,'features')
86 |
87 |
88 | # WPT Classification ----------------------------------------------------------
89 |
90 | from WPT_EEMD_ML.WPT_Classification import WPT_Classification
91 |
92 | # inputs
93 | data_path = 'D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout'
94 | list_name = 'time_series_name_2inch.txt'
95 | WF = 'db10'
96 | L=4
97 | IWP = 3
98 | label_name = '2_inch_Labels_2Class.npy'
99 | saving = True
100 | fs = 10000
101 | param_tuning = True
102 | feature_ranking = False
103 | cv = 5
104 | saving_path = 'D:\Repositories\WPT_EEMD_ML_Machining\\test\WPT_Output'
105 | save_name = "Reconstructions"
106 | reports = WPT_Classification(data_path,list_name,label_name,WF,L,IWP,fs,cv,param_tuning,feature_ranking,saving,saving_path,save_name)
107 |
108 | # plot the results
109 |
110 | from Plot_Results import plot_results
111 | import numpy as np
112 |
113 | methods = ['WPT']
114 | clsf_names = ['SVM','LR','RF','GB']
115 | cv = 5
116 | layout = [1,1]
117 | ylabel_index = np.array([1])
118 | res_path = 'D:\\Repositories\\WPT_EEMD_ML_Machining\\test\\WPT_Output\\'
119 | param_tuning = True
120 | feature_ranking = False
121 | n_feature = 14
122 |
123 | fig = plot_results(res_path,param_tuning,feature_ranking,n_feature,methods,clsf_names,cv,layout,ylabel_index)
124 |
125 |
126 | # ------------------------------------------------------------------------------
127 |
128 | # WPT transfer learning
129 |
130 | # add data paths into a list
131 | # first add the paths for training data sets ,then the ones for test cases
132 | # algorithm will assume the first half of the list contains the paths for training cases
133 | # and treat other half of the list as the paths for test cases.
134 | # This is also applicable to other variables such as wavelet functions,
135 | # time series names etc.
136 | from WPT_EEMD_ML.WPT_Transfer_Learning import WPT_Transfer_Learning
137 |
138 |
139 | data_paths = []
140 | data_paths.append('D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\4p5inch_stickout')
141 | data_paths.append('D:\\Data Archive\\Cutting_Test_Data_Documented\\cutting_tests_processed\\2inch_stickout')
142 |
143 | list_names = []
144 | list_names.append('time_series_name_4p5inch.txt')
145 | list_names.append('time_series_name_2inch.txt')
146 |
147 | WFs = []
148 | WFs.append('db10')
149 | WFs.append('db10')
150 |
151 | Levels = []
152 | Levels.append(4)
153 | Levels.append(4)
154 |
155 | IWPs = []
156 | IWPs.append(10)
157 | IWPs.append(3)
158 |
159 | label_names = []
160 | label_names.append('4p5_inch_Labels_2Class.npy')
161 | label_names.append('2_inch_Labels_2Class.npy')
162 |
163 | samp_fs = []
164 | samp_fs.append(10000)
165 | samp_fs.append(10000)
166 |
167 | saving = False
168 | param_tuning=False
169 | feature_ranking = False
170 | cv=5
171 |
172 | output = WPT_Transfer_Learning(data_paths,list_names,WFs,Levels,IWPs,label_names,samp_fs,cv,param_tuning,feature_ranking,saving)
173 |
174 |
175 | from Plot_Results import plot_results
176 | import numpy as np
177 |
178 | methods = ['WPT']
179 | clsf_names = ['SVM','LR','RF','GB']
180 | cv = 5
181 | layout = [1,1]
182 | ylabel_index = np.array([1])
183 | res_path = 'D:\\Repositories\\WPT_EEMD_ML_Machining\\test\\WPT_Output\\'
184 | param_tuning = True
185 | feature_ranking = False
186 | n_feature = 14
187 |
188 | fig = plot_results(res_path,param_tuning,feature_ranking,n_feature,methods,clsf_names,cv,layout,ylabel_index)
189 |
--------------------------------------------------------------------------------
/build/html/_sources/chatter_detection.rst.txt:
--------------------------------------------------------------------------------
1 | .. _chatter_detection:
2 |
3 | Chatter Detection Module Documentation
4 | ======================================
5 |
6 | This toolbox includes the documentation for the Python codes that extract features by using Wavelet Packet Transform (WPT)
7 | and Ensemble Empirical Mode Decomposition (EEMD) and diagnose chatter in turning process for different cutting configurations. Algorithms are based on the methods
8 | explained in :cite:`1 `. The experimental data in both raw and processed format can be found in Mendeley repository :cite:`Khasawneh2019`. Python and MATLAB codes are available in
9 | `GitHub repository `_.
10 |
11 | .. toctree::
12 |
13 | Wavelet Packet Transform (WPT)
14 | Ensemble Empirical Mode Decomposition (EEMD)
15 | Dynamic Time Warping (DTW)
16 |
--------------------------------------------------------------------------------
/build/html/_sources/citing.rst.txt:
--------------------------------------------------------------------------------
1 | Citing
2 | =======================================================
3 |
4 | References will be available soon.
--------------------------------------------------------------------------------
/build/html/_sources/contributing.rst.txt:
--------------------------------------------------------------------------------
1 | Contributing to ML Toolbox for Machinining
2 | =======================================================
3 |
4 | Contributions are more than welcome! There are lots of opportunities for potential projects, so please get in touch if you would like to help out.
--------------------------------------------------------------------------------
/build/html/_sources/index.rst.txt:
--------------------------------------------------------------------------------
1 | Machine learning toolbox for Machining
2 | ***********************************************************************************************************************************
3 |
4 | .. toctree::
5 | :numbered:
6 |
7 | Modules
8 | Contributing
9 | License
10 |
11 | References
12 | ==========
13 | .. bibliography:: references.bib
14 | :style: plain
15 |
16 | * :ref:`genindex`
17 | * :ref:`modindex`
18 | * :ref:`search`
19 |
20 |
21 | Contact Information
22 | ********************
23 | Melih Can Yesilli: yesillim@msu.edu
--------------------------------------------------------------------------------
/build/html/_sources/installation.rst.txt:
--------------------------------------------------------------------------------
1 | Getting Started
2 | ================
3 |
4 |
5 | Requirements
6 | **************
7 |
8 | Please note that this code is an early version, so many things are not fully up and running yet.
9 |
10 | Installation
11 | **************
12 |
13 | pip install will be available soon.
14 |
--------------------------------------------------------------------------------
/build/html/_sources/license.rst.txt:
--------------------------------------------------------------------------------
1 | License
2 | =======================================================
3 |
4 | `GNU GENERAL PUBLIC LICENSE `_
5 |
6 | Version: 3, 29 June 2007
7 |
--------------------------------------------------------------------------------
/build/html/_sources/modules.rst.txt:
--------------------------------------------------------------------------------
1 | Table of Contents
2 | *****************
3 |
4 | .. toctree::
5 |
6 | Chatter Detection
7 |
8 |
--------------------------------------------------------------------------------
/build/html/_sources/surface_texture.rst.txt:
--------------------------------------------------------------------------------
1 | .. _surface_texture:
2 |
3 | Surface Texture Analysis Module Documentation
4 | ==============================================
5 |
6 | The documentation will be available soon.
7 |
8 |
--------------------------------------------------------------------------------
/build/html/_static/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/ajax-loader.gif
--------------------------------------------------------------------------------
/build/html/_static/classic.css:
--------------------------------------------------------------------------------
1 | /*
2 | * classic.css_t
3 | * ~~~~~~~~~~~~~
4 | *
5 | * Sphinx stylesheet -- classic theme.
6 | *
7 | * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
8 | * :license: BSD, see LICENSE for details.
9 | *
10 | */
11 |
12 | @import url("basic.css");
13 |
14 | /* -- page layout ----------------------------------------------------------- */
15 |
16 | body {
17 | font-family: sans-serif;
18 | font-size: 100%;
19 | background-color: white;
20 | color: #000;
21 | margin: 0;
22 | padding: 0;
23 | }
24 |
25 | div.document {
26 | background-color: whitesmoke;
27 | }
28 |
29 | div.documentwrapper {
30 | float: left;
31 | width: 100%;
32 | }
33 |
34 | div.bodywrapper {
35 | margin: 0 0 0 20%;
36 | }
37 |
38 | div.body {
39 | background-color: white;
40 | color: black;
41 | padding: 0 20px 30px 20px;
42 | }
43 |
44 | div.footer {
45 | color: #ffffff;
46 | width: 100%;
47 | padding: 9px 0 9px 0;
48 | text-align: center;
49 | font-size: 75%;
50 | }
51 |
52 | div.footer a {
53 | color: #ffffff;
54 | text-decoration: underline;
55 | }
56 |
57 | div.related {
58 | background-color: dimgray;
59 | line-height: 30px;
60 | color: black;
61 | }
62 |
63 | div.related a {
64 | color: #ffffff;
65 | }
66 |
67 | div.sphinxsidebar {
68 | top: 30px;
69 | bottom: 0;
70 | margin: 0;
71 | position: fixed;
72 | overflow: auto;
73 | height: auto;
74 | }
75 | /* this is nice, but it it leads to hidden headings when jumping
76 | to an anchor */
77 | /*
78 | div.related {
79 | position: fixed;
80 | }
81 |
82 | div.documentwrapper {
83 | margin-top: 30px;
84 | }
85 | */
86 |
87 | div.sphinxsidebar h3 {
88 | font-family: 'Trebuchet MS', sans-serif;
89 | color: black;
90 | font-size: 1.4em;
91 | font-weight: normal;
92 | margin: 0;
93 | padding: 0;
94 | }
95 |
96 | div.sphinxsidebar h3 a {
97 | color: black;
98 | }
99 |
100 | div.sphinxsidebar h4 {
101 | font-family: 'Trebuchet MS', sans-serif;
102 | color: black;
103 | font-size: 1.3em;
104 | font-weight: normal;
105 | margin: 5px 0 0 0;
106 | padding: 0;
107 | }
108 |
109 | div.sphinxsidebar p {
110 | color: black;
111 | }
112 |
113 | div.sphinxsidebar p.topless {
114 | margin: 5px 10px 10px 10px;
115 | }
116 |
117 | div.sphinxsidebar ul {
118 | margin: 10px;
119 | padding: 0;
120 | color: black;
121 | }
122 |
123 | div.sphinxsidebar a {
124 | color: dimgray;
125 | }
126 |
127 | div.sphinxsidebar input {
128 | border: 1px solid dimgray;
129 | font-family: sans-serif;
130 | font-size: 1em;
131 | }
132 |
133 |
134 |
135 | /* -- hyperlink styles ------------------------------------------------------ */
136 |
137 | a {
138 | color: #355f7c;
139 | text-decoration: none;
140 | }
141 |
142 | a:visited {
143 | color: #355f7c;
144 | text-decoration: none;
145 | }
146 |
147 | a:hover {
148 | text-decoration: underline;
149 | }
150 |
151 |
152 |
153 | /* -- body styles ----------------------------------------------------------- */
154 |
155 | div.body h1,
156 | div.body h2,
157 | div.body h3,
158 | div.body h4,
159 | div.body h5,
160 | div.body h6 {
161 | font-family: 'Trebuchet MS', sans-serif;
162 | background-color: dimgray;
163 | font-weight: normal;
164 | color: white;
165 | border-bottom: 1px solid #ccc;
166 | margin: 20px -20px 10px -20px;
167 | padding: 3px 0 3px 10px;
168 | }
169 |
170 | div.body h1 { margin-top: 0; font-size: 200%; }
171 | div.body h2 { font-size: 160%; }
172 | div.body h3 { font-size: 140%; }
173 | div.body h4 { font-size: 120%; }
174 | div.body h5 { font-size: 110%; }
175 | div.body h6 { font-size: 100%; }
176 |
177 | a.headerlink {
178 | color: black;
179 | font-size: 0.8em;
180 | padding: 0 4px 0 4px;
181 | text-decoration: none;
182 | }
183 |
184 | a.headerlink:hover {
185 | background-color: black;
186 | color: white;
187 | }
188 |
189 | div.body p, div.body dd, div.body li, div.body blockquote {
190 | text-align: justify;
191 | line-height: 130%;
192 | }
193 |
194 | div.admonition p.admonition-title + p {
195 | display: inline;
196 | }
197 |
198 | div.admonition p {
199 | margin-bottom: 5px;
200 | }
201 |
202 | div.admonition pre {
203 | margin-bottom: 5px;
204 | }
205 |
206 | div.admonition ul, div.admonition ol {
207 | margin-bottom: 5px;
208 | }
209 |
210 | div.note {
211 | background-color: #eee;
212 | border: 1px solid #ccc;
213 | }
214 |
215 | div.seealso {
216 | background-color: #ffc;
217 | border: 1px solid #ff6;
218 | }
219 |
220 | div.topic {
221 | background-color: #eee;
222 | }
223 |
224 | div.warning {
225 | background-color: #ffe4e4;
226 | border: 1px solid #f66;
227 | }
228 |
229 | p.admonition-title {
230 | display: inline;
231 | }
232 |
233 | p.admonition-title:after {
234 | content: ":";
235 | }
236 |
237 | pre {
238 | padding: 5px;
239 | background-color: ivory;
240 | color: #333333;
241 | line-height: 120%;
242 | border: 1px solid #ac9;
243 | border-left: none;
244 | border-right: none;
245 | }
246 |
247 | code {
248 | background-color: #ecf0f3;
249 | padding: 0 1px 0 1px;
250 | font-size: 0.95em;
251 | }
252 |
253 | th {
254 | background-color: #ede;
255 | }
256 |
257 | .warning code {
258 | background: #efc2c2;
259 | }
260 |
261 | .note code {
262 | background: #d6d6d6;
263 | }
264 |
265 | .viewcode-back {
266 | font-family: sans-serif;
267 | }
268 |
269 | div.viewcode-block:target {
270 | background-color: #f4debf;
271 | border-top: 1px solid #ac9;
272 | border-bottom: 1px solid #ac9;
273 | }
274 |
275 | div.code-block-caption {
276 | color: #efefef;
277 | background-color: #1c4e63;
278 | }
--------------------------------------------------------------------------------
/build/html/_static/comment-bright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/comment-bright.png
--------------------------------------------------------------------------------
/build/html/_static/comment-close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/comment-close.png
--------------------------------------------------------------------------------
/build/html/_static/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/comment.png
--------------------------------------------------------------------------------
/build/html/_static/css/badge_only.css:
--------------------------------------------------------------------------------
1 | .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/Roboto-Slab-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/Roboto-Slab-Bold.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/Roboto-Slab-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/Roboto-Slab-Regular.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-bold-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-bold-italic.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-bold-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-bold-italic.woff2
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-bold.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-bold.woff2
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-normal-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-normal-italic.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-normal-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-normal-italic.woff2
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-normal.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-normal.woff
--------------------------------------------------------------------------------
/build/html/_static/css/fonts/lato-normal.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/css/fonts/lato-normal.woff2
--------------------------------------------------------------------------------
/build/html/_static/documentation_options.js:
--------------------------------------------------------------------------------
1 | var DOCUMENTATION_OPTIONS = {
2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3 | VERSION: '0.1',
4 | LANGUAGE: 'None',
5 | COLLAPSE_INDEX: false,
6 | BUILDER: 'html',
7 | FILE_SUFFIX: '.html',
8 | LINK_SUFFIX: '.html',
9 | HAS_SOURCE: true,
10 | SOURCELINK_SUFFIX: '.txt',
11 | NAVIGATION_WITH_KEYS: false
12 | };
--------------------------------------------------------------------------------
/build/html/_static/down-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/down-pressed.png
--------------------------------------------------------------------------------
/build/html/_static/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/down.png
--------------------------------------------------------------------------------
/build/html/_static/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/file.png
--------------------------------------------------------------------------------
/build/html/_static/fonts/Inconsolata-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Inconsolata-Bold.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Inconsolata-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Inconsolata-Regular.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Inconsolata.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Inconsolata.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato-Bold.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato-Regular.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bold.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bold.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bold.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bold.woff2
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bolditalic.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bolditalic.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bolditalic.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-bolditalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-bolditalic.woff2
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-italic.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-italic.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-italic.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-italic.woff2
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-regular.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-regular.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-regular.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/Lato/lato-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/Lato/lato-regular.woff2
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab-Bold.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab-Regular.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
--------------------------------------------------------------------------------
/build/html/_static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/build/html/_static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/build/html/_static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/build/html/_static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Khasawneh-Lab/ML_Toolbox_Machining/89814a747635d9b3a3c7e8f940bc8e24c8d8271a/build/html/_static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/build/html/_static/js/badge_only.js:
--------------------------------------------------------------------------------
1 | !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}});
--------------------------------------------------------------------------------
/build/html/_static/js/html5shiv-printshiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/build/html/_static/js/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/build/html/_static/js/theme.js:
--------------------------------------------------------------------------------
1 | !function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap(""),n("table.docutils.footnote").wrap(""),n("table.docutils.citation").wrap(""),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t