6113 lines
442 KiB
Plaintext
6113 lines
442 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Usage examples"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from calculatingfeatures.CalculatingFeatures.calculate_features import calculateFeatures, calculateFeatures, convertInputInto2d, convertInputInto2dTime\n",
|
|
"from calculatingfeatures.CalculatingFeatures.helper_functions import gsrFeatureNames, frequencyFeatureNames, hrvFeatureNames, genericFeatureNames, accelerometerFeatureNames, gyroscopeFeatureNames\n",
|
|
"import CalculatingFeatures.feature_functions as functions\n",
|
|
"import random\n",
|
|
"import numpy as np\n",
|
|
"import time as t\n",
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import pickle\n",
|
|
"from calculatingfeatures.CalculatingFeatures.calculate_hrv_peaks import peak_detector\n",
|
|
"%matplotlib notebook"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Calculate HRV and frequency features with calculateFeatures() from empatica file"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1008/1008 [02:07<00:00, 7.89it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" ibi_X meanHr_X numRR_X pnn20_X pnn50_X rmssd_X \\\n",
|
|
"0 0.863281 69.502262 4.0 66.666667 66.666667 0.170449 \n",
|
|
"1 0.720313 83.297180 10.0 66.666667 33.333333 0.050765 \n",
|
|
"2 0.679688 88.275862 8.0 85.714286 28.571429 0.045363 \n",
|
|
"3 0.723437 82.937365 10.0 77.777778 55.555556 0.103382 \n",
|
|
"4 0.800347 74.967462 9.0 62.500000 37.500000 0.057675 \n",
|
|
"... ... ... ... ... ... ... \n",
|
|
"1003 1.097656 54.661922 4.0 33.333333 33.333333 0.045999 \n",
|
|
"1004 0.805804 74.459834 7.0 83.333333 83.333333 0.137701 \n",
|
|
"1005 0.911458 65.828571 6.0 100.000000 80.000000 0.098326 \n",
|
|
"1006 NaN NaN 3.0 NaN NaN NaN \n",
|
|
"1007 1.515625 39.587629 4.0 100.000000 100.000000 0.138878 \n",
|
|
"\n",
|
|
" sd1/sd2_X sd2_X sd_X sdnn_X sdsd_X \n",
|
|
"0 0.523417 0.120684 0.063168 0.089333 0.096319 \n",
|
|
"1 1.405853 0.025695 0.036124 0.051087 0.031346 \n",
|
|
"2 NaN NaN 0.030758 0.043498 0.016096 \n",
|
|
"3 0.668476 0.077188 0.051598 0.072971 0.065652 \n",
|
|
"4 0.684488 0.042214 0.028895 0.040863 0.036172 \n",
|
|
"... ... ... ... ... ... \n",
|
|
"1003 0.496161 0.042761 0.021216 0.030004 0.033754 \n",
|
|
"1004 1.001993 0.057706 0.057821 0.081771 0.057763 \n",
|
|
"1005 1.544265 0.034477 0.053242 0.075296 0.044852 \n",
|
|
"1006 NaN NaN NaN NaN NaN \n",
|
|
"1007 0.968519 0.049066 0.047522 0.067206 0.048300 \n",
|
|
"\n",
|
|
"[1008 rows x 11 columns]\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from calculatingfeatures.CalculatingFeatures.helper_functions import convert1DEmpaticaToArray\n",
|
|
"\n",
|
|
"pathToHrvCsv = \"example_data/S2_E4_Data/BVP.csv\"\n",
|
|
"windowLength = 500\n",
|
|
"\n",
|
|
"#np.seterr(all='raise')\n",
|
|
"\n",
|
|
"# get an array of values from HRV empatica file\n",
|
|
"hrv_data, startTimeStamp, sampleRate = convert1DEmpaticaToArray(pathToHrvCsv)\n",
|
|
"\n",
|
|
"# Convert the HRV data into 2D array\n",
|
|
"hrv_data_2D = convertInputInto2d(hrv_data, windowLength)\n",
|
|
"\n",
|
|
"# Create a list with feature names\n",
|
|
"featureNames = []\n",
|
|
"featureNames.extend(hrvFeatureNames)\n",
|
|
"featureNames.extend(frequencyFeatureNames)\n",
|
|
"\n",
|
|
"pd.set_option('display.max_columns', None)\n",
|
|
"#pd.set_option('display.max_rows', None)\n",
|
|
"\n",
|
|
"# Calculate features\n",
|
|
"calculatedFeatures = calculateFeatures(hrv_data_2D, fs=int(sampleRate), featureNames=featureNames)\n",
|
|
"print(calculatedFeatures)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Calculate ACC features with calculateFeatures() from empatica file"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 504/504 [03:46<00:00, 2.23it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" absoluteAreaAllBand absoluteArea_XBand absoluteArea_YBand \\\n",
|
|
"0 312.592555 72.500968 -16.538178 \n",
|
|
"1 864.715960 72.220023 -21.781158 \n",
|
|
"2 3616.215615 74.042112 -77.602245 \n",
|
|
"3 4165.495456 105.191655 -79.146730 \n",
|
|
"4 8033.196394 95.132686 -124.754418 \n",
|
|
".. ... ... ... \n",
|
|
"499 384.671068 88.880824 -121.088645 \n",
|
|
"500 611.899981 90.148744 -125.571337 \n",
|
|
"501 1307.327021 98.014717 -123.718204 \n",
|
|
"502 778.281403 102.766032 -118.941814 \n",
|
|
"503 898.820043 37.005843 -49.001318 \n",
|
|
"\n",
|
|
" absoluteArea_ZBand absoluteMean_XBand absoluteMean_YBand \\\n",
|
|
"0 137.499998 0.145002 -0.033076 \n",
|
|
"1 137.184763 0.144440 -0.043562 \n",
|
|
"2 32.381332 0.148084 -0.155204 \n",
|
|
"3 27.225527 0.210383 -0.158293 \n",
|
|
"4 2.235905 0.190265 -0.249509 \n",
|
|
".. ... ... ... \n",
|
|
"499 42.304659 0.177762 -0.242177 \n",
|
|
"500 41.328719 0.180297 -0.251143 \n",
|
|
"501 8.405056 0.196029 -0.247436 \n",
|
|
"502 -0.946992 0.205532 -0.237884 \n",
|
|
"503 0.000397 0.074012 -0.098003 \n",
|
|
"\n",
|
|
" absoluteMean_ZBand amplitude_XBand amplitude_YBand amplitude_ZBand \\\n",
|
|
"0 2.750000e-01 29.284433 6.386696 55.229196 \n",
|
|
"1 2.743695e-01 44.658625 15.583131 62.157114 \n",
|
|
"2 6.476266e-02 45.327413 26.308157 71.081348 \n",
|
|
"3 5.445105e-02 42.572756 23.106671 20.137936 \n",
|
|
"4 4.471811e-03 72.576962 40.377516 55.010798 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 8.460932e-02 35.718442 49.655967 17.649243 \n",
|
|
"500 8.265744e-02 39.161026 50.804928 19.970953 \n",
|
|
"501 1.681011e-02 42.835779 62.312165 17.508028 \n",
|
|
"502 -1.893985e-03 50.837576 51.201160 14.531671 \n",
|
|
"503 7.939179e-07 51.448326 54.050552 9.273581 \n",
|
|
"\n",
|
|
" areaUnderAccelerationMagnitude area_XLow area_YLow area_ZLow \\\n",
|
|
"0 5330.383914 14420.999440 -3350.641321 27557.000001 \n",
|
|
"1 5357.677382 10865.253056 -3033.252188 27902.323548 \n",
|
|
"2 5430.496677 15722.297711 -14156.396220 15642.774418 \n",
|
|
"3 4335.662961 22389.054964 -13963.007308 2435.697567 \n",
|
|
"4 5395.581186 19409.122939 -14484.885912 180.145873 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 5350.702140 17583.763049 -24380.273741 8308.160445 \n",
|
|
"500 5337.171768 17261.897541 -24409.269350 8664.655729 \n",
|
|
"501 5471.304292 18922.657077 -23201.084064 5627.731332 \n",
|
|
"502 5391.568437 20860.878551 -23277.757290 -715.703219 \n",
|
|
"503 5236.681184 19686.330067 -20534.332597 3487.999778 \n",
|
|
"\n",
|
|
" averageVectorLength averageVectorLengthPower \\\n",
|
|
"0 62.571636 3915.209631 \n",
|
|
"1 62.828208 3947.383684 \n",
|
|
"2 65.670379 4312.598665 \n",
|
|
"3 66.911456 4477.142892 \n",
|
|
"4 73.431020 5392.114734 \n",
|
|
".. ... ... \n",
|
|
"499 62.381792 3891.487998 \n",
|
|
"500 62.447365 3899.673343 \n",
|
|
"501 62.910131 3957.684586 \n",
|
|
"502 62.841575 3949.063506 \n",
|
|
"503 58.941575 3474.109225 \n",
|
|
"\n",
|
|
" coefficientOfVariation_XBand coefficientOfVariation_YBand \\\n",
|
|
"0 1.541025 0.771037 \n",
|
|
"1 0.708974 0.585220 \n",
|
|
"2 0.386066 0.391320 \n",
|
|
"3 0.347936 0.349965 \n",
|
|
"4 0.330193 0.341132 \n",
|
|
".. ... ... \n",
|
|
"499 1.519349 1.736730 \n",
|
|
"500 0.951674 1.209954 \n",
|
|
"501 0.505862 0.831018 \n",
|
|
"502 0.804625 1.001523 \n",
|
|
"503 0.716975 0.902984 \n",
|
|
"\n",
|
|
" coefficientOfVariation_ZBand correlation_X_YBand correlation_X_ZBand \\\n",
|
|
"0 1.915226 0.999748 0.999992 \n",
|
|
"1 0.995279 0.999936 0.999982 \n",
|
|
"2 0.443334 0.999991 0.999988 \n",
|
|
"3 0.333548 0.999992 0.999992 \n",
|
|
"4 0.326846 0.999993 0.999992 \n",
|
|
".. ... ... ... \n",
|
|
"499 1.007314 0.999484 0.999985 \n",
|
|
"500 0.699102 0.999787 0.999988 \n",
|
|
"501 0.408757 0.999932 0.999987 \n",
|
|
"502 0.576986 0.999861 0.999947 \n",
|
|
"503 0.482851 0.999889 0.999968 \n",
|
|
"\n",
|
|
" correlation_Y_ZBand dominantFrequencyEnergy_XBand \\\n",
|
|
"0 0.999657 0.008964 \n",
|
|
"1 0.999909 0.018750 \n",
|
|
"2 0.999984 0.020694 \n",
|
|
"3 0.999992 0.015335 \n",
|
|
"4 0.999991 0.027059 \n",
|
|
".. ... ... \n",
|
|
"499 0.999638 0.009092 \n",
|
|
"500 0.999841 0.012191 \n",
|
|
"501 0.999948 0.015881 \n",
|
|
"502 0.999944 0.012228 \n",
|
|
"503 0.999951 0.016684 \n",
|
|
"\n",
|
|
" dominantFrequencyEnergy_YBand dominantFrequencyEnergy_ZBand \\\n",
|
|
"0 0.009608 0.009000 \n",
|
|
"1 0.024015 0.011299 \n",
|
|
"2 0.029685 0.019629 \n",
|
|
"3 0.029545 0.019664 \n",
|
|
"4 0.038101 0.021032 \n",
|
|
".. ... ... \n",
|
|
"499 0.008966 0.009465 \n",
|
|
"500 0.011666 0.015069 \n",
|
|
"501 0.012706 0.022372 \n",
|
|
"502 0.011949 0.014030 \n",
|
|
"503 0.013070 0.024085 \n",
|
|
"\n",
|
|
" entropy_XBand entropy_YBand entropy_ZBand fqAbsMean_X fqAbsMean_Y \\\n",
|
|
"0 7.803281 7.764458 7.798979 28.842 6.706 \n",
|
|
"1 7.592033 7.170297 7.763982 26.618 9.336 \n",
|
|
"2 7.428787 7.183324 7.549577 32.040 29.518 \n",
|
|
"3 7.531214 7.127566 7.475685 45.778 34.176 \n",
|
|
"4 7.416095 7.166612 7.373007 43.710 34.224 \n",
|
|
".. ... ... ... ... ... \n",
|
|
"499 7.796856 7.799046 7.791035 35.172 48.756 \n",
|
|
"500 7.748183 7.773281 7.696858 34.530 48.842 \n",
|
|
"501 7.643179 7.758942 7.449880 37.878 46.368 \n",
|
|
"502 7.717640 7.756327 7.483432 41.712 46.562 \n",
|
|
"503 7.629066 7.769570 6.972002 39.200 40.840 \n",
|
|
"\n",
|
|
" fqAbsMean_Z fqEnergyFeat_X fqEnergyFeat_Y fqEnergyFeat_Z \\\n",
|
|
"0 55.114 416147.0 22687.0 1518857.0 \n",
|
|
"1 55.804 370169.0 47400.0 1564792.0 \n",
|
|
"2 36.648 662796.0 660597.0 923012.0 \n",
|
|
"3 18.330 1304769.0 815064.0 254347.0 \n",
|
|
"4 31.546 1358605.0 862102.0 748213.0 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 16.616 618810.0 1188766.0 138268.0 \n",
|
|
"500 17.328 601149.0 1195095.0 154722.0 \n",
|
|
"501 11.712 785687.0 1115182.0 91322.0 \n",
|
|
"502 2.338 884896.0 1091337.0 8025.0 \n",
|
|
"503 7.004 848456.0 965204.0 38318.0 \n",
|
|
"\n",
|
|
" fqEntropyFeat_X fqEntropyFeat_Y fqEntropyFeat_Z fqHighestPeak1_X \\\n",
|
|
"0 2.056371 4.227074 1.091003 0.659914 \n",
|
|
"1 4.954203 5.151731 3.852122 1586.457564 \n",
|
|
"2 5.650713 5.174951 5.356747 190.676281 \n",
|
|
"3 5.673421 5.136240 5.765772 613.304285 \n",
|
|
"4 5.783132 5.565740 5.760390 878.499446 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 2.155353 1.477249 3.158663 0.075611 \n",
|
|
"500 3.715911 2.901126 4.330129 0.062029 \n",
|
|
"501 5.028585 4.208921 5.484010 299.897572 \n",
|
|
"502 4.861145 4.051993 5.942058 0.365282 \n",
|
|
"503 4.721612 4.266797 5.192156 0.837968 \n",
|
|
"\n",
|
|
" fqHighestPeak1_Y fqHighestPeak1_Z fqHighestPeak2_X fqHighestPeak2_Y \\\n",
|
|
"0 0.329848 0.062427 0.214743 0.142434 \n",
|
|
"1 244.301350 21.022571 844.302348 125.356487 \n",
|
|
"2 605.220870 660.676570 176.340483 559.722940 \n",
|
|
"3 3404.162602 1654.679747 511.048051 2426.512293 \n",
|
|
"4 617.961281 2966.643517 696.645541 510.218120 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 0.066151 0.152542 0.064141 0.045393 \n",
|
|
"500 0.109477 0.294831 0.059480 0.071158 \n",
|
|
"501 217.027649 59.428941 158.318483 105.919777 \n",
|
|
"502 0.393256 0.331209 0.185996 0.225281 \n",
|
|
"503 0.537947 3.181930 0.836692 0.526419 \n",
|
|
"\n",
|
|
" fqHighestPeak2_Z fqHighestPeak3_X fqHighestPeak3_Y fqHighestPeak3_Z \\\n",
|
|
"0 0.056354 0.201488 0.121684 0.044537 \n",
|
|
"1 10.221185 239.346016 47.646533 9.525602 \n",
|
|
"2 408.824249 159.845333 323.797473 388.611398 \n",
|
|
"3 282.492840 345.468368 953.173254 237.514909 \n",
|
|
"4 1258.914443 690.811103 347.967190 581.366504 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 0.146578 0.059236 0.040802 0.143887 \n",
|
|
"500 0.152252 0.048268 0.053454 0.089385 \n",
|
|
"501 58.678460 55.928570 35.348018 40.291161 \n",
|
|
"502 0.163962 0.136052 0.136601 0.156347 \n",
|
|
"503 3.038781 0.786312 0.431989 0.911122 \n",
|
|
"\n",
|
|
" fqHighestPeakFreq1_X fqHighestPeakFreq1_Y fqHighestPeakFreq1_Z \\\n",
|
|
"0 0.125 0.125 0.125 \n",
|
|
"1 0.125 0.125 0.125 \n",
|
|
"2 0.125 0.125 0.125 \n",
|
|
"3 0.250 0.250 0.125 \n",
|
|
"4 0.875 0.125 0.125 \n",
|
|
".. ... ... ... \n",
|
|
"499 4.625 4.250 0.250 \n",
|
|
"500 1.875 0.125 0.125 \n",
|
|
"501 0.125 0.125 0.250 \n",
|
|
"502 0.125 0.125 0.125 \n",
|
|
"503 0.250 1.000 0.125 \n",
|
|
"\n",
|
|
" fqHighestPeakFreq2_X fqHighestPeakFreq2_Y fqHighestPeakFreq2_Z \\\n",
|
|
"0 0.000 7.625 5.750 \n",
|
|
"1 0.250 0.250 2.000 \n",
|
|
"2 0.750 0.250 0.250 \n",
|
|
"3 0.125 0.125 0.250 \n",
|
|
"4 1.500 0.500 0.250 \n",
|
|
".. ... ... ... \n",
|
|
"499 4.250 4.375 3.625 \n",
|
|
"500 3.000 1.875 3.500 \n",
|
|
"501 0.250 0.250 0.125 \n",
|
|
"502 0.000 0.000 0.250 \n",
|
|
"503 1.000 1.250 0.250 \n",
|
|
"\n",
|
|
" fqHighestPeakFreq3_X fqHighestPeakFreq3_Y fqHighestPeakFreq3_Z \\\n",
|
|
"0 0.250 0.250 5.875 \n",
|
|
"1 0.375 0.375 1.875 \n",
|
|
"2 3.500 0.375 0.375 \n",
|
|
"3 0.375 0.375 0.500 \n",
|
|
"4 0.750 1.500 1.250 \n",
|
|
".. ... ... ... \n",
|
|
"499 4.500 3.875 4.000 \n",
|
|
"500 2.875 0.250 0.250 \n",
|
|
"501 0.375 0.375 0.375 \n",
|
|
"502 0.250 1.125 0.750 \n",
|
|
"503 1.750 1.375 0.375 \n",
|
|
"\n",
|
|
" fqHistogramBin10_X fqHistogramBin10_Y fqHistogramBin10_Z \\\n",
|
|
"0 0.059330 0.389456 0.753217 \n",
|
|
"1 0.000061 0.000015 0.051873 \n",
|
|
"2 0.025240 0.000251 0.005582 \n",
|
|
"3 0.018200 0.000005 0.000702 \n",
|
|
"4 0.049420 0.005158 0.002619 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.185922 0.043815 0.065751 \n",
|
|
"500 0.170029 0.096525 0.052775 \n",
|
|
"501 0.000928 0.000214 0.006905 \n",
|
|
"502 0.033254 0.015588 0.042798 \n",
|
|
"503 0.158842 0.020134 0.002435 \n",
|
|
"\n",
|
|
" fqHistogramBin1_X fqHistogramBin1_Y fqHistogramBin1_Z \\\n",
|
|
"0 0.917365 0.501879 0.145201 \n",
|
|
"1 0.996411 0.960550 0.354704 \n",
|
|
"2 0.343415 0.920326 0.845095 \n",
|
|
"3 0.716864 0.992726 0.989875 \n",
|
|
"4 0.194959 0.712702 0.878294 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.048028 0.141320 0.193154 \n",
|
|
"500 0.115791 0.465422 0.576209 \n",
|
|
"501 0.980711 0.968692 0.874908 \n",
|
|
"502 0.832916 0.823695 0.627951 \n",
|
|
"503 0.248169 0.072066 0.966204 \n",
|
|
"\n",
|
|
" fqHistogramBin2_X fqHistogramBin2_Y fqHistogramBin2_Z \\\n",
|
|
"0 0.000904 0.007043 0.041231 \n",
|
|
"1 0.002688 0.025178 0.043965 \n",
|
|
"2 0.187601 0.013045 0.076190 \n",
|
|
"3 0.074381 0.006033 0.006555 \n",
|
|
"4 0.455763 0.079752 0.031283 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.015525 0.069480 0.036488 \n",
|
|
"500 0.012550 0.014091 0.008415 \n",
|
|
"501 0.003834 0.017005 0.002335 \n",
|
|
"502 0.053437 0.093162 0.268378 \n",
|
|
"503 0.220826 0.303537 0.018221 \n",
|
|
"\n",
|
|
" fqHistogramBin3_X fqHistogramBin3_Y fqHistogramBin3_Z \\\n",
|
|
"0 0.012913 0.003186 0.028656 \n",
|
|
"1 0.000209 0.007173 0.172133 \n",
|
|
"2 0.038983 0.046723 0.022851 \n",
|
|
"3 0.123416 0.000264 0.000817 \n",
|
|
"4 0.190181 0.146581 0.060788 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.061261 0.021545 0.015547 \n",
|
|
"500 0.069835 0.080216 0.027630 \n",
|
|
"501 0.005995 0.003567 0.008486 \n",
|
|
"502 0.036650 0.050618 0.017483 \n",
|
|
"503 0.139805 0.432839 0.004041 \n",
|
|
"\n",
|
|
" fqHistogramBin4_X fqHistogramBin4_Y fqHistogramBin4_Z \\\n",
|
|
"0 0.001133 0.004548 0.001605 \n",
|
|
"1 0.000137 0.004941 0.209779 \n",
|
|
"2 0.059610 0.007699 0.019253 \n",
|
|
"3 0.039071 0.000808 0.001340 \n",
|
|
"4 0.023405 0.013695 0.005697 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.018228 0.115281 0.030084 \n",
|
|
"500 0.192815 0.165997 0.024964 \n",
|
|
"501 0.000197 0.007786 0.097574 \n",
|
|
"502 0.012061 0.011319 0.008113 \n",
|
|
"503 0.083092 0.057813 0.002771 \n",
|
|
"\n",
|
|
" fqHistogramBin5_X fqHistogramBin5_Y fqHistogramBin5_Z \\\n",
|
|
"0 0.000133 0.004992 0.008487 \n",
|
|
"1 0.000304 0.001234 0.087198 \n",
|
|
"2 0.109452 0.009152 0.015953 \n",
|
|
"3 0.014320 0.000140 0.000244 \n",
|
|
"4 0.053001 0.030390 0.005559 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.030837 0.012466 0.042601 \n",
|
|
"500 0.213722 0.010250 0.016697 \n",
|
|
"501 0.000435 0.002103 0.007861 \n",
|
|
"502 0.003046 0.000400 0.004838 \n",
|
|
"503 0.003842 0.042695 0.000124 \n",
|
|
"\n",
|
|
" fqHistogramBin6_X fqHistogramBin6_Y fqHistogramBin6_Z \\\n",
|
|
"0 0.002641 0.002711 0.004863 \n",
|
|
"1 0.000101 0.000490 0.041666 \n",
|
|
"2 0.201867 0.001369 0.005122 \n",
|
|
"3 0.005846 0.000012 0.000312 \n",
|
|
"4 0.010443 0.008340 0.010087 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.057460 0.021705 0.165463 \n",
|
|
"500 0.103490 0.103651 0.203756 \n",
|
|
"501 0.005911 0.000510 0.000915 \n",
|
|
"502 0.008047 0.002567 0.006263 \n",
|
|
"503 0.012732 0.036009 0.000879 \n",
|
|
"\n",
|
|
" fqHistogramBin7_X fqHistogramBin7_Y fqHistogramBin7_Z \\\n",
|
|
"0 0.001861 0.007453 0.002807 \n",
|
|
"1 0.000028 0.000260 0.015986 \n",
|
|
"2 0.021811 0.000078 0.007235 \n",
|
|
"3 0.002830 0.000002 0.000080 \n",
|
|
"4 0.009787 0.000881 0.001366 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.197672 0.376762 0.276174 \n",
|
|
"500 0.057769 0.033303 0.054540 \n",
|
|
"501 0.000476 0.000048 0.000353 \n",
|
|
"502 0.013900 0.000432 0.010065 \n",
|
|
"503 0.025386 0.023334 0.003946 \n",
|
|
"\n",
|
|
" fqHistogramBin8_X fqHistogramBin8_Y fqHistogramBin8_Z \\\n",
|
|
"0 0.001955 0.064559 0.007588 \n",
|
|
"1 0.000034 0.000109 0.011734 \n",
|
|
"2 0.010835 0.000937 0.001323 \n",
|
|
"3 0.002280 0.000002 0.000067 \n",
|
|
"4 0.010018 0.000904 0.003826 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.291858 0.129554 0.073230 \n",
|
|
"500 0.008201 0.018185 0.004613 \n",
|
|
"501 0.001449 0.000075 0.000293 \n",
|
|
"502 0.002615 0.001125 0.010125 \n",
|
|
"503 0.103507 0.008222 0.001323 \n",
|
|
"\n",
|
|
" fqHistogramBin9_X fqHistogramBin9_Y fqHistogramBin9_Z fqInterquart_X \\\n",
|
|
"0 0.001764 1.417175e-02 0.006344 1.0 \n",
|
|
"1 0.000028 4.913791e-05 0.010962 2.0 \n",
|
|
"2 0.001186 4.205692e-04 0.001395 19.0 \n",
|
|
"3 0.002791 6.951576e-06 0.000008 33.0 \n",
|
|
"4 0.003023 1.596709e-03 0.000482 45.0 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 0.093209 6.807324e-02 0.101508 1.0 \n",
|
|
"500 0.055798 1.235906e-02 0.030399 0.0 \n",
|
|
"501 0.000064 2.846989e-07 0.000369 17.0 \n",
|
|
"502 0.004074 1.095070e-03 0.003987 0.0 \n",
|
|
"503 0.003799 3.350736e-03 0.000056 3.0 \n",
|
|
"\n",
|
|
" fqInterquart_Y fqInterquart_Z fqKurtosis_X fqKurtosis_Y fqKurtosis_Z \\\n",
|
|
"0 1.00 0.0 82.921957 37.277378 6.172148 \n",
|
|
"1 3.00 1.0 76.273672 71.165185 15.416382 \n",
|
|
"2 35.00 45.0 6.878412 37.918868 31.087918 \n",
|
|
"3 44.25 29.0 22.193253 59.206577 109.082455 \n",
|
|
"4 38.50 55.0 14.428181 21.579397 68.114033 \n",
|
|
".. ... ... ... ... ... \n",
|
|
"499 1.00 1.0 3.493950 6.700808 7.553704 \n",
|
|
"500 0.25 1.0 6.446087 22.380162 45.749892 \n",
|
|
"501 14.25 8.0 73.117153 75.619776 29.411194 \n",
|
|
"502 1.00 1.0 55.401241 51.909021 31.568406 \n",
|
|
"503 4.25 3.0 3.812462 8.022810 52.037962 \n",
|
|
"\n",
|
|
" fqSkewness_X fqSkewness_Y fqSkewness_Z \\\n",
|
|
"0 8.685933 5.237774 2.194513 \n",
|
|
"1 8.554455 8.103869 3.253087 \n",
|
|
"2 2.634778 6.003941 5.233903 \n",
|
|
"3 4.341981 7.604222 10.282016 \n",
|
|
"4 3.633590 4.341104 7.689533 \n",
|
|
".. ... ... ... \n",
|
|
"499 1.894942 2.466336 2.691462 \n",
|
|
"500 2.245002 4.119326 6.033663 \n",
|
|
"501 8.293539 8.386964 5.246583 \n",
|
|
"502 6.920554 6.770191 5.179224 \n",
|
|
"503 2.074293 2.809057 7.181060 \n",
|
|
"\n",
|
|
" interQuartileRangeMagnitudesBand interQuartileRange_XBand \\\n",
|
|
"0 0.116283 0.108442 \n",
|
|
"1 0.515822 0.245962 \n",
|
|
"2 7.383329 2.079383 \n",
|
|
"3 4.620823 4.435474 \n",
|
|
"4 7.758987 9.680704 \n",
|
|
".. ... ... \n",
|
|
"499 0.140573 0.070322 \n",
|
|
"500 0.356938 0.083357 \n",
|
|
"501 1.881589 0.645332 \n",
|
|
"502 0.720664 0.200399 \n",
|
|
"503 1.160543 0.326100 \n",
|
|
"\n",
|
|
" interQuartileRange_YBand interQuartileRange_ZBand kurtosis_XBand \\\n",
|
|
"0 0.081722 0.065099 230.852565 \n",
|
|
"1 0.251985 0.266026 60.605795 \n",
|
|
"2 1.559643 1.743397 2.674175 \n",
|
|
"3 3.394423 3.348774 0.775528 \n",
|
|
"4 6.326923 8.676731 0.356543 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.074261 0.176276 225.023923 \n",
|
|
"500 0.123523 0.143614 177.722773 \n",
|
|
"501 0.435514 0.552009 55.645718 \n",
|
|
"502 0.154690 0.196822 120.080582 \n",
|
|
"503 0.281286 0.224567 78.167856 \n",
|
|
"\n",
|
|
" kurtosis_YBand kurtosis_ZBand manipulationLow meanCrossingRate_XBand \\\n",
|
|
"0 164.957757 229.058361 0.018765 13.0 \n",
|
|
"1 18.028431 181.277262 0.018541 23.0 \n",
|
|
"2 0.970036 19.627766 0.023965 41.0 \n",
|
|
"3 0.244360 0.024724 0.026066 59.0 \n",
|
|
"4 1.039344 -0.283146 0.026051 80.0 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 222.308079 211.547373 0.028112 19.0 \n",
|
|
"500 200.121968 120.912006 0.027962 16.0 \n",
|
|
"501 162.283176 5.298307 0.030719 49.0 \n",
|
|
"502 170.359071 41.987689 0.034514 31.0 \n",
|
|
"503 180.353197 6.524585 16.298247 27.0 \n",
|
|
"\n",
|
|
" meanCrossingRate_YBand meanCrossingRate_ZBand meanKineticEnergy_XBand \\\n",
|
|
"0 26.0 1.0 25623.466885 \n",
|
|
"1 28.0 17.0 25623.457823 \n",
|
|
"2 35.0 31.0 25623.470198 \n",
|
|
"3 42.0 80.0 19042.431778 \n",
|
|
"4 46.0 61.0 67303.477598 \n",
|
|
".. ... ... ... \n",
|
|
"499 10.0 37.0 37323.124131 \n",
|
|
"500 8.0 24.0 39486.339334 \n",
|
|
"501 22.0 39.0 37323.128222 \n",
|
|
"502 24.0 34.0 53745.297878 \n",
|
|
"503 14.0 24.0 41710.499213 \n",
|
|
"\n",
|
|
" meanKineticEnergy_YBand meanKineticEnergy_ZBand mean_XLow mean_YLow \\\n",
|
|
"0 1096.843008 9.216527e+04 28.841999 -6.701283 \n",
|
|
"1 1492.924665 9.216527e+04 21.730506 -6.066504 \n",
|
|
"2 3046.793625 9.216521e+04 31.444595 -28.312792 \n",
|
|
"3 2467.903796 1.949942e+03 44.778110 -27.926015 \n",
|
|
"4 20596.274067 3.317945e+04 38.818246 -28.969772 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 73153.322291 8.805210e+03 35.167526 -48.760547 \n",
|
|
"500 70197.942449 8.805211e+03 34.523795 -48.818539 \n",
|
|
"501 88844.250780 3.046786e+03 37.845314 -46.402168 \n",
|
|
"502 67303.493481 1.218714e+02 41.721757 -46.555515 \n",
|
|
"503 73153.306037 7.324061e-08 39.372660 -41.068665 \n",
|
|
"\n",
|
|
" mean_ZLow peaksAmplitudeAvgLow peaksCountLow peaksPeakAvgLow \\\n",
|
|
"0 55.114000 0.000000 0.0 0.000000 \n",
|
|
"1 55.804647 0.025651 14.0 66.347089 \n",
|
|
"2 31.285549 0.003297 40.0 71.749715 \n",
|
|
"3 4.871395 0.195948 81.0 68.373870 \n",
|
|
"4 0.360292 0.014893 76.0 74.287445 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 16.616321 0.052488 4.0 63.068346 \n",
|
|
"500 17.329311 0.348241 12.0 63.974253 \n",
|
|
"501 11.255463 0.003551 35.0 65.307378 \n",
|
|
"502 -1.431406 0.029812 16.0 65.606093 \n",
|
|
"503 6.976000 0.047245 20.0 65.067478 \n",
|
|
"\n",
|
|
" peaksSumLow pitchAvgLow pitchPeak0 pitchPeak1 pitchPeak2 pitchPeak3 \\\n",
|
|
"0 0.000000 0.000938 0.0 0.000000 0.000000 0.000000 \n",
|
|
"1 928.859251 0.015892 0.0 0.000000 0.000000 0.000000 \n",
|
|
"2 2869.988603 0.132808 0.0 0.000000 0.000000 0.000000 \n",
|
|
"3 5538.283465 1.441479 0.0 0.000000 0.000000 0.000000 \n",
|
|
"4 5645.845839 1.611968 4.0 -0.489273 -0.122318 0.012606 \n",
|
|
".. ... ... ... ... ... ... \n",
|
|
"499 252.273386 0.002021 0.0 0.000000 0.000000 0.000000 \n",
|
|
"500 767.691038 0.011532 0.0 0.000000 0.000000 0.000000 \n",
|
|
"501 2285.758227 0.059133 0.0 0.000000 0.000000 0.000000 \n",
|
|
"502 1049.697496 0.052483 0.0 0.000000 0.000000 0.000000 \n",
|
|
"503 1301.349551 1.560049 0.0 0.000000 0.000000 0.000000 \n",
|
|
"\n",
|
|
" pitchStdDevLow postureDistance_XLow postureDistance_YLow \\\n",
|
|
"0 0.000217 35.543282 -26.272001 \n",
|
|
"1 0.004891 27.797010 -34.074141 \n",
|
|
"2 0.016102 59.757388 0.159047 \n",
|
|
"3 0.103448 72.704125 39.906715 \n",
|
|
"4 0.206093 67.788018 38.457954 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.000332 83.928074 18.551205 \n",
|
|
"500 0.001512 83.342334 17.194484 \n",
|
|
"501 0.014748 84.247482 26.589851 \n",
|
|
"502 0.004246 88.277272 43.153164 \n",
|
|
"503 0.336867 80.441325 32.396661 \n",
|
|
"\n",
|
|
" postureDistance_ZLow quartilesMagnitudes_XBand \\\n",
|
|
"0 -61.815283 0.061738 \n",
|
|
"1 -61.871151 0.145435 \n",
|
|
"2 -59.598341 0.281532 \n",
|
|
"3 -32.797410 2.869744 \n",
|
|
"4 -29.330064 6.280481 \n",
|
|
".. ... ... \n",
|
|
"499 -65.376868 0.086797 \n",
|
|
"500 -66.147850 0.054171 \n",
|
|
"501 -57.657631 0.188673 \n",
|
|
"502 -45.124108 0.103420 \n",
|
|
"503 -48.044665 0.103100 \n",
|
|
"\n",
|
|
" quartilesMagnitudes_YBand quartilesMagnitudes_ZBand quartilesQ1_XBand \\\n",
|
|
"0 0.118949 0.178021 -0.054443 \n",
|
|
"1 0.260237 0.661256 -0.086167 \n",
|
|
"2 3.402929 7.664861 -1.268853 \n",
|
|
"3 4.702810 7.490567 -2.200263 \n",
|
|
"4 9.396958 14.039468 -4.611741 \n",
|
|
".. ... ... ... \n",
|
|
"499 0.145225 0.227369 -0.017104 \n",
|
|
"500 0.152417 0.411110 -0.035056 \n",
|
|
"501 0.795689 2.070261 -0.347386 \n",
|
|
"502 0.191260 0.824083 -0.074998 \n",
|
|
"503 0.332578 1.263642 -0.120617 \n",
|
|
"\n",
|
|
" quartilesQ1_YBand quartilesQ1_ZBand quartilesQ2_XBand \\\n",
|
|
"0 -0.032033 -0.039487 -0.009518 \n",
|
|
"1 -0.135954 -0.136618 0.013514 \n",
|
|
"2 -1.243138 -1.259616 -0.007098 \n",
|
|
"3 -2.005430 -1.505724 0.084118 \n",
|
|
"4 -3.234598 -4.618432 0.041283 \n",
|
|
".. ... ... ... \n",
|
|
"499 -0.035340 -0.078979 0.003914 \n",
|
|
"500 -0.090815 -0.069541 0.000288 \n",
|
|
"501 -0.245273 -0.317599 -0.000426 \n",
|
|
"502 -0.084686 -0.089356 0.000005 \n",
|
|
"503 -0.173414 -0.101217 -0.000454 \n",
|
|
"\n",
|
|
" quartilesQ2_YBand quartilesQ2_ZBand quartilesQ3_XBand \\\n",
|
|
"0 1.454335e-02 2.479075e-07 0.053999 \n",
|
|
"1 4.007931e-04 2.578741e-03 0.159795 \n",
|
|
"2 -5.021189e-02 3.661978e-06 0.810530 \n",
|
|
"3 -1.789399e-01 2.803538e-02 2.235211 \n",
|
|
"4 3.167752e-01 -6.475688e-02 5.068963 \n",
|
|
".. ... ... ... \n",
|
|
"499 -2.528229e-06 -8.867480e-03 0.053218 \n",
|
|
"500 -1.020861e-04 7.748469e-12 0.048301 \n",
|
|
"501 -1.606221e-04 -3.735316e-03 0.297946 \n",
|
|
"502 3.517538e-04 2.042814e-04 0.125401 \n",
|
|
"503 -1.027010e-09 -1.098812e-03 0.205484 \n",
|
|
"\n",
|
|
" quartilesQ3_YBand quartilesQ3_ZBand rollAvgLow rollMotionAmountLow \\\n",
|
|
"0 0.049688 0.025612 0.029061 0.008021 \n",
|
|
"1 0.116031 0.129407 0.541524 0.085935 \n",
|
|
"2 0.316505 0.483781 6.280891 1.447569 \n",
|
|
"3 1.388993 1.843050 6.271116 2.250457 \n",
|
|
"4 3.092325 4.058300 6.265128 2.342195 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 0.038921 0.097297 0.071320 0.007932 \n",
|
|
"500 0.032708 0.074073 0.372438 0.031162 \n",
|
|
"501 0.190241 0.234410 6.278076 0.962455 \n",
|
|
"502 0.070004 0.107466 6.281475 1.129232 \n",
|
|
"503 0.107873 0.123350 1.133865 0.133845 \n",
|
|
"\n",
|
|
" rollMotionRegularityLow rollPeak0 rollPeak1 rollPeak2 rollPeak3 \\\n",
|
|
"0 1.000 0.0 0.000000 0.000000 0.000000 \n",
|
|
"1 1.000 0.0 0.000000 0.000000 0.000000 \n",
|
|
"2 1.000 9.0 21.707206 2.411912 0.002484 \n",
|
|
"3 0.988 11.0 28.398787 2.581708 0.025052 \n",
|
|
"4 0.998 27.0 57.342009 2.123778 0.000035 \n",
|
|
".. ... ... ... ... ... \n",
|
|
"499 1.000 0.0 0.000000 0.000000 0.000000 \n",
|
|
"500 1.000 0.0 0.000000 0.000000 0.000000 \n",
|
|
"501 1.000 4.0 12.485143 3.121286 0.003238 \n",
|
|
"502 1.000 3.0 9.145478 3.048493 2.092086 \n",
|
|
"503 1.000 0.0 0.000000 0.000000 0.000000 \n",
|
|
"\n",
|
|
" rollPitchCorrelation rollStdDevLow skewness_XBand skewness_YBand \\\n",
|
|
"0 1.000000 0.008562 14.436898 -11.494984 \n",
|
|
"1 0.999999 0.123100 2.807118 -1.100507 \n",
|
|
"2 0.999997 1.958079 -0.633833 -1.197336 \n",
|
|
"3 0.999995 2.397779 -0.833540 -1.348253 \n",
|
|
"4 0.999985 2.419125 -1.132133 -1.665492 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 1.000000 0.009974 14.222786 -14.169953 \n",
|
|
"500 1.000000 0.054444 11.853592 -13.132488 \n",
|
|
"501 0.999998 1.701608 4.491024 -11.201286 \n",
|
|
"502 0.999999 1.866030 8.739616 -11.817088 \n",
|
|
"503 0.999986 0.215263 4.777859 -12.139106 \n",
|
|
"\n",
|
|
" skewness_ZBand squareSumOfComponent squareSumOfComponent_X \\\n",
|
|
"0 14.424527 1.619926e+07 867.287775 \n",
|
|
"1 12.046715 1.630370e+07 865.242225 \n",
|
|
"2 1.684239 1.654691e+07 870.233406 \n",
|
|
"3 -1.359373 6.736924e+05 661.235510 \n",
|
|
"4 -1.256109 1.680410e+07 2273.525442 \n",
|
|
".. ... ... ... \n",
|
|
"499 13.535020 1.630266e+07 1263.693630 \n",
|
|
"500 8.691259 1.608824e+07 1335.055131 \n",
|
|
"501 -0.771061 1.905301e+07 1266.701486 \n",
|
|
"502 2.300305 1.681807e+07 1819.059819 \n",
|
|
"503 -0.432671 1.504212e+07 1414.613179 \n",
|
|
"\n",
|
|
" squareSumOfComponent_Y squareSumOfComponent_Z sumOfSquareComponents \\\n",
|
|
"0 37.266065 3120.276758 1.048970e+07 \n",
|
|
"1 51.060403 3121.481343 1.049490e+07 \n",
|
|
"2 109.430560 3088.125621 1.030580e+07 \n",
|
|
"3 90.891793 68.660385 4.502080e+05 \n",
|
|
"4 704.049839 1121.705691 6.922828e+06 \n",
|
|
".. ... ... ... \n",
|
|
"499 2476.085590 297.876317 7.816652e+06 \n",
|
|
"500 2377.699120 298.260456 7.524785e+06 \n",
|
|
"501 2994.586208 103.687125 1.058283e+07 \n",
|
|
"502 2277.777042 4.147205 8.497264e+06 \n",
|
|
"503 2463.791439 0.011977 8.071399e+06 \n",
|
|
"\n",
|
|
" sumPerComponent_XBand sumPerComponent_YBand sumPerComponent_ZBand \\\n",
|
|
"0 29.002355 6.001318 55.003283 \n",
|
|
"1 29.009274 7.006492 55.008412 \n",
|
|
"2 29.038915 10.034777 55.036378 \n",
|
|
"3 25.052536 9.039004 8.037320 \n",
|
|
"4 47.093516 26.066646 33.087563 \n",
|
|
".. ... ... ... \n",
|
|
"499 35.002929 49.003488 17.002448 \n",
|
|
"500 36.005837 48.005767 17.004361 \n",
|
|
"501 35.015515 54.010908 10.011338 \n",
|
|
"502 42.009258 47.007507 2.004713 \n",
|
|
"503 37.010612 49.008707 0.006081 \n",
|
|
"\n",
|
|
" totalAbsoluteAreaBand totalEnergy_XBand totalEnergy_YBand \\\n",
|
|
"0 312.592555 1290.394581 60.611492 \n",
|
|
"1 864.715960 2537.180818 677.832377 \n",
|
|
"2 3616.215615 9218.952240 6770.834825 \n",
|
|
"3 4165.495456 12493.455174 6106.239879 \n",
|
|
"4 8033.196394 33021.472511 16683.117998 \n",
|
|
".. ... ... ... \n",
|
|
"499 384.671068 1908.638778 3729.334512 \n",
|
|
"500 611.899981 2211.472549 3700.438879 \n",
|
|
"501 1307.327021 3237.943851 5051.325838 \n",
|
|
"502 778.281403 3591.558470 3805.375198 \n",
|
|
"503 898.820043 3413.563386 4090.414372 \n",
|
|
"\n",
|
|
" totalEnergy_ZBand totalKineticEnergyBand totalMagnitudeBand \\\n",
|
|
"0 4694.902256 3.782695e+09 78.088845 \n",
|
|
"1 5132.819023 3.795297e+09 91.657431 \n",
|
|
"2 11785.651118 3.844737e+09 166.747125 \n",
|
|
"3 5277.603869 7.464573e+08 154.645146 \n",
|
|
"4 26879.848539 3.852492e+09 276.840101 \n",
|
|
".. ... ... ... \n",
|
|
"499 455.208874 3.795297e+09 78.389786 \n",
|
|
"500 572.202692 3.770092e+09 80.859842 \n",
|
|
"501 895.466940 4.111329e+09 96.114795 \n",
|
|
"502 341.436881 3.855401e+09 88.266159 \n",
|
|
"503 365.728609 3.654731e+09 88.770283 \n",
|
|
"\n",
|
|
" totalMeanLow variance_XBand variance_YBand variance_ZBand \\\n",
|
|
"0 12875.786040 2.586383 0.137999 9.396457 \n",
|
|
"1 11911.441472 5.334184 1.579538 10.411239 \n",
|
|
"2 5736.225303 24.202143 19.306809 29.209739 \n",
|
|
"3 3620.581741 35.239450 19.355604 16.080099 \n",
|
|
"4 1701.460966 100.726696 54.227260 85.860586 \n",
|
|
".. ... ... ... ... \n",
|
|
"499 503.883251 3.825507 7.779741 0.922262 \n",
|
|
"500 505.761307 4.495299 7.917488 1.197929 \n",
|
|
"501 449.768115 7.228331 11.218333 2.322136 \n",
|
|
"502 -1044.193986 7.407112 8.274669 0.777455 \n",
|
|
"503 879.999083 7.290436 8.752011 0.882940 \n",
|
|
"\n",
|
|
" velocity_XBand velocity_YBand velocity_ZBand \n",
|
|
"0 29.001359 -6.000329 5.500258e+01 \n",
|
|
"1 29.001351 -7.000462 5.500257e+01 \n",
|
|
"2 29.001408 -10.002113 5.499929e+01 \n",
|
|
"3 25.002506 -9.002192 8.000601e+00 \n",
|
|
"4 47.001504 -26.003086 3.299904e+01 \n",
|
|
".. ... ... ... \n",
|
|
"499 35.001684 -49.002253 1.700079e+01 \n",
|
|
"500 36.001692 -48.002424 1.700076e+01 \n",
|
|
"501 35.001969 -54.002179 9.999950e+00 \n",
|
|
"502 42.001899 -47.002248 -1.999967e+00 \n",
|
|
"503 37.000000 -49.000000 1.240497e-08 \n",
|
|
"\n",
|
|
"[504 rows x 169 columns]\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from calculatingfeatures.CalculatingFeatures.helper_functions import convert3DEmpaticaToArray\n",
|
|
"\n",
|
|
"pathToAccCsv = \"example_data/S2_E4_Data/ACC.csv\"\n",
|
|
"windowLength = 500\n",
|
|
"\n",
|
|
"#np.seterr(all='raise')\n",
|
|
"\n",
|
|
"# get an array of values from ACC empatica file\n",
|
|
"data, startTimeStamp, sampleRate = convert3DEmpaticaToArray(pathToAccCsv)\n",
|
|
"\n",
|
|
"# Convert the ACC data into 2D array\n",
|
|
"x_2D = convertInputInto2d(data[0], windowLength)\n",
|
|
"y_2D = convertInputInto2d(data[1], windowLength)\n",
|
|
"z_2D = convertInputInto2d(data[2], windowLength)\n",
|
|
"\n",
|
|
"# Create a list with feature names\n",
|
|
"featureNames = []\n",
|
|
"featureNames.extend(accelerometerFeatureNames)\n",
|
|
"featureNames.extend(frequencyFeatureNames)\n",
|
|
"\n",
|
|
"pd.set_option('display.max_columns', None)\n",
|
|
"\n",
|
|
"# Calculate features\n",
|
|
"calculatedFeatures = calculateFeatures(x_2D, y_2D, z_2D, fs=int(sampleRate), featureNames=featureNames)\n",
|
|
"print(calculatedFeatures)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## convertInputInto2dTime"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[[10, 150, 1100, 1150], [1200, 1300], [1400, 1500], [1600]]\n",
|
|
"[[0, 50, 100, 150], [200, 300], [400, 500], [600]]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"df = pd.DataFrame()\n",
|
|
"df[\"data\"] = [10, 150, 1100, 1150, 1200, 1300, 1400, 1500, 1600]\n",
|
|
"df[\"time\"] = [0, 50, 100, 150, 200, 300, 400, 500, 600]\n",
|
|
"\n",
|
|
"outData, outTime = convertInputInto2dTime(df, 200)\n",
|
|
"print(outData)\n",
|
|
"print(outTime)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Calculate all features"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" 24%|██▎ | 4/17 [00:03<00:11, 1.12it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\r",
|
|
" 29%|██▉ | 5/17 [00:04<00:11, 1.08it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\r",
|
|
" 35%|███▌ | 6/17 [00:05<00:10, 1.09it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n",
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" 53%|█████▎ | 9/17 [00:08<00:07, 1.06it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\r",
|
|
" 59%|█████▉ | 10/17 [00:09<00:06, 1.07it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" 71%|███████ | 12/17 [00:11<00:04, 1.12it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" 88%|████████▊ | 15/17 [00:13<00:01, 1.06it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100%|██████████| 17/17 [00:15<00:00, 1.09it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Bad signal. Too little RRs detected. 1\n",
|
|
"Bad signal. Too little RRs detected. 1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" absEnergy_X absEnergy_Y absEnergy_Z absoluteAreaAllBand \\\n",
|
|
"0 9757.282156 10849.028553 9811.741631 930.324637 \n",
|
|
"1 9448.079674 8899.975693 9956.680101 880.255964 \n",
|
|
"2 9669.760737 9184.529987 9121.402956 889.394563 \n",
|
|
"3 10026.356290 9801.236188 9982.377726 920.462589 \n",
|
|
"4 9709.603922 10691.230186 9662.734156 906.331468 \n",
|
|
"5 10233.693555 10371.886729 10563.612304 922.999063 \n",
|
|
"6 9482.841316 10326.075806 10154.052192 891.241288 \n",
|
|
"7 9520.121266 10241.641412 10387.903719 889.958466 \n",
|
|
"8 10395.792313 10179.629166 10107.379246 899.898502 \n",
|
|
"9 11026.931493 9834.741763 10120.339487 937.539507 \n",
|
|
"10 9574.581294 8891.577695 9480.013849 853.098151 \n",
|
|
"11 10266.304113 9524.407888 9519.015587 894.370062 \n",
|
|
"12 9639.580580 9683.493055 10251.534492 912.690717 \n",
|
|
"13 10149.017500 9632.893918 9966.713340 896.978822 \n",
|
|
"14 9190.474376 10330.498873 10536.313374 904.039012 \n",
|
|
"15 10890.487664 10640.928635 10044.509683 949.133312 \n",
|
|
"16 6484.122156 6140.316953 7010.804341 618.770314 \n",
|
|
"\n",
|
|
" absoluteArea_XBand absoluteArea_YBand absoluteArea_ZBand \\\n",
|
|
"0 9.802377 -3.995068 4.135917 \n",
|
|
"1 11.552164 -11.852706 6.764970 \n",
|
|
"2 -6.075127 -14.974184 -3.550690 \n",
|
|
"3 13.940072 -1.208619 -5.439318 \n",
|
|
"4 -0.778795 -8.573990 9.118902 \n",
|
|
"5 -5.432606 -2.345853 -5.366276 \n",
|
|
"6 -10.268284 1.608141 -2.508280 \n",
|
|
"7 7.573499 -3.973162 9.895818 \n",
|
|
"8 2.323463 -7.297003 5.956317 \n",
|
|
"9 0.066851 11.319004 4.828713 \n",
|
|
"10 -5.535852 -3.323174 9.748395 \n",
|
|
"11 -7.277916 -9.262661 6.302632 \n",
|
|
"12 -4.434544 -4.278268 6.222900 \n",
|
|
"13 -7.436684 3.024444 -5.008479 \n",
|
|
"14 4.340700 2.523212 7.274647 \n",
|
|
"15 -0.108792 -12.711790 11.993602 \n",
|
|
"16 6.800276 8.102356 9.725532 \n",
|
|
"\n",
|
|
" absoluteMean_XBand absoluteMean_YBand absoluteMean_ZBand \\\n",
|
|
"0 0.032675 -0.013317 0.013786 \n",
|
|
"1 0.038507 -0.039509 0.022550 \n",
|
|
"2 -0.020250 -0.049914 -0.011836 \n",
|
|
"3 0.046467 -0.004029 -0.018131 \n",
|
|
"4 -0.002596 -0.028580 0.030396 \n",
|
|
"5 -0.018109 -0.007820 -0.017888 \n",
|
|
"6 -0.034228 0.005360 -0.008361 \n",
|
|
"7 0.025245 -0.013244 0.032986 \n",
|
|
"8 0.007745 -0.024323 0.019854 \n",
|
|
"9 0.000223 0.037730 0.016096 \n",
|
|
"10 -0.018453 -0.011077 0.032495 \n",
|
|
"11 -0.024260 -0.030876 0.021009 \n",
|
|
"12 -0.014782 -0.014261 0.020743 \n",
|
|
"13 -0.024789 0.010081 -0.016695 \n",
|
|
"14 0.014469 0.008411 0.024249 \n",
|
|
"15 -0.000363 -0.042373 0.039979 \n",
|
|
"16 0.022668 0.027008 0.032418 \n",
|
|
"\n",
|
|
" amplitude_XBand amplitude_XLow amplitude_YBand amplitude_YLow \\\n",
|
|
"0 11.840441 15.367655 5.561830 13.599581 \n",
|
|
"1 10.842231 13.185562 11.954154 15.408985 \n",
|
|
"2 12.065636 15.300944 12.504229 15.425589 \n",
|
|
"3 9.885092 13.416908 5.636100 12.551434 \n",
|
|
"4 5.721227 12.760709 10.656748 13.420126 \n",
|
|
"5 6.394455 12.454305 7.781983 13.642673 \n",
|
|
"6 11.251708 14.216014 8.006252 12.116988 \n",
|
|
"7 9.572914 12.906963 5.469677 12.083638 \n",
|
|
"8 5.521984 12.295475 10.685971 14.293234 \n",
|
|
"9 5.739659 12.753636 12.351271 15.905907 \n",
|
|
"10 9.259486 12.892579 7.553088 11.666330 \n",
|
|
"11 12.682163 15.907374 10.232092 12.641317 \n",
|
|
"12 10.885035 13.532587 7.599297 11.406162 \n",
|
|
"13 8.409818 13.167735 6.321747 11.584058 \n",
|
|
"14 5.417743 12.668153 7.214473 12.111088 \n",
|
|
"15 5.565133 13.389627 12.269357 15.438568 \n",
|
|
"16 9.572596 11.662286 10.803180 14.518034 \n",
|
|
"\n",
|
|
" amplitude_ZBand amplitude_ZLow areaAutocorr_X areaAutocorr_Y \\\n",
|
|
"0 6.120984 12.077082 1.251150 0.346077 \n",
|
|
"1 7.338200 13.034990 0.613081 -0.337795 \n",
|
|
"2 8.157018 11.770679 1.320552 0.285729 \n",
|
|
"3 5.816986 11.504766 -0.714717 0.104095 \n",
|
|
"4 10.494853 13.742355 -0.177515 0.744384 \n",
|
|
"5 8.948602 12.838789 -0.284261 0.190317 \n",
|
|
"6 5.537172 12.112158 0.403123 2.862261 \n",
|
|
"7 12.102983 14.971049 1.163917 0.491810 \n",
|
|
"8 4.930710 12.311160 1.211632 0.166704 \n",
|
|
"9 8.926564 12.662584 0.403719 0.886899 \n",
|
|
"10 12.090767 15.875714 0.957135 1.056713 \n",
|
|
"11 5.467044 11.685198 0.034285 0.114891 \n",
|
|
"12 11.504623 14.014334 0.083044 -0.309026 \n",
|
|
"13 7.422933 12.495047 2.116489 -0.061512 \n",
|
|
"14 6.803331 10.741192 1.100854 0.394110 \n",
|
|
"15 10.905015 14.203833 1.739354 0.889813 \n",
|
|
"16 12.463576 15.348119 NaN NaN \n",
|
|
"\n",
|
|
" areaAutocorr_Z areaUnderAccelerationMagnitude areaUnderMagnitude \\\n",
|
|
"0 0.489267 817.023838 817.023838 \n",
|
|
"1 1.201937 746.603640 746.603640 \n",
|
|
"2 0.731113 863.282811 863.282811 \n",
|
|
"3 0.980113 797.080198 797.080198 \n",
|
|
"4 0.461838 627.711913 627.711913 \n",
|
|
"5 0.885326 793.145688 793.145688 \n",
|
|
"6 0.046986 751.758387 751.758387 \n",
|
|
"7 0.285232 804.852128 804.852128 \n",
|
|
"8 1.022880 737.318718 737.318718 \n",
|
|
"9 0.418596 748.433836 748.433836 \n",
|
|
"10 1.295665 729.288649 729.288649 \n",
|
|
"11 0.433735 832.523937 832.523937 \n",
|
|
"12 0.114227 874.454264 874.454264 \n",
|
|
"13 0.895080 684.783664 684.783664 \n",
|
|
"14 0.864031 684.304828 684.304828 \n",
|
|
"15 0.615599 845.185357 845.185357 \n",
|
|
"16 NaN 889.558912 889.558912 \n",
|
|
"\n",
|
|
" area_XLow area_YLow area_ZLow autocorrelation_100_X \\\n",
|
|
"0 8.507300 17.448677 -93.586973 -0.033598 \n",
|
|
"1 195.204955 -2.151729 -22.210498 -0.128406 \n",
|
|
"2 14.886643 -72.277090 3.763140 -0.045989 \n",
|
|
"3 -6.580937 -57.815404 64.301458 -0.114063 \n",
|
|
"4 -33.226356 -169.940579 -44.658588 -0.023989 \n",
|
|
"5 92.264979 54.311395 114.608368 -0.006580 \n",
|
|
"6 146.122043 106.458752 -12.069510 0.071640 \n",
|
|
"7 81.070954 9.782555 101.605517 0.114433 \n",
|
|
"8 76.638693 57.580025 -135.876734 0.025191 \n",
|
|
"9 19.624899 43.201275 151.705470 -0.047697 \n",
|
|
"10 -16.976897 2.086521 3.798669 0.081849 \n",
|
|
"11 4.496054 17.036321 -78.608625 0.073983 \n",
|
|
"12 2.403524 -47.309146 161.572935 0.137246 \n",
|
|
"13 -156.226880 19.395747 7.455774 0.020696 \n",
|
|
"14 -25.123373 -32.135156 -54.622977 0.048791 \n",
|
|
"15 -3.221847 -77.477830 -75.762919 0.186899 \n",
|
|
"16 120.936148 -69.355449 158.385979 -0.076146 \n",
|
|
"\n",
|
|
" autocorrelation_100_Y autocorrelation_100_Z autocorrelation_10_X \\\n",
|
|
"0 0.059537 0.053420 0.106405 \n",
|
|
"1 0.103122 0.007333 0.045905 \n",
|
|
"2 0.039841 0.040569 -0.054911 \n",
|
|
"3 0.034858 0.000401 -0.008231 \n",
|
|
"4 0.090927 -0.158701 0.071754 \n",
|
|
"5 0.012849 0.006175 0.009983 \n",
|
|
"6 -0.050546 0.037803 0.045039 \n",
|
|
"7 -0.154497 0.117893 -0.042434 \n",
|
|
"8 0.078231 -0.106049 0.074367 \n",
|
|
"9 -0.033887 0.048270 0.089410 \n",
|
|
"10 -0.043212 0.116065 0.060132 \n",
|
|
"11 0.008015 -0.043320 -0.017004 \n",
|
|
"12 0.061625 -0.075384 0.034301 \n",
|
|
"13 -0.025759 -0.025377 0.031711 \n",
|
|
"14 0.009157 0.018478 -0.044737 \n",
|
|
"15 0.075965 -0.007770 0.038175 \n",
|
|
"16 -0.065110 0.043484 -0.065927 \n",
|
|
"\n",
|
|
" autocorrelation_10_Y autocorrelation_10_Z autocorrelation_20_X \\\n",
|
|
"0 -0.100977 -0.038760 0.040176 \n",
|
|
"1 0.052315 -0.034063 0.127281 \n",
|
|
"2 0.001645 -0.038531 -0.017747 \n",
|
|
"3 0.023636 0.033845 0.054339 \n",
|
|
"4 -0.067678 -0.037247 0.064662 \n",
|
|
"5 -0.047529 0.088462 0.088562 \n",
|
|
"6 -0.033754 0.004394 0.035105 \n",
|
|
"7 0.025099 -0.017073 0.014068 \n",
|
|
"8 0.043763 0.123542 -0.107926 \n",
|
|
"9 -0.065737 -0.075726 0.050419 \n",
|
|
"10 -0.093968 0.025957 0.023002 \n",
|
|
"11 -0.007979 -0.011119 -0.061107 \n",
|
|
"12 0.006941 -0.190285 -0.003771 \n",
|
|
"13 0.052174 0.014034 0.033961 \n",
|
|
"14 -0.014764 -0.070400 -0.046461 \n",
|
|
"15 0.033185 0.053601 -0.006713 \n",
|
|
"16 0.028038 0.073310 -0.056683 \n",
|
|
"\n",
|
|
" autocorrelation_20_Y autocorrelation_20_Z autocorrelation_30_X \\\n",
|
|
"0 0.003765 0.002543 -0.049990 \n",
|
|
"1 -0.129480 -0.014282 0.027596 \n",
|
|
"2 0.011977 -0.110984 0.038068 \n",
|
|
"3 -0.058947 -0.038399 0.000622 \n",
|
|
"4 0.067429 0.004266 -0.057145 \n",
|
|
"5 0.031023 -0.001941 0.034667 \n",
|
|
"6 0.012584 0.030843 -0.046854 \n",
|
|
"7 -0.006981 -0.007008 -0.096810 \n",
|
|
"8 0.066055 0.003499 -0.025921 \n",
|
|
"9 0.046704 0.051978 0.054563 \n",
|
|
"10 -0.039985 -0.062853 0.002230 \n",
|
|
"11 0.063928 -0.108339 0.071981 \n",
|
|
"12 -0.056253 -0.000450 -0.026721 \n",
|
|
"13 -0.010468 0.001997 -0.019577 \n",
|
|
"14 -0.068659 0.079928 0.065463 \n",
|
|
"15 0.001135 -0.026500 -0.135474 \n",
|
|
"16 0.074539 -0.126566 0.061670 \n",
|
|
"\n",
|
|
" autocorrelation_30_Y autocorrelation_30_Z autocorrelation_50_X \\\n",
|
|
"0 -0.040294 -0.011024 0.060141 \n",
|
|
"1 0.040854 0.093325 -0.071681 \n",
|
|
"2 0.007768 -0.104029 0.077159 \n",
|
|
"3 -0.037307 -0.083809 0.031726 \n",
|
|
"4 -0.085651 -0.033945 -0.019312 \n",
|
|
"5 0.031843 0.010472 0.007438 \n",
|
|
"6 -0.049723 -0.104720 0.027879 \n",
|
|
"7 0.058257 -0.034894 -0.007670 \n",
|
|
"8 -0.022534 0.069451 0.088884 \n",
|
|
"9 0.021820 -0.040629 -0.026695 \n",
|
|
"10 0.024232 -0.013382 -0.052934 \n",
|
|
"11 0.014563 -0.048561 -0.064959 \n",
|
|
"12 -0.115923 0.132645 0.045606 \n",
|
|
"13 0.023235 0.017712 -0.000441 \n",
|
|
"14 -0.017772 0.114692 -0.061390 \n",
|
|
"15 -0.083997 0.049844 -0.052004 \n",
|
|
"16 0.040640 -0.130493 -0.014951 \n",
|
|
"\n",
|
|
" autocorrelation_50_Y autocorrelation_50_Z autocorrelation_5_X \\\n",
|
|
"0 -0.035205 -0.055939 -0.009348 \n",
|
|
"1 -0.062680 -0.055987 -0.069317 \n",
|
|
"2 0.002311 0.111358 -0.004053 \n",
|
|
"3 -0.017752 -0.016835 0.005310 \n",
|
|
"4 -0.035473 -0.033905 0.031233 \n",
|
|
"5 -0.072231 -0.044880 -0.042741 \n",
|
|
"6 0.035824 0.096863 -0.060521 \n",
|
|
"7 0.087412 -0.149575 -0.082264 \n",
|
|
"8 0.031052 0.071567 0.002081 \n",
|
|
"9 0.028157 0.055367 0.040055 \n",
|
|
"10 0.020769 0.027237 -0.052585 \n",
|
|
"11 0.009232 0.083537 0.037802 \n",
|
|
"12 0.077260 0.037070 -0.009196 \n",
|
|
"13 -0.125566 -0.028065 0.091008 \n",
|
|
"14 0.058202 0.018044 -0.084337 \n",
|
|
"15 -0.063941 -0.123819 -0.024515 \n",
|
|
"16 -0.034196 -0.061111 -0.092936 \n",
|
|
"\n",
|
|
" autocorrelation_5_Y autocorrelation_5_Z autocorrelation_75_X \\\n",
|
|
"0 0.036256 -0.059414 -0.064041 \n",
|
|
"1 -0.016056 0.066141 -0.001367 \n",
|
|
"2 -0.084868 -0.058238 -0.029358 \n",
|
|
"3 -0.087827 -0.099613 -0.051004 \n",
|
|
"4 -0.013456 0.012132 0.008428 \n",
|
|
"5 0.023408 0.109833 0.023188 \n",
|
|
"6 -0.090370 0.013848 -0.054948 \n",
|
|
"7 -0.024935 0.033933 -0.104112 \n",
|
|
"8 0.039163 0.068791 -0.156985 \n",
|
|
"9 -0.085966 -0.018881 -0.035873 \n",
|
|
"10 0.155348 0.089262 -0.018731 \n",
|
|
"11 -0.055070 -0.053334 0.088817 \n",
|
|
"12 -0.062619 0.039355 -0.028028 \n",
|
|
"13 0.025877 0.003278 0.002593 \n",
|
|
"14 0.077899 -0.037150 -0.053984 \n",
|
|
"15 -0.028301 -0.017459 0.105301 \n",
|
|
"16 0.116500 0.077768 -0.030928 \n",
|
|
"\n",
|
|
" autocorrelation_75_Y autocorrelation_75_Z averageVectorLength \\\n",
|
|
"0 0.022417 0.117357 9.683036 \n",
|
|
"1 0.023094 0.006500 9.222364 \n",
|
|
"2 0.073042 0.013775 9.235800 \n",
|
|
"3 0.086656 -0.026402 9.612871 \n",
|
|
"4 -0.010023 0.062667 9.645595 \n",
|
|
"5 -0.058372 0.022381 9.861227 \n",
|
|
"6 -0.012912 0.057195 9.574246 \n",
|
|
"7 0.022179 -0.087485 9.665710 \n",
|
|
"8 0.051851 0.009877 9.744560 \n",
|
|
"9 0.001869 0.020469 9.764734 \n",
|
|
"10 -0.060570 -0.032457 9.275388 \n",
|
|
"11 0.029491 0.056988 9.519998 \n",
|
|
"12 0.021713 0.100584 9.425750 \n",
|
|
"13 0.039316 0.153231 9.580493 \n",
|
|
"14 0.034723 -0.056405 9.668018 \n",
|
|
"15 0.009760 0.016339 9.944224 \n",
|
|
"16 0.030622 0.073927 6.330216 \n",
|
|
"\n",
|
|
" averageVectorLengthLow averageVectorLengthPower \\\n",
|
|
"0 3.954539 93.761196 \n",
|
|
"1 3.875639 85.051992 \n",
|
|
"2 3.639579 85.300010 \n",
|
|
"3 3.991453 92.407281 \n",
|
|
"4 3.881851 93.037501 \n",
|
|
"5 4.133362 97.243807 \n",
|
|
"6 3.935599 91.666188 \n",
|
|
"7 3.991640 93.425941 \n",
|
|
"8 4.194873 94.956458 \n",
|
|
"9 3.979599 95.350039 \n",
|
|
"10 3.938795 86.032830 \n",
|
|
"11 3.852962 90.630358 \n",
|
|
"12 4.085098 88.844765 \n",
|
|
"13 3.968863 91.785846 \n",
|
|
"14 3.958077 93.470567 \n",
|
|
"15 4.074935 98.887582 \n",
|
|
"16 2.623497 40.071633 \n",
|
|
"\n",
|
|
" averageVectorLengthPowerLow avgPeakAmplitudeChangeAfter_X \\\n",
|
|
"0 15.638376 NaN \n",
|
|
"1 15.020578 NaN \n",
|
|
"2 13.246539 NaN \n",
|
|
"3 15.931694 NaN \n",
|
|
"4 15.068770 NaN \n",
|
|
"5 17.084679 NaN \n",
|
|
"6 15.488938 NaN \n",
|
|
"7 15.933187 NaN \n",
|
|
"8 17.596959 NaN \n",
|
|
"9 15.837206 NaN \n",
|
|
"10 15.514102 NaN \n",
|
|
"11 14.845319 NaN \n",
|
|
"12 16.688024 NaN \n",
|
|
"13 15.751873 NaN \n",
|
|
"14 15.666371 NaN \n",
|
|
"15 16.605092 NaN \n",
|
|
"16 6.882736 NaN \n",
|
|
"\n",
|
|
" avgPeakAmplitudeChangeAfter_Y avgPeakAmplitudeChangeAfter_Z \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" avgPeakAmplitudeChangeBefore_X avgPeakAmplitudeChangeBefore_Y \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" avgPeakAmplitudeChangeBefore_Z avgPeakChangeRatio_X \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" avgPeakChangeRatio_Y avgPeakChangeRatio_Z avgPeakDecreaseTime_X \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" avgPeakDecreaseTime_Y avgPeakDecreaseTime_Z avgPeakDuration_X \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" avgPeakDuration_Y avgPeakDuration_Z avgPeakIncreaseTime_X \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" avgPeakIncreaseTime_Y avgPeakIncreaseTime_Z binnedEntropy_X \\\n",
|
|
"0 NaN NaN 2.298323 \n",
|
|
"1 NaN NaN 2.289073 \n",
|
|
"2 NaN NaN 2.280011 \n",
|
|
"3 NaN NaN 2.286551 \n",
|
|
"4 NaN NaN 2.292404 \n",
|
|
"5 NaN NaN 2.288386 \n",
|
|
"6 NaN NaN 2.282082 \n",
|
|
"7 NaN NaN 2.291969 \n",
|
|
"8 NaN NaN 2.290071 \n",
|
|
"9 NaN NaN 2.282979 \n",
|
|
"10 NaN NaN 2.291118 \n",
|
|
"11 NaN NaN 2.287470 \n",
|
|
"12 NaN NaN 2.298981 \n",
|
|
"13 NaN NaN 2.294519 \n",
|
|
"14 NaN NaN 2.290551 \n",
|
|
"15 NaN NaN 2.284167 \n",
|
|
"16 NaN NaN 2.000757 \n",
|
|
"\n",
|
|
" binnedEntropy_Y binnedEntropy_Z calcMeanCrossingRateAutocorr_X \\\n",
|
|
"0 2.278283 2.287630 65.0 \n",
|
|
"1 2.272205 2.290649 67.0 \n",
|
|
"2 2.268384 2.285813 71.0 \n",
|
|
"3 2.278670 2.299186 57.0 \n",
|
|
"4 2.286274 2.297375 65.0 \n",
|
|
"5 2.290115 2.285257 63.0 \n",
|
|
"6 2.294149 2.283044 53.0 \n",
|
|
"7 2.288501 2.283649 71.0 \n",
|
|
"8 2.293779 2.284550 61.0 \n",
|
|
"9 2.294618 2.296906 65.0 \n",
|
|
"10 2.288205 2.280010 65.0 \n",
|
|
"11 2.287591 2.296889 67.0 \n",
|
|
"12 2.291509 2.288529 61.0 \n",
|
|
"13 2.273759 2.296630 61.0 \n",
|
|
"14 2.295320 2.288277 63.0 \n",
|
|
"15 2.295281 2.287458 50.0 \n",
|
|
"16 1.978263 1.988834 0.0 \n",
|
|
"\n",
|
|
" calcMeanCrossingRateAutocorr_Y calcMeanCrossingRateAutocorr_Z \\\n",
|
|
"0 59.0 65.0 \n",
|
|
"1 61.0 62.0 \n",
|
|
"2 71.0 69.0 \n",
|
|
"3 57.0 65.0 \n",
|
|
"4 67.0 63.0 \n",
|
|
"5 59.0 60.0 \n",
|
|
"6 77.0 57.0 \n",
|
|
"7 65.0 60.0 \n",
|
|
"8 54.0 64.0 \n",
|
|
"9 57.0 51.0 \n",
|
|
"10 75.0 58.0 \n",
|
|
"11 56.0 69.0 \n",
|
|
"12 53.0 55.0 \n",
|
|
"13 54.0 75.0 \n",
|
|
"14 65.0 69.0 \n",
|
|
"15 64.0 61.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" changeDuration_X changeDuration_Y changeDuration_Z changeRate_X \\\n",
|
|
"0 NaN NaN NaN NaN \n",
|
|
"1 NaN NaN NaN NaN \n",
|
|
"2 NaN NaN NaN NaN \n",
|
|
"3 NaN NaN NaN NaN \n",
|
|
"4 NaN NaN NaN NaN \n",
|
|
"5 NaN NaN NaN NaN \n",
|
|
"6 NaN NaN NaN NaN \n",
|
|
"7 NaN NaN NaN NaN \n",
|
|
"8 NaN NaN NaN NaN \n",
|
|
"9 NaN NaN NaN NaN \n",
|
|
"10 NaN NaN NaN NaN \n",
|
|
"11 NaN NaN NaN NaN \n",
|
|
"12 NaN NaN NaN NaN \n",
|
|
"13 NaN NaN NaN NaN \n",
|
|
"14 NaN NaN NaN NaN \n",
|
|
"15 NaN NaN NaN NaN \n",
|
|
"16 NaN NaN NaN NaN \n",
|
|
"\n",
|
|
" changeRate_Y changeRate_Z coefficientOfVariation_XBand \\\n",
|
|
"0 NaN NaN 0.533236 \n",
|
|
"1 NaN NaN 0.527096 \n",
|
|
"2 NaN NaN 0.533909 \n",
|
|
"3 NaN NaN 0.515671 \n",
|
|
"4 NaN NaN 0.522352 \n",
|
|
"5 NaN NaN 0.528759 \n",
|
|
"6 NaN NaN 0.547856 \n",
|
|
"7 NaN NaN 0.530163 \n",
|
|
"8 NaN NaN 0.517942 \n",
|
|
"9 NaN NaN 0.518977 \n",
|
|
"10 NaN NaN 0.542770 \n",
|
|
"11 NaN NaN 0.539878 \n",
|
|
"12 NaN NaN 0.534670 \n",
|
|
"13 NaN NaN 0.533739 \n",
|
|
"14 NaN NaN 0.521455 \n",
|
|
"15 NaN NaN 0.516158 \n",
|
|
"16 NaN NaN 0.599106 \n",
|
|
"\n",
|
|
" coefficientOfVariation_XLow coefficientOfVariation_YBand \\\n",
|
|
"0 0.527017 0.514151 \n",
|
|
"1 0.452063 0.554167 \n",
|
|
"2 0.526474 0.556140 \n",
|
|
"3 0.526374 0.520226 \n",
|
|
"4 0.540857 0.534679 \n",
|
|
"5 0.493230 0.527201 \n",
|
|
"6 0.477819 0.525871 \n",
|
|
"7 0.495349 0.527140 \n",
|
|
"8 0.494374 0.537649 \n",
|
|
"9 0.524269 0.532100 \n",
|
|
"10 0.536975 0.525607 \n",
|
|
"11 0.537260 0.542834 \n",
|
|
"12 0.532577 0.526495 \n",
|
|
"13 0.570930 0.511987 \n",
|
|
"14 0.536704 0.522882 \n",
|
|
"15 0.525543 0.546662 \n",
|
|
"16 0.543337 0.624214 \n",
|
|
"\n",
|
|
" coefficientOfVariation_YLow coefficientOfVariation_ZBand \\\n",
|
|
"0 0.527270 0.516443 \n",
|
|
"1 0.525025 0.519009 \n",
|
|
"2 0.557286 0.529653 \n",
|
|
"3 0.548729 0.521221 \n",
|
|
"4 0.589041 0.527130 \n",
|
|
"5 0.513757 0.525058 \n",
|
|
"6 0.483711 0.525506 \n",
|
|
"7 0.522798 0.535721 \n",
|
|
"8 0.505772 0.514093 \n",
|
|
"9 0.518419 0.527682 \n",
|
|
"10 0.529116 0.542240 \n",
|
|
"11 0.516687 0.515561 \n",
|
|
"12 0.549653 0.529763 \n",
|
|
"13 0.524731 0.520360 \n",
|
|
"14 0.536917 0.515216 \n",
|
|
"15 0.557694 0.526219 \n",
|
|
"16 0.630624 0.619395 \n",
|
|
"\n",
|
|
" coefficientOfVariation_ZLow correlation_X_YBand correlation_X_YLow \\\n",
|
|
"0 0.555990 0.999983 0.999981 \n",
|
|
"1 0.537604 0.999979 0.999984 \n",
|
|
"2 0.529651 0.999985 0.999983 \n",
|
|
"3 0.500520 0.999982 0.999981 \n",
|
|
"4 0.539844 0.999982 0.999983 \n",
|
|
"5 0.485686 0.999986 0.999986 \n",
|
|
"6 0.532170 0.999981 0.999984 \n",
|
|
"7 0.491897 0.999983 0.999983 \n",
|
|
"8 0.570792 0.999981 0.999984 \n",
|
|
"9 0.473817 0.999983 0.999983 \n",
|
|
"10 0.521041 0.999982 0.999983 \n",
|
|
"11 0.556969 0.999985 0.999986 \n",
|
|
"12 0.479618 0.999985 0.999982 \n",
|
|
"13 0.527940 0.999982 0.999981 \n",
|
|
"14 0.546964 0.999986 0.999984 \n",
|
|
"15 0.563018 0.999982 0.999982 \n",
|
|
"16 0.540351 0.999979 0.999978 \n",
|
|
"\n",
|
|
" correlation_X_ZBand correlation_X_ZLow correlation_Y_ZBand \\\n",
|
|
"0 0.999984 0.999984 0.999983 \n",
|
|
"1 0.999984 0.999984 0.999981 \n",
|
|
"2 0.999986 0.999984 0.999986 \n",
|
|
"3 0.999983 0.999984 0.999985 \n",
|
|
"4 0.999983 0.999982 0.999980 \n",
|
|
"5 0.999984 0.999985 0.999987 \n",
|
|
"6 0.999984 0.999985 0.999984 \n",
|
|
"7 0.999985 0.999986 0.999982 \n",
|
|
"8 0.999984 0.999984 0.999982 \n",
|
|
"9 0.999984 0.999984 0.999987 \n",
|
|
"10 0.999979 0.999983 0.999983 \n",
|
|
"11 0.999981 0.999978 0.999982 \n",
|
|
"12 0.999980 0.999981 0.999980 \n",
|
|
"13 0.999986 0.999984 0.999985 \n",
|
|
"14 0.999984 0.999981 0.999981 \n",
|
|
"15 0.999983 0.999984 0.999979 \n",
|
|
"16 0.999980 0.999978 0.999978 \n",
|
|
"\n",
|
|
" correlation_Y_ZLow countAboveMeanAutocorr_X countAboveMeanAutocorr_Y \\\n",
|
|
"0 0.999981 100.0 105.0 \n",
|
|
"1 0.999984 96.0 103.0 \n",
|
|
"2 0.999986 97.0 98.0 \n",
|
|
"3 0.999984 106.0 107.0 \n",
|
|
"4 0.999982 100.0 96.0 \n",
|
|
"5 0.999984 101.0 108.0 \n",
|
|
"6 0.999984 98.0 97.0 \n",
|
|
"7 0.999985 110.0 101.0 \n",
|
|
"8 0.999985 104.0 106.0 \n",
|
|
"9 0.999987 92.0 102.0 \n",
|
|
"10 0.999983 90.0 92.0 \n",
|
|
"11 0.999983 91.0 103.0 \n",
|
|
"12 0.999982 106.0 103.0 \n",
|
|
"13 0.999982 97.0 107.0 \n",
|
|
"14 0.999980 98.0 98.0 \n",
|
|
"15 0.999981 98.0 101.0 \n",
|
|
"16 0.999975 0.0 0.0 \n",
|
|
"\n",
|
|
" countAboveMeanAutocorr_Z countAboveMean_X countAboveMean_Y \\\n",
|
|
"0 98.0 153.0 151.0 \n",
|
|
"1 99.0 155.0 145.0 \n",
|
|
"2 103.0 146.0 149.0 \n",
|
|
"3 96.0 148.0 148.0 \n",
|
|
"4 99.0 158.0 142.0 \n",
|
|
"5 100.0 158.0 156.0 \n",
|
|
"6 102.0 154.0 151.0 \n",
|
|
"7 94.0 157.0 148.0 \n",
|
|
"8 103.0 156.0 154.0 \n",
|
|
"9 102.0 147.0 150.0 \n",
|
|
"10 98.0 149.0 144.0 \n",
|
|
"11 98.0 149.0 153.0 \n",
|
|
"12 104.0 149.0 145.0 \n",
|
|
"13 105.0 143.0 163.0 \n",
|
|
"14 103.0 143.0 152.0 \n",
|
|
"15 104.0 153.0 152.0 \n",
|
|
"16 0.0 107.0 194.0 \n",
|
|
"\n",
|
|
" countAboveMean_Z countBelowMean_X countBelowMean_Y countBelowMean_Z \\\n",
|
|
"0 151.0 147.0 149.0 149.0 \n",
|
|
"1 145.0 145.0 155.0 155.0 \n",
|
|
"2 153.0 154.0 151.0 147.0 \n",
|
|
"3 153.0 152.0 152.0 147.0 \n",
|
|
"4 147.0 142.0 158.0 153.0 \n",
|
|
"5 161.0 142.0 144.0 139.0 \n",
|
|
"6 141.0 146.0 149.0 159.0 \n",
|
|
"7 152.0 143.0 152.0 148.0 \n",
|
|
"8 148.0 144.0 146.0 152.0 \n",
|
|
"9 156.0 153.0 150.0 144.0 \n",
|
|
"10 160.0 151.0 156.0 140.0 \n",
|
|
"11 147.0 151.0 147.0 153.0 \n",
|
|
"12 148.0 151.0 155.0 152.0 \n",
|
|
"13 147.0 157.0 137.0 153.0 \n",
|
|
"14 143.0 157.0 148.0 157.0 \n",
|
|
"15 143.0 147.0 148.0 157.0 \n",
|
|
"16 107.0 193.0 106.0 193.0 \n",
|
|
"\n",
|
|
" derivTonic_X derivTonic_Y derivTonic_Z deriv_X deriv_Y deriv_Z \\\n",
|
|
"0 2.264066 1.663697 -1.978076 -29.613465 9.554828 15.833924 \n",
|
|
"1 3.378476 0.002513 -2.840698 2.282190 9.914019 -17.346159 \n",
|
|
"2 9.343808 0.982711 0.262335 13.724742 8.435181 19.735082 \n",
|
|
"3 0.811307 1.112904 7.486793 -21.061162 0.162531 10.641201 \n",
|
|
"4 -4.935032 0.429249 4.470062 13.630978 28.242010 -17.852050 \n",
|
|
"5 0.615650 9.011439 1.019376 11.908970 12.286923 7.905318 \n",
|
|
"6 -0.419359 0.649203 -7.831564 4.122110 8.160791 9.625673 \n",
|
|
"7 -8.606199 0.611211 -9.516828 4.243979 -8.139702 -18.404318 \n",
|
|
"8 2.839395 -2.098615 3.895081 -14.428611 20.572239 0.857868 \n",
|
|
"9 -7.724864 -6.195070 -5.434508 2.497424 -15.977319 -18.537690 \n",
|
|
"10 4.473552 -8.085741 1.447796 6.607903 -12.228337 -11.535852 \n",
|
|
"11 -0.316638 -3.037811 6.594929 17.468651 1.330721 8.141867 \n",
|
|
"12 4.142621 3.497675 -13.110317 23.332381 -2.861054 -1.739394 \n",
|
|
"13 -0.286484 2.316337 1.315161 25.572897 5.733510 16.532478 \n",
|
|
"14 -4.116657 -1.928712 6.173228 -12.050769 -19.877969 -9.532184 \n",
|
|
"15 -9.825086 4.237792 10.268698 2.794769 12.292966 -3.724351 \n",
|
|
"16 2.010568 4.794947 5.181957 -7.922947 -7.804784 -16.465154 \n",
|
|
"\n",
|
|
" dominantFrequencyEnergy_XBand dominantFrequencyEnergy_XLow \\\n",
|
|
"0 0.021613 0.032114 \n",
|
|
"1 0.028958 0.040884 \n",
|
|
"2 0.021711 0.033403 \n",
|
|
"3 0.022758 0.049079 \n",
|
|
"4 0.021350 0.031001 \n",
|
|
"5 0.020972 0.033817 \n",
|
|
"6 0.025502 0.033085 \n",
|
|
"7 0.022359 0.033667 \n",
|
|
"8 0.026543 0.037157 \n",
|
|
"9 0.020597 0.036296 \n",
|
|
"10 0.018570 0.030853 \n",
|
|
"11 0.018851 0.030482 \n",
|
|
"12 0.023323 0.034106 \n",
|
|
"13 0.021933 0.051276 \n",
|
|
"14 0.023552 0.035077 \n",
|
|
"15 0.026252 0.036015 \n",
|
|
"16 0.018765 0.030059 \n",
|
|
"\n",
|
|
" dominantFrequencyEnergy_YBand dominantFrequencyEnergy_YLow \\\n",
|
|
"0 0.019957 0.031307 \n",
|
|
"1 0.021265 0.043713 \n",
|
|
"2 0.024045 0.036826 \n",
|
|
"3 0.029402 0.030302 \n",
|
|
"4 0.022344 0.032830 \n",
|
|
"5 0.018170 0.025395 \n",
|
|
"6 0.021805 0.033030 \n",
|
|
"7 0.023081 0.039157 \n",
|
|
"8 0.019678 0.036312 \n",
|
|
"9 0.022386 0.031697 \n",
|
|
"10 0.022396 0.031159 \n",
|
|
"11 0.021019 0.029694 \n",
|
|
"12 0.025142 0.032953 \n",
|
|
"13 0.024782 0.037983 \n",
|
|
"14 0.021930 0.030912 \n",
|
|
"15 0.028484 0.037540 \n",
|
|
"16 0.024735 0.035134 \n",
|
|
"\n",
|
|
" dominantFrequencyEnergy_ZBand dominantFrequencyEnergy_ZLow \\\n",
|
|
"0 0.029077 0.027159 \n",
|
|
"1 0.022946 0.031538 \n",
|
|
"2 0.019791 0.027571 \n",
|
|
"3 0.025449 0.032896 \n",
|
|
"4 0.021159 0.035992 \n",
|
|
"5 0.019549 0.032218 \n",
|
|
"6 0.024637 0.032953 \n",
|
|
"7 0.023016 0.046724 \n",
|
|
"8 0.024761 0.043462 \n",
|
|
"9 0.025724 0.035699 \n",
|
|
"10 0.019494 0.042561 \n",
|
|
"11 0.019693 0.035747 \n",
|
|
"12 0.026942 0.032238 \n",
|
|
"13 0.019526 0.029579 \n",
|
|
"14 0.020186 0.023121 \n",
|
|
"15 0.020404 0.039396 \n",
|
|
"16 0.019362 0.037625 \n",
|
|
"\n",
|
|
" entropy_XBand entropy_XLow entropy_YBand entropy_YLow entropy_ZBand \\\n",
|
|
"0 6.939601 6.788092 6.948577 6.798214 6.935590 \n",
|
|
"1 6.962013 6.745530 6.941184 6.684952 6.970926 \n",
|
|
"2 6.951091 6.847274 6.915013 6.731275 6.971465 \n",
|
|
"3 7.007258 6.748955 6.907122 6.793629 6.937713 \n",
|
|
"4 6.946219 6.798508 6.949631 6.798677 6.988088 \n",
|
|
"5 6.951435 6.781081 6.987060 6.826218 6.953750 \n",
|
|
"6 6.966593 6.808914 6.895219 6.701539 6.942418 \n",
|
|
"7 6.909865 6.738131 6.950536 6.776491 6.999050 \n",
|
|
"8 6.897070 6.683523 6.989430 6.804307 7.001734 \n",
|
|
"9 6.889445 6.743457 6.915464 6.744615 6.945432 \n",
|
|
"10 6.985462 6.808788 6.934208 6.785896 6.954452 \n",
|
|
"11 6.976421 6.813671 6.958526 6.779792 6.989724 \n",
|
|
"12 6.968936 6.811086 6.979781 6.796927 6.899934 \n",
|
|
"13 7.007956 6.743319 6.947040 6.797169 6.959353 \n",
|
|
"14 6.926548 6.710982 6.930923 6.774075 6.936753 \n",
|
|
"15 6.906153 6.698576 6.936426 6.763655 6.976713 \n",
|
|
"16 6.964619 6.772995 6.937821 6.765930 6.985357 \n",
|
|
"\n",
|
|
" entropy_ZLow fp01_X fp01_Y fp01_Z fp02_X fp02_Y fp02_Z fp03_X \\\n",
|
|
"0 6.765376 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"1 6.836181 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"2 6.858678 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"3 6.779053 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"4 6.808467 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"5 6.727309 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"6 6.825859 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"7 6.803815 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"8 6.753551 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"9 6.781219 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"10 6.703950 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"11 6.792300 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"12 6.652299 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"13 6.838618 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"14 6.824054 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"15 6.826027 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"16 6.781932 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"\n",
|
|
" fp03_Y fp03_Z fp04_X fp04_Y fp04_Z fp05_X fp05_Y fp05_Z fp06_X \\\n",
|
|
"0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"12 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"13 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"16 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
|
|
"\n",
|
|
" fp06_Y fp06_Z fqAbsMean_X fqAbsMean_Y fqAbsMean_Z fqEnergyFeat_X \\\n",
|
|
"0 0.0 0.0 4.904584 5.246425 4.990305 9757.282156 \n",
|
|
"1 0.0 0.0 4.822180 4.645956 4.976632 9448.079674 \n",
|
|
"2 0.0 0.0 4.844398 4.809809 4.760420 9669.760737 \n",
|
|
"3 0.0 0.0 5.019139 4.967566 4.990291 10026.356290 \n",
|
|
"4 0.0 0.0 4.857150 5.237531 4.879719 9709.603922 \n",
|
|
"5 0.0 0.0 5.073285 5.102289 5.181881 10233.693555 \n",
|
|
"6 0.0 0.0 4.754901 5.170028 4.966644 9482.841316 \n",
|
|
"7 0.0 0.0 4.854265 5.078081 5.121374 9520.121266 \n",
|
|
"8 0.0 0.0 5.121016 5.118333 5.043765 10395.792313 \n",
|
|
"9 0.0 0.0 5.365118 4.954334 5.007938 11026.931493 \n",
|
|
"10 0.0 0.0 4.861183 4.696802 4.795042 9574.581294 \n",
|
|
"11 0.0 0.0 5.151702 4.821758 4.838656 10266.304113 \n",
|
|
"12 0.0 0.0 4.902073 4.841616 5.048460 9639.580580 \n",
|
|
"13 0.0 0.0 5.063369 4.971973 4.946686 10149.017500 \n",
|
|
"14 0.0 0.0 4.728647 5.075870 5.210589 9190.474376 \n",
|
|
"15 0.0 0.0 5.250907 5.215007 5.076110 10890.487664 \n",
|
|
"16 0.0 0.0 3.311168 3.172689 3.480565 6484.122156 \n",
|
|
"\n",
|
|
" fqEnergyFeat_Y fqEnergyFeat_Z fqEntropyFeat_X fqEntropyFeat_Y \\\n",
|
|
"0 10849.028553 9811.741631 5.555442 5.557260 \n",
|
|
"1 8899.975693 9956.680101 5.560929 5.536202 \n",
|
|
"2 9184.529987 9121.402956 5.575139 5.549254 \n",
|
|
"3 9801.236188 9982.377726 5.567258 5.570079 \n",
|
|
"4 10691.230186 9662.734156 5.562654 5.588084 \n",
|
|
"5 10371.886729 10563.612304 5.576252 5.583882 \n",
|
|
"6 10326.075806 10154.052192 5.603480 5.554958 \n",
|
|
"7 10241.641412 10387.903719 5.544296 5.567887 \n",
|
|
"8 10179.629166 10107.379246 5.548230 5.580267 \n",
|
|
"9 9834.741763 10120.339487 5.529802 5.567041 \n",
|
|
"10 8891.577695 9480.013849 5.576667 5.544810 \n",
|
|
"11 9524.407888 9519.015587 5.586517 5.589838 \n",
|
|
"12 9683.493055 10251.534492 5.581777 5.585898 \n",
|
|
"13 9632.893918 9966.713340 5.576922 5.570770 \n",
|
|
"14 10330.498873 10536.313374 5.560282 5.559407 \n",
|
|
"15 10640.928635 10044.509683 5.559758 5.560199 \n",
|
|
"16 6140.316953 7010.804341 5.584447 5.553468 \n",
|
|
"\n",
|
|
" fqEntropyFeat_Z fqHighestPeak1_X fqHighestPeak1_Y fqHighestPeak1_Z \\\n",
|
|
"0 5.574111 3.754916 5.607029 2.822416 \n",
|
|
"1 5.567919 2.929343 3.188250 3.588912 \n",
|
|
"2 5.581274 3.844362 2.215684 2.556580 \n",
|
|
"3 5.565787 2.664748 3.548463 3.840508 \n",
|
|
"4 5.572350 2.547426 4.058459 2.667875 \n",
|
|
"5 5.557310 3.489921 3.000982 3.052319 \n",
|
|
"6 5.554691 2.736799 3.462840 4.595469 \n",
|
|
"7 5.553808 4.006190 2.889108 3.063053 \n",
|
|
"8 5.572265 4.038741 2.673385 3.050807 \n",
|
|
"9 5.582309 3.495014 3.126081 3.176471 \n",
|
|
"10 5.542950 3.755804 2.893660 2.494761 \n",
|
|
"11 5.562584 3.657855 3.397249 2.557454 \n",
|
|
"12 5.538797 2.844807 2.782663 7.491650 \n",
|
|
"13 5.551558 3.582364 3.078669 2.436009 \n",
|
|
"14 5.540887 3.341951 2.905688 4.448141 \n",
|
|
"15 5.571962 3.659974 3.506205 3.095609 \n",
|
|
"16 5.549691 3.987941 2.775496 3.371644 \n",
|
|
"\n",
|
|
" fqHighestPeak2_X fqHighestPeak2_Y fqHighestPeak2_Z fqHighestPeak3_X \\\n",
|
|
"0 3.440065 4.450443 2.816086 3.141781 \n",
|
|
"1 2.272656 3.099145 3.375868 2.083292 \n",
|
|
"2 2.908314 2.072371 2.216813 2.889407 \n",
|
|
"3 2.558650 3.289128 2.740128 2.240007 \n",
|
|
"4 2.487128 3.198084 1.896326 2.064078 \n",
|
|
"5 2.793373 2.508526 2.849588 2.728617 \n",
|
|
"6 2.505620 2.829232 3.680274 2.496508 \n",
|
|
"7 3.474055 2.680011 2.961508 3.065422 \n",
|
|
"8 3.466653 2.333558 2.735938 2.543124 \n",
|
|
"9 3.241806 2.928799 2.562433 3.110792 \n",
|
|
"10 3.664174 2.613525 2.154152 2.815367 \n",
|
|
"11 2.584176 2.583424 2.526804 2.073441 \n",
|
|
"12 2.292539 2.606928 4.118490 2.035305 \n",
|
|
"13 2.653953 2.853552 2.430396 2.152986 \n",
|
|
"14 2.379974 2.528655 3.186949 2.361937 \n",
|
|
"15 3.228197 3.144964 3.065074 2.935554 \n",
|
|
"16 2.998196 2.765137 3.367243 2.373744 \n",
|
|
"\n",
|
|
" fqHighestPeak3_Y fqHighestPeak3_Z fqHighestPeakFreq1_X \\\n",
|
|
"0 3.806449 2.524760 20.312500 \n",
|
|
"1 2.937218 2.573928 43.359375 \n",
|
|
"2 1.933323 2.057448 17.578125 \n",
|
|
"3 2.928341 2.130777 18.359375 \n",
|
|
"4 2.634893 1.783069 21.093750 \n",
|
|
"5 2.076394 2.233292 44.531250 \n",
|
|
"6 2.630907 3.549613 10.546875 \n",
|
|
"7 2.337003 2.418840 44.531250 \n",
|
|
"8 2.187545 2.541616 7.421875 \n",
|
|
"9 2.693042 2.411896 3.125000 \n",
|
|
"10 2.063317 1.976259 33.203125 \n",
|
|
"11 2.275117 2.521100 46.875000 \n",
|
|
"12 1.701413 4.086219 19.921875 \n",
|
|
"13 2.583418 2.361895 40.234375 \n",
|
|
"14 2.265739 2.817797 7.031250 \n",
|
|
"15 2.798654 3.025101 41.796875 \n",
|
|
"16 2.469993 2.899311 47.265625 \n",
|
|
"\n",
|
|
" fqHighestPeakFreq1_Y fqHighestPeakFreq1_Z fqHighestPeakFreq2_X \\\n",
|
|
"0 35.546875 6.250000 8.593750 \n",
|
|
"1 27.734375 32.812500 8.593750 \n",
|
|
"2 39.062500 48.437500 21.875000 \n",
|
|
"3 7.812500 44.140625 24.609375 \n",
|
|
"4 45.312500 23.437500 20.703125 \n",
|
|
"5 47.265625 22.656250 17.187500 \n",
|
|
"6 36.718750 25.781250 28.515625 \n",
|
|
"7 26.171875 1.562500 23.046875 \n",
|
|
"8 9.375000 49.609375 7.812500 \n",
|
|
"9 13.671875 23.046875 24.218750 \n",
|
|
"10 42.187500 21.484375 30.859375 \n",
|
|
"11 39.062500 27.734375 3.515625 \n",
|
|
"12 5.468750 6.640625 20.312500 \n",
|
|
"13 18.750000 46.484375 40.625000 \n",
|
|
"14 22.265625 25.781250 32.812500 \n",
|
|
"15 22.656250 12.500000 2.343750 \n",
|
|
"16 35.546875 41.015625 12.500000 \n",
|
|
"\n",
|
|
" fqHighestPeakFreq2_Y fqHighestPeakFreq2_Z fqHighestPeakFreq3_X \\\n",
|
|
"0 35.937500 6.640625 48.046875 \n",
|
|
"1 12.890625 33.203125 23.828125 \n",
|
|
"2 1.171875 10.546875 15.234375 \n",
|
|
"3 7.421875 39.062500 38.281250 \n",
|
|
"4 34.765625 23.046875 11.718750 \n",
|
|
"5 5.078125 48.828125 35.937500 \n",
|
|
"6 39.843750 8.593750 41.796875 \n",
|
|
"7 40.234375 47.265625 23.437500 \n",
|
|
"8 14.843750 33.203125 8.203125 \n",
|
|
"9 9.765625 32.812500 24.609375 \n",
|
|
"10 23.828125 21.875000 31.250000 \n",
|
|
"11 38.671875 2.734375 40.625000 \n",
|
|
"12 7.812500 7.031250 24.218750 \n",
|
|
"13 1.562500 24.218750 21.093750 \n",
|
|
"14 37.890625 44.531250 6.640625 \n",
|
|
"15 38.281250 16.796875 12.109375 \n",
|
|
"16 35.937500 41.406250 12.109375 \n",
|
|
"\n",
|
|
" fqHighestPeakFreq3_Y fqHighestPeakFreq3_Z fqHistogramBin10_X \\\n",
|
|
"0 35.156250 18.359375 0.663673 \n",
|
|
"1 37.109375 49.609375 0.598443 \n",
|
|
"2 29.296875 27.734375 0.700968 \n",
|
|
"3 7.031250 44.531250 0.757265 \n",
|
|
"4 3.906250 15.625000 0.706994 \n",
|
|
"5 24.609375 40.234375 0.657617 \n",
|
|
"6 37.109375 20.312500 0.580507 \n",
|
|
"7 14.453125 13.281250 0.768002 \n",
|
|
"8 26.562500 42.187500 0.454272 \n",
|
|
"9 13.281250 22.656250 0.639002 \n",
|
|
"10 42.578125 32.031250 0.814090 \n",
|
|
"11 9.375000 44.531250 0.667374 \n",
|
|
"12 49.218750 6.250000 0.749569 \n",
|
|
"13 20.312500 21.484375 0.782994 \n",
|
|
"14 46.875000 21.093750 0.370842 \n",
|
|
"15 9.375000 16.406250 0.621563 \n",
|
|
"16 36.328125 31.640625 0.652595 \n",
|
|
"\n",
|
|
" fqHistogramBin10_Y fqHistogramBin10_Z fqHistogramBin1_X \\\n",
|
|
"0 0.877304 0.609371 0.011435 \n",
|
|
"1 0.682931 0.738879 0.009578 \n",
|
|
"2 0.639824 0.639717 0.009419 \n",
|
|
"3 0.380102 0.687712 0.036663 \n",
|
|
"4 0.716680 0.757831 0.009164 \n",
|
|
"5 0.611367 0.768926 0.009183 \n",
|
|
"6 0.750736 0.747705 0.003853 \n",
|
|
"7 0.623185 0.631193 0.009826 \n",
|
|
"8 0.679706 0.704537 0.005385 \n",
|
|
"9 0.490088 0.789989 0.021200 \n",
|
|
"10 0.697826 0.717765 0.006414 \n",
|
|
"11 0.504953 0.793269 0.002902 \n",
|
|
"12 0.562516 0.313177 0.018680 \n",
|
|
"13 0.640973 0.789066 0.063078 \n",
|
|
"14 0.599062 0.831171 0.074244 \n",
|
|
"15 0.697624 0.548579 0.012678 \n",
|
|
"16 0.777193 0.768463 0.012546 \n",
|
|
"\n",
|
|
" fqHistogramBin1_Y fqHistogramBin1_Z fqHistogramBin2_X \\\n",
|
|
"0 0.002534 0.034084 0.044164 \n",
|
|
"1 0.008954 0.047458 0.038388 \n",
|
|
"2 0.175215 0.005396 0.016583 \n",
|
|
"3 0.009890 0.034134 0.015763 \n",
|
|
"4 0.017415 0.001091 0.057432 \n",
|
|
"5 0.015252 0.069538 0.003456 \n",
|
|
"6 0.011466 0.009114 0.065513 \n",
|
|
"7 0.014012 0.128513 0.010067 \n",
|
|
"8 0.009760 0.121179 0.016688 \n",
|
|
"9 0.005246 0.004605 0.128821 \n",
|
|
"10 0.020237 0.022206 0.049923 \n",
|
|
"11 0.055101 0.002404 0.139587 \n",
|
|
"12 0.012117 0.029844 0.068914 \n",
|
|
"13 0.127296 0.001244 0.004839 \n",
|
|
"14 0.010998 0.007489 0.059668 \n",
|
|
"15 0.023385 0.014032 0.123925 \n",
|
|
"16 0.006016 0.001267 0.024574 \n",
|
|
"\n",
|
|
" fqHistogramBin2_Y fqHistogramBin2_Z fqHistogramBin3_X \\\n",
|
|
"0 0.033360 0.007048 0.015473 \n",
|
|
"1 0.037731 0.013756 0.089662 \n",
|
|
"2 0.015225 0.070362 0.019016 \n",
|
|
"3 0.019602 0.038623 0.000672 \n",
|
|
"4 0.015294 0.020563 0.009633 \n",
|
|
"5 0.081691 0.007247 0.072019 \n",
|
|
"6 0.011883 0.008837 0.045029 \n",
|
|
"7 0.018238 0.012506 0.065859 \n",
|
|
"8 0.018410 0.002731 0.011055 \n",
|
|
"9 0.021401 0.001020 0.029574 \n",
|
|
"10 0.018052 0.072599 0.001866 \n",
|
|
"11 0.020906 0.080207 0.077911 \n",
|
|
"12 0.006486 0.000533 0.042862 \n",
|
|
"13 0.039558 0.067846 0.003214 \n",
|
|
"14 0.045980 0.017778 0.009217 \n",
|
|
"15 0.011245 0.023402 0.050375 \n",
|
|
"16 0.038144 0.008480 0.010846 \n",
|
|
"\n",
|
|
" fqHistogramBin3_Y fqHistogramBin3_Z fqHistogramBin4_X \\\n",
|
|
"0 0.008985 0.017334 0.037594 \n",
|
|
"1 0.013746 0.005594 0.007540 \n",
|
|
"2 0.017045 0.061946 0.017200 \n",
|
|
"3 0.032866 0.025035 0.073223 \n",
|
|
"4 0.074446 0.042059 0.015283 \n",
|
|
"5 0.124216 0.016943 0.106799 \n",
|
|
"6 0.084053 0.006094 0.065454 \n",
|
|
"7 0.014187 0.063587 0.073324 \n",
|
|
"8 0.004976 0.011629 0.204065 \n",
|
|
"9 0.010850 0.066517 0.027461 \n",
|
|
"10 0.049761 0.012516 0.020644 \n",
|
|
"11 0.109207 0.027671 0.044941 \n",
|
|
"12 0.128897 0.013828 0.013930 \n",
|
|
"13 0.001674 0.007445 0.029504 \n",
|
|
"14 0.127170 0.025692 0.250933 \n",
|
|
"15 0.066975 0.017625 0.061256 \n",
|
|
"16 0.012055 0.008057 0.002157 \n",
|
|
"\n",
|
|
" fqHistogramBin4_Y fqHistogramBin4_Z fqHistogramBin5_X \\\n",
|
|
"0 0.007280 0.230446 0.148221 \n",
|
|
"1 0.013747 0.003758 0.101322 \n",
|
|
"2 0.059446 0.008613 0.012498 \n",
|
|
"3 0.207596 0.040753 0.013068 \n",
|
|
"4 0.009695 0.018577 0.003700 \n",
|
|
"5 0.014965 0.016717 0.035826 \n",
|
|
"6 0.026560 0.001329 0.052150 \n",
|
|
"7 0.019774 0.028393 0.029322 \n",
|
|
"8 0.028927 0.003415 0.231494 \n",
|
|
"9 0.001615 0.045945 0.051472 \n",
|
|
"10 0.028766 0.044691 0.023635 \n",
|
|
"11 0.004299 0.016184 0.013258 \n",
|
|
"12 0.035805 0.506606 0.005249 \n",
|
|
"13 0.001400 0.022177 0.020778 \n",
|
|
"14 0.068129 0.026048 0.059393 \n",
|
|
"15 0.010769 0.004830 0.027219 \n",
|
|
"16 0.000727 0.024769 0.004323 \n",
|
|
"\n",
|
|
" fqHistogramBin5_Y fqHistogramBin5_Z fqHistogramBin6_X \\\n",
|
|
"0 0.008045 0.020751 0.029557 \n",
|
|
"1 0.056060 0.012401 0.109483 \n",
|
|
"2 0.006489 0.010081 0.040686 \n",
|
|
"3 0.192067 0.069238 0.002349 \n",
|
|
"4 0.008621 0.012083 0.037449 \n",
|
|
"5 0.008543 0.021928 0.010102 \n",
|
|
"6 0.032678 0.113572 0.107633 \n",
|
|
"7 0.030802 0.001284 0.008414 \n",
|
|
"8 0.082748 0.018476 0.038918 \n",
|
|
"9 0.060710 0.010148 0.034336 \n",
|
|
"10 0.050349 0.043929 0.035819 \n",
|
|
"11 0.084466 0.004698 0.021953 \n",
|
|
"12 0.114383 0.005456 0.042467 \n",
|
|
"13 0.028269 0.034825 0.006944 \n",
|
|
"14 0.030626 0.002667 0.048076 \n",
|
|
"15 0.079745 0.004426 0.003690 \n",
|
|
"16 0.025724 0.010074 0.037145 \n",
|
|
"\n",
|
|
" fqHistogramBin6_Y fqHistogramBin6_Z fqHistogramBin7_X \\\n",
|
|
"0 0.006872 0.015075 0.004131 \n",
|
|
"1 0.017294 0.057771 0.021135 \n",
|
|
"2 0.012852 0.081111 0.017768 \n",
|
|
"3 0.036326 0.035171 0.015247 \n",
|
|
"4 0.003971 0.027636 0.084530 \n",
|
|
"5 0.037657 0.011643 0.006608 \n",
|
|
"6 0.012021 0.009564 0.004735 \n",
|
|
"7 0.049353 0.012791 0.006654 \n",
|
|
"8 0.037622 0.007045 0.007279 \n",
|
|
"9 0.151886 0.038589 0.015723 \n",
|
|
"10 0.028725 0.010863 0.026443 \n",
|
|
"11 0.032166 0.039215 0.006532 \n",
|
|
"12 0.067280 0.001306 0.031381 \n",
|
|
"13 0.082380 0.025548 0.025241 \n",
|
|
"14 0.011153 0.009987 0.029182 \n",
|
|
"15 0.005518 0.036627 0.081907 \n",
|
|
"16 0.064808 0.022580 0.181095 \n",
|
|
"\n",
|
|
" fqHistogramBin7_Y fqHistogramBin7_Z fqHistogramBin8_X \\\n",
|
|
"0 0.037588 0.050086 0.031146 \n",
|
|
"1 0.153668 0.029589 0.002795 \n",
|
|
"2 0.037881 0.024510 0.118228 \n",
|
|
"3 0.081061 0.055085 0.025833 \n",
|
|
"4 0.040810 0.031324 0.038717 \n",
|
|
"5 0.013062 0.039543 0.010482 \n",
|
|
"6 0.028420 0.004242 0.030659 \n",
|
|
"7 0.078465 0.083887 0.022828 \n",
|
|
"8 0.021692 0.047647 0.003704 \n",
|
|
"9 0.086268 0.021053 0.015700 \n",
|
|
"10 0.006769 0.008092 0.015450 \n",
|
|
"11 0.019611 0.022611 0.008412 \n",
|
|
"12 0.017028 0.026175 0.011397 \n",
|
|
"13 0.054565 0.025450 0.047621 \n",
|
|
"14 0.021420 0.050353 0.035187 \n",
|
|
"15 0.051670 0.160352 0.007104 \n",
|
|
"16 0.024693 0.061235 0.031480 \n",
|
|
"\n",
|
|
" fqHistogramBin8_Y fqHistogramBin8_Z fqHistogramBin9_X \\\n",
|
|
"0 0.009261 0.006448 0.014607 \n",
|
|
"1 0.011119 0.048257 0.021653 \n",
|
|
"2 0.027623 0.053150 0.047635 \n",
|
|
"3 0.029350 0.010179 0.059918 \n",
|
|
"4 0.063144 0.020308 0.037099 \n",
|
|
"5 0.030682 0.008196 0.087907 \n",
|
|
"6 0.036800 0.023401 0.044468 \n",
|
|
"7 0.136048 0.030321 0.005704 \n",
|
|
"8 0.079730 0.070270 0.027140 \n",
|
|
"9 0.161211 0.005097 0.036711 \n",
|
|
"10 0.020497 0.001989 0.005717 \n",
|
|
"11 0.009008 0.008274 0.017131 \n",
|
|
"12 0.048368 0.083072 0.015551 \n",
|
|
"13 0.014041 0.002945 0.015788 \n",
|
|
"14 0.071365 0.020033 0.063259 \n",
|
|
"15 0.006093 0.005710 0.010283 \n",
|
|
"16 0.007054 0.081870 0.043239 \n",
|
|
"\n",
|
|
" fqHistogramBin9_Y fqHistogramBin9_Z fqInterquart_X fqInterquart_Y \\\n",
|
|
"0 0.008771 0.009357 9.901367 10.769594 \n",
|
|
"1 0.004750 0.042537 9.211392 8.740737 \n",
|
|
"2 0.008400 0.045114 8.916415 9.052568 \n",
|
|
"3 0.011141 0.004070 10.241726 9.943358 \n",
|
|
"4 0.049923 0.068527 9.850650 10.473927 \n",
|
|
"5 0.062564 0.039319 9.978477 10.357262 \n",
|
|
"6 0.005384 0.076140 9.370658 10.321082 \n",
|
|
"7 0.015936 0.007526 9.819547 10.452315 \n",
|
|
"8 0.036429 0.013070 10.341732 10.685950 \n",
|
|
"9 0.010726 0.017037 11.158979 10.258023 \n",
|
|
"10 0.079018 0.065350 9.521979 9.357901 \n",
|
|
"11 0.160284 0.005465 10.044118 9.042127 \n",
|
|
"12 0.007119 0.020003 9.998723 9.539069 \n",
|
|
"13 0.009845 0.023455 9.922438 9.869460 \n",
|
|
"14 0.014097 0.008781 9.165367 10.443672 \n",
|
|
"15 0.046976 0.184416 10.540761 10.997395 \n",
|
|
"16 0.043587 0.013205 5.042390 4.702765 \n",
|
|
"\n",
|
|
" fqInterquart_Z fqKurtosis_X fqKurtosis_Y fqKurtosis_Z fqSkewness_X \\\n",
|
|
"0 10.056605 5.389523 12.118564 3.566577 2.148555 \n",
|
|
"1 9.630549 2.185909 3.320473 3.964078 1.409120 \n",
|
|
"2 9.614408 5.062124 1.258535 0.811035 2.169789 \n",
|
|
"3 10.256184 1.619553 5.728227 6.772829 1.300120 \n",
|
|
"4 9.184260 1.481245 4.313905 1.015344 1.432945 \n",
|
|
"5 10.217679 2.459255 1.131431 1.561264 1.639629 \n",
|
|
"6 10.029209 0.986987 2.772263 5.296333 1.184096 \n",
|
|
"7 10.394492 5.616668 1.330291 2.351409 2.247110 \n",
|
|
"8 9.735894 6.472586 0.920492 1.486168 2.203444 \n",
|
|
"9 10.045014 3.805614 2.370727 2.802290 1.722104 \n",
|
|
"10 8.904051 3.718599 3.614872 1.258294 1.749833 \n",
|
|
"11 9.411591 6.415278 3.023737 0.643165 2.042124 \n",
|
|
"12 10.280947 1.124096 2.295497 20.791269 1.177845 \n",
|
|
"13 9.738362 3.921990 2.156045 1.162370 1.628852 \n",
|
|
"14 10.618324 2.814428 2.047687 6.540693 1.597015 \n",
|
|
"15 10.931453 2.446653 3.344342 2.292431 1.580833 \n",
|
|
"16 5.345191 6.708391 1.408064 2.552483 2.063941 \n",
|
|
"\n",
|
|
" fqSkewness_Y fqSkewness_Z ibi_X ibi_Y ibi_Z \\\n",
|
|
"0 3.024553 1.834466 0.960000 1.500000 1.190000 \n",
|
|
"1 1.753868 1.839541 0.623333 0.750000 1.000000 \n",
|
|
"2 1.284222 1.166554 0.726667 0.700000 0.745000 \n",
|
|
"3 2.170687 2.179557 0.816250 NaN 0.680000 \n",
|
|
"4 1.904344 1.053234 0.478750 0.680000 NaN \n",
|
|
"5 1.201932 1.321003 NaN NaN 0.736250 \n",
|
|
"6 1.662902 2.250038 0.611250 1.246667 1.010000 \n",
|
|
"7 1.323276 1.405953 1.350000 1.220000 0.686667 \n",
|
|
"8 1.190934 1.425740 0.740000 NaN 0.796250 \n",
|
|
"9 1.569910 1.561782 NaN 0.430000 0.800000 \n",
|
|
"10 1.637232 1.182328 0.990000 0.540000 1.440000 \n",
|
|
"11 1.694750 1.113059 0.785000 1.590000 NaN \n",
|
|
"12 1.361880 3.825978 0.695000 0.887500 0.446667 \n",
|
|
"13 1.555360 1.304668 1.680000 0.755000 0.800000 \n",
|
|
"14 1.485917 2.161342 0.810000 NaN 1.330000 \n",
|
|
"15 1.767959 1.601817 0.470000 2.020000 1.095000 \n",
|
|
"16 1.442438 1.673701 0.350000 NaN NaN \n",
|
|
"\n",
|
|
" interQuartileRangeMagnitudesBand interQuartileRangeMagnitudesLow \\\n",
|
|
"0 0.920676 1.973073 \n",
|
|
"1 1.016984 1.942406 \n",
|
|
"2 0.858312 1.950954 \n",
|
|
"3 0.927504 2.134564 \n",
|
|
"4 0.928132 2.370860 \n",
|
|
"5 0.951660 2.180499 \n",
|
|
"6 1.093823 1.981298 \n",
|
|
"7 0.950979 1.944341 \n",
|
|
"8 0.959495 1.856825 \n",
|
|
"9 0.969892 2.417664 \n",
|
|
"10 0.918003 2.108845 \n",
|
|
"11 0.901527 2.156514 \n",
|
|
"12 1.076304 2.230688 \n",
|
|
"13 0.879532 1.978442 \n",
|
|
"14 0.975241 2.003503 \n",
|
|
"15 0.859382 2.671705 \n",
|
|
"16 2.127381 4.303851 \n",
|
|
"\n",
|
|
" interQuartileRange_XBand interQuartileRange_XLow \\\n",
|
|
"0 1.757454 3.465240 \n",
|
|
"1 1.889158 3.490192 \n",
|
|
"2 1.983132 3.253496 \n",
|
|
"3 1.901486 3.577908 \n",
|
|
"4 1.760314 3.333432 \n",
|
|
"5 1.897415 3.580993 \n",
|
|
"6 1.701012 3.476000 \n",
|
|
"7 1.785110 3.441714 \n",
|
|
"8 2.014451 3.847754 \n",
|
|
"9 1.941076 3.456800 \n",
|
|
"10 1.714848 3.444731 \n",
|
|
"11 1.936398 3.372739 \n",
|
|
"12 1.798283 3.162916 \n",
|
|
"13 1.683782 3.680219 \n",
|
|
"14 1.755337 3.764849 \n",
|
|
"15 1.964076 4.005708 \n",
|
|
"16 0.967114 1.754752 \n",
|
|
"\n",
|
|
" interQuartileRange_YBand interQuartileRange_YLow \\\n",
|
|
"0 1.984149 3.308310 \n",
|
|
"1 1.718109 3.810787 \n",
|
|
"2 1.741294 3.310818 \n",
|
|
"3 1.856279 3.431322 \n",
|
|
"4 2.026612 3.352234 \n",
|
|
"5 1.881604 3.403631 \n",
|
|
"6 1.826520 4.152857 \n",
|
|
"7 1.832994 3.463992 \n",
|
|
"8 1.852815 3.812084 \n",
|
|
"9 2.007690 3.334020 \n",
|
|
"10 1.685229 3.120421 \n",
|
|
"11 1.635660 3.727290 \n",
|
|
"12 1.779794 3.617491 \n",
|
|
"13 1.876858 3.111813 \n",
|
|
"14 1.911297 3.594541 \n",
|
|
"15 2.062958 3.761337 \n",
|
|
"16 0.728493 1.848640 \n",
|
|
"\n",
|
|
" interQuartileRange_ZBand interQuartileRange_ZLow kurtosis_XBand \\\n",
|
|
"0 1.903667 3.708505 1.140452 \n",
|
|
"1 1.831989 3.167890 0.539754 \n",
|
|
"2 1.778376 3.062305 3.774831 \n",
|
|
"3 1.995422 3.335374 -0.083848 \n",
|
|
"4 1.777317 3.523871 -0.494826 \n",
|
|
"5 1.967905 3.828525 -0.496284 \n",
|
|
"6 1.700507 3.052828 2.532450 \n",
|
|
"7 1.731774 3.385692 -0.114128 \n",
|
|
"8 1.689307 3.609902 -0.593102 \n",
|
|
"9 1.738103 3.286394 -0.666559 \n",
|
|
"10 1.597126 4.093169 1.209637 \n",
|
|
"11 1.789724 3.246647 3.741451 \n",
|
|
"12 1.893762 3.725728 2.714485 \n",
|
|
"13 1.877308 3.165189 -0.070193 \n",
|
|
"14 1.895194 3.394883 -0.696165 \n",
|
|
"15 1.707837 3.198155 -0.644687 \n",
|
|
"16 1.047990 1.582356 1.724068 \n",
|
|
"\n",
|
|
" kurtosis_XLow kurtosis_YBand kurtosis_YLow kurtosis_ZBand \\\n",
|
|
"0 -0.433486 -0.656973 -0.165213 -0.555322 \n",
|
|
"1 -0.344966 4.522720 -0.410874 -0.510377 \n",
|
|
"2 0.025646 4.674121 -0.217201 0.376264 \n",
|
|
"3 -0.831627 -0.428645 -0.588536 -0.534416 \n",
|
|
"4 -0.629886 1.011833 -0.530130 0.296548 \n",
|
|
"5 -0.255814 -0.187485 -0.135181 0.791489 \n",
|
|
"6 0.043343 -0.515236 -0.512346 -0.540677 \n",
|
|
"7 -0.495910 -0.644373 -0.478376 1.593402 \n",
|
|
"8 -0.482052 1.723593 -0.397926 -0.696604 \n",
|
|
"9 -0.427513 1.107252 -0.528508 -0.395877 \n",
|
|
"10 -0.329674 -0.533438 -0.416344 1.893127 \n",
|
|
"11 0.288675 1.247625 -0.083694 -0.678479 \n",
|
|
"12 -0.084646 -0.221705 -0.183027 0.392623 \n",
|
|
"13 -0.876383 -0.519862 -0.721379 -0.187303 \n",
|
|
"14 -0.203898 -0.597615 -0.685827 -0.755930 \n",
|
|
"15 -0.622968 3.219826 -0.130987 0.365543 \n",
|
|
"16 -0.200486 3.750956 0.309812 6.243062 \n",
|
|
"\n",
|
|
" kurtosis_ZLow linearTrendSlope_X linearTrendSlope_Y linearTrendSlope_Z \\\n",
|
|
"0 -0.535814 0.006313 -0.000514 0.003657 \n",
|
|
"1 -0.687367 -0.003839 0.002532 0.004240 \n",
|
|
"2 -0.411320 0.004571 0.002077 -0.000739 \n",
|
|
"3 -0.177124 0.005734 0.002063 0.001625 \n",
|
|
"4 -0.544198 -0.001512 -0.003387 -0.000964 \n",
|
|
"5 -0.245533 0.001101 0.000232 0.004975 \n",
|
|
"6 -0.570700 -0.000640 -0.009724 -0.001061 \n",
|
|
"7 -0.428218 0.003242 -0.007163 -0.002162 \n",
|
|
"8 -0.748547 -0.002593 0.002881 -0.001886 \n",
|
|
"9 -0.276559 0.002354 -0.001473 -0.002418 \n",
|
|
"10 -0.570432 0.005904 -0.006322 -0.004904 \n",
|
|
"11 -0.533622 0.002094 0.000147 -0.000672 \n",
|
|
"12 -0.597233 -0.001648 -0.000326 -0.001772 \n",
|
|
"13 -0.338392 -0.008854 0.000951 0.002029 \n",
|
|
"14 -0.572608 -0.003999 0.003651 0.003445 \n",
|
|
"15 -0.567454 -0.008439 -0.003843 -0.001975 \n",
|
|
"16 0.798154 -0.003043 0.001917 -0.001591 \n",
|
|
"\n",
|
|
" longestStrikeAboveMean_X longestStrikeAboveMean_Y \\\n",
|
|
"0 5.0 6.0 \n",
|
|
"1 9.0 7.0 \n",
|
|
"2 5.0 6.0 \n",
|
|
"3 7.0 9.0 \n",
|
|
"4 9.0 6.0 \n",
|
|
"5 6.0 7.0 \n",
|
|
"6 6.0 10.0 \n",
|
|
"7 11.0 6.0 \n",
|
|
"8 9.0 6.0 \n",
|
|
"9 7.0 5.0 \n",
|
|
"10 6.0 5.0 \n",
|
|
"11 11.0 7.0 \n",
|
|
"12 6.0 5.0 \n",
|
|
"13 6.0 8.0 \n",
|
|
"14 6.0 9.0 \n",
|
|
"15 9.0 6.0 \n",
|
|
"16 8.0 103.0 \n",
|
|
"\n",
|
|
" longestStrikeAboveMean_Z longestStrikeBelowMean_X \\\n",
|
|
"0 7.0 6.0 \n",
|
|
"1 8.0 7.0 \n",
|
|
"2 6.0 6.0 \n",
|
|
"3 7.0 6.0 \n",
|
|
"4 5.0 5.0 \n",
|
|
"5 11.0 6.0 \n",
|
|
"6 5.0 6.0 \n",
|
|
"7 10.0 6.0 \n",
|
|
"8 8.0 9.0 \n",
|
|
"9 8.0 11.0 \n",
|
|
"10 13.0 9.0 \n",
|
|
"11 6.0 8.0 \n",
|
|
"12 8.0 6.0 \n",
|
|
"13 5.0 11.0 \n",
|
|
"14 7.0 14.0 \n",
|
|
"15 8.0 6.0 \n",
|
|
"16 7.0 102.0 \n",
|
|
"\n",
|
|
" longestStrikeBelowMean_Y longestStrikeBelowMean_Z manipulationLow \\\n",
|
|
"0 13.0 11.0 3.951277e-01 \n",
|
|
"1 9.0 7.0 4.038103e-01 \n",
|
|
"2 7.0 6.0 4.809599e-01 \n",
|
|
"3 6.0 10.0 4.220357e-01 \n",
|
|
"4 8.0 7.0 4.508842e-01 \n",
|
|
"5 7.0 7.0 3.929400e-01 \n",
|
|
"6 8.0 9.0 3.645748e-01 \n",
|
|
"7 6.0 8.0 3.754912e-01 \n",
|
|
"8 7.0 10.0 3.534541e-01 \n",
|
|
"9 7.0 9.0 4.310468e-01 \n",
|
|
"10 9.0 7.0 4.364014e-01 \n",
|
|
"11 11.0 11.0 4.579393e-01 \n",
|
|
"12 8.0 8.0 4.263630e-01 \n",
|
|
"13 6.0 5.0 3.871373e-01 \n",
|
|
"14 7.0 7.0 4.354654e-01 \n",
|
|
"15 8.0 7.0 4.154386e-01 \n",
|
|
"16 9.0 100.0 1.041319e+13 \n",
|
|
"\n",
|
|
" maxPeakAmplitudeChangeAfter_X maxPeakAmplitudeChangeAfter_Y \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" maxPeakAmplitudeChangeAfter_Z maxPeakAmplitudeChangeBefore_X \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" maxPeakAmplitudeChangeBefore_Y maxPeakAmplitudeChangeBefore_Z \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" maxPeakChangeRatio_X maxPeakChangeRatio_Y maxPeakChangeRatio_Z \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" maxPeakDecreaseTime_X maxPeakDecreaseTime_Y maxPeakDecreaseTime_Z \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" maxPeakDuration_X maxPeakDuration_Y maxPeakDuration_Z \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" maxPeakIncreaseTime_X maxPeakIncreaseTime_Y maxPeakIncreaseTime_Z \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" maxPeakResponseSlopeAfter_X maxPeakResponseSlopeAfter_Y \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" maxPeakResponseSlopeAfter_Z maxPeakResponseSlopeBefore_X \\\n",
|
|
"0 NaN NaN \n",
|
|
"1 NaN NaN \n",
|
|
"2 NaN NaN \n",
|
|
"3 NaN NaN \n",
|
|
"4 NaN NaN \n",
|
|
"5 NaN NaN \n",
|
|
"6 NaN NaN \n",
|
|
"7 NaN NaN \n",
|
|
"8 NaN NaN \n",
|
|
"9 NaN NaN \n",
|
|
"10 NaN NaN \n",
|
|
"11 NaN NaN \n",
|
|
"12 NaN NaN \n",
|
|
"13 NaN NaN \n",
|
|
"14 NaN NaN \n",
|
|
"15 NaN NaN \n",
|
|
"16 NaN NaN \n",
|
|
"\n",
|
|
" maxPeakResponseSlopeBefore_Y maxPeakResponseSlopeBefore_Z maximum_X \\\n",
|
|
"0 NaN NaN 9.913559 \n",
|
|
"1 NaN NaN 9.791841 \n",
|
|
"2 NaN NaN 9.999467 \n",
|
|
"3 NaN NaN 9.929909 \n",
|
|
"4 NaN NaN 9.955434 \n",
|
|
"5 NaN NaN 9.827071 \n",
|
|
"6 NaN NaN 9.938884 \n",
|
|
"7 NaN NaN 9.908534 \n",
|
|
"8 NaN NaN 9.987894 \n",
|
|
"9 NaN NaN 9.841638 \n",
|
|
"10 NaN NaN 9.959363 \n",
|
|
"11 NaN NaN 9.963883 \n",
|
|
"12 NaN NaN 9.885265 \n",
|
|
"13 NaN NaN 9.907724 \n",
|
|
"14 NaN NaN 9.957088 \n",
|
|
"15 NaN NaN 9.888184 \n",
|
|
"16 NaN NaN 9.870713 \n",
|
|
"\n",
|
|
" maximum_Y maximum_Z meanAbsChange_X meanAbsChange_Y meanAbsChange_Z \\\n",
|
|
"0 9.879872 9.994753 6.708199 6.973540 6.387339 \n",
|
|
"1 9.995226 9.721326 6.352467 6.104119 6.843040 \n",
|
|
"2 9.932527 9.550520 6.448388 6.381125 6.585151 \n",
|
|
"3 9.886429 9.988993 6.510313 6.232186 6.635215 \n",
|
|
"4 9.987530 9.930801 6.646537 6.833095 6.771830 \n",
|
|
"5 9.917932 9.945268 6.754050 6.989046 6.821789 \n",
|
|
"6 9.920647 9.934602 6.347022 6.686862 6.783886 \n",
|
|
"7 9.932158 9.916075 6.423501 6.652570 7.042471 \n",
|
|
"8 9.909668 9.962329 6.406909 6.557554 6.863164 \n",
|
|
"9 9.928470 9.984929 6.851138 6.503910 6.678991 \n",
|
|
"10 9.730016 9.952821 6.649205 6.473480 6.272612 \n",
|
|
"11 9.904416 9.970920 6.993114 6.571131 6.624015 \n",
|
|
"12 9.979279 9.902320 6.472765 6.775512 6.540266 \n",
|
|
"13 9.996517 9.991721 6.500397 6.241242 6.967983 \n",
|
|
"14 9.967348 9.999424 5.997819 6.654779 6.906320 \n",
|
|
"15 9.921541 9.921249 6.617277 6.761452 6.751033 \n",
|
|
"16 9.777902 9.878466 4.545531 4.240018 4.510443 \n",
|
|
"\n",
|
|
" meanChange_X meanChange_Y meanChange_Z meanCrossingRate_XBand \\\n",
|
|
"0 -0.061334 0.006416 0.016333 79.0 \n",
|
|
"1 0.001574 0.008047 -0.041014 78.0 \n",
|
|
"2 0.030453 0.001773 0.045463 90.0 \n",
|
|
"3 -0.034580 0.002982 0.033159 79.0 \n",
|
|
"4 0.023233 0.056371 -0.030075 92.0 \n",
|
|
"5 0.034817 0.043220 0.010260 77.0 \n",
|
|
"6 0.003560 0.011067 0.002166 82.0 \n",
|
|
"7 -0.010176 -0.022255 -0.028938 79.0 \n",
|
|
"8 -0.012925 0.029457 -0.000918 85.0 \n",
|
|
"9 0.005239 -0.033076 -0.042385 86.0 \n",
|
|
"10 0.026809 -0.032378 -0.029518 86.0 \n",
|
|
"11 0.048897 -0.008182 0.020187 79.0 \n",
|
|
"12 0.050265 -0.002427 -0.018213 79.0 \n",
|
|
"13 0.043435 0.017885 0.036188 73.0 \n",
|
|
"14 -0.036082 -0.044090 -0.005177 75.0 \n",
|
|
"15 0.000130 0.022171 -0.000606 88.0 \n",
|
|
"16 -0.022743 -0.027098 -0.032527 71.0 \n",
|
|
"\n",
|
|
" meanCrossingRate_XLow meanCrossingRate_YBand meanCrossingRate_YLow \\\n",
|
|
"0 55.0 93.0 68.0 \n",
|
|
"1 64.0 72.0 56.0 \n",
|
|
"2 72.0 78.0 54.0 \n",
|
|
"3 42.0 76.0 46.0 \n",
|
|
"4 46.0 75.0 36.0 \n",
|
|
"5 62.0 87.0 63.0 \n",
|
|
"6 62.0 72.0 53.0 \n",
|
|
"7 51.0 84.0 60.0 \n",
|
|
"8 64.0 74.0 62.0 \n",
|
|
"9 62.0 77.0 57.0 \n",
|
|
"10 52.0 93.0 53.0 \n",
|
|
"11 65.0 72.0 74.0 \n",
|
|
"12 53.0 78.0 70.0 \n",
|
|
"13 38.0 83.0 47.0 \n",
|
|
"14 63.0 79.0 47.0 \n",
|
|
"15 58.0 76.0 64.0 \n",
|
|
"16 47.0 71.0 41.0 \n",
|
|
"\n",
|
|
" meanCrossingRate_ZBand meanCrossingRate_ZLow meanHr_X meanHr_Y \\\n",
|
|
"0 77.0 55.0 62.500000 40.000000 \n",
|
|
"1 91.0 61.0 96.256684 80.000000 \n",
|
|
"2 91.0 65.0 82.568807 85.714286 \n",
|
|
"3 89.0 78.0 73.506891 NaN \n",
|
|
"4 83.0 53.0 125.326371 88.235294 \n",
|
|
"5 90.0 58.0 NaN NaN \n",
|
|
"6 92.0 70.0 98.159509 48.128342 \n",
|
|
"7 89.0 59.0 44.444444 49.180328 \n",
|
|
"8 89.0 46.0 81.081081 NaN \n",
|
|
"9 81.0 63.0 NaN 139.534884 \n",
|
|
"10 69.0 61.0 60.606061 111.111111 \n",
|
|
"11 82.0 68.0 76.433121 37.735849 \n",
|
|
"12 77.0 55.0 86.330935 67.605634 \n",
|
|
"13 88.0 64.0 35.714286 79.470199 \n",
|
|
"14 91.0 54.0 74.074074 NaN \n",
|
|
"15 86.0 54.0 127.659574 29.702970 \n",
|
|
"16 63.0 61.0 171.428571 NaN \n",
|
|
"\n",
|
|
" meanHr_Z meanKineticEnergy_XBand meanKineticEnergy_YBand \\\n",
|
|
"0 50.420168 2618.753542 15.119339 \n",
|
|
"1 60.000000 2062.783810 2577.595421 \n",
|
|
"2 80.536913 2632.893555 2732.565173 \n",
|
|
"3 88.235294 1565.539599 267.909763 \n",
|
|
"4 NaN 102.001874 1690.707679 \n",
|
|
"5 81.494058 423.119096 734.081168 \n",
|
|
"6 59.405941 2118.507995 862.367879 \n",
|
|
"7 87.378641 1510.951610 21.975499 \n",
|
|
"8 75.353218 62.166538 1824.410823 \n",
|
|
"9 75.000000 19.485687 2832.060761 \n",
|
|
"10 41.666667 1317.479334 686.057248 \n",
|
|
"11 NaN 2717.538775 1568.039863 \n",
|
|
"12 134.328358 2067.344519 658.309984 \n",
|
|
"13 75.000000 900.033642 0.456851 \n",
|
|
"14 45.112782 206.529944 617.725595 \n",
|
|
"15 54.794521 2.180843 2742.296041 \n",
|
|
"16 NaN 1320.759448 1875.202062 \n",
|
|
"\n",
|
|
" meanKineticEnergy_ZBand mean_X mean_XLow mean_Y mean_YLow \\\n",
|
|
"0 285.854378 -0.053815 0.028358 0.037484 0.058162 \n",
|
|
"1 608.639737 0.612934 0.650683 0.038049 -0.007172 \n",
|
|
"2 954.255185 0.136521 0.049622 -0.210952 -0.240924 \n",
|
|
"3 304.747050 -0.051505 -0.021936 -0.168607 -0.192718 \n",
|
|
"4 1898.523547 -0.123231 -0.110755 -0.505054 -0.566469 \n",
|
|
"5 1293.340920 0.339549 0.307550 0.247265 0.181038 \n",
|
|
"6 52.863608 0.532152 0.487073 0.307206 0.354863 \n",
|
|
"7 2704.499361 0.215323 0.270237 0.008370 0.032609 \n",
|
|
"8 139.741126 0.249445 0.255462 0.245851 0.191933 \n",
|
|
"9 1098.466155 0.057833 0.065416 0.082462 0.144004 \n",
|
|
"10 2635.436742 0.003605 -0.056590 -0.074096 0.006955 \n",
|
|
"11 230.299711 0.112133 0.014987 0.085015 0.056788 \n",
|
|
"12 2036.611335 0.104627 0.008012 -0.129541 -0.157697 \n",
|
|
"13 692.888968 -0.475879 -0.520756 0.088602 0.064652 \n",
|
|
"14 528.401837 -0.109499 -0.083745 -0.170524 -0.107117 \n",
|
|
"15 1883.843543 -0.013173 -0.010739 -0.203450 -0.258259 \n",
|
|
"16 2701.182626 0.350229 0.403120 -0.294203 -0.231185 \n",
|
|
"\n",
|
|
" mean_Z mean_ZLow median_X median_Y median_Z minimum_X minimum_Y \\\n",
|
|
"0 -0.324680 -0.311957 0.023734 0.171356 -0.085728 -9.965873 -9.985840 \n",
|
|
"1 -0.108151 -0.074035 0.902051 -0.326440 -0.220649 -9.825098 -9.824381 \n",
|
|
"2 0.080433 0.012544 -0.159980 -0.481939 0.288308 -9.995123 -9.967720 \n",
|
|
"3 0.238372 0.214338 -0.444864 -0.381945 0.327812 -9.969508 -9.946186 \n",
|
|
"4 -0.201574 -0.148862 0.054146 -1.271820 -0.581734 -9.995572 -9.919872 \n",
|
|
"5 0.435037 0.382028 0.639785 0.584743 1.007224 -9.980317 -9.948741 \n",
|
|
"6 -0.041299 -0.040232 0.726784 0.518219 -0.300821 -9.850364 -9.892071 \n",
|
|
"7 0.270523 0.338685 0.583696 -0.228860 0.377563 -9.846594 -9.971076 \n",
|
|
"8 -0.447767 -0.452922 0.742909 0.639441 -0.748193 -9.949239 -9.961308 \n",
|
|
"9 0.447544 0.505685 -0.208261 0.034027 0.820417 -9.988752 -9.918648 \n",
|
|
"10 -0.063634 0.012662 -0.042287 -0.317458 0.433556 -9.919072 -9.951992 \n",
|
|
"11 -0.249747 -0.262029 0.089504 0.325710 -0.285281 -9.918629 -9.884742 \n",
|
|
"12 0.466454 0.538576 -0.059035 -0.317737 0.380071 -9.923152 -9.961030 \n",
|
|
"13 0.067747 0.024853 -0.750726 0.700494 -0.061674 -9.960061 -9.790094 \n",
|
|
"14 -0.196882 -0.182077 -0.275986 -0.137257 -0.601903 -9.978229 -9.975827 \n",
|
|
"15 -0.284220 -0.252543 0.315943 -0.119290 -0.772663 -9.969270 -9.910271 \n",
|
|
"16 0.452310 0.527953 0.000000 0.000000 0.000000 -9.921719 -9.957280 \n",
|
|
"\n",
|
|
" minimum_Z numOfPeaksAutocorr_X numOfPeaksAutocorr_Y \\\n",
|
|
"0 -9.989369 0.0 0.0 \n",
|
|
"1 -9.921596 0.0 0.0 \n",
|
|
"2 -9.904902 0.0 0.0 \n",
|
|
"3 -9.968657 0.0 0.0 \n",
|
|
"4 -9.966824 0.0 0.0 \n",
|
|
"5 -9.746075 0.0 0.0 \n",
|
|
"6 -9.968426 0.0 0.0 \n",
|
|
"7 -9.991425 0.0 0.0 \n",
|
|
"8 -9.945887 0.0 0.0 \n",
|
|
"9 -9.943115 0.0 0.0 \n",
|
|
"10 -9.995130 0.0 0.0 \n",
|
|
"11 -9.911025 0.0 0.0 \n",
|
|
"12 -9.942037 0.0 0.0 \n",
|
|
"13 -9.996525 0.0 0.0 \n",
|
|
"14 -9.968281 0.0 0.0 \n",
|
|
"15 -9.942458 0.0 0.0 \n",
|
|
"16 -9.944961 0.0 0.0 \n",
|
|
"\n",
|
|
" numOfPeaksAutocorr_Z numPeaks_X numPeaks_Y numPeaks_Z \\\n",
|
|
"0 0.0 0.0 0.0 0.0 \n",
|
|
"1 0.0 0.0 0.0 0.0 \n",
|
|
"2 0.0 0.0 0.0 0.0 \n",
|
|
"3 0.0 0.0 0.0 0.0 \n",
|
|
"4 0.0 0.0 0.0 0.0 \n",
|
|
"5 0.0 0.0 0.0 0.0 \n",
|
|
"6 0.0 0.0 0.0 0.0 \n",
|
|
"7 0.0 0.0 0.0 0.0 \n",
|
|
"8 0.0 0.0 0.0 0.0 \n",
|
|
"9 0.0 0.0 0.0 0.0 \n",
|
|
"10 0.0 0.0 0.0 0.0 \n",
|
|
"11 0.0 0.0 0.0 0.0 \n",
|
|
"12 0.0 0.0 0.0 0.0 \n",
|
|
"13 0.0 0.0 0.0 0.0 \n",
|
|
"14 0.0 0.0 0.0 0.0 \n",
|
|
"15 0.0 0.0 0.0 0.0 \n",
|
|
"16 0.0 0.0 0.0 0.0 \n",
|
|
"\n",
|
|
" numberOfZeroCrossingsAutocorr_X numberOfZeroCrossingsAutocorr_Y \\\n",
|
|
"0 113.0 117.0 \n",
|
|
"1 106.0 106.0 \n",
|
|
"2 104.0 107.0 \n",
|
|
"3 98.0 99.0 \n",
|
|
"4 100.0 123.0 \n",
|
|
"5 111.0 129.0 \n",
|
|
"6 99.0 108.0 \n",
|
|
"7 121.0 84.0 \n",
|
|
"8 86.0 96.0 \n",
|
|
"9 105.0 91.0 \n",
|
|
"10 103.0 113.0 \n",
|
|
"11 111.0 100.0 \n",
|
|
"12 91.0 110.0 \n",
|
|
"13 81.0 90.0 \n",
|
|
"14 76.0 105.0 \n",
|
|
"15 90.0 102.0 \n",
|
|
"16 125.0 101.0 \n",
|
|
"\n",
|
|
" numberOfZeroCrossingsAutocorr_Z numberOfZeroCrossings_X \\\n",
|
|
"0 91.0 151.0 \n",
|
|
"1 100.0 144.0 \n",
|
|
"2 97.0 142.0 \n",
|
|
"3 105.0 145.0 \n",
|
|
"4 113.0 158.0 \n",
|
|
"5 108.0 149.0 \n",
|
|
"6 105.0 142.0 \n",
|
|
"7 108.0 142.0 \n",
|
|
"8 110.0 137.0 \n",
|
|
"9 102.0 148.0 \n",
|
|
"10 96.0 155.0 \n",
|
|
"11 121.0 155.0 \n",
|
|
"12 114.0 145.0 \n",
|
|
"13 117.0 149.0 \n",
|
|
"14 118.0 143.0 \n",
|
|
"15 111.0 152.0 \n",
|
|
"16 117.0 95.0 \n",
|
|
"\n",
|
|
" numberOfZeroCrossings_Y numberOfZeroCrossings_Z peaksAmplitudeAvgLow \\\n",
|
|
"0 144.0 138.0 0.004347 \n",
|
|
"1 154.0 155.0 0.042207 \n",
|
|
"2 150.0 147.0 0.020205 \n",
|
|
"3 140.0 153.0 0.101105 \n",
|
|
"4 151.0 155.0 0.038745 \n",
|
|
"5 159.0 146.0 0.044786 \n",
|
|
"6 144.0 156.0 0.052742 \n",
|
|
"7 154.0 154.0 0.017061 \n",
|
|
"8 147.0 156.0 0.007580 \n",
|
|
"9 151.0 147.0 0.025005 \n",
|
|
"10 161.0 146.0 0.004923 \n",
|
|
"11 148.0 150.0 0.007717 \n",
|
|
"12 154.0 144.0 0.018046 \n",
|
|
"13 140.0 163.0 0.030769 \n",
|
|
"14 143.0 154.0 0.021353 \n",
|
|
"15 146.0 148.0 0.024445 \n",
|
|
"16 97.0 101.0 0.078129 \n",
|
|
"\n",
|
|
" peaksCountLow peaksCountLow_Q1 peaksCountLow_Q2 peaksCountLow_Q3 \\\n",
|
|
"0 72.0 57.0 309.361480 57.0 \n",
|
|
"1 68.0 51.0 271.726393 51.0 \n",
|
|
"2 69.0 48.0 254.965233 48.0 \n",
|
|
"3 65.0 50.0 289.440791 50.0 \n",
|
|
"4 69.0 49.0 284.170123 49.0 \n",
|
|
"5 77.0 54.0 305.670505 54.0 \n",
|
|
"6 64.0 55.0 296.210557 55.0 \n",
|
|
"7 71.0 59.0 324.927240 59.0 \n",
|
|
"8 67.0 54.0 300.957699 54.0 \n",
|
|
"9 69.0 53.0 306.728286 53.0 \n",
|
|
"10 73.0 55.0 297.733790 55.0 \n",
|
|
"11 72.0 51.0 274.507960 51.0 \n",
|
|
"12 66.0 59.0 323.652760 59.0 \n",
|
|
"13 67.0 52.0 282.127707 52.0 \n",
|
|
"14 64.0 54.0 293.794128 54.0 \n",
|
|
"15 72.0 48.0 290.775130 48.0 \n",
|
|
"16 43.0 29.0 167.727864 29.0 \n",
|
|
"\n",
|
|
" peaksCountLow_Q4 peaksPeakAvgLow peaksSumLow pitchAvgLow pitchPeak0 \\\n",
|
|
"0 309.361480 5.040374 362.906957 3.040772 17.0 \n",
|
|
"1 271.726393 4.909723 333.861168 2.989347 20.0 \n",
|
|
"2 254.965233 4.824639 332.900101 2.961778 20.0 \n",
|
|
"3 289.440791 5.353140 347.954088 3.121756 23.0 \n",
|
|
"4 284.170123 5.124634 353.599737 2.883563 17.0 \n",
|
|
"5 305.670505 5.250856 404.315911 3.111643 18.0 \n",
|
|
"6 296.210557 5.090897 325.817395 3.018990 14.0 \n",
|
|
"7 324.927240 5.214193 370.207730 3.013429 25.0 \n",
|
|
"8 300.957699 5.242828 351.269476 2.952927 20.0 \n",
|
|
"9 306.728286 5.210245 359.506912 2.839403 21.0 \n",
|
|
"10 297.733790 5.073142 370.339333 3.065137 21.0 \n",
|
|
"11 274.507960 4.841892 348.616221 3.079928 23.0 \n",
|
|
"12 323.652760 5.102014 336.732929 3.024905 18.0 \n",
|
|
"13 282.127707 5.138125 344.254404 3.112154 25.0 \n",
|
|
"14 293.794128 5.144971 329.278152 2.999553 31.0 \n",
|
|
"15 290.775130 5.408422 389.406373 2.988340 17.0 \n",
|
|
"16 167.727864 5.017205 215.739794 3.131790 18.0 \n",
|
|
"\n",
|
|
" pitchPeak1 pitchPeak2 pitchPeak3 pitchStdDevLow pnn20_X pnn20_Y \\\n",
|
|
"0 13.579794 0.798811 0.007989 0.486736 100.000000 0.0 \n",
|
|
"1 10.988615 0.549431 0.012838 0.469389 50.000000 0.0 \n",
|
|
"2 13.188341 0.659417 0.009117 0.486348 50.000000 0.0 \n",
|
|
"3 19.352167 0.841399 0.042834 0.528436 100.000000 NaN \n",
|
|
"4 11.280661 0.663568 0.057515 0.474275 100.000000 0.0 \n",
|
|
"5 13.520449 0.751136 0.082269 0.468915 NaN NaN \n",
|
|
"6 9.893896 0.706707 0.016822 0.428226 33.333333 50.0 \n",
|
|
"7 17.965807 0.718632 0.048602 0.480323 0.000000 0.0 \n",
|
|
"8 12.073847 0.603692 0.014102 0.485176 100.000000 NaN \n",
|
|
"9 16.691937 0.794854 0.010707 0.462277 NaN 100.0 \n",
|
|
"10 11.844907 0.564043 0.003436 0.495768 0.000000 0.0 \n",
|
|
"11 15.343869 0.667125 0.035624 0.516570 100.000000 0.0 \n",
|
|
"12 11.012970 0.611832 0.051925 0.487811 100.000000 100.0 \n",
|
|
"13 21.396988 0.855880 0.032036 0.545359 0.000000 100.0 \n",
|
|
"14 20.769242 0.669976 0.000129 0.550696 0.000000 NaN \n",
|
|
"15 8.187062 0.481592 0.059789 0.520021 0.000000 0.0 \n",
|
|
"16 10.739782 0.596655 0.001056 0.879333 0.000000 NaN \n",
|
|
"\n",
|
|
" pnn20_Z pnn50_X pnn50_Y pnn50_Z postureDistance_XLow \\\n",
|
|
"0 0.000000 0.000000 0.000000 0.000000 -0.029805 \n",
|
|
"1 0.000000 50.000000 0.000000 0.000000 0.657856 \n",
|
|
"2 0.000000 50.000000 0.000000 0.000000 0.290546 \n",
|
|
"3 100.000000 100.000000 NaN 50.000000 0.170782 \n",
|
|
"4 NaN 66.666667 0.000000 NaN 0.455714 \n",
|
|
"5 100.000000 NaN NaN 100.000000 0.126512 \n",
|
|
"6 0.000000 33.333333 50.000000 0.000000 0.132211 \n",
|
|
"7 50.000000 0.000000 0.000000 50.000000 0.237628 \n",
|
|
"8 66.666667 0.000000 NaN 66.666667 0.063529 \n",
|
|
"9 50.000000 NaN 100.000000 50.000000 -0.078588 \n",
|
|
"10 0.000000 0.000000 0.000000 0.000000 -0.063545 \n",
|
|
"11 NaN 0.000000 0.000000 NaN -0.041801 \n",
|
|
"12 50.000000 66.666667 100.000000 50.000000 0.165709 \n",
|
|
"13 0.000000 0.000000 33.333333 0.000000 -0.585409 \n",
|
|
"14 0.000000 0.000000 NaN 0.000000 0.023373 \n",
|
|
"15 100.000000 0.000000 0.000000 100.000000 0.247520 \n",
|
|
"16 NaN 0.000000 NaN NaN 0.634305 \n",
|
|
"\n",
|
|
" postureDistance_YLow postureDistance_ZLow powerPeaks_X powerPeaks_Y \\\n",
|
|
"0 0.340314 0.370119 NaN NaN \n",
|
|
"1 0.724718 0.066863 NaN NaN \n",
|
|
"2 0.037078 -0.253467 NaN NaN \n",
|
|
"3 -0.236275 -0.407056 NaN NaN \n",
|
|
"4 0.038107 -0.417607 NaN NaN \n",
|
|
"5 -0.074478 -0.200990 NaN NaN \n",
|
|
"6 0.527305 0.395094 NaN NaN \n",
|
|
"7 -0.068449 -0.306077 NaN NaN \n",
|
|
"8 0.708385 0.644856 NaN NaN \n",
|
|
"9 -0.440269 -0.361681 NaN NaN \n",
|
|
"10 -0.069252 -0.005707 NaN NaN \n",
|
|
"11 0.277016 0.318816 NaN NaN \n",
|
|
"12 -0.530565 -0.696274 NaN NaN \n",
|
|
"13 -0.545609 0.039800 NaN NaN \n",
|
|
"14 0.098332 0.074959 NaN NaN \n",
|
|
"15 0.241804 -0.005716 NaN NaN \n",
|
|
"16 -0.124833 -0.759138 NaN NaN \n",
|
|
"\n",
|
|
" powerPeaks_Z power_X power_Y power_Z propPosDeriv_X \\\n",
|
|
"0 NaN 32.524274 36.163429 32.705805 0.470000 \n",
|
|
"1 NaN 31.493599 29.666586 33.188934 0.480000 \n",
|
|
"2 NaN 32.232536 30.615100 30.404677 0.530000 \n",
|
|
"3 NaN 33.421188 32.670787 33.274592 0.506667 \n",
|
|
"4 NaN 32.365346 35.637434 32.209114 0.490000 \n",
|
|
"5 NaN 34.112312 34.572956 35.212041 0.486667 \n",
|
|
"6 NaN 31.609471 34.420253 33.846841 0.523333 \n",
|
|
"7 NaN 31.733738 34.138805 34.626346 0.496667 \n",
|
|
"8 NaN 34.652641 33.932097 33.691264 0.463333 \n",
|
|
"9 NaN 36.756438 32.782473 33.734465 0.523333 \n",
|
|
"10 NaN 31.915271 29.638592 31.600046 0.490000 \n",
|
|
"11 NaN 34.221014 31.748026 31.730052 0.526667 \n",
|
|
"12 NaN 32.131935 32.278310 34.171782 0.506667 \n",
|
|
"13 NaN 33.830058 32.109646 33.222378 0.496667 \n",
|
|
"14 NaN 30.634915 34.434996 35.121045 0.540000 \n",
|
|
"15 NaN 36.301626 35.469762 33.481699 0.493333 \n",
|
|
"16 NaN 21.613741 20.467723 23.369348 0.323333 \n",
|
|
"\n",
|
|
" propPosDeriv_Y propPosDeriv_Z q25_X q25_Y q25_Z q75_X \\\n",
|
|
"0 0.503333 0.503333 -9.904968 -9.913460 -9.891769 -9.815603 \n",
|
|
"1 0.513333 0.490000 -9.823503 -9.623845 -9.895991 -9.804560 \n",
|
|
"2 0.503333 0.506667 -9.867619 -9.803923 -9.852809 -9.732812 \n",
|
|
"3 0.476667 0.540000 -9.783592 -9.889890 -9.927404 -9.641721 \n",
|
|
"4 0.493333 0.490000 -9.810951 -9.886232 -9.954297 -9.675613 \n",
|
|
"5 0.503333 0.500000 -9.856497 -9.917740 -9.743170 -9.808626 \n",
|
|
"6 0.526667 0.503333 -9.800427 -9.848262 -9.900453 -9.709491 \n",
|
|
"7 0.496667 0.490000 -9.807134 -9.948366 -9.990132 -9.624504 \n",
|
|
"8 0.513333 0.526667 -9.938917 -9.922598 -9.720563 -9.920205 \n",
|
|
"9 0.470000 0.486667 -9.983522 -9.842103 -9.795918 -9.902970 \n",
|
|
"10 0.523333 0.490000 -9.886542 -9.883881 -9.924314 -9.794184 \n",
|
|
"11 0.476667 0.496667 -9.858026 -9.878642 -9.880814 -9.808943 \n",
|
|
"12 0.506667 0.490000 -9.911604 -9.951319 -9.910403 -9.881491 \n",
|
|
"13 0.536667 0.526667 -9.828445 -9.739559 -9.984165 -9.759210 \n",
|
|
"14 0.490000 0.496667 -9.842490 -9.926872 -9.867218 -9.731634 \n",
|
|
"15 0.473333 0.506667 -9.950656 -9.780268 -9.796500 -9.886783 \n",
|
|
"16 0.333333 0.350000 -9.864598 -9.840362 -9.910587 -9.808965 \n",
|
|
"\n",
|
|
" q75_Y q75_Z qd_X qd_Y qd_Z \\\n",
|
|
"0 -9.722151 -9.784468 0.089365 0.191309 0.107300 \n",
|
|
"1 -9.457585 -9.749080 0.018943 0.166260 0.146912 \n",
|
|
"2 -9.489301 -9.749357 0.134807 0.314622 0.103452 \n",
|
|
"3 -9.826188 -9.778254 0.141871 0.063702 0.149151 \n",
|
|
"4 -9.799702 -9.897261 0.135337 0.086530 0.057035 \n",
|
|
"5 -9.895604 -9.719051 0.047870 0.022136 0.024119 \n",
|
|
"6 -9.815993 -9.736544 0.090936 0.032269 0.163909 \n",
|
|
"7 -9.845109 -9.902559 0.182630 0.103257 0.087573 \n",
|
|
"8 -9.695187 -9.633150 0.018712 0.227412 0.087413 \n",
|
|
"9 -9.701007 -9.673999 0.080552 0.141096 0.121919 \n",
|
|
"10 -9.758558 -9.875219 0.092358 0.125324 0.049096 \n",
|
|
"11 -9.870160 -9.830770 0.049083 0.008482 0.050044 \n",
|
|
"12 -9.863729 -9.856373 0.030113 0.087590 0.054030 \n",
|
|
"13 -9.663949 -9.804782 0.069235 0.075611 0.179384 \n",
|
|
"14 -9.753898 -9.823848 0.110856 0.172974 0.043369 \n",
|
|
"15 -9.527091 -9.561305 0.063874 0.253177 0.235195 \n",
|
|
"16 -9.755245 -9.704994 0.055633 0.085117 0.205592 \n",
|
|
"\n",
|
|
" quartilesMagnitudeLow_Q1 quartilesMagnitudeLow_Q2 \\\n",
|
|
"0 2.997074 3.831943 \n",
|
|
"1 2.843185 3.823473 \n",
|
|
"2 2.603842 3.455643 \n",
|
|
"3 2.858406 3.899183 \n",
|
|
"4 2.668560 3.745257 \n",
|
|
"5 2.981484 4.133815 \n",
|
|
"6 2.944049 3.830869 \n",
|
|
"7 3.014263 3.936224 \n",
|
|
"8 3.154731 4.072560 \n",
|
|
"9 2.685077 3.947851 \n",
|
|
"10 2.744576 3.936554 \n",
|
|
"11 2.646841 3.830938 \n",
|
|
"12 2.864009 4.011649 \n",
|
|
"13 2.879925 3.937298 \n",
|
|
"14 2.967667 3.971088 \n",
|
|
"15 2.667819 3.939721 \n",
|
|
"16 0.000506 2.642343 \n",
|
|
"\n",
|
|
" quartilesMagnitudeLow_Q3 quartilesMagnitudes_XBand \\\n",
|
|
"0 4.970148 1.529648 \n",
|
|
"1 4.785591 1.354417 \n",
|
|
"2 4.554796 1.429635 \n",
|
|
"3 4.992970 1.503415 \n",
|
|
"4 5.039420 1.423320 \n",
|
|
"5 5.161984 1.505583 \n",
|
|
"6 4.925347 1.370036 \n",
|
|
"7 4.958604 1.424857 \n",
|
|
"8 5.011556 1.459846 \n",
|
|
"9 5.102741 1.519479 \n",
|
|
"10 4.853421 1.381178 \n",
|
|
"11 4.803355 1.419972 \n",
|
|
"12 5.094697 1.348596 \n",
|
|
"13 4.858366 1.505410 \n",
|
|
"14 4.971170 1.463376 \n",
|
|
"15 5.339524 1.607608 \n",
|
|
"16 4.304358 0.000888 \n",
|
|
"\n",
|
|
" quartilesMagnitudes_YBand quartilesMagnitudes_ZBand quartilesQ1_XBand \\\n",
|
|
"0 1.953035 2.450324 -0.857281 \n",
|
|
"1 1.823645 2.371402 -0.890517 \n",
|
|
"2 1.857566 2.287946 -0.908937 \n",
|
|
"3 1.927286 2.430919 -0.936330 \n",
|
|
"4 1.943362 2.351452 -0.848642 \n",
|
|
"5 2.044482 2.457244 -0.964691 \n",
|
|
"6 1.911373 2.463859 -0.853602 \n",
|
|
"7 1.923635 2.375836 -0.933618 \n",
|
|
"8 1.894052 2.419341 -0.989153 \n",
|
|
"9 1.983375 2.489371 -0.981082 \n",
|
|
"10 1.803099 2.299181 -0.839424 \n",
|
|
"11 1.892468 2.321498 -0.947796 \n",
|
|
"12 1.920256 2.424900 -0.885908 \n",
|
|
"13 1.886238 2.384941 -0.905751 \n",
|
|
"14 1.953468 2.438616 -0.829282 \n",
|
|
"15 2.024101 2.466989 -0.915346 \n",
|
|
"16 1.447118 2.128269 -0.416022 \n",
|
|
"\n",
|
|
" quartilesQ1_YBand quartilesQ1_ZBand quartilesQ2_XBand \\\n",
|
|
"0 -1.066341 -0.943389 1.734648e-03 \n",
|
|
"1 -0.896180 -0.890692 5.305092e-02 \n",
|
|
"2 -0.905143 -0.904948 -1.316958e-01 \n",
|
|
"3 -0.895335 -1.012306 7.424161e-02 \n",
|
|
"4 -1.009354 -0.870719 9.819226e-03 \n",
|
|
"5 -0.898707 -0.974285 -5.631767e-02 \n",
|
|
"6 -0.919344 -0.833187 -2.319636e-02 \n",
|
|
"7 -0.909365 -0.856205 3.927045e-03 \n",
|
|
"8 -0.990565 -0.815172 5.484881e-02 \n",
|
|
"9 -1.022765 -0.921673 4.270924e-02 \n",
|
|
"10 -0.860238 -0.793160 -6.855676e-03 \n",
|
|
"11 -0.910512 -0.870465 -5.014919e-02 \n",
|
|
"12 -0.910620 -0.927338 2.410547e-02 \n",
|
|
"13 -0.898025 -0.906175 -8.665132e-02 \n",
|
|
"14 -0.974343 -0.955520 -4.738416e-02 \n",
|
|
"15 -0.984985 -0.811973 -3.887618e-02 \n",
|
|
"16 -0.440029 -0.540883 3.331106e-07 \n",
|
|
"\n",
|
|
" quartilesQ2_YBand quartilesQ2_ZBand quartilesQ3_XBand \\\n",
|
|
"0 1.474204e-01 2.570732e-02 0.900173 \n",
|
|
"1 -1.393668e-01 6.543044e-02 0.998641 \n",
|
|
"2 -2.592307e-02 3.705648e-02 1.074195 \n",
|
|
"3 7.881847e-02 3.799249e-02 0.965155 \n",
|
|
"4 -6.889970e-02 4.224540e-03 0.911672 \n",
|
|
"5 -8.779827e-02 8.764006e-02 0.932725 \n",
|
|
"6 -9.019255e-03 -3.461384e-03 0.847410 \n",
|
|
"7 -1.005830e-02 3.384215e-03 0.851492 \n",
|
|
"8 3.164539e-02 -2.583106e-02 1.025297 \n",
|
|
"9 6.089817e-02 5.860674e-02 0.959995 \n",
|
|
"10 -4.994243e-03 -2.613465e-02 0.875425 \n",
|
|
"11 -3.398671e-02 -1.037207e-02 0.988602 \n",
|
|
"12 -2.678631e-02 1.237609e-01 0.912376 \n",
|
|
"13 3.114818e-02 -3.300223e-02 0.778031 \n",
|
|
"14 1.429302e-02 1.719155e-02 0.926055 \n",
|
|
"15 -4.416076e-02 -2.242612e-02 1.048730 \n",
|
|
"16 -2.639121e-07 -4.257538e-09 0.551091 \n",
|
|
"\n",
|
|
" quartilesQ3_YBand quartilesQ3_ZBand quartiles_Q1_XLow \\\n",
|
|
"0 0.917809 0.960279 -1.692628 \n",
|
|
"1 0.821929 0.941297 -1.075061 \n",
|
|
"2 0.836151 0.873429 -1.413513 \n",
|
|
"3 0.960944 0.983116 -1.860919 \n",
|
|
"4 1.017258 0.906597 -1.853105 \n",
|
|
"5 0.982897 0.993620 -1.426029 \n",
|
|
"6 0.907176 0.867320 -1.164096 \n",
|
|
"7 0.923628 0.875569 -1.476751 \n",
|
|
"8 0.862250 0.874136 -1.723314 \n",
|
|
"9 0.984925 0.816430 -1.718565 \n",
|
|
"10 0.824992 0.803966 -1.691706 \n",
|
|
"11 0.725148 0.919259 -1.536187 \n",
|
|
"12 0.869175 0.966424 -1.586190 \n",
|
|
"13 0.978833 0.971133 -2.410799 \n",
|
|
"14 0.936954 0.939674 -1.731873 \n",
|
|
"15 1.077973 0.895863 -1.958784 \n",
|
|
"16 0.288465 0.507107 -0.354829 \n",
|
|
"\n",
|
|
" quartiles_Q1_YLow quartiles_Q1_ZLow quartiles_Q2_XLow \\\n",
|
|
"0 -1.541206 -2.190574 7.106834e-02 \n",
|
|
"1 -1.881130 -1.707743 7.121445e-01 \n",
|
|
"2 -1.861473 -1.407143 -1.932959e-02 \n",
|
|
"3 -1.922915 -1.264425 -2.975076e-01 \n",
|
|
"4 -2.190908 -1.998139 -6.881272e-02 \n",
|
|
"5 -1.490952 -1.543161 3.411664e-01 \n",
|
|
"6 -1.796971 -1.543134 4.847145e-01 \n",
|
|
"7 -1.732299 -1.375862 3.162880e-01 \n",
|
|
"8 -1.752244 -2.346500 3.795663e-01 \n",
|
|
"9 -1.588920 -1.023154 8.254056e-02 \n",
|
|
"10 -1.424364 -2.000485 -1.249822e-01 \n",
|
|
"11 -1.844722 -1.895595 4.847813e-03 \n",
|
|
"12 -1.785255 -1.375454 1.907984e-01 \n",
|
|
"13 -1.576045 -1.598559 -8.241570e-01 \n",
|
|
"14 -1.924112 -1.910202 -1.233831e-01 \n",
|
|
"15 -2.041210 -1.911564 -4.371645e-02 \n",
|
|
"16 -1.282318 -0.007787 -1.034646e-10 \n",
|
|
"\n",
|
|
" quartiles_Q2_YLow quartiles_Q2_ZLow quartiles_Q3_XLow \\\n",
|
|
"0 1.925838e-01 -0.244365 1.772612 \n",
|
|
"1 4.735999e-03 -0.227438 2.415131 \n",
|
|
"2 -1.750099e-01 -0.007410 1.839983 \n",
|
|
"3 -1.634460e-01 0.273415 1.716989 \n",
|
|
"4 -6.622510e-01 -0.047323 1.480328 \n",
|
|
"5 2.301154e-01 0.542243 2.154964 \n",
|
|
"6 5.439990e-01 -0.094862 2.311904 \n",
|
|
"7 5.966718e-02 0.301915 1.964963 \n",
|
|
"8 2.255246e-01 -0.316655 2.124440 \n",
|
|
"9 1.560492e-01 0.474546 1.738235 \n",
|
|
"10 -1.370148e-01 -0.053503 1.753026 \n",
|
|
"11 3.170505e-01 -0.285082 1.836553 \n",
|
|
"12 5.473598e-03 0.528322 1.576726 \n",
|
|
"13 -7.963359e-02 0.064714 1.269420 \n",
|
|
"14 -1.492296e-01 -0.151915 2.032976 \n",
|
|
"15 -4.362463e-02 -0.219009 2.046924 \n",
|
|
"16 1.421830e-09 0.000036 1.399923 \n",
|
|
"\n",
|
|
" quartiles_Q3_YLow quartiles_Q3_ZLow ratePeaks_X ratePeaks_Y \\\n",
|
|
"0 1.767104 1.517931 0.0 0.0 \n",
|
|
"1 1.929656 1.460147 0.0 0.0 \n",
|
|
"2 1.449344 1.655161 0.0 0.0 \n",
|
|
"3 1.508407 2.070949 0.0 0.0 \n",
|
|
"4 1.161326 1.525732 0.0 0.0 \n",
|
|
"5 1.912678 2.285364 0.0 0.0 \n",
|
|
"6 2.355886 1.509694 0.0 0.0 \n",
|
|
"7 1.731693 2.009830 0.0 0.0 \n",
|
|
"8 2.059840 1.263401 0.0 0.0 \n",
|
|
"9 1.745099 2.263241 0.0 0.0 \n",
|
|
"10 1.696057 2.092684 0.0 0.0 \n",
|
|
"11 1.882568 1.351052 0.0 0.0 \n",
|
|
"12 1.832236 2.350274 0.0 0.0 \n",
|
|
"13 1.535768 1.566630 0.0 0.0 \n",
|
|
"14 1.670429 1.484681 0.0 0.0 \n",
|
|
"15 1.720127 1.286591 0.0 0.0 \n",
|
|
"16 0.566322 1.574568 0.0 0.0 \n",
|
|
"\n",
|
|
" ratePeaks_Z ratioBeyondRSigma_X ratioBeyondRSigma_Y \\\n",
|
|
"0 0.0 0.0 0.0 \n",
|
|
"1 0.0 0.0 0.0 \n",
|
|
"2 0.0 0.0 0.0 \n",
|
|
"3 0.0 0.0 0.0 \n",
|
|
"4 0.0 0.0 0.0 \n",
|
|
"5 0.0 0.0 0.0 \n",
|
|
"6 0.0 0.0 0.0 \n",
|
|
"7 0.0 0.0 0.0 \n",
|
|
"8 0.0 0.0 0.0 \n",
|
|
"9 0.0 0.0 0.0 \n",
|
|
"10 0.0 0.0 0.0 \n",
|
|
"11 0.0 0.0 0.0 \n",
|
|
"12 0.0 0.0 0.0 \n",
|
|
"13 0.0 0.0 0.0 \n",
|
|
"14 0.0 0.0 0.0 \n",
|
|
"15 0.0 0.0 0.0 \n",
|
|
"16 0.0 0.0 0.0 \n",
|
|
"\n",
|
|
" ratioBeyondRSigma_Z rmssd_X rmssd_Y rmssd_Z rollAvgLow \\\n",
|
|
"0 0.0 0.040000 0.00000 0.000000 6.267041 \n",
|
|
"1 0.0 0.070711 0.00000 0.000000 6.229705 \n",
|
|
"2 0.0 0.056569 0.00000 0.010000 6.246037 \n",
|
|
"3 0.0 0.176564 NaN 0.079057 6.263200 \n",
|
|
"4 0.0 0.073314 0.00000 NaN 6.257153 \n",
|
|
"5 0.0 NaN NaN 0.143788 6.235513 \n",
|
|
"6 0.0 0.055227 0.13435 0.000000 6.256733 \n",
|
|
"7 0.0 0.000000 0.00000 0.099247 6.249577 \n",
|
|
"8 0.0 0.020000 NaN 0.084113 6.257396 \n",
|
|
"9 0.0 NaN 0.16000 0.106066 6.229289 \n",
|
|
"10 0.0 0.000000 0.00000 0.000000 6.197414 \n",
|
|
"11 0.0 0.030000 0.00000 NaN 6.245839 \n",
|
|
"12 0.0 0.152315 0.19500 0.049497 6.191870 \n",
|
|
"13 0.0 0.000000 0.06364 0.000000 6.216458 \n",
|
|
"14 0.0 0.000000 NaN 0.000000 6.250970 \n",
|
|
"15 0.0 0.000000 0.00000 0.090000 6.252043 \n",
|
|
"16 0.0 0.015811 NaN NaN 6.168358 \n",
|
|
"\n",
|
|
" rollMotionAmountLow rollMotionRegularityLow rollPeak0 rollPeak1 \\\n",
|
|
"0 1.542201 0.960000 58.0 81.579155 \n",
|
|
"1 1.572021 0.946667 50.0 81.415426 \n",
|
|
"2 1.644758 0.920000 57.0 85.111788 \n",
|
|
"3 1.628594 0.960000 53.0 95.000403 \n",
|
|
"4 1.751518 0.986667 60.0 101.781375 \n",
|
|
"5 1.479838 0.943333 50.0 97.621402 \n",
|
|
"6 1.454305 0.913333 54.0 89.027514 \n",
|
|
"7 1.514670 0.936667 52.0 89.122608 \n",
|
|
"8 1.486984 0.940000 55.0 79.561599 \n",
|
|
"9 1.543290 0.943333 53.0 95.600485 \n",
|
|
"10 1.593219 0.953333 52.0 78.927944 \n",
|
|
"11 1.516778 0.953333 59.0 77.765390 \n",
|
|
"12 1.565020 0.960000 46.0 75.389760 \n",
|
|
"13 1.549493 0.943333 51.0 92.043536 \n",
|
|
"14 1.644497 0.946667 63.0 118.478766 \n",
|
|
"15 1.605553 0.930000 64.0 97.084014 \n",
|
|
"16 1.106250 0.966667 36.0 67.487914 \n",
|
|
"\n",
|
|
" rollPeak2 rollPeak3 rollPitchCorrelation rollStdDevLow sd1/sd2_X \\\n",
|
|
"0 1.406537 9.519295e-02 0.999979 1.781788 NaN \n",
|
|
"1 1.628309 6.604003e-02 0.999981 1.828565 0.534522 \n",
|
|
"2 1.493189 9.489318e-02 0.999979 1.882802 0.534522 \n",
|
|
"3 1.792460 1.092292e-02 0.999981 1.853306 1.379034 \n",
|
|
"4 1.696356 7.270613e-02 0.999981 1.957519 0.995458 \n",
|
|
"5 1.952428 3.119174e-02 0.999980 1.714472 NaN \n",
|
|
"6 1.648658 1.089759e-01 0.999980 1.744573 0.577154 \n",
|
|
"7 1.713896 3.651673e-02 0.999978 1.774453 NaN \n",
|
|
"8 1.446575 4.361178e-02 0.999979 1.745401 NaN \n",
|
|
"9 1.803783 5.295251e-02 0.999981 1.797112 NaN \n",
|
|
"10 1.517845 4.367994e-03 0.999978 1.798309 NaN \n",
|
|
"11 1.318057 3.999860e-02 0.999980 1.785573 NaN \n",
|
|
"12 1.638908 5.001221e-02 0.999981 1.788564 0.638044 \n",
|
|
"13 1.804775 1.027405e-01 0.999984 1.809506 NaN \n",
|
|
"14 1.880615 8.600262e-02 0.999982 1.883839 NaN \n",
|
|
"15 1.516938 7.589902e-03 0.999981 1.863443 NaN \n",
|
|
"16 1.874664 7.709882e-19 0.999983 1.500198 1.414214 \n",
|
|
"\n",
|
|
" sd1/sd2_Y sd1/sd2_Z sd2_X sd2_Y sd2_Z sd_X sd_Y \\\n",
|
|
"0 NaN NaN NaN NaN NaN 0.014142 0.000000 \n",
|
|
"1 NaN NaN 0.062361 NaN NaN 0.033333 0.000000 \n",
|
|
"2 NaN NaN 0.049889 NaN NaN 0.026667 0.000000 \n",
|
|
"3 NaN 1.414214 0.044234 NaN 0.020412 0.061001 NaN \n",
|
|
"4 NaN NaN 0.026623 NaN NaN 0.026502 0.000000 \n",
|
|
"5 NaN 1.831731 NaN NaN 0.026584 NaN NaN \n",
|
|
"6 0.534522 NaN 0.050584 0.118486 NaN 0.029195 0.063333 \n",
|
|
"7 NaN 0.619666 NaN NaN 0.078138 0.000000 0.000000 \n",
|
|
"8 NaN 0.700467 NaN NaN 0.056811 0.007071 NaN \n",
|
|
"9 NaN 0.534522 NaN NaN 0.093541 NaN 0.056569 \n",
|
|
"10 NaN NaN NaN NaN NaN 0.000000 0.000000 \n",
|
|
"11 NaN NaN NaN NaN NaN 0.010607 0.000000 \n",
|
|
"12 NaN 0.534522 0.087789 NaN 0.043653 0.056013 0.068943 \n",
|
|
"13 1.133893 NaN NaN 0.019843 NaN 0.000000 0.022500 \n",
|
|
"14 NaN NaN NaN NaN NaN 0.000000 NaN \n",
|
|
"15 NaN NaN NaN NaN NaN 0.000000 0.000000 \n",
|
|
"16 NaN NaN 0.004082 NaN NaN 0.005774 NaN \n",
|
|
"\n",
|
|
" sd_Z sdnn_X sdnn_Y sdnn_Z sdsd_X sdsd_Y sdsd_Z \\\n",
|
|
"0 0.000000 0.020000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
|
|
"1 0.000000 0.047140 0.000000 0.000000 0.050000 0.000000 0.000000 \n",
|
|
"2 0.003536 0.037712 0.000000 0.005000 0.040000 0.000000 0.000000 \n",
|
|
"3 0.028868 0.086268 NaN 0.040825 0.053281 NaN 0.025000 \n",
|
|
"4 NaN 0.037479 0.000000 NaN 0.026562 0.000000 NaN \n",
|
|
"5 0.048694 NaN NaN 0.068864 NaN NaN 0.039229 \n",
|
|
"6 0.000000 0.041288 0.089567 0.000000 0.041298 0.095000 0.000000 \n",
|
|
"7 0.048419 0.000000 0.000000 0.068475 0.000000 0.000000 0.065000 \n",
|
|
"8 0.039794 0.010000 NaN 0.056278 0.000000 NaN 0.049046 \n",
|
|
"9 0.050000 NaN 0.080000 0.070711 NaN 0.000000 0.075000 \n",
|
|
"10 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
|
|
"11 NaN 0.015000 0.000000 NaN 0.000000 0.000000 NaN \n",
|
|
"12 0.023333 0.079215 0.097500 0.032998 0.073636 0.000000 0.035000 \n",
|
|
"13 0.000000 0.000000 0.031820 0.000000 0.000000 0.021213 0.000000 \n",
|
|
"14 0.000000 0.000000 NaN 0.000000 0.000000 NaN 0.000000 \n",
|
|
"15 0.031820 0.000000 0.000000 0.045000 0.000000 0.000000 0.000000 \n",
|
|
"16 NaN 0.008165 NaN NaN 0.005000 NaN NaN \n",
|
|
"\n",
|
|
" sigTonicDifference_X sigTonicDifference_Y sigTonicDifference_Z \\\n",
|
|
"0 9.199656 9.338675 8.899684 \n",
|
|
"1 9.616484 8.656152 8.719506 \n",
|
|
"2 9.254964 8.942960 9.371260 \n",
|
|
"3 8.953227 9.256710 9.405749 \n",
|
|
"4 9.227503 8.427440 8.868092 \n",
|
|
"5 9.610274 9.664016 9.881796 \n",
|
|
"6 9.707548 9.728117 9.286315 \n",
|
|
"7 8.843457 9.474760 9.450369 \n",
|
|
"8 9.430278 9.303699 8.659857 \n",
|
|
"9 9.505284 8.649510 9.470890 \n",
|
|
"10 8.655102 8.230653 9.430806 \n",
|
|
"11 8.710545 9.404535 8.934167 \n",
|
|
"12 8.777491 9.328002 9.314613 \n",
|
|
"13 8.489345 9.333659 9.356877 \n",
|
|
"14 7.818805 8.840335 9.259486 \n",
|
|
"15 9.371048 9.028195 8.869437 \n",
|
|
"16 7.249286 5.986623 7.562215 \n",
|
|
"\n",
|
|
" signalOverallChange_X signalOverallChange_Y signalOverallChange_Z \\\n",
|
|
"0 NaN NaN NaN \n",
|
|
"1 NaN NaN NaN \n",
|
|
"2 NaN NaN NaN \n",
|
|
"3 NaN NaN NaN \n",
|
|
"4 NaN NaN NaN \n",
|
|
"5 NaN NaN NaN \n",
|
|
"6 NaN NaN NaN \n",
|
|
"7 NaN NaN NaN \n",
|
|
"8 NaN NaN NaN \n",
|
|
"9 NaN NaN NaN \n",
|
|
"10 NaN NaN NaN \n",
|
|
"11 NaN NaN NaN \n",
|
|
"12 NaN NaN NaN \n",
|
|
"13 NaN NaN NaN \n",
|
|
"14 NaN NaN NaN \n",
|
|
"15 NaN NaN NaN \n",
|
|
"16 NaN NaN NaN \n",
|
|
"\n",
|
|
" significantDecreaseChange_X significantDecreaseChange_Y \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseChange_Z significantDecreaseDuration_X \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseDuration_Y significantDecreaseDuration_Z \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseIntensity_X significantDecreaseIntensity_Y \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseIntensity_Z significantDecreaseMean_X \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseMean_Y significantDecreaseMean_Z \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseSpeed_X significantDecreaseSpeed_Y \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantDecreaseSpeed_Z significantIncreaseChange_X \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseChange_Y significantIncreaseChange_Z \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseDuration_X significantIncreaseDuration_Y \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseDuration_Z significantIncreaseIntensity_X \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseIntensity_Y significantIncreaseIntensity_Z \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseMean_X significantIncreaseMean_Y \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseMean_Z significantIncreaseSpeed_X \\\n",
|
|
"0 0.0 0.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 0.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 \n",
|
|
"5 0.0 0.0 \n",
|
|
"6 0.0 0.0 \n",
|
|
"7 0.0 0.0 \n",
|
|
"8 0.0 0.0 \n",
|
|
"9 0.0 0.0 \n",
|
|
"10 0.0 0.0 \n",
|
|
"11 0.0 0.0 \n",
|
|
"12 0.0 0.0 \n",
|
|
"13 0.0 0.0 \n",
|
|
"14 0.0 0.0 \n",
|
|
"15 0.0 0.0 \n",
|
|
"16 0.0 0.0 \n",
|
|
"\n",
|
|
" significantIncreaseSpeed_Y significantIncreaseSpeed_Z skewness_XBand \\\n",
|
|
"0 0.0 0.0 -0.789241 \n",
|
|
"1 0.0 0.0 -0.964118 \n",
|
|
"2 0.0 0.0 -1.947521 \n",
|
|
"3 0.0 0.0 -1.074669 \n",
|
|
"4 0.0 0.0 -1.429767 \n",
|
|
"5 0.0 0.0 -1.423178 \n",
|
|
"6 0.0 0.0 -1.810281 \n",
|
|
"7 0.0 0.0 -1.029154 \n",
|
|
"8 0.0 0.0 -1.399832 \n",
|
|
"9 0.0 0.0 -1.368791 \n",
|
|
"10 0.0 0.0 -1.711224 \n",
|
|
"11 0.0 0.0 -1.930326 \n",
|
|
"12 0.0 0.0 -1.829400 \n",
|
|
"13 0.0 0.0 -1.433780 \n",
|
|
"14 0.0 0.0 -1.331531 \n",
|
|
"15 0.0 0.0 -1.393066 \n",
|
|
"16 0.0 0.0 -0.841880 \n",
|
|
"\n",
|
|
" skewness_XLow skewness_YBand skewness_YLow skewness_ZBand \\\n",
|
|
"0 -1.336122 -1.408522 -1.448100 -1.400358 \n",
|
|
"1 -1.261287 -1.989833 -1.397036 -1.338255 \n",
|
|
"2 -1.475923 -2.027313 -1.467638 -1.562003 \n",
|
|
"3 -1.266773 -1.453350 -1.383511 -1.442892 \n",
|
|
"4 -1.339143 -1.615808 -1.422805 -0.943698 \n",
|
|
"5 -1.416528 -1.459715 -1.448963 -1.675927 \n",
|
|
"6 -1.386903 -1.294143 -1.357113 -1.412690 \n",
|
|
"7 -1.330033 -1.368968 -1.402020 -0.702916 \n",
|
|
"8 -1.384544 -1.713550 -1.379397 -1.356883 \n",
|
|
"9 -1.372940 -0.716725 -1.210997 -1.201617 \n",
|
|
"10 -1.425541 -1.311673 -1.400647 -0.616432 \n",
|
|
"11 -1.533702 -1.614584 -1.548574 -1.364344 \n",
|
|
"12 -1.478368 -1.469157 -1.519127 -1.050517 \n",
|
|
"13 -1.329548 -1.421468 -1.253525 -1.496642 \n",
|
|
"14 -1.497803 -1.339151 -1.344117 -1.300268 \n",
|
|
"15 -1.368357 -1.891049 -1.525716 -1.012493 \n",
|
|
"16 -0.784251 -0.129888 -1.336934 0.048994 \n",
|
|
"\n",
|
|
" skewness_ZLow squareSumOfComponent squareSumOfComponent_X \\\n",
|
|
"0 -1.445621 9491.043380 87.304565 \n",
|
|
"1 -1.277417 30651.148332 68.792877 \n",
|
|
"2 -1.393616 44408.530623 87.771841 \n",
|
|
"3 -1.483391 5106.736870 52.245492 \n",
|
|
"4 -1.392960 15176.836847 3.443728 \n",
|
|
"5 -1.425731 6709.160654 14.176021 \n",
|
|
"6 -1.363114 10254.961649 70.644597 \n",
|
|
"7 -1.265042 19979.281586 50.420508 \n",
|
|
"8 -1.365171 4581.997895 2.110400 \n",
|
|
"9 -1.319741 17362.935975 0.673737 \n",
|
|
"10 -1.352344 23952.457725 43.977395 \n",
|
|
"11 -1.425509 22698.768662 90.606767 \n",
|
|
"12 -1.140978 25247.727112 68.948690 \n",
|
|
"13 -1.399283 2837.286157 30.077470 \n",
|
|
"14 -1.411368 2051.843171 6.938203 \n",
|
|
"15 -1.344404 23828.015922 0.081206 \n",
|
|
"16 -0.643958 42835.132332 46.378025 \n",
|
|
"\n",
|
|
" squareSumOfComponent_Y squareSumOfComponent_Z stdDev_X stdDev_Y \\\n",
|
|
"0 0.525027 9.592395 5.702752 6.013487 \n",
|
|
"1 85.920194 20.361622 5.578343 5.446571 \n",
|
|
"2 91.087375 31.874100 5.675729 5.529069 \n",
|
|
"3 8.992683 10.223261 5.780877 5.713349 \n",
|
|
"4 56.423599 63.326978 5.687720 5.948307 \n",
|
|
"5 24.547381 43.186064 5.830696 5.874676 \n",
|
|
"6 28.825635 1.796552 5.596989 5.858829 \n",
|
|
"7 0.756588 90.170990 5.629154 5.842836 \n",
|
|
"8 60.870553 4.709504 5.881362 5.819936 \n",
|
|
"9 94.407329 36.687427 6.062433 5.725004 \n",
|
|
"10 22.934706 87.853715 5.649359 5.443630 \n",
|
|
"11 52.320191 7.734147 5.848798 5.633897 \n",
|
|
"12 22.013900 67.932744 5.667538 5.679923 \n",
|
|
"13 0.019081 23.169631 5.796861 5.665845 \n",
|
|
"14 20.667281 17.691791 5.533798 5.865656 \n",
|
|
"15 91.434499 62.847554 6.025069 5.952174 \n",
|
|
"16 65.801181 94.787294 4.635847 4.514551 \n",
|
|
"\n",
|
|
" stdDev_Z std_X std_Y std_Z sumOfSquareComponents \\\n",
|
|
"0 5.709675 5.702752 6.013487 5.709675 7714.376715 \n",
|
|
"1 5.759969 5.578343 5.446571 5.759969 12529.335362 \n",
|
|
"2 5.513457 5.675729 5.529069 5.513457 17016.764285 \n",
|
|
"3 5.763486 5.780877 5.713349 5.763486 2914.974871 \n",
|
|
"4 5.671727 5.687720 5.948307 5.671727 7205.787985 \n",
|
|
"5 5.918005 5.830696 5.874676 5.918005 2668.569628 \n",
|
|
"6 5.817657 5.596989 5.858829 5.817657 5824.803953 \n",
|
|
"7 5.878194 5.629154 5.842836 5.878194 10673.607545 \n",
|
|
"8 5.787121 5.881362 5.819936 5.787121 3731.857444 \n",
|
|
"9 5.790869 6.062433 5.725004 5.790869 10259.165086 \n",
|
|
"10 5.621032 5.649359 5.443630 5.621032 10178.287252 \n",
|
|
"11 5.627404 5.848798 5.633897 5.627404 11006.805647 \n",
|
|
"12 5.827023 5.667538 5.679923 5.827023 9853.391350 \n",
|
|
"13 5.763488 5.796861 5.665845 5.763488 1441.486376 \n",
|
|
"14 5.923030 5.533798 5.865656 5.923030 788.274651 \n",
|
|
"15 5.779353 6.025069 5.952174 5.779353 12310.089283 \n",
|
|
"16 4.812979 4.635847 4.514551 4.812979 15465.347834 \n",
|
|
"\n",
|
|
" sumPerComponent_XBand sumPerComponent_YBand sumPerComponent_ZBand \\\n",
|
|
"0 9.332071 0.711978 3.085267 \n",
|
|
"1 8.282718 9.258236 4.500362 \n",
|
|
"2 9.357266 9.532453 5.634279 \n",
|
|
"3 7.216070 2.987004 3.185468 \n",
|
|
"4 1.844006 7.499087 7.946165 \n",
|
|
"5 3.752978 4.942276 6.559151 \n",
|
|
"6 8.393765 5.356485 1.328328 \n",
|
|
"7 7.089141 0.857534 9.483464 \n",
|
|
"8 1.440467 7.789667 2.157835 \n",
|
|
"9 0.807834 9.704695 6.045037 \n",
|
|
"10 6.619876 4.777700 9.361491 \n",
|
|
"11 9.506484 7.221729 2.769357 \n",
|
|
"12 8.291813 4.680328 8.230175 \n",
|
|
"13 5.472029 0.126213 4.801692 \n",
|
|
"14 2.622796 4.534010 4.193525 \n",
|
|
"15 0.272450 9.549740 7.915426 \n",
|
|
"16 6.800411 8.092254 9.720961 \n",
|
|
"\n",
|
|
" sumPer_X sumPer_Y sumPer_Z sumPosDeriv_X sumPosDeriv_Y sumPosDeriv_Z \\\n",
|
|
"0 9.343691 0.724587 3.097159 1.533655 1.811178 1.681572 \n",
|
|
"1 8.294147 9.269315 4.512385 1.591732 1.580072 1.700955 \n",
|
|
"2 9.368663 9.543971 5.645715 1.755798 1.650120 1.671424 \n",
|
|
"3 7.228104 2.998780 3.197383 1.697559 1.655703 1.668006 \n",
|
|
"4 1.855728 7.511564 7.957825 1.714760 1.769990 1.689834 \n",
|
|
"5 3.765106 4.954531 6.571610 1.601735 1.663261 1.676063 \n",
|
|
"6 8.405034 5.368951 1.340355 1.608356 1.653202 1.825924 \n",
|
|
"7 7.100740 0.869821 9.495841 1.701632 1.756226 1.709203 \n",
|
|
"8 1.452721 7.801958 2.170139 1.653067 1.827721 1.536427 \n",
|
|
"9 0.820815 9.716343 6.057015 1.824568 1.587335 1.700598 \n",
|
|
"10 6.631545 4.789019 9.373031 1.624215 1.513528 1.636635 \n",
|
|
"11 9.518759 7.233270 2.781033 1.650110 1.606799 1.702796 \n",
|
|
"12 8.303535 4.691897 8.242132 1.706478 1.541407 1.577032 \n",
|
|
"13 5.484293 0.138134 4.813484 1.771312 1.704668 1.763609 \n",
|
|
"14 2.634047 4.546128 4.206161 1.551998 1.620187 1.795793 \n",
|
|
"15 0.284968 9.562139 7.927645 1.618430 1.746358 1.796606 \n",
|
|
"16 6.810141 8.111793 9.735877 1.009023 1.086773 1.161188 \n",
|
|
"\n",
|
|
" sumSquared_X sumSquared_Y sumSquared_Z totalAbsoluteAreaBand \\\n",
|
|
"0 87.304565 0.525027 9.592395 930.324637 \n",
|
|
"1 68.792877 85.920194 20.361622 880.255964 \n",
|
|
"2 87.771841 91.087375 31.874100 889.394563 \n",
|
|
"3 52.245492 8.992683 10.223261 920.462589 \n",
|
|
"4 3.443728 56.423599 63.326978 906.331468 \n",
|
|
"5 14.176021 24.547381 43.186064 922.999063 \n",
|
|
"6 70.644597 28.825635 1.796552 891.241288 \n",
|
|
"7 50.420508 0.756588 90.170990 889.958466 \n",
|
|
"8 2.110400 60.870553 4.709504 899.898502 \n",
|
|
"9 0.673737 94.407329 36.687427 937.539507 \n",
|
|
"10 43.977395 22.934706 87.853715 853.098151 \n",
|
|
"11 90.606767 52.320191 7.734147 894.370062 \n",
|
|
"12 68.948690 22.013900 67.932744 912.690717 \n",
|
|
"13 30.077470 0.019081 23.169631 896.978822 \n",
|
|
"14 6.938203 20.667281 17.691791 904.039012 \n",
|
|
"15 0.081206 91.434499 62.847554 949.133312 \n",
|
|
"16 46.378025 65.801181 94.787294 618.770314 \n",
|
|
"\n",
|
|
" totalAbsoluteAreaLow totalEnergy_XBand totalEnergy_XLow \\\n",
|
|
"0 1780.575497 517.364214 1788.802647 \n",
|
|
"1 1764.960003 484.409520 1660.514544 \n",
|
|
"2 1660.479036 500.176502 1608.410552 \n",
|
|
"3 1820.669589 451.010824 1992.791606 \n",
|
|
"4 1768.462902 392.463100 1611.102684 \n",
|
|
"5 1875.393901 471.891573 1857.190163 \n",
|
|
"6 1787.154967 486.437759 1675.123945 \n",
|
|
"7 1812.332972 462.825167 1787.230831 \n",
|
|
"8 1914.346191 460.461739 2145.783460 \n",
|
|
"9 1820.621790 459.708676 1891.234146 \n",
|
|
"10 1788.896569 456.655747 1775.297410 \n",
|
|
"11 1754.867700 530.355391 1909.625501 \n",
|
|
"12 1844.751328 457.213609 1748.235049 \n",
|
|
"13 1774.809989 431.661941 2061.651867 \n",
|
|
"14 1785.109858 422.788778 1908.060229 \n",
|
|
"15 1849.464050 487.266003 2234.828172 \n",
|
|
"16 1206.745729 325.226513 1173.958591 \n",
|
|
"\n",
|
|
" totalEnergy_YBand totalEnergy_YLow totalEnergy_ZBand totalEnergy_ZLow \\\n",
|
|
"0 439.584822 1739.615369 450.831393 1794.973308 \n",
|
|
"1 457.269815 1856.515911 413.902079 1532.911953 \n",
|
|
"2 472.406450 1718.034506 403.722870 1392.356015 \n",
|
|
"3 464.921005 1690.931963 438.332549 1759.580678 \n",
|
|
"4 529.857943 1861.075738 461.368239 1706.093090 \n",
|
|
"5 456.903709 1860.241368 459.162105 2076.012958 \n",
|
|
"6 462.875255 2038.645919 403.746970 1497.384032 \n",
|
|
"7 426.235740 1833.567302 490.346279 1776.759610 \n",
|
|
"8 485.681060 1887.933048 377.333528 1856.973429 \n",
|
|
"9 556.100152 1919.097714 474.084271 1774.462002 \n",
|
|
"10 374.230201 1527.449086 461.128464 2062.255419 \n",
|
|
"11 450.140820 1765.227258 385.755339 1529.079555 \n",
|
|
"12 425.974207 1747.207222 529.734045 2313.928055 \n",
|
|
"13 412.340960 1682.121184 434.772069 1493.757008 \n",
|
|
"14 475.704726 1914.740172 429.391914 1481.573747 \n",
|
|
"15 563.461483 1932.475692 474.052209 1633.787069 \n",
|
|
"16 340.504512 1173.019368 386.447472 1226.625881 \n",
|
|
"\n",
|
|
" totalKineticEnergyBand totalMagnitudeBand totalMagnitudeLow \\\n",
|
|
"0 2.925126e+08 37.561417 73.200325 \n",
|
|
"1 5.258724e+08 36.836583 71.964761 \n",
|
|
"2 6.331399e+08 37.155660 68.858981 \n",
|
|
"3 2.142150e+08 36.827968 73.961246 \n",
|
|
"4 3.698058e+08 37.211833 72.700856 \n",
|
|
"5 2.455072e+08 37.317283 76.700344 \n",
|
|
"6 3.039349e+08 36.815042 72.961288 \n",
|
|
"7 4.245261e+08 37.156183 73.861435 \n",
|
|
"8 2.030065e+08 36.400458 77.362336 \n",
|
|
"9 3.957316e+08 38.649692 75.327253 \n",
|
|
"10 4.647551e+08 35.970652 73.266806 \n",
|
|
"11 4.524228e+08 37.022559 72.336756 \n",
|
|
"12 4.771071e+08 37.613472 76.851962 \n",
|
|
"13 1.596326e+08 35.767026 72.943244 \n",
|
|
"14 1.355158e+08 36.471281 72.961260 \n",
|
|
"15 4.636878e+08 39.090631 76.441830 \n",
|
|
"16 -3.812113e+07 32.463418 61.018083 \n",
|
|
"\n",
|
|
" totalMeanLow variance_XBand variance_XLow variance_YBand \\\n",
|
|
"0 -22.543665 2.721968 9.754062 2.590389 \n",
|
|
"1 56.947576 2.563355 7.355288 2.510291 \n",
|
|
"2 -17.875769 2.804377 8.647055 2.622988 \n",
|
|
"3 -0.031628 2.429697 11.250914 2.645239 \n",
|
|
"4 -82.608508 2.215412 9.352735 2.991478 \n",
|
|
"5 87.061581 2.673239 9.243265 2.587991 \n",
|
|
"6 80.170428 2.693489 7.684352 2.562234 \n",
|
|
"7 64.153009 2.469863 9.024566 2.414425 \n",
|
|
"8 -0.552672 2.593119 11.128252 2.712446 \n",
|
|
"9 71.510548 2.611981 10.151689 2.926317 \n",
|
|
"10 -3.697235 2.502221 9.994805 2.122154 \n",
|
|
"11 -19.025417 2.948125 10.263177 2.519518 \n",
|
|
"12 38.889104 2.545405 9.535645 2.420954 \n",
|
|
"13 -43.125120 2.439554 14.330087 2.351737 \n",
|
|
"14 -37.293835 2.341786 10.937580 2.644027 \n",
|
|
"15 -52.154199 2.788693 12.546204 3.149414 \n",
|
|
"16 69.988893 1.527052 4.799571 1.541689 \n",
|
|
"\n",
|
|
" variance_YLow variance_ZBand variance_ZLow velocity_XBand \\\n",
|
|
"0 9.313834 2.528331 11.471023 9.329075 \n",
|
|
"1 10.417940 2.274827 8.751125 8.279796 \n",
|
|
"2 10.472756 2.271032 7.621608 -9.354190 \n",
|
|
"3 10.178643 2.536343 9.079495 7.213186 \n",
|
|
"4 12.998558 2.465946 10.177490 1.841149 \n",
|
|
"5 9.554210 2.626139 10.193015 -3.749940 \n",
|
|
"6 10.207149 2.279214 8.458739 -8.390872 \n",
|
|
"7 10.084753 2.561608 8.665412 7.086253 \n",
|
|
"8 9.794086 2.111711 12.556467 1.437382 \n",
|
|
"9 9.953002 2.584094 8.199316 0.804720 \n",
|
|
"10 8.401283 2.379874 11.553055 -6.617017 \n",
|
|
"11 9.721455 2.142709 9.559985 -9.503376 \n",
|
|
"12 10.224227 2.851741 10.736961 -8.288873 \n",
|
|
"13 8.996186 2.515854 8.132504 -5.469177 \n",
|
|
"14 11.128877 2.382600 8.970394 2.619904 \n",
|
|
"15 11.788846 2.508219 9.934570 0.269214 \n",
|
|
"16 6.359343 1.750283 4.757309 6.798417 \n",
|
|
"\n",
|
|
" velocity_YBand velocity_ZBand \n",
|
|
"0 0.708808 3.082230 \n",
|
|
"1 -9.255495 4.497523 \n",
|
|
"2 -9.529691 -5.631469 \n",
|
|
"3 -2.983890 -3.182467 \n",
|
|
"4 -7.495938 7.943277 \n",
|
|
"5 -4.939248 -6.556118 \n",
|
|
"6 5.353457 -1.325481 \n",
|
|
"7 -0.854626 9.480576 \n",
|
|
"8 -7.786676 2.155067 \n",
|
|
"9 9.701594 6.042039 \n",
|
|
"10 4.774896 9.358744 \n",
|
|
"11 -7.218897 2.766581 \n",
|
|
"12 -4.677415 8.227049 \n",
|
|
"13 0.123248 -4.798694 \n",
|
|
"14 4.530926 4.190602 \n",
|
|
"15 -9.546621 7.912537 \n",
|
|
"16 8.090398 9.732142 \n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"INPUT_LEN = 5000\n",
|
|
"random.seed(1234)\n",
|
|
"np.random.seed(1234)\n",
|
|
"\n",
|
|
"x = np.array([random.random() * 20 - 10 for _ in range(INPUT_LEN)])\n",
|
|
"y = np.array([random.random() * 20 - 10 for _ in range(INPUT_LEN)])\n",
|
|
"z = np.array([random.random() * 20 - 10 for _ in range(INPUT_LEN)])\n",
|
|
"pd.set_option('display.max_rows', 500)\n",
|
|
"pd.set_option('display.max_columns', None)\n",
|
|
"pd.set_option('display.width', None)\n",
|
|
"\n",
|
|
"time = [i*0.01 for i in range(INPUT_LEN)]\n",
|
|
"\n",
|
|
"numCols = 300\n",
|
|
"\n",
|
|
"ax = convertInputInto2d(x, numCols)\n",
|
|
"ay = convertInputInto2d(y, numCols)\n",
|
|
"az = convertInputInto2d(z, numCols)\n",
|
|
"\n",
|
|
"time = convertInputInto2d(time, numCols)\n",
|
|
"\n",
|
|
"df = calculateFeatures(ax, ay, az, time)\n",
|
|
"\n",
|
|
"print(df)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Calculate execution times"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"DATA_LEN = 100000\n",
|
|
"PRINT_OUTPUT = False\n",
|
|
"\n",
|
|
"\n",
|
|
"def timeFunc(fName, f, *args):\n",
|
|
" start_time = t.time()\n",
|
|
" out = f(*args)\n",
|
|
" print(fName, \" \" * (40-len(fName)), t.time() - start_time, \"seconds\")\n",
|
|
" if PRINT_OUTPUT:\n",
|
|
" print(out)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"compute_features 0.06318068504333496 seconds\n",
|
|
"calcAreaUnderAccelerationMagnitude 0.1833968162536621 seconds\n",
|
|
"calcAverageVectorLength 0.001512765884399414 seconds\n",
|
|
"calcAverageVectorLengthPower 0.0005660057067871094 seconds\n",
|
|
"calcMeanKineticEnergy 0.9430029392242432 seconds\n",
|
|
"calcPeaks 0.8460264205932617 seconds\n",
|
|
"calcTotalKineticEnergy 1.1924221515655518 seconds\n",
|
|
"calcAcAbsoluteArea 0.0012974739074707031 seconds\n",
|
|
"calcAbsoluteMean 0.0006303787231445312 seconds\n",
|
|
"calcAmplitude 0.0005743503570556641 seconds\n",
|
|
"calcCoefficientOfVariation 17.25027561187744 seconds\n",
|
|
"calcCorrelation 0.3744330406188965 seconds\n",
|
|
"calcEntropy 1.2423591613769531 seconds\n",
|
|
"calcInterQuartileRange 5.245208740234375e-06 seconds\n",
|
|
"calcKurtosis 1.1491007804870605 seconds\n",
|
|
"calcMeanCrossingRate 0.12923097610473633 seconds\n",
|
|
"calcQuartiles 0.10563778877258301 seconds\n",
|
|
"calcSkewness 1.1148443222045898 seconds\n",
|
|
"calcTotalAbsoluteArea 0.0001842975616455078 seconds\n",
|
|
"calcTotalEnergy 0.8747704029083252 seconds\n",
|
|
"calcDominantFrequencyEnergy 0.9095582962036133 seconds\n",
|
|
"calcTotalMagnitude 1.2974116802215576 seconds\n",
|
|
"calcVariance 15.527474403381348 seconds\n",
|
|
"calcArea 0.0006725788116455078 seconds\n",
|
|
"calcMean 0.00042319297790527344 seconds\n",
|
|
"calcPostureDistance 1.4543533325195312e-05 seconds\n",
|
|
"calcTotalMean 0.0002124309539794922 seconds\n",
|
|
"calcPeakCountBoza 0.0006649494171142578 seconds\n",
|
|
"calcSumPerComponent 1.1699285507202148 seconds\n",
|
|
"computeACVelocity 0.768822193145752 seconds\n",
|
|
"lowPassFilter 0.1188957691192627 seconds\n",
|
|
"bandPassFilter 0.24991559982299805 seconds\n",
|
|
"highPassFilter 0.12767314910888672 seconds\n",
|
|
"magnitudeVector 1.7064223289489746 seconds\n",
|
|
"covariance 0.13443350791931152 seconds\n",
|
|
"calcRoll 0.6018388271331787 seconds\n",
|
|
"calcPitch 0.7513015270233154 seconds\n",
|
|
"stdDev 0.13022685050964355 seconds\n",
|
|
"rollMotionAmount 0.4034900665283203 seconds\n",
|
|
"rollMotionRegularity 0.47931718826293945 seconds\n",
|
|
"manipulation 1.9478199481964111 seconds\n",
|
|
"min 0.0003123283386230469 seconds\n",
|
|
"min 0.0002841949462890625 seconds\n",
|
|
"max 0.00025963783264160156 seconds\n",
|
|
"max 0.00019931793212890625 seconds\n",
|
|
"avg 0.0003573894500732422 seconds\n",
|
|
"avg 0.000213623046875 seconds\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"magnitudes = np.array([random.random() * 100 for _ in range(DATA_LEN)])\n",
|
|
"time = np.array([random.randint(1499719594, 1599719594) for _ in range(DATA_LEN)])\n",
|
|
"\n",
|
|
"x = np.array([random.random() * 100 for _ in range(DATA_LEN)])\n",
|
|
"y = np.array([random.random() * 100 for _ in range(DATA_LEN)])\n",
|
|
"z = np.array([random.random() * 100 for _ in range(DATA_LEN)])\n",
|
|
"\n",
|
|
"timeFunc(\"compute_features\", functions.computeFreqFeatures, magnitudes)\n",
|
|
"\n",
|
|
"timeFunc(\"calcAreaUnderAccelerationMagnitude\", functions.calcAreaUnderAccelerationMagnitude, magnitudes, time)\n",
|
|
"timeFunc(\"calcAverageVectorLength\", functions.calcAverageVectorLength, magnitudes)\n",
|
|
"timeFunc(\"calcAverageVectorLengthPower\", functions.calcAverageVectorLengthPower, magnitudes)\n",
|
|
"timeFunc(\"calcMeanKineticEnergy\", functions.calcMeanKineticEnergy, magnitudes, time)\n",
|
|
"timeFunc(\"calcPeaks\", functions.calcPeaks, magnitudes)\n",
|
|
"timeFunc(\"calcTotalKineticEnergy\", functions.calcTotalKineticEnergy, x, y, z, time)\n",
|
|
"timeFunc(\"calcAcAbsoluteArea\", functions.calcAcAbsoluteArea, x, y, z)\n",
|
|
"timeFunc(\"calcAbsoluteMean\", functions.calcAbsoluteMean, magnitudes)\n",
|
|
"timeFunc(\"calcAmplitude\", functions.calcAmplitude, magnitudes)\n",
|
|
"timeFunc(\"calcCoefficientOfVariation\", functions.calcCoefficientOfVariation, magnitudes)\n",
|
|
"timeFunc(\"calcCorrelation\", functions.calcCorrelation, magnitudes, magnitudes[::-1])\n",
|
|
"timeFunc(\"calcEntropy\", functions.calcEntropy, magnitudes)\n",
|
|
"timeFunc(\"calcInterQuartileRange\", functions.calcInterQuartileRange, magnitudes)\n",
|
|
"timeFunc(\"calcKurtosis\", functions.calcKurtosis, magnitudes)\n",
|
|
"timeFunc(\"calcMeanCrossingRate\", functions.calcMeanCrossingRate, magnitudes)\n",
|
|
"timeFunc(\"calcQuartiles\", functions.calcQuartiles, magnitudes)\n",
|
|
"timeFunc(\"calcSkewness\", functions.calcSkewness, magnitudes)\n",
|
|
"timeFunc(\"calcTotalAbsoluteArea\", functions.calcTotalAbsoluteArea, magnitudes)\n",
|
|
"timeFunc(\"calcTotalEnergy\", functions.calcTotalEnergy, magnitudes)\n",
|
|
"timeFunc(\"calcDominantFrequencyEnergy\", functions.calcDominantFrequencyEnergy, magnitudes)\n",
|
|
"timeFunc(\"calcTotalMagnitude\", functions.calcTotalMagnitude, x, y, z)\n",
|
|
"timeFunc(\"calcVariance\", functions.calcVariance, magnitudes)\n",
|
|
"timeFunc(\"calcArea\", functions.calcArea, magnitudes)\n",
|
|
"timeFunc(\"calcMean\", functions.calcMean, magnitudes)\n",
|
|
"timeFunc(\"calcPostureDistance\", functions.calcPostureDistance, functions.calcMean(x), functions.calcMean(y),\n",
|
|
" functions.calcMean(z))\n",
|
|
"timeFunc(\"calcTotalMean\", functions.calcTotalMean, magnitudes, magnitudes[::-1])\n",
|
|
"timeFunc(\"calcPeakCountBoza\", functions.calcPeakCount,\n",
|
|
" np.array([1.0, 4.0, 60.0, 4.5, 1.0, 4.0, 60.0, 4.5, 1.0, 4.0, 60.0, 4.5]))\n",
|
|
"timeFunc(\"calcSumPerComponent\", functions.calcSumPerComponent, magnitudes, time)\n",
|
|
"timeFunc(\"computeACVelocity\", functions.computeACVelocity, magnitudes, time)\n",
|
|
"timeFunc(\"lowPassFilter\", functions.lowPassFilter, magnitudes, 0.5)\n",
|
|
"timeFunc(\"bandPassFilter\", functions.bandPassFilter, magnitudes, 0.5, 0.7)\n",
|
|
"timeFunc(\"highPassFilter\", functions.highPassFilter, magnitudes, 0.5)\n",
|
|
"timeFunc(\"magnitudeVector\", functions.magnitudeVector, x, y, z)\n",
|
|
"timeFunc(\"covariance\", functions.covariance, magnitudes, magnitudes[::-1])\n",
|
|
"\n",
|
|
"timeFunc(\"calcRoll\", functions.calcRoll, magnitudes, magnitudes[::-1])\n",
|
|
"timeFunc(\"calcPitch\", functions.calcPitch, x, y, z)\n",
|
|
"timeFunc(\"stdDev\", functions.stdDev, magnitudes)\n",
|
|
"timeFunc(\"rollMotionAmount\", functions.rollMotionAmount, magnitudes)\n",
|
|
"timeFunc(\"rollMotionRegularity\", functions.rollMotionRegularity, magnitudes)\n",
|
|
"timeFunc(\"manipulation\", functions.manipulation, x, y, z, magnitudes, magnitudes[::-1])\n",
|
|
"\n",
|
|
"intArray = time\n",
|
|
"doubleArray = magnitudes\n",
|
|
"timeFunc(\"min\", functions.min, intArray)\n",
|
|
"timeFunc(\"min\", functions.min, doubleArray)\n",
|
|
"timeFunc(\"max\", functions.max, intArray)\n",
|
|
"timeFunc(\"max\", functions.max, doubleArray)\n",
|
|
"timeFunc(\"avg\", functions.avg, intArray)\n",
|
|
"timeFunc(\"avg\", functions.avg, doubleArray)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Calculate EDA features with calculateFeatures"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Warning: Cannot change to a different GUI toolkit: widget. Using notebook instead.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import CalculatingFeatures.gsr\n",
|
|
"from eda_explorer.load_files import butter_lowpass_filter\n",
|
|
"from eda_explorer.EDA_Peak_Detection_Script import calcPeakFeatures\n",
|
|
"%matplotlib widget"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"pathToEDACsv = \"example_data/EDA.csv\"\n",
|
|
"\n",
|
|
"# get an array of values from EDA empatica file\n",
|
|
"eda_data, startTimeStamp_EDA, sampleRate_EDA = convert1DEmpaticaToArray(pathToEDACsv)\n",
|
|
"\n",
|
|
"windowLength_EDA = int(sampleRate_EDA*120)\n",
|
|
"\n",
|
|
"# Convert the HRV data into 2D array\n",
|
|
"eda_data_2D = convertInputInto2d(eda_data, windowLength_EDA)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df_EDA = pd.DataFrame()\n",
|
|
"for row in eda_data_2D:\n",
|
|
" current_result = {}\n",
|
|
" current_result.update(CalculatingFeatures.gsr.extractGsrFeatures(row, sampleRate=int(sampleRate_EDA),featureNames=gsrFeatureNames))\n",
|
|
" df_EDA = df_EDA.append(current_result, ignore_index=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In `extractGsrFeatures`, the EDA signal is first filtered using a Butterworth filter (`scipy.signal.butter`) from the SciPy library (`scipy.signal.lfilter`).\n",
|
|
"Its order ($N = 6$) and the cutoff frequency ($W_n = 1$ Hz) are hard-coded."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"no_interest = 131\n",
|
|
"current_row = eda_data_2D[no_interest,]\n",
|
|
"filtered_EDA = butter_lowpass_filter(current_row, 1.0, int(sampleRate_EDA), 6)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"scrolled": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"/* global mpl */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function () {\n",
|
|
" if (typeof WebSocket !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof MozWebSocket !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert(\n",
|
|
" 'Your browser does not have WebSocket support. ' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.'\n",
|
|
" );\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = this.ws.binaryType !== undefined;\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById('mpl-warnings');\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent =\n",
|
|
" 'This browser does not support binary websocket messages. ' +\n",
|
|
" 'Performance may be slow.';\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = document.createElement('div');\n",
|
|
" this.root.setAttribute('style', 'display: inline-block');\n",
|
|
" this._root_extra_style(this.root);\n",
|
|
"\n",
|
|
" parent_element.appendChild(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message('supports_binary', { value: fig.supports_binary });\n",
|
|
" fig.send_message('send_image_mode', {});\n",
|
|
" if (fig.ratio !== 1) {\n",
|
|
" fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
|
|
" }\n",
|
|
" fig.send_message('refresh', {});\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onload = function () {\n",
|
|
" if (fig.image_mode === 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function () {\n",
|
|
" fig.ws.close();\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function () {\n",
|
|
" var titlebar = document.createElement('div');\n",
|
|
" titlebar.classList =\n",
|
|
" 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
|
|
" var titletext = document.createElement('div');\n",
|
|
" titletext.classList = 'ui-dialog-title';\n",
|
|
" titletext.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'width: 100%; text-align: center; padding: 3px;'\n",
|
|
" );\n",
|
|
" titlebar.appendChild(titletext);\n",
|
|
" this.root.appendChild(titlebar);\n",
|
|
" this.header = titletext;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function () {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = (this.canvas_div = document.createElement('div'));\n",
|
|
" canvas_div.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'border: 1px solid #ddd;' +\n",
|
|
" 'box-sizing: content-box;' +\n",
|
|
" 'clear: both;' +\n",
|
|
" 'min-height: 1px;' +\n",
|
|
" 'min-width: 1px;' +\n",
|
|
" 'outline: 0;' +\n",
|
|
" 'overflow: hidden;' +\n",
|
|
" 'position: relative;' +\n",
|
|
" 'resize: both;'\n",
|
|
" );\n",
|
|
"\n",
|
|
" function on_keyboard_event_closure(name) {\n",
|
|
" return function (event) {\n",
|
|
" return fig.key_event(event, name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.addEventListener(\n",
|
|
" 'keydown',\n",
|
|
" on_keyboard_event_closure('key_press')\n",
|
|
" );\n",
|
|
" canvas_div.addEventListener(\n",
|
|
" 'keyup',\n",
|
|
" on_keyboard_event_closure('key_release')\n",
|
|
" );\n",
|
|
"\n",
|
|
" this._canvas_extra_style(canvas_div);\n",
|
|
" this.root.appendChild(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = (this.canvas = document.createElement('canvas'));\n",
|
|
" canvas.classList.add('mpl-canvas');\n",
|
|
" canvas.setAttribute('style', 'box-sizing: content-box;');\n",
|
|
"\n",
|
|
" this.context = canvas.getContext('2d');\n",
|
|
"\n",
|
|
" var backingStore =\n",
|
|
" this.context.backingStorePixelRatio ||\n",
|
|
" this.context.webkitBackingStorePixelRatio ||\n",
|
|
" this.context.mozBackingStorePixelRatio ||\n",
|
|
" this.context.msBackingStorePixelRatio ||\n",
|
|
" this.context.oBackingStorePixelRatio ||\n",
|
|
" this.context.backingStorePixelRatio ||\n",
|
|
" 1;\n",
|
|
"\n",
|
|
" this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
|
|
" if (this.ratio !== 1) {\n",
|
|
" fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n",
|
|
" }\n",
|
|
"\n",
|
|
" var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
|
|
" 'canvas'\n",
|
|
" ));\n",
|
|
" rubberband_canvas.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
|
|
" );\n",
|
|
"\n",
|
|
" var resizeObserver = new ResizeObserver(function (entries) {\n",
|
|
" var nentries = entries.length;\n",
|
|
" for (var i = 0; i < nentries; i++) {\n",
|
|
" var entry = entries[i];\n",
|
|
" var width, height;\n",
|
|
" if (entry.contentBoxSize) {\n",
|
|
" if (entry.contentBoxSize instanceof Array) {\n",
|
|
" // Chrome 84 implements new version of spec.\n",
|
|
" width = entry.contentBoxSize[0].inlineSize;\n",
|
|
" height = entry.contentBoxSize[0].blockSize;\n",
|
|
" } else {\n",
|
|
" // Firefox implements old version of spec.\n",
|
|
" width = entry.contentBoxSize.inlineSize;\n",
|
|
" height = entry.contentBoxSize.blockSize;\n",
|
|
" }\n",
|
|
" } else {\n",
|
|
" // Chrome <84 implements even older version of spec.\n",
|
|
" width = entry.contentRect.width;\n",
|
|
" height = entry.contentRect.height;\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Keep the size of the canvas and rubber band canvas in sync with\n",
|
|
" // the canvas container.\n",
|
|
" if (entry.devicePixelContentBoxSize) {\n",
|
|
" // Chrome 84 implements new version of spec.\n",
|
|
" canvas.setAttribute(\n",
|
|
" 'width',\n",
|
|
" entry.devicePixelContentBoxSize[0].inlineSize\n",
|
|
" );\n",
|
|
" canvas.setAttribute(\n",
|
|
" 'height',\n",
|
|
" entry.devicePixelContentBoxSize[0].blockSize\n",
|
|
" );\n",
|
|
" } else {\n",
|
|
" canvas.setAttribute('width', width * fig.ratio);\n",
|
|
" canvas.setAttribute('height', height * fig.ratio);\n",
|
|
" }\n",
|
|
" canvas.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'width: ' + width + 'px; height: ' + height + 'px;'\n",
|
|
" );\n",
|
|
"\n",
|
|
" rubberband_canvas.setAttribute('width', width);\n",
|
|
" rubberband_canvas.setAttribute('height', height);\n",
|
|
"\n",
|
|
" // And update the size in Python. We ignore the initial 0/0 size\n",
|
|
" // that occurs as the element is placed into the DOM, which should\n",
|
|
" // otherwise not happen due to the minimum size styling.\n",
|
|
" if (width != 0 && height != 0) {\n",
|
|
" fig.request_resize(width, height);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" });\n",
|
|
" resizeObserver.observe(canvas_div);\n",
|
|
"\n",
|
|
" function on_mouse_event_closure(name) {\n",
|
|
" return function (event) {\n",
|
|
" return fig.mouse_event(event, name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mousedown',\n",
|
|
" on_mouse_event_closure('button_press')\n",
|
|
" );\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mouseup',\n",
|
|
" on_mouse_event_closure('button_release')\n",
|
|
" );\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mousemove',\n",
|
|
" on_mouse_event_closure('motion_notify')\n",
|
|
" );\n",
|
|
"\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mouseenter',\n",
|
|
" on_mouse_event_closure('figure_enter')\n",
|
|
" );\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mouseleave',\n",
|
|
" on_mouse_event_closure('figure_leave')\n",
|
|
" );\n",
|
|
"\n",
|
|
" canvas_div.addEventListener('wheel', function (event) {\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" on_mouse_event_closure('scroll')(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.appendChild(canvas);\n",
|
|
" canvas_div.appendChild(rubberband_canvas);\n",
|
|
"\n",
|
|
" this.rubberband_context = rubberband_canvas.getContext('2d');\n",
|
|
" this.rubberband_context.strokeStyle = '#000000';\n",
|
|
"\n",
|
|
" this._resize_canvas = function (width, height, forward) {\n",
|
|
" if (forward) {\n",
|
|
" canvas_div.style.width = width + 'px';\n",
|
|
" canvas_div.style.height = height + 'px';\n",
|
|
" }\n",
|
|
" };\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus() {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function () {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var toolbar = document.createElement('div');\n",
|
|
" toolbar.classList = 'mpl-toolbar';\n",
|
|
" this.root.appendChild(toolbar);\n",
|
|
"\n",
|
|
" function on_click_closure(name) {\n",
|
|
" return function (_event) {\n",
|
|
" return fig.toolbar_button_onclick(name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" function on_mouseover_closure(tooltip) {\n",
|
|
" return function (event) {\n",
|
|
" if (!event.currentTarget.disabled) {\n",
|
|
" return fig.toolbar_button_onmouseover(tooltip);\n",
|
|
" }\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.buttons = {};\n",
|
|
" var buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'mpl-button-group';\n",
|
|
" for (var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" /* Instead of a spacer, we start a new button group. */\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
" buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'mpl-button-group';\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var button = (fig.buttons[name] = document.createElement('button'));\n",
|
|
" button.classList = 'mpl-widget';\n",
|
|
" button.setAttribute('role', 'button');\n",
|
|
" button.setAttribute('aria-disabled', 'false');\n",
|
|
" button.addEventListener('click', on_click_closure(method_name));\n",
|
|
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
|
|
"\n",
|
|
" var icon_img = document.createElement('img');\n",
|
|
" icon_img.src = '_images/' + image + '.png';\n",
|
|
" icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
|
|
" icon_img.alt = tooltip;\n",
|
|
" button.appendChild(icon_img);\n",
|
|
"\n",
|
|
" buttonGroup.appendChild(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker = document.createElement('select');\n",
|
|
" fmt_picker.classList = 'mpl-widget';\n",
|
|
" toolbar.appendChild(fmt_picker);\n",
|
|
" this.format_dropdown = fmt_picker;\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = document.createElement('option');\n",
|
|
" option.selected = fmt === mpl.default_extension;\n",
|
|
" option.innerHTML = fmt;\n",
|
|
" fmt_picker.appendChild(option);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var status_bar = document.createElement('span');\n",
|
|
" status_bar.classList = 'mpl-message';\n",
|
|
" toolbar.appendChild(status_bar);\n",
|
|
" this.message = status_bar;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function (type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function () {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1], msg['forward']);\n",
|
|
" fig.send_message('refresh', {});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
|
|
" var x0 = msg['x0'] / fig.ratio;\n",
|
|
" var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
|
|
" var x1 = msg['x1'] / fig.ratio;\n",
|
|
" var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0,\n",
|
|
" 0,\n",
|
|
" fig.canvas.width / fig.ratio,\n",
|
|
" fig.canvas.height / fig.ratio\n",
|
|
" );\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch (cursor) {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function (fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
|
|
" for (var key in msg) {\n",
|
|
" if (!(key in fig.buttons)) {\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" fig.buttons[key].disabled = !msg[key];\n",
|
|
" fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
|
|
" if (msg['mode'] === 'PAN') {\n",
|
|
" fig.buttons['Pan'].classList.add('active');\n",
|
|
" fig.buttons['Zoom'].classList.remove('active');\n",
|
|
" } else if (msg['mode'] === 'ZOOM') {\n",
|
|
" fig.buttons['Pan'].classList.remove('active');\n",
|
|
" fig.buttons['Zoom'].classList.add('active');\n",
|
|
" } else {\n",
|
|
" fig.buttons['Pan'].classList.remove('active');\n",
|
|
" fig.buttons['Zoom'].classList.remove('active');\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function () {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message('ack', {});\n",
|
|
"};\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function (fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = 'image/png';\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src\n",
|
|
" );\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data\n",
|
|
" );\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" } else if (\n",
|
|
" typeof evt.data === 'string' &&\n",
|
|
" evt.data.slice(0, 21) === 'data:image/png;base64'\n",
|
|
" ) {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig['handle_' + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\n",
|
|
" \"No handler for the '\" + msg_type + \"' message type: \",\n",
|
|
" msg\n",
|
|
" );\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\n",
|
|
" \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
|
|
" e,\n",
|
|
" e.stack,\n",
|
|
" msg\n",
|
|
" );\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"};\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function (e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e) {\n",
|
|
" e = window.event;\n",
|
|
" }\n",
|
|
" if (e.target) {\n",
|
|
" targ = e.target;\n",
|
|
" } else if (e.srcElement) {\n",
|
|
" targ = e.srcElement;\n",
|
|
" }\n",
|
|
" if (targ.nodeType === 3) {\n",
|
|
" // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
" }\n",
|
|
"\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" var boundingRect = targ.getBoundingClientRect();\n",
|
|
" var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
|
|
" var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
|
|
"\n",
|
|
" return { x: x, y: y };\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys(original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object') {\n",
|
|
" obj[key] = original[key];\n",
|
|
" }\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function (event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event);\n",
|
|
"\n",
|
|
" if (name === 'button_press') {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x * this.ratio;\n",
|
|
" var y = canvas_pos.y * this.ratio;\n",
|
|
"\n",
|
|
" this.send_message(name, {\n",
|
|
" x: x,\n",
|
|
" y: y,\n",
|
|
" button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event),\n",
|
|
" });\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function (event, name) {\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name === 'key_press') {\n",
|
|
" if (event.which === this._key) {\n",
|
|
" return;\n",
|
|
" } else {\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" }\n",
|
|
" if (name === 'key_release') {\n",
|
|
" this._key = null;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which !== 17) {\n",
|
|
" value += 'ctrl+';\n",
|
|
" }\n",
|
|
" if (event.altKey && event.which !== 18) {\n",
|
|
" value += 'alt+';\n",
|
|
" }\n",
|
|
" if (event.shiftKey && event.which !== 16) {\n",
|
|
" value += 'shift+';\n",
|
|
" }\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
|
|
" return false;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
|
|
" if (name === 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message('toolbar_button', { name: name });\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";/* global mpl */\n",
|
|
"\n",
|
|
"var comm_websocket_adapter = function (comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function () {\n",
|
|
" comm.close();\n",
|
|
" };\n",
|
|
" ws.send = function (m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function (msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data']);\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function (comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = document.getElementById(id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm);\n",
|
|
"\n",
|
|
" function ondownload(figure, _format) {\n",
|
|
" window.open(figure.canvas.toDataURL());\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element;\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error('Failed to find cell for figure', id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" fig.cell_info[0].output_area.element.one(\n",
|
|
" 'cleared',\n",
|
|
" { fig: fig },\n",
|
|
" fig._remove_fig_handler\n",
|
|
" );\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function (fig, msg) {\n",
|
|
" var width = fig.canvas.width / fig.ratio;\n",
|
|
" fig.cell_info[0].output_area.element.off(\n",
|
|
" 'cleared',\n",
|
|
" fig._remove_fig_handler\n",
|
|
" );\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable();\n",
|
|
" fig.parent_element.innerHTML =\n",
|
|
" '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function (fig, msg) {\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var width = this.canvas.width / this.ratio;\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] =\n",
|
|
" '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function () {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message('ack', {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () {\n",
|
|
" fig.push_to_output();\n",
|
|
" }, 1000);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function () {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var toolbar = document.createElement('div');\n",
|
|
" toolbar.classList = 'btn-toolbar';\n",
|
|
" this.root.appendChild(toolbar);\n",
|
|
"\n",
|
|
" function on_click_closure(name) {\n",
|
|
" return function (_event) {\n",
|
|
" return fig.toolbar_button_onclick(name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" function on_mouseover_closure(tooltip) {\n",
|
|
" return function (event) {\n",
|
|
" if (!event.currentTarget.disabled) {\n",
|
|
" return fig.toolbar_button_onmouseover(tooltip);\n",
|
|
" }\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.buttons = {};\n",
|
|
" var buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'btn-group';\n",
|
|
" var button;\n",
|
|
" for (var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" /* Instead of a spacer, we start a new button group. */\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
" buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'btn-group';\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
"\n",
|
|
" button = fig.buttons[name] = document.createElement('button');\n",
|
|
" button.classList = 'btn btn-default';\n",
|
|
" button.href = '#';\n",
|
|
" button.title = name;\n",
|
|
" button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
|
|
" button.addEventListener('click', on_click_closure(method_name));\n",
|
|
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
|
|
" buttonGroup.appendChild(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = document.createElement('span');\n",
|
|
" status_bar.classList = 'mpl-message pull-right';\n",
|
|
" toolbar.appendChild(status_bar);\n",
|
|
" this.message = status_bar;\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = document.createElement('div');\n",
|
|
" buttongrp.classList = 'btn-group inline pull-right';\n",
|
|
" button = document.createElement('button');\n",
|
|
" button.classList = 'btn btn-mini btn-primary';\n",
|
|
" button.href = '#';\n",
|
|
" button.title = 'Stop Interaction';\n",
|
|
" button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
|
|
" button.addEventListener('click', function (_evt) {\n",
|
|
" fig.handle_close(fig, {});\n",
|
|
" });\n",
|
|
" button.addEventListener(\n",
|
|
" 'mouseover',\n",
|
|
" on_mouseover_closure('Stop Interaction')\n",
|
|
" );\n",
|
|
" buttongrp.appendChild(button);\n",
|
|
" var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
|
|
" titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._remove_fig_handler = function (event) {\n",
|
|
" var fig = event.data.fig;\n",
|
|
" fig.close_ws(fig, {});\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function (el) {\n",
|
|
" el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function (el) {\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.setAttribute('tabindex', 0);\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" } else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager) {\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which === 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" // select the cell after this one\n",
|
|
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
|
|
" IPython.notebook.select(index + 1);\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function (html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i = 0; i < ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code') {\n",
|
|
" for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] === html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel !== null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target(\n",
|
|
" 'matplotlib',\n",
|
|
" mpl.mpl_figure_comm\n",
|
|
" );\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nOydd3hU1dPHJ71ACIEQIKGEXqSDSEcExY40ATsiFhTFLuhPxN57AUUFFSygggIiWBBFfMGCVBUpCkjvLSHJft8/5tzdhGySTe7u3iT7/TzPPo57z7137mbYmT3nzIyAEEIIIYSEFOK0AoQQQgghJLgwACSEEEIICTEYABJCCCGEhBgMAAkhhBBCQgwGgIQQQgghIQYDQEIIIYSQEIMBICGEEEJIiMEAkBBCCCEkxGAASAghhBASYjAAJIQQQggJMRgAEkIIIYSEGAwACSGEEEJCDAaAhBBCCCEhBgNAQgghhJAQgwEgIYQQQkiIwQCQEEIIISTEYABICCGEEBJiMAAkhBBCCAkxGAASQgghhIQYDAAJIYQQQkIMBoCEEEIIISEGA0BCCCGEkBCDASAhhBBCSIjBAJAQQgghJMRgAEgIIYQQEmIwACSEEEIICTEYABJCCCGEhBgMAAkhhBBCQgwGgIQQQgghIQYDQEIIIYSQEIMBICGEEEJIiMEAkBBCCCEkxGAASAghhBASYjAAJIQQQggJMRgAEkIIIYSEGAwACSGEEEJCDAaAhBBCCCEhBgNAQgghhJAQgwEgIYQQQkiIwQCQEEIIISTEYABICCGEEBJiMAAkhBBCCAkxGAASQgghhIQYDAAJIYQQQkIMBoCEEEIIISEGA0BCCCGEkBCDASAhhBBCSIjBAJAQQgghJMRgAEgIIYQQEmIwACSEEEIICTEYABJCCCGEhBgMAAkhhBBCQgwGgIQQQgghIQYDQEIIIYSQEIMBICGEEEJIiMEAkBBCCCEkxGAAaIOcnBxs2bIFBw4cwMGDB/niiy+++OKLrzLwOnDgALZs2YKcnBynQwnHYABogy1btkBE+OKLL7744ouvMvjasmWL06GEYzAAtMGBAwfcBuT0rxm++OKLL7744su3lzWBc+DAAadDCcdgAGiDgwcPQkRw8OBBp1UhhBBCiI/QfzMAtAUNiBBCCCl70H8zALQFDYgQQggpe9B/MwC0BQ2IEEIIKXvQfzMAtAUNiBBCCCl70H8zALQFDYgQQggpe9B/MwC0BQ2IEEIIKXvQfzMAtAUNiBBCCCl70H8zALQFDYgQQggpe9B/MwC0BQ2IEEIIKXvQfzMAtAUNiBBCCCl70H8zALQFDYgQQggpe9B/MwC0BQ2IEEIIKXvQfzMAtAUNiBBCfOSHH4AJE4ATJ5zWhBD6bzAAtAUNiBBCfEREX4884rQmhNB/gwGgLWhAhBBSOL/8Atxy6W5PANi8udMqEUL/DQaAtqABEUJI4fTtC1wgsz0BoAiwcaPTapEQh/6bAaAtaECEEFIwOTlAYiLwuNyVNwB8802nVSMhDv03A0Bb0IAIIaRg1q3TeO9LORMQwa6wavrG8OFOq+Yb8+cDvXsDS5Y4rQnxM/TfDABtQQMihJCCmTpV47118e0AEbwso/SNxo2dVq1Atm0DLrkE6NlgC7IkQvWNjgY2b3ZaNeJH6L8ZANqCBkQIIQUzerTGT7sT6wMiOFfmeJaBd+1yWr18ZGcD3bqpelPkirzL1mPGOK0e8SP03wwAbUEDIoSQgrnoIo2djscnASJoKmuxs0oTffOLL5xWLx8zZ5pE5dgNyAnX2b/xMl7fTEkBsrKcVpH4CfpvBoC2oAERQkjBdO4MhEkOXOHhgAhqyH/4LnWoBlSPPuq0evkYN05VW9DqdkAEa+v2RaScwMFYs3dx3jynVSR+gv47hAPA8ePHQ0TyvKpXr16sa9CACCGkYOrXBxLkoHsZNVaO4YmqT+j/X3yx0+rl46KLgHDJxuHEVEAEv9w/CyLAOwlm7+LIkU6rSPwE/XeIB4CnnHIKtm/f7n7tKuaeFBoQIYQUTMWKQB3ZDIjAFRMDEeDs8C81mGrUyGn18tGkCdBDFql+lSvj8J4MREYCfWSBZxk4O9tpNYkfoP8O8QCwdevWtq5BAyKEEO8cPaoxUytZoQFg9epISACqyU5PYsWhQ06r6SYjA4iIAO4UM0M5ZAgAoGtXIEoykRGXqO//+KPDmhJ/QP8d4gFgfHw8atasifT0dAwZMgQbNmwo1jVoQIQQ4p2NGzVe6hNlZtSaNEH79ipmVEpW4bffnFbTzapVqtJL0bepcMcdAIC779b//SW9vwpPPeWwpsQf0H+HcAA4b948zJw5EytXrsTChQvRs2dPVK9eHXv27CnwnIyMDBw8eND92rJlS8gbECGEeOOnnzReuib5UxU6dcKgQSpur3OqCp984rSabj41as6relmeQO+TT/R/n6vxuAqDBjmsKfEHDABDOAA8mSNHjqB69ep45plnChzjLXEk1A2IEEK8Mdu0/30g/W0Vzj4bd95pZtMaXazCs886raabyZONbslnqTB1KgAtDC0C9Ar7VoXatZ1VlPgFBoAMAPPQp08fXH/99QUe5wwgIYT4xhtvaLw0qflzKgwdildfVXFmA9MbePRop9V08/TTqtLmpNb56hSmpQEV5RBcYWF67L//HNSU+AMGgAwA3WRkZCAtLQ0TJkzw+RwaECGEeOfhhzVWmt3mfhVuuAFffKHihNTXVLjgAqfVdHPvvarSgfiaKvz6q/tYv3761p4azVkPsJxA/x3CAeDtt9+ORYsWYePGjfjpp59w/vnnIyEhAZuL0e+RBkQIId4ZM0Zjpe/b36zC2LH44w8V+8WYSLBFC6fVdDNqlBatzg4z/X+3bnUfu+ceExPWH6DC8887qCnxB/TfIRwADhkyBDVr1kRUVBRSU1MxYMAArFmzpljXoAERQoh3rrlGY6Xf25ieuk88gePHVWwsJhKsWBFwuZxWFQAwbBhQRfZ4StRkZrqPTZmib02rO1aFUaMc1JT4A/rvEA4A/QENiBBCvDNsmMZK61uY9dOJEwEANWsCMXLcE2jt3euwpso55wBNZa3qlJSU55iV0Tym8tsq9O7tjJLEb9B/MwC0BQ2IEEK8c+GFGittadpbhffeAwB06GAm2BKqqLBqlcOaKp06AT3lW3fNwtzs328q2ciPzAQuJ9B/MwC0BQ2IEEK809vEfbsadlJh1iwAuRIqUluosGCBw5oqTZoAg+VD1alHj3zHq1c/aYn4yBEHtCT+gv6bAaAtaECEEOKdTibuO1DHBHoLFwIAbrhB//ev+qbe3pQpDmuqpKQA18jrBWYn9+ihh45XrKrCihUOaEn8Bf03A0Bb0IAIIcQ7LVtqnHSseroKS5cC8JSH+b7hlSo8+qizikLzUKKigJvleXfNwpO56iqTHFyrY6nrYkKKD/03A0Bb0IAIIcQ79eubvX6Vq+XZ6/f22/q/79cbW2qKQR89qqrcI4+qMGJEvjEPPqiHfqo3RIVCukaR0g/9NwNAW9CACCHEO9Wra5yUExunwsaNAIAvvzQTfzVfVGHgQIc11ZJ/IsDDYfcVGJS+957JZaljAtcbb3RAU+Iv6L8ZANqCBkQIId6pWBEIl2xP0sSuXQCA1av1f6+oMFOFLl0c1lQnJ0WAV2NvVeHuu/ON+dEkAN9VxfS4O+ccBzQl/oL+mwGgLWhAhBCSH5cLCAvT/rnuAPDYMQDAvn0nlVRJT3dYW2DxYlVleqXrTK+6/C1Bd+zQQ2fI115LxZCyBf03A0Bb0IAIISQ/VsePGvKfCmFh7o4fLhcQHw/UlU16LDra8W4gn32mqsyterkKTz2Vb4yld7ps9Oidk+OAtsQf0H8zALQFDYgQQvKzx5TLayDrVUhIyHO8eXMgWjJKTTeQqVNVjcUpA1V45RWv41q0ACIkCznh+fsFk7IF/TcDQFvQgAghJD///KPxUYfI38xUYI08x88919TUq1A6uoE8b6q//FrznEJrE1rdTQ4kmxTnxYuDrCnxF/TfDABtQQMihJD8rDUtdc9O+F6Fhg3zHL/xRn17e7XS0Q1k/HhV48+aPVX46COv48aMMePq9ilVRaxJ8aH/ZgBoCxoQIYTkZ/lyjY8uTZ6vQps2eY4/9ZS+/XuN0tEN5JZbTN/iGqZR8Zw5Xse9aCrXfJl+rQr33x9kTYm/oP9mAGgLGhAhhORn0SJTTi/VlHrp2jXP8RkzTJxV7cpS0Q3kiitUjd0pzVX45huv4+bM0cMv1HxMhcsuC7KmxF/QfzMAtAUNiBBC8jN3rpkgqztFhb598xz/+WcTSFUoHd1ALrhA1ThU1bSt++knr+PWrNHDV8Z96DWwJWUH+m8GgLagARFCSH4++sh0S2vwigoDBuQ5bmUJ3ySloxtIt24mKSUxRYWVK72Os1rGtRezxl2zZpA1Jf6C/psBoC1oQIQQkh+r3+/kxk+Yth9X5DnucgEREcAAKR3dQE45RdXIiquowoYNBY6tWRNIkr2eEjZHjwZRU+Iv6L8ZANqCBkQIIfl5+WWNjT5sdr8Ko0blG5OcXHq6gaSlASIuuMLDTXry9gLH6myhC5nxiTp2zZogakr8Bf03A0Bb0ICIHXJygLvu0sxCQsoTT5iJv3nNblPhzjvzjWnUqPR0A4mPB2LkuGdWr5Dv9KuuMjFijTYqfP55EDUl/oL+mwGgLWhAxA5ffunxN9nZTmtDiP+430z8LW52bYG9dTt2PCno2rfPAU2BzEy9fZ5l3RMnChz/0EM6ZHndASrwF1yZhP6bAaAtaEDEDg884PE3O3Y4rQ0h/uOOO9Suf252qckGeSbfmL599VBGfGVHl1J37NDbp8kWFaKiCh3//vs6bHqaecgxY4KkKfEn9N8MAG1BAyIl4e+/gTVvLsVjTd5GI/kT9eVvrJr7j9NqEeIbmzZpHZdCuOEGjY3WNumnwsSJ+cYMHaqH9lRvpsJXXwVI4cL54w+9fbuKf6qQmFjo+GXLdNjdlV5V4cILg6Qp8Sf03wwAbUEDIsVhyxZdCWsfvRKZEuWZ/rNe11/vtIqEFMiqVcDrk1xwJSSova5bV+BYq7Dypoa9VXjvvXxjrCBxQ/oZKrz7biDVLxAroOtb/TefSrvs22fGyxcqtGgRJE2JP6H/ZgBoCxoQKQ5du6q/+FE6uYO+bAn3BIAVK2pmCCGlDJfrpGVSEeC55wocP3CgSZRIN7b+6af5xowbp4eWNTHLxE8+GchHKJDFi/X2Q2v/4LVvsTcqVwYaiZkxjI93NIGFlAz6bwaAtqABEV9xudRPVJOdbgf6xoRtGD1sN6rKbmRFROv7f/3ltKqE5GP1ajXPfvKpJwAspA3a2WebvI60FiosXJhvjNUPeE4zs5fu1lsD+QgFYiVjXVd/gQqtWhV5zimnANGSAVdYmJ6zc2cQNCX+hP6bAaAtaEDEV7ZtMw40fLYKzZsDAMaPN0tl1UwT+o8+clZRQrxgZb4+JPd6AsBCavd1765DDqfUU2Hp0nxjJk/WQ280e0aFYcMC+QgFMtv8k7yj0SwVTjutyHPOOss8X5XaBT4fKd3QfzMAtAUNiPjKd9+pn3i18j0qjBgBQPfGiwDz64xUYexYhzUlJD9nmG168+WsvPtWCyiY3K6dyfBNrKaCl9ZqH3+sh8Y3mqbC6acH+jG88qFp6zuhmUnv7dWryHOGD9ehm9N7qjBtWuAVJX6F/psBoC1oQMRXrNmOFUk9VZg8GQDw2Wf6v4/XMT1Tzz7bWUUJ8UKDBmqe/0qtvAFgATNfTZqY+pYxcSps3JhvzDff6KEr6xihSZNAP4ZXpk7V2z/d4m0VzjmnyHPuu8/s521ylZkafSjwihK/Qv/NANAWNCDiK/eYib/DsVVV+O03AMBy01N+cNWvVWjWzGFNCcmLywXExADhko0siQBEcLS6Wdr98EOv59SqpePdgeKuXfnG/GaSbrslr1OhUqVAP4pXJk0ys/OtXlOhf/8iz3nNDH2vyYMqDB8eBE2JP6H/ZgBoCxoQ8ZVBg07qerB3LwCtCSgCdIgzu+yrVHFYU0LystPkLaWKbmTNkgj81X6IvvnUU17PSUoCKsohj70fPZpvzObNeqha9IFCxwWa55/XW09t+5wKl1xS5DnWzP296e85unxNSg79NwNAW9CAiK+0bg3Ukw3qLGJi3GUjdu/Wt6rKbo8TLKQNFSHB5uefTd27qlowb4uk4ZtOY/XN0aO9nhMdDdSQ/3RMWJjXMilHj1om74IrziwVb9gQ6MfJx+OP661ntHtUhauvLvKcX37Roecm/ahC7dpB0JT4E/pvBoC2oAERX3C5gAoVgG5iCo7Vr+8+lpFhfKTkwBWhy2vYutVBbQnJyyyTHHtHQy0B85N0xOQOZg3USxeMrCw91EDWq1CxYoHXrmp2RGTUqq/CDz8E8lG8YrVknNPeNDAeNarIc6z2cSlWWaewMODYsSBoWzpYvBiYORPAnDnAggVOq1Mi6L8ZANqCBkR84T8zETIszGQZdu+e53hMjL6dlVJThSLabBESTF56Sc3y9dYvAyL4WPrjtqZz9c02bfKNP2BWdFuL2eRXo0aB127TxuyIaG6qpM+YEchH8Yq1P/er9nepcNttRZ6Tk6Md40RcyKqUZDK8VgRBW+fZvh2IjQVOF5O8ExFRJuuX0n8zALQFDYj4gtVp4OGkp1UYOjTP8ZQUfftYU+MN5851SFNC8nOXiYsWdNBl3xflJvSqtqrAPavWD56uUnRnjQsu0CF/tzWtQ158MZCP4pUxY/TWS9qPNhv77vXpPEv3reldVPjggwBrWjq4/XYNfP+Qxp5tK1de6bRaxYb+mwGgLWhAxBfeeku/I2fWuVWF22/Pc7xhQzMLcpppn/DWWw5pSkh+LrlEzXJ1u8sBEdwljyMhd4LHSd9/683Kb7/Y+WYqsHWB1x41ypRTaX+TCg7Uwbz+ejPx3n5ksUq6PGPqV39Z+2oVHnggwJo6j8sFJCcDdWVT3nJA0dHA8eNOq1cs6L8ZANqCBkR8YazZL/9zg4tVePbZPMetorlbel+pwmOPOaMoIV6wikBvb67C8Kh3IQJkVks10duPecavWGFyKRJnmqnArgVe+7HHdMhHbR5R4aqrAv04+bjySr31KhPgFpTZfDJWcsx9MU+qMGRIYBUtBWzapI86MEL3g/4qbXC8UjWvdlDaof9mAGgLGhDxhcGDraUis8/ppNppvXrp22svMGttt9zikKaE5KdlSzXLI7W0uvN9Xb+BCLC8al89MGlSnvFLlpiJ7mqmwnLfvgVe+z1TReXxJmaa3IFC6ENMRZu/2ph/qC+/7NN5WVm6F+58+azImc7ywkwT00+qoQkzb8pwrKp/ob75zDNOq1cs6L8ZANqCBkR84fTTzUpZjUYqfPddnuP9+pkf0IOe8bpHkBAnqV5dzTI7viIggs0L/kRUFPCk3KEHbropz/gFC8ye11TT3WbAgAKvbbVIHF7zCxVatgz04+TD+ve3ueX5KpguPb7Qvn2ubOfYWM0OKcdYqxm/1dENkKPlBbxW15TPGTzYafWKBf03A0Bb0ICIL7j7olZKNmtNq/Icv9ysPH0+zNmeqIScTE6OJnkmyEHPfq8jR9CjB3C5mBm+nj3znPOprg7ipTpmafSKKwq8vpUw0tDBIKqvmcjcdkofFd57z+dzhw8HIiQLWRHReq6XlnflibNMK+hDSbUBEXSTxTgr+lt9s4zVQqT/ZgBoCxoQ8QXto+pCTkSk2ey3Jc/xm8z+957yrQqNGjmjKCEnsXevmmQzWaNC5coANFG2jfyq7yUl5QnarGXdqfVMXb0bbij0Hn37OhtE9eypt93VtJvJ1prp87nPmeYh/yScosK8eYFTtBRQu3bejkZ14nejkuTq5GI6HJUF6L8ZANqCBkR8oVo1oIIc9nxJHj6c5/i4cdYsyF8qxMd77ZxASLD54w+T0Rtv1nVPOQUAMH8+EC0ZOBieqO9//bX7HKu37qf1b1PhjjsKvYfVVm1tZAtHgqiOHfW2+xu2V6EYZZi+Ni2851YY5DXBqzxx4gQQHp73e6rjqS6dFK6Wru99843TavoM/TcDQFvQgIgvxMQAabJFvyAjI/MFd1Yrqjg56gkSDxxwSFtCPFg1LO9KeVuFs84CoJVfIiKA1+Q6ff+yy9znPPusiQXqjzCbAR8u9B6HTEWZj2SQI8kErVqZ32V1T8kXzBbFFvPP+uGw+1QYOTKAmjqLlQF8duRCMy3cDCPMn3htY7OR8vnnnVbTZ+i/GQDaggZEisJq9XaKmMK5ycn5xrz2mifu2yeVVVizxgFtCcnLxx+rOU6s87DJ1hjuPnb22UAnMb1wExLcP2zGj9e3fq5vArqXXiryPvXrAxPkf44EUY1NPeNjaQ1UWLLE53Otf9+XiFn37tYtgJo6y6JF+oj3pLzpzth+/nkV329yfz77KO3QfzMAtAUNiBTFrl3GL1h9gL3s75s2zRMArhIzC1FG+2uS8sXEiWZVNv0GFe67z33s3XeBKMlEluTtYW111virrkmqePfdIu/Tvz8wVKa7Z5aCuQWiTh29rbuu4a+/Fuv8hASgrfyi51atWm63b0yZctLezuuuwzemG9z11c0vhXbtnFbTZ+i/GQDaggZEiuLvv/V7cVCM2eh06qn5xrz5picAnC8mze7tt4OvLCEn8eCDpuxHXVPrbeJE97EdO0ygJw3zLJ0OH67/+19aBxU++6zI+4wfDyTKfhyLSij2Pjy7WK0YsxKrmPXMtcU6v1493b7hCgvT87dvD5CmzjJhgj7eD42uVOGRR9xJQvXFfNHFxGiBxDIA/TcDQFvQgEhR/GoSJUcnTs2zhyo3X33lCQDflOE+7ZsiJBiMNu1xt9YwtYw+/9x97MgR85acp8KrrwLQsn8iwP4UU/dy8eIi72MtNb+VbGoLdu8esGc6mQQTc+bExZcoC9lKIjlc0wTCX30VIE2d5WrT8W5T+ukqmHI5TZoAYZKDrDitE4nVqx3W1DfovxkA2oIGRIrC2jfzcMoLKlx8cb4xLhfwxhtAjx7Ag2I2kxdROoOQYDBsmJrjkYTq+ZZHs7P1rafFZPuaDjZW6zh3i7CVK4u8z+7dmh+VKlvhiozS84LUWiwqChBxwRUebqYu/yvW+eeeq6dtbmMSIV54IUCaOkvv3vp4h6rVV+H77wFo9z4R4J+0zipMm+awpr5B/80A0BY0IFIUVomLSWkT3PtmCuK554AR8oaO69EjiFoS4p2zzwYi5YRneXPnzjzHo6KAkTLJnRQAaHcMERdyrEDun398utcF2lwCy1tdnS+zOFBYQWyUZHqm4ffvL9Y1rF7CP/Yy9ZyuvTYwyjpMixb6d82OidPn3LABAPD66/q/s1OvV+Huux3W1DfovxkA2oIGRIri3Xf1O3Fm7TFFfjnOmJGrrVRkpNbaIMRBOnYEass/JkqKytelo1IloIeYae4GDQAADRsCsXLME1D5aMcffaTDh6SYzIIaNQKeUHHUVF7K0+nk+PFiXeP2282K6Hkmm6tLlwBp6yw1agAV5ZDnczpyBIA2NhIBbo425QwK6f1cmqD/ZgBoCxoQKYpXTDvUr+uYdZLHHy9w7Pffmy1IUWbv1McfB1FTQvLTsGGuUi/p6fmOV68ONJF1ejwxEYAWPq8hpsdbeLjPrd2OHdOAMkaOIyc6Rs9ft86vz3MyVhJDNdnpCWyKGXRadTxHnva753MoZ5nALpf+JnUXga5QwX0sJ0f/bu1luef5s7Md1NY36L8ZANqCBkSK4rHH9Dvxlzr98mVRnsx6M/n3SuTN5XopiZQdqlQBBomZmuvaNd/x9HQgRXa4gydXVjaiooCmslbfM63jfMVKNFiX2itPYkmg2LrVZLFGbFYhNrbY15g8WU+Nlgxkh+UtiVNe2L/fmIB8n2e21+Kss7SdX2asyaj57TeHNPUd+m8GgLagAZGiGDtWvw/Xp/VU4YMPChx72HSLu0Bmq9Csmd/0yM7Ot32LkELJyQHCwoBb5LkCE5iaNs27f+7Y1r0QAU6TpQXOGhbGF1/oaU8lPqTCoEH+ehyvWGWa2sb/UaKAFQBmzfJMHq6TJip8+WUAtHUO68fpJbEzvS5zP/CAvr0i9WwVykBHEPpvBoC2oAGRorjxRv0+3FajrQpffFHo+AoVgKqy2+NRdu+2rcP27boxPywMWPXFFmD5ctvXJOWfffvUBJ8UU5rl1lvzjWlrzDortgIggl1L/9Z8EDGRXOvWxbrnkSO61bCL/KDnJyf7vIRcElav1tv0rLzCs++wmFjt8kSAGTJQhSC3sws0S008f18Vs6elf/88xxeYVtGPVjJLHv36OaSp79B/MwC0BQ2IFMVll+n34b6qvrWZamCGHa3bzKTWzbatg5WlGC7ZHj0WLrR9XVK+sWbHPow0tWCefjrfmC5djL1WrQWIYPOMZRABhse9byKrnsW+b/fuOqt4ItrU5fOhjExJ+flnM+ue8pMK9eoV+xqZmboEKgI8IKZLxtVXB0Bb57CqGbxR07Tru/76PMePHQPi44E2Ygqfxsdrhk0phv6bAaCbRx99FCKCW0wtK1+gAZGiOM/UyD2WYGqirVpV6PiuXU2Fhd4jVRg71rYO7UwN3/Pkc89URYMGZaZiP3GGZcvUVL6LOVMFLy3drJp/+2q3BESw7oUvIQLckzSxxDNBVi/hX1P6qvDss354Gu/8YCYaL037VoWmTUt8rWuuAfqLqWjdsqX/lCwFvPWWPtbcWteaSPeBfGO0ALgL+yqn65hPP3VAU9+h/2YACABYtmwZ0tPT0apVKwaAxK90NrVRs6NMVmMRNdEGmhWkH/o9ocLll9vWwWp1NUsu9ASAIsXueUpCi/nz1UxWx7U33j9/ezbrB85/jXsAIlgx9gON2WqY1Ngrrij2fX/7TU+9PcLsPezY0R+P4xWrC8+ounNUaN++xNd68cWTson37s1z3OUCMjLsauwMTz6pj/RzLZPM9tpr+cZMNc2OpiabwuBBqONoB/pvBoA4fPgwGjVqhIULF6Jnz54MAIlfadLkpCKz+/YVOt7aMzjzgikqeGkdVxwyMgIXz8EAACAASURBVPQyEZKFw6L7tFxW76vp021dm5Rvpk83+1dj66mwdGm+MYMGmRnrVhoY/HzNazpZWOsePXDzzcW+r8ul+U/VZCdyIiL1OmvW+OOR8vG5mRQf2+BDFWwUYP/yS/NZRDc1v7hmuY+tWAFc0PgPPBb1P2wbOT7g5W38zV136SNtrnGaCp98km/Mnj1ARESu/ZuJibo+Xkqh/2YAiCuuuAJjxowBAAaAxO8kJwNVZI8nACxi2fUhk/z4bN+SbaI/mQ0bTNJelK7n7ZUk7O9v+g2PH2/r2qR88/LLaiZHIiup8Oef+cZcfrnZ2dDhKkAEy/o/ChFgXp2Clwp94eGHzUx4splxuvNOu4/jlRkzTPJCI7PGec45Jb6WlVDydvS1eZJm/v1XZ+GXS3vP90BEhLbQKCNY5Xn2VcnbBu5kTj9d+wIfSaih4+bPD7KmvkP/HeIB4Pvvv48WLVrguKn8XlQAmJGRgYMHD7pfW7ZsCXkDIgWTk6N1cNNlo2djdBFYe22u62TWwapXt6XDd98ZB5f8DCCCz+R8fHfBU/rmkCG2rk3KNw8+qG3g3EGLl4z0kWar6tLOt2oAePqdEAF+qjNYD7z4YonuvdH8k7lIPlWhRo2A7Fm1OvW83PQlFWyUnbFq5V0q5qKdOwMALroIqCub3J/jr9JG5bCwMjMTaLXpy4ivrMLatV7HPf+82f5Xw7SFK8W1TBkAhnAA+O+//yIlJQUrVqxwv1dUADh+/HiISL5XKBsQKZgDB8x+cPnd52Bu0SIdelqdXJ0UbFTVn2a6Uy1O7g+I4E55AmMamJS+Nm1KfF1S/rnxRiBZdhU6e32zqVm+oPuDgAiWt70GIsC6Wr0LTBzxlS5ddPvE0QrJeq05c+w8jlfeMK23pzQzexavvLLE13K5gLg4oLGYmoKxsfhjdRbCwoDR8gIggtXJPSDiwrp0Uy/vnnv89zABpHNnrSLgtoUCiopu3qyHzxRTFyYlpdR2BWEAGMIB4KeffgoRQUREhPslIggLC0NERASyvRgtZwBJcbBmMXrHmOr5jRoVeY7VmSA6PAuusLBCv2x9wWpTtSXxFEAEZ4d/iUbyp74ZFxfQGmukbNO1a65gxrR5O5m779bDH/fSGbTfGgyECLC1RrsCE0d8xVqCnpZi+mgPHlziaxXES2bib0ZzU95k1Chb12vQQJdAsyrosvlTl6+ACLA85VxABKuuehoiwIgkky2cmlpqA6TcNGp0Un3SEycKHNuhg84cu2cLFy8Ooqa+wwAwhAPAQ4cOYdWqVXleHTp0wGWXXYZVRZTqsKABkcJYblpjXl51rs8Zhjk52o1KBMhOMjMfv/9eYh1uukkvcSwmERDBkNZrESknkB0RpQeKyEomoUl2tu5YcPcBLqA+ntUB4s3eOtW8usYZEAH2J6XrgR9/LLEOu3bpVrlWYoo0R0fny6y1i5XdOq/5bX7Za9hDk6Gxo7m2snui0RsQAQ4n6+eR+dViVK6sM5tWkIiff/bT0wSOpCR4fjhWqlToWKv95YKaV6hQjH31wYT+O4QDQG8wCYT4Eysr8M46H6hw+uk+nde8uQ4/lN7CfJMuKLEOAwYAFeSw+5f7zcMP6aRiFZOpWM5aVhH/sGaNmseAmMLLo1gzzE/3ngeI4O/EtrpXLE5/cOCPP2zpca5OnOHfZLNvzs81AR/UlWssanadraQVi6FD9TLLemna7JvR1yNGjntm83fscBeHX1P/fBWeespPTxMYTphtoL629/vrL7N/M9y0tExLK5UrDfTfDADzwACQ+JP3TTOEpxq/rsKFF/p03oWmXN+/Tfyzj8q9jFepEl59VcUlKRfZ2qRPyjfvvKPm8VBjI5x5ptdxL+jWNtzbW4OD/2LTfdor5itff62XuT58kmcm0o9LpuPGmYCt6WV+CcZuv10v897ZmgiySHqgVfgqzzK6y+XOPH44+VkVbGQeB4MdO1TN88T8GGjXrshzWrUCYuQ4MuPMLOcPPwRB0+JB/80A0BY0IFIYr5i2mVNaPq2Cj4VRb73VrAw1vcRMr+RvweUr9esDZ4ipdtusGX40K3ovVbjbL3ueSPnkvvvUPD7qYooxF5Ax/rr5bXPDGfoj41B4pbxljwrZK+Yr55wDxMlRHIquYjYFTrN9TYvbzMrvqsaaJIVXX7V1vWc02R7jztL9HzskBaNTZ+qbp54KADh0SFezW4vJ9K9Y0S+fU6CwyttcX6HwHwO5mTBBh36TdlmpXQam/2YAaAsaECkMa3nps3bjjZe8wafzrI3psxuYSPCOO0qsQ3w8cIVMcX9xHz6s1SeulLdNhkrvEl+blF/GmLyLr7r8r1DbtcqoDO7p6YDhnnGuWNEvuqxcqcnw48QUB6xTR5vP+oFRo/SS6xuYZr5Tp9q63kwT63Vr49l2MbvxHfl+AFr18o5XqGJ7r2SgsSoTPFKt8B8DuVm5Uof2j/ys1C4D038zALQFDYgUhuVEF3cwgdzdd/t0ntV4/flUe+3gDhsfNFYeUWH4cABAw4a5NvenpZXo2qR8c801ah7LTzOtae691+s4azmzZxdPvcC+8oUnUPMTV18NxMox7IipbaKRR/xy3eGmJvq/dU0T7pkzbV3P2v8WEwNsj1Zd91VtYNbTH3KPswq+L00d4NfnCQTW3/itWr5nSrtcuvoQLRk4EV86l4HpvxkA2oIGRArjqqv0e29FhxHF+pL/3ZQNHFXBzNyVsB3c+vV6+uuRN6jwv/8B0H7DlWWfZ5nOz5mVpOxjJTOsa39podsQ5phtYR06AK4K2mpwlJj6LX6sM7lli1YtGibTPLOL27fbvu6wYWarYppJMvniC1vXy8kBzMeA+XKW59+YiP6yM1hbMe6Mf7nUz8S/9pqqOKee+TFw330+nXeHmfhcmHZFnh+gK1YAU6ZonVQnof9mAGgLGhApDKtP6l/tLi5WwoVVQNo9k9KqVYnu/70pP7gg3rTTmjgRgGdpentCIxVs1Goj5ZPzTYLq5tamBcQbb3gdZyVpnHIKkJNWCxDB02I21vXq5Vedxo3TZdMVsR31+tdcY/ua/c3Wv/0p5t+CH2rWdeqkl3pWxuQNAPfscY/JygISEoCmslaPxcYWuKx9Yup0zeZavdq2biXBmq38qb75VeBjJvbff+t2E/dqQ0wMXLt2Iz1d/zc1FTi05l+N7h2A/psBoC1oQKQw+vbVL7qtLU3V/ylTfD43MRFoI7/qeSVsB2ftR/qlUk+zo/8jAMBsU51hVpKZohw3rkTXJ+WX0083M2PNTGG7Dz/0Om7JEj1cvz5wollLQASzxPzgGDDArzodPKi9tTuLuWlYGOBjzdaCOOccvdTRyqnmH8svtvXsZx6/hyzyBH+1a+cbp0G2CwcTNXDGvHl5ju/ZA0y76Uf3NQ6mtwL+7/+AN98E9u2zraev3HKLqvBnveLvkxw4UJ9xRZT2QT56zkBUkgO6JVLeQU5EpBYZ3LUrgE/gHfpvBoC2oAGRwujSxfzwb2ymBGbN8vncVq2AGmKvHZzVSWFDYluzJqWN2a12TddFmBROH+sTktChQwc1jQP1C18a/dX8RqlZEzjSQYPFP8NNjcnrr/e7Xv8z29AWVRtosgz627peL63XjMx4/9QtBIAPTNnPCy9weQLADh3yjXvO5FTMrXWtCqNHu49ZiWDTZWjeWUTzclWt6hddfeESU4xgey0N4vD55z6fu22bzg53kh+RKVp8PlOi8LfUz/tMNgtwlwT6bwaAtqABkcJoqRMiOFzbOMRFi3w+98ILgQix1w7OKuWxq5LZhG4yDV0uoHJloJmYar9xcaW6DAUJPk2NyR5LNY56yRKv4/7IlfC7p3u/vE59wgS/6/XPP/p7qJms8fzbWLasxNezlmtzIiJV8MNypMulH1dGBrQYaPXqXhMgrEzZi6M/VaFhQwC6dzc62mwfkYaACL5teRP2SlKez/dorUZwjX9AN+kFcAbtzDP1loeq1SvUFgriwAFtsdxfPsZaaZrnGb6pcJ7KCQlBb4lH/80A0BY0IFIY9cz3ZWbVGiqsWOHzuaNHm+AxruTt4EaO1FOPVKimQq7lsh49dD+Vu1/n8uXFvj4pv9Qyq5InKifns53cZGR4Whf+2Gx43gDw9dcDotsIk1P1QaxJLihhkhSgeSpRkunROYhLqy4XkJICVJRDyIk0rRn/+svdnq5Opf2eGb/de/DQ7fvRJ2UFaso27JRq+WcEv/02IHq2MZPAJyrYmyW1WmM2kj8xa9C76CHfIVyy4YqLM2vMf/pZ88Kh/2YAaAsaECmMZOM7c2KMh9y82edznza1o/9JLHk7uAvM/v2syBhzMU/f35tv1rfW1DO9tp5/vtjXJ+WXyuZ3QU5UdD7bORlrv6A7+cN65cp69SdHjgCtWwPpshEnxMzclTD4adr0pIz4zEz/KlsEVrb1hnSzFv3CC7jRJNu+Mcxk2JzUeu3334G7hmzGxKgb8an0wx/S2K3/9iY9kXXbnX4NplJTdTXC/RnZmG0cPlyD3m3bgAZmYeJgk1NVmDHDbzr7Av03A0Bb0IBIYcTEaDsk9xdnMeoeWLW3liWWvB3cqadqHS73/ffvdx9780196836prjuxRcX+/qkfOJyAZGRJ9lOIbZr7cu7Vx7KGwAGcFb54EHNHXhZTCXnLl1KdJ30dCBNtug1IiP9rGXRvPGG3vrlumba7+yz3T/clvY3dUAHDfJ67pEjwMMPa5eU1+WavJ99QkKxtpwUhMsFREUBybLLc+2sLFvXc7lUtp5zTWczpWvKVAUL+m8GgLagAZGCsBqop4hppBkWVqxK+MuW6Wkz40wrpUcfLbYOdeoAVWW354s71x6bn3/Wty6s9K0KtWoV+/qkfJJh4r48Tr+Q/VlWKRh3/T/rtXVrQPXs3l0TpbIjogpdpi6MGjVy9cpOTAyAloWzaZPe2t0vODYWHVsegwiwrbspH/X444VeY/Fi4JNPgJdv/hPD5U18L6aodZMmtvfV7Ter0E1knd8/o3vu0Ut+1M00lO7Xz2/X9gX6bwaAtqABkYLYu1e/09zOpXLlYp2/03TWul9MU82rrirW+S6XbiSvJxv0/AoV8hw/flwnPCrJAY/DZkFoAi0/IgI0EFNJvIiWbi4X8MQTwK93TPPYUliYrZkiX7jWJM+uaXyRCnfdVexrJCYC7cT8GnKoK07HjoCIC4cq68bLwRXn6Wp0LZOAs3Chz9fq2lX3FB6LMwkjH3xgSzers0nvOFN6p149W9fLzTumtfAtrb/1+7V9gf6bAaAtaECkIP75R7/TukX95HUfT1G4XJqcO1g+1PM7dy7W+fvMtiZ3w/maNfONsTZ3H0lJV8EPS0ak7GOVCeoU/YsKqam+nbhunScADMJy6vPPmwmy0z4xWRN1POuLPhITA5wt8/R8P3YuKQ4vvqi3/zhZI9oXZDSSZK/nsyxGYsrEiWb/YNr9JnKz12Hkhx/0MiOqf66Cl3I2JcVahWhUNdezBtGX0n8zALQFDYgUxOrV+n02uNL8EjuXpk2BVrJCz09KKpZzs3zxORW+8ywHnYTV73VtowtV8LFTCSnfWLbr3h7QtKnvJ+deAg4wX35pVk3lmCfRad06n893mTJ9V8lb7v13TrBrFxARAVwoswARbJVUDIg3XYDq1y/WtbaY7Yz1wzaqEB5uq2XeJya2nlB/igo2Mq5P5uhRT7mbzOom7TyI/YLpvxkA2oIGRApi6VL9PruxmqkKW4Jiy3376gZvd72zYmTfffutnnJdmvnlfuqp+cZYPT6n1TcFA/3QWouUfX4yk9bXpJiWMR07+n7y8OEF/uDwN9u2eWLNhdKn2D9ijpv8rLvlMRWuvDJwyhbBeedp0s2+SC0dsCHG1MsbPLjY17JqOO5tdJoKL71UYr0mTTIzis2fVWHo0BJfyxuDB5tl/HRTjeDVV/16/cKg/2YAaAsaECmIBQvML+dUsyZz0UXFvsZ115kVoMS6Knz/vc/nvv++uX+z6SqccUa+MVZdrqsrflhgkEjKCXPmaEuHXJngBfHVVyYwSntXhT59fL9PRgbw2GPA2rU2lPUdax/ZnWIyZs8/3+dzrW0Sz4npdXb33QHUtHCsf69Pyh15Z1E//bTY17JqiL7V2rQa6dq1xHpZfYA/b32v+UV7Y4mv5Y05c/Syz8eZjJAAdI8pCPpvBoC2oAGRgvj4Y/ODts5jJUriALTnugjwa3XTVPi113w+19of9Xr7ggPQjAwt8VBf/tYxUVEFNqQnZZP9+4Gd23LVcLvnniLPmTXLBCPpr6gwcGAQNC05l12Wa69rhQo+1/KztknMiDTF+J59NsCaFkxGhu7yqCnbsFHSPfvtirmnEdB2weHhQKps9aweFFLHsTCseqFL296ggp9LtWRlaaOUoTK9+LPNNqH/ZgBoCxoQKYipU00SXr27VRgzptjX+MJsA3ot+b5iL1GNHWsmELqa+mJXXOF1XPv2gIgLxyqbbiWLFxdbT1I6mTZNA4ELZLYnAOzWrcjz3nvPLPs1MD9ehg8PgrYlZ9Ik7WqzL8p0x/juO5/Om2dyP5ZVOF2F6dMDrGnhWLU5uzXdDdezz9kqo/Pgg3qtRWE9ARHkXH1NiYJJq1D1ujZDzFSd/wvG33YbUEv+RbaE6z1KUM6nJNB/MwC0BQ2IFMTLpiTal/XMOu4DDxT7GlYm8fnhc1Vo3Njnc61uAt92M8HjTTd5HWctM39VZZAKJag3SEonlvOeJsM8AWBUFHDoUKHnWZmkMxqZZblbbgmSxiXjNzP5NyPmEhXuvden86x/o/9WbKbC118HWNPCcbl0xbeEk3V5yMrSvLO+8gVyxMwCNm9e7JaSvU0d+v+an6FCCQrSF4XVE3mmDPTMAvqhJ3NR0H8zALQFDYgUxGNm8uT/0i8u8S9nl0tXtPKUhNi926dzrzBtUpd3NWs448Z5Hff668bHi+4XyurSo0QzBaT00a6d/m1/lnZ595XNnVvoeVYbwgWNRgVk2c/fWDU3r5S3VTjtNJ/Ou/12HX40xtTMW706sIoGmQ0b9KO4UV5Chph02+TkYrWkbNlSTztcxwTJX30VEF0HDwbay3KcCIvy/NgNsF+l/2YAaAsaECmIceP0e2x9ancVPvywRNfRJVrgUFoTFebM8em8/v3N0k3nq1QooJvAKtOAoIGsR6aYL9/Ro7XPFCmzuFzaDUwE2BtWBRDB7potfZrlHT9eh/3UyHSheeqp4ChdQlwuIDYWqCubdLkzIhJ7txx1H//+e81/ObkayoABQJRkegLjPXuCq3gQcLl0Qi1FduCf5LbF3o9cw+wMyUowzaHXrAmInps2ab3xVrICeyrU1ntdcklA7mVB/80A0BY0IFIQI0ca55tkOp4XI4M3N9ZM3u8tLynWEm0fUxXjn1MHmGyUgssrTJ+uewZvl6c8zrCAPYOkbLB9u/4ZK8lB99/03XpmO8CQIYWee+utZkKsoakPOWlSkLQuOQ0a6F7WfRXSABGMqP8Ncpb/AvTpgytkCkRc+SqYtGkD1JHN+oyRkcVq1ViWWLRIH7FT+P+pEB4O/PFHkefl5Gh9wlg55vle8CGLvKTMnq0NZDrKT579gM89p30xA9BWkP6bAaAtaECkIM4/Xx1SVlScfpFt2FCi61hdAt5q+rgKPtbh0vZSwK7WJhJ8771Cx2dlAZUSXLhNzPpfTAxw4ECJdCbOs3ix/hnPSdVC4rulKs6LMFlFRRR2tgqEb6pnkiNsthMLBj16qKrviyYr3CcPYmuLs9yBy1CZjubNPeNdLm0Dd6mYUjcOdQEJFvp9BHxV8UKffgQAnqV1dzvJ2NiAbw95913dpnpyOZx1lzzo93vRfzMAtAUNiBRE+/ZAouz3fImVsLyKVVB6aOI8z0ZuH2hmtuwcbGoiwdmzizxHl41d2J1sKsm+9VaJdCbOM3my/gnHt9GaLitjOqCG/OeZASrEHi8221Z31jJ7B+fNC6LmJWOYyXMZJZrZ8Zc09CQ/iOAzOR+tW0OrRy9b5k4cmR5+qQo+lMcpy+zYAdSqlauzkAgOPPSi/jA9fNjrOVaZnDPjTT+4IPXq3bwZuHRIFsbKI1gvDbBZ6mBuH/+X6KH/ZgBoCxoQKYjUVKCZrNEvzsqVS3ydY8d0dSpVtuq1IiK0hUER1DKdlY6lm2Du22+LPMfqDDKl3gM+zxKQ0sm9pm7vR100uefXhoMg4sKh2GSTnfR/BZ57zjnmx0NKQxWC2J6rpNxhJoxSZWuewO+oxLn/e3XK58iuoBsj3xgwDxGShYPR5vPwsXRMWcYquvyi3JRnds0VGal1Qk9KP7ZmkW+q8ZEKNgpKl4Rt2zTDe8IE4M8//X99+m8GgLagARFvZGdrnHaGfFWsWbuCaNNGZ+YyKupmfvz6a5HnJCbq0BMpqSr88kuR5/z4ow69Mtl4ipYtbelNnMMq77P0NO1y8We/OzXOqWiiu0JapnXrpkOOVzJ19VauDKLmJeO55zwxzZqq3fIs/W6RtDwBD0SwKqyFe7YQVasCJ044/QgBx+XSHSRxMTl4ruK92Cjp7gAZInBVrAi88op7mXfmTD30bPoLKgwa5PAT+Bf6bwaAtqABEW/s2KHfl5eL6VNVnFZaXrj6ar3MxrpmT9aUKYWOd7l0lU8EyKlQUYX164u8z+7dOjRdTCP56GjdHEjKHANNSbUNrS4CRHD4iZchAvxPJuiBQjIsW7XSIdlRMSoUo2yIU7z7rie+W/uU/oDZfN4NGsDIGPfBfVIZRyQ+b0BYjP7BZR2Xy5PrsmQJ0K8f0FJ+x2LxBM3o3x84etS9IuCuBzl6tLPK+xn6bwaAtqABEW9Y+4serGASN2xm1FqzG3MamCaft91W6PijR3VYmOR4vtR37izyPi6XrlaHSQ5yYs3MgA/ZgqT00bOn/vn21m/v3gPaogXQRxYUuZ+rXj0gWjI8trNvX/AULyH//gvExeXqeLh/P7KzXBAB4uUIlkkHQASD5UNcZv0wEwE6dQqJ2b/CmD8fiI/NwWh5AcfFBP29euHh/2VABPix4eX6XjkrEk//zQDQFjQg4g2rxdS0ZBOw2Wwyv3ChXmZcyhs+zShaM5AJuUqA+LJvEPBkD++rbxIAPvnElu7EGU45Rf98mZVT3NsGLr4YqCQHPP1hd+zwem7VqkBV2e2xnezsIGtfMo4dyz9hPXmyBoaxcgyt5Td06aK/n15v/BQyb7ilwASIUOOvv4AmTYCu8j2ORuiqwbeNRkIE2F21sftHRHmC/psBoC1oQMQbVk/P36qa9kk2s2mtgK6jmDpe1asXOn79eh3WOH6LClFRPpdvuNQkRa5qa371P/ywLd2JM1SvftIs3u7d7uLk2yubxKACsnujo3OV/qhQIcia+x+XSxOcmjUD/v7baW1KL2vXajHms2S+O5HmJjF1qMLCAloD0AnovxkA2oIGRLyhnRRcOBzje9JGYbhc2sEpXo4UOXsD6O1EgB7Jazyb3H3kAZMAPKP9Y0XuFSOlE5dLk5BOrt/21lv6v9/UGFrgkl6GiRlbi9nHULOmA09AnOKDD/TP/nj42Lz7JMthnUT6bwaAtqABEW+cdx5QW/7RL87ISPWqfrimCPBvpeYqFFLY+bvvdMjFdUwRwfR0n+9jZf7dnD7bRAKtbetOgst+U36yhyxSoWFDAB67eLzKE8ZALs53rpUI1F3M4CZNgq0+cRCXCzjrLCBSTuAn6egJAMeMcVo1v0P/zQDQFjQgcjIuF5CSAlwgJoBq1cov1/31V53VmSD/0+tecEGBYz//XIfc2OjLYuuw1ZQbbBj2twoxMWVmDxhRrC0AI2LedW/oB7Sumghwdrixi8aN85270SSAD4z+TIVTTw22+sRhVq/WKgIpsgPv1bhdewdv2eK0Wn6H/psBoC1oQORk/jETf+PDJ/glAzg3l1wCNJfVnn19J3e3N0yfbnQ4ZYYK3boV6z61awPhko3s6FifS8iQ0oPVPebJpEfz2KDLpQkRKbLDs6/rpCSIFaZRxA2V3lOhd28nHoE4zKhRZiXgZqc1CRz03wwAbUEDIidjLaF+ndhfhWf918Lo00/1kr9Edyo0uJw0SQ+/0MZko5x7brHuY7UC216zTbnM/ivvWDPAM6rdoMK997qPtWihb2UkVvO6P/X77/Xt+6u9qsKAAcFWn5QCMjP1h+TevU5rEjjovxkA2oIGRE7mrrvUb+5KqGd23H/jt2sfO6ZJmada2cDivU7f00/roXfamwKCQ4cW6z4vvaSnfVntEhUeeshfj0CCwNtv659tacoFKrz2mvvYRReZ4D7d/IiYMSPPuVYJoxdSTQ3Lq64KsvaEBAf6bwaAtqABkZPp1QtIlP2eAM3PRXRHjNDLLq9pnPstt+Qbo1nIwGcdzDL0tdcW6x5bTPWYUfKKySbo4SftSTB4zCRwb04yM7hz5riPWT1zlzc19X4eeyzPuVYW6LTad5Xbzf+EAPTfAANAW9CASG5ycoBKlXJlX9at6/d7rFyplz4nfL4KiYn5ijzfdpseWtThdhXuuKPY9+ncOVdLuIgI4MABfz0CCTBW68CjcVVV+P139zGrvde0RuNVuOaaPOdOnKhvf1X7Sq8BIiHlBfpvBoC2oAGR3Kxbpz7ztijTPP3CCwNyn06dtF3b4cpp+WZ4AGDkSLNXsP01Kjz4YLHvYS0Db4huokIR/YdJ6aFHDyBOjnqdhba6ytxV8508GcIW1uzxqtrnqPDmm0HWnpDgQP/NANAWNCCSGyv79oOapvn8nXcG5D5PmDJus2vfqMLVV+c5PtTU+V3f0mz4evXVYt/j0CGdzbxfHtBrJCUBmzb56QlIIKlZE2gkf+rfrUKFPF1gNm0yq/qRS1SoUyfPudaPh20123n9cUFIeYH+mwGgLWhAJDePm33z/1dnkNlJ/0JA7vOn8e19wr9WITk58kNOeAAAIABJREFUTxNUq2j09kbdVfjwwxLd5447gCjJxPLI0/Q6HTr4pag1CRyHD5uJPTG20bRpnuPZ2VpBqJrs9JSCyfU3tWzniDW7vHx5sB+BkKBA/80A0BY0IJKb0aPVZ/6TajIsP/44YPdq2xaIkCwcizft5hYtch/r0UPfOpDWzNSk+bpE9zh6VDtA1ZZ/cCTW3Ofpp/31CCQA/GY6uI2qMMX8SuiTb0zjxoCIC1lxFXXMunXuY23b6rGcyCg99u+/wVSfkKBB/80A0BY0IJKb/qb036HKtcxU4P8F7F6vmATdWZWvzFexVZ04kFE5RYUVK0p8H6v24FWijWRdVav6PbOZ+I8Zpvb3xFoPqTB8eL4x556rh3bXap1vmbd6dSBJ9nr2D56UYERIeYH+mwGgLWhAJDcdO+qsXE54hNlItS1g99q/X7u0uVvO1a7t3uvVoIEmibgijB5bt5b4PhkZQOXK+lxrpSkggsyuvYCPPgJ27vTX4xA/8cwz+idf2OBaU9H5/nxjbr5ZD61sPDDPVoUTJ3RFuIms82SYE1JOof9mAGgLGhDJTVoakCqmmW5kZMB76J53HhArx5AZXSHPjGNKClBZ9vltFucBkwfSVn7BMYn1XDchgXvEShlWnb+16SaL94038o15wSSpf9JYa/25bhoNwFP/sVeEKWPkpVcwIeUF+m8GgLagARGLrCxtoN5RfvKaXRkI3nhDbzU/aYip7XEXAO332kDWe7JA/YDLpS2B+6X8iDdkBP4Ka6TXr169fPeLKmNcdpn+WXbVMD3f5s/PN2buXD00IU17Bn4bfy4u638E24eOwYUyCzdU/VAHdO/uwBMQEhzovxkA2oIGRCy2mom/QeGmGXCXLgG/506TyDlIPlKhfn1knXBBBDhNlgakGPWOHZpkkiAHsT66mdcyNMQ5evc2+z/jK6uwZk2+MVYWuZUpvE6aYKpcDoggW8LxdupYHTBwoANPQEhwoP9mAGgLGhCx+D/Tnve+yi+aqGxQUO7bujVQQQ4jKzoOEMGhxb9BBDhX5qge7dr5/Z67dwO1agGdZYlnOdiPPY9JyWneXO3B/Xfx8t2UmanNXWrLP55xuV45YeEqP/KIA09ASHCg/2YAaAsaELGwsmXfSLtfhRtuCMp9bzfd3n5OHwCI4MDoe3VSLsKUATnrrIDcd8kSXfJ+RW7w1JsL8J5HUjRJSUBTWat/k0qVChz38MNAdJQLv0Z0cAd+66VB3mBw5cogak5IcKH/ZgBoCxoQsZg0yVTUSB+lwv/+F5T7zpunt7upyjRABMcbNNeZyLin9cAllwTs3j17ApXkgKcW4fTpAbsXKZqMDP0znClfqnDKKYWO370bOPjOLHfAV1v+wTdyumfrQK4OIoSUN+i/GQDaggZELB5+2CTi1rtYheefD8p9jx0DKlYEEmW/u+xLPdmAiZXuyFcf0N9YJUferGdqzrVowaDBQTZv1j/DdZGTVTj77KJPcrmw78GX0E8+1a0DaSuAhg1L1D6QkLIE/TcDQFvQgIjFLbeoz/2rrtmF/957Qbv3pZfqLden9QREcJO8iKUVjB6vvx6w+/79tykXJ/uRFROv//PddwG7HymcpSbv56lEE5CPGOHzuWvXAvfdByxeHEAFCSlF0H8zALQFDYhYDBumPndnausCy28Eis8/N2U9Ep4CRLBIeuBwRCV987ffAnrvO+/U20yJMYWHhwwJ6P1IwXzyif4JPqp+kwrjxjmtEiGlFvpvBoC2oAERiz591OceqWLawAWxQHJmpnbrqCX/ejI4RYDYWG3vEECysoDUVKC1/OYpgP3ffwG9J/GOVeD5h1rB3YZASFmE/juEA8BXX30VLVu2REJCAhISEtCpUyfMmzevWNegARGL1q0BEReyo02njE2bgnr/ESP0trPlAk8A2LlzUO5tzQKurdLFTEVOCMp9SV6sLiDra/VU4f33nVaJkFIL/XcIB4CfffYZ5s6diz///BN//vknxo0bh6ioKKxevdrna9CAiEVqKhAvRzzB16FDQb3/4sV6226y2NOu7dFHg3LvNWv0dpeGaSYyqlb1Wn+OBJYhpiHMnuqmQPfXXzutEiGlFvrvEA4AvZGUlITJkyf7PJ4GRABNfI2KylVYNzrakWzYpUs15lu97KjOQAZRh3PPBSIkC/8lNjEVse8L2r2J0rmz6QJS0ZTlKcaPWUJCDfpvBoAAgOzsbLz//vuIjo7GGi+tkywyMjJw8OBB92vLli0hb0AE2L9f/W1b+UWFmjWdVinoLDFNQfrLxyrExGjzYBI0atUCIuWEZxZ61y6nVSKk1MIAMMQDwJUrV6JChQqIiIhAYmIi5s6dW+j48ePHQ0TyvULZgAjw11/qby+IXaBCy5ZOq+QII0fqPshvo8707EHMzHRarZAgK0s7s9SUbfrZR0QAOTlOq0VIqYUBYIgHgJmZmVi/fj2WL1+Oe+65B8nJyZwBJMXGmv26udp0FXr1clolRzh0CGjbFkiXjTgYnqifxUUXBX0/ZCjyj9l9cGrkryrUqOG0SoSUahgAhngAeDK9e/fGtdde6/N4GhABgFmmm9bTdV9UYdAgp1VyjB07gAYNgHNkLjIkGhDBiZq14Zr9GbuEBJAfflDTu6L6fBVatXJaJUJKNfTfDADzcMYZZ+DKK6/0eTwNiADabEMEmNZovArXX++0So6ycaP2Ce4sS7BB6rn3pOW06wB88AEDwQAwc6apwNNwqmkIfKbTKhFSqqH/DuEAcOzYsVi8eDE2bdqElStXYty4cQgPD8eCBQt8vgYNiADAI4+oz/2q6Y0q3Huv0yo5jssFXHYZECdH8bjc5SlNIwIMHAgcP+60iuWKiRP1o32r+VOmJs+lTqtESKmG/juEA8Crr74adevWRXR0NKpVq4bevXsXK/gDaEBEGTPGdF1rOlSF555zWqVSQU4O8Pvv2hWvduwuTJD/4URYlM4GDhiEfzdlIysLyNm5Gzn/buXMoA0eMu1/v2hpqkHfdpvTKhFSqqH/DuEA0B/QgAigky0iwOZGph/cu+86rVKpY+FCrQzTS75GZpjuDZwr5+Cz8H7IFm1fl9OkGZeIS8jNN6vp/dLiChUef9xplQgp1dB/MwC0BQ2IALrdSgTYW6eNCsVsKRgqzJ2rBbMHy4fIkTDPkvDJr8GDgYwMp9UtUwwbZjoQNumrwttvO60SIaUa+m8GgLagAREAaGPivmPVaquwbJnTKpValizRHJl3hs1D5rArsG3QzZh+72qkxB7E/fKAe3YQ/fuzjl0xsH6E7KnbVoUiapoSEurQfzMAtAUNiABAWpr63OyYOBU2bHBapTLH//0fULEi0FsWIivCBIFjxzqtVpnB+hFyvGqqCj//7LRKhJRq6L8ZANqCBkRcLm39GydHPUuYtIcS8fbbJoFV3vV8lvfcAxw54rRqpR79EeJCTkSkfm7//uu0SoSUaui/GQDaggZEDhxQf1tL/lUhKopJDDaYPBmIiwMelPs8QWDt2sDy5U6rVmqxfoQkyV7PZ8Y9lIQUCv03A0Bb0IBKB7NmAb8tz9IppD/+COq91683bW9j2YLLX2zdClzUz4WL5BNsDqurn2uVKsC6dU6rVio5dEg/oqayVoXKlZ1WiZBSD/03A0Bb0ICcZ8YM9XkvV7hThVNOCcgMnMsFZGXlf99qwXVZjYUqtGjh93uHItnZQO/eQEU5hBVxp3k+26NHnVat1LFhg2n+Eb1IhcaNnVaJkFIP/TcDQFvQgJwlKwtITweayLq8ZUT8nIXrcmmtv5eixuB4Wn1g5Ur3MasF10MNp6jQp49f7x3K7NihE6rVZTv2RFXXz/eaa5xWq9Tx00/60dxQ9UMVund3WiVCSj303wwAbUEDchbL8Y2USXkDwFGj/HqfV17R/VUnRDfYu2rXAf77DwDw8st6y/ebPcAAJQD89BOQlKTZwe7agffdx32Wufj8c/1Ynqj9kqfVHiGkUOi/GQDaggbkLM8/r/7uNbkOEMEfUS30jXr1/Hqftm2BEfJG3iCzQwfgxAncZ3IVfmw63EwFPuTXexNtJ1exInCHPOn5/K+7TteJiTt7elr9+wLyA4iQ8gj9NwNAW9CAnMXqfvBvjVMBEVwtk+GKiDB92Tb75R5HjgAREcBcOQcQwSQZiWNxSe6WbyNGqLix/hkqvPOOX+5L8vL550BYGHCdvOaZCRw0iNmuAJ40cfHXDa9V4YEHnFaJkFIP/TcDQFvQgJylfn0gUk4gOyoGEEEDWY8d9Tr5tRXWt9/q5dZHNgFEcLp8g+ktHtE3W7XCeee6tPRftfr63uLFfrkvyc/kyVruZJB8hBNhUfp59+6tabAhzJ0m/2llg35mSvw1p1UipNRD/80A0BY0IOfYtcskhspKQAQZMQkIkxzMbDxWD1xxhV/u8+ijerkjUYmACJrIOnRosA+IjQVEcHHzVQiXbOREmoDkn3/8cl/inZ9/1sSQ3rIQh8Mq6mferp3WjglRrrpKP4YtdTqr8PHHTqtESKmH/psBoC1oQM5hbXy/LXU6IILDrbtCBDg3aoEeqFPHL4kCAwcCsXLMvfcsUfZDBDjc/WxABOMTn0WabNHjERHea8UQv7Jpk1Y6aS/LsScsWRNzqtcAvvvOadUc4fzzTQOaZDML/cMPTqtESKmH/psBoC1oQM5hJV981mqcBgDXXoemTYF4OYLsiCi/9eRt2RKoK5v0ejExqF1Ll3zHxj4LiOCLsLNxunyjx9PT7T8Y8YmtWzUITJeNWCkt3AG6q3Nn4MMPQypL+DRTJvFErJkR/esvp1UipNRD/80A0BY0IOfo08ckX7S6UIUXX3Qv166u3FWFyZNt3SMnR9uSnSZL3QHejz9qo4XmshoQwTGJxStyg2lie6mfno74QkYGMHEicEqdQ3hdrkGWRHgCwTPPDJll4fr12YuakOJC/80A0BY0IGdwuYDERNPytJZZ9vrmG6zU7YB4PMpMDw4daus+W8zK7sDwT1To1AmA1gUUcWGtNM1bGmb6dH88HikmWVnASy8BdSK3YbyMx1GJ0yAwKQmYOrXczwZWqpRrljo2ttw/LyH+gP6bAaAtaEDOsGeP+rp4OeIJvnbtQk6OtoztIqY/W1KSrVpxX3+tl7m/2qsqXHSR+/7R0cAYedZz/4gIYO9efz0iKQFr1mhlmCbyB5ZJB8/fZsSIcrs3MyNDH7Gj/OTZ+0oIKRL6bwaAtqABOcOqVerrzqi0XIWUFPexiy4CIiTLU6tvyZIS32fiRFNgt+H9Klx/vfvYTTdpd5D/pAZyIiKBMWNsPRPxH7NnAzHhJzBWHkG2hHuC9yNHnFbN72zdah4vfJYKp57qtEqElAnovxkA2oIG5AwLF6qvG5f6tokEz3Afe+45fWtR6lAV7r23xPe5/XYTQ7bIX2B3506NOxvXOY7M/UftPA4JAO+/r6uh/eRTHBetE+lq2BD48UenVfMrv/yipnlXpddUuPBCp1UipExA/80A0BY0IGd45x31dR/WMRHazTe7jy01+Rq3JLypQufOJb7PxRfrJf5ucaHXArt79wIHDpT48iTAbN4MDB4MdJPF+FdqaRAYHg7cc0+56SAye7aa5us17/e0yCOEFAn9NwNAW9CAnMFqffV7zb7G+73uPnb8OBAZmWtTfGRkiTtFdO+ul9jduIsKM2f66QlIsHC5dFa4esx+TJXLPfsCW7XSJsNlnFfN9tQv645kGzhCigH9NwNAW9CAnOHWW9XX7a+YpsJJy3rt2pnuHdXSVZg3r0T3adBATz9a12T7fvutH7QnTrB5M9CiBXCRfIKdUk1nA6OjgcceA06ccFq9EjNunGkDl36BCpMmOa0SIWUC+m8GgLagATnDsGFAghz0zOactA57/fX69k8trlbhzjuLfQ+XC4iP19Ozq1QzU45lf8YolDl6FLjtNqCa7MRsucBTM7BFC+D7751Wr0RceaU+xn9pJuv5s8+cVomQMgH9NwNAW9CAnOH004GmslYdXuXK+Y6//76J+2q+q0KHDsW+x4EDVnzggivCFBgOkcLC5Z3p04FGDV24St7Cbqnq+SFx1VXaZLoM0bu3me1OMrPhy5c7rRIhZQL6bwaAtqABOUPTpkAvMUX6mjbNd/zAASAqCkgVUyMjPBzYv79Y91hr4svalQ54AoRjx/z1CMRhTpzQvaS14vZgkox0/41PJCQBTz9d4n2jwaZpUyBMcrQUEX+kEOIz9N8MAG1BA3KGxETgEnlPHV6vXl7H9DX5IXuqNlZh1qxi3cMqAt2nwUYV4uL8oTopZaxYAdSrp+3+fpU2nmXhxERgyhSn1SuSihV1SRsiQFhYuS14TYi/of9mAGgLGlDwOWi2/t0mT6twySVex1mlYt6Mv8mzvFcM3jWrx9d3MMWm09L8oT4pheTkaD29YYOzcLVMxjpp4g4Ed41+sNS2VrP+LbSSFSpUq+a0SoSUGei/GQDaggYUfFavVl/3YoypAXj77V7HZWYCqalAV/lex1WqpDVifMQqNfP4GV96yoaQck12NvD447qk+oiMdQeBR2OTkJOaptlHGzc6raabNWtUxaEVPlOhXTunVSKkzED/zQDQFjSg4DNvnvq6OZUvUeGppwoc+9BD6sx3xWgRYHzwgc/3sbqAvHueySg5/XR/qE/KADffbGZ/5VUclgqePaAiyI6vCLzyik6/OcyCBarWwzVeUqF/f6dVIqTMQP/NANAWNKDgY/XnXZF8hgrvvVfg2L//1iETxHRJaNPG5+W8kSYvYN55L6swcKC/HoGUcrKzgfnzNZno02lHMajuMpwu32CxdPPsEYyP118JR51rA/jWW6rOjPQ7VGA/akJ8hv6bAaAtaEDBxyp8+19SMxW+/rrQ8aeeCiTJXmTGVCxWnbShppXwknMeVGHkSH+oT8og2dnAokXApUOzcas8gz+lkTsQPF6nkSaLOJA1/NBDqsay9MEqPPdc0HUgpKxC/80A0BY0oOBz2WXq647HVVZh7dpCx7/+ug57KeEeT01AH2YBzztPh6/qc4sK99zjr0cgZRSrrVx6XRfOk8+xTWp6loeTk4u1xcAfXHed3npLakcVPvkkqPcnpCxD/80A0BY0oODTvTsQJZkex7t3b6Hjjx8HatQAkmUXTkTH+zRrCAA9eujQTd1N/9gnn/TXI5AyjssFLFkC9O99EOPkYfwt9T32+MADQcsaPv9806qwUnUVfvklKPclpDxA/80A0BY0oOBTty5QXbZ76p7l5BR5zuOP6/D3k25Q4eKLizynbVsdurtNHxWmTvWD9qQ8kZkJXH01EC2ZeELudAeBxzp00zpCAS4c3qYNECPHPcHnnj0BvR8h5Qn6bwaAtqABBZecHO3w4W4DV6WKT+cdOKBVYFrLb3peVBSwY0eh5zRoYGZX0s1ew6++8scjkHLI559rnfBr5HWckEh3QJZTKRF47DGNFANAtWrA/7d379FRVXcbx3cSEi4BEbkEAga8cKsCFRGVpaiIt1dQ0VbUKlhrlZuALS5RrFEqiLXg0vdFtIoo1ldsBbwUqkDlYvHGW4JAkLtA5CIgJgQhCck87x97MkMgQMiZM4dkfz9rnbV2zpzZs2f7W+6HmTnntDGr7eulpp601ysETkas3wRATyig+Nq506513cy/beOssyr83IcfDv+mr+5FtjFq1DGPb9LEHlZc9xTb+OYbr8NHNbZnj/03wi1dt+gxM1obTatIEDzYpr09W72gIGav99NPtvsbzHu2cd55MesbcAHrNwHQEwoovrLCH+DdWT984dsLLqjwc7dtk1JSpD5mun3uqace8/7AtWtLqSY/+vVaFbk3LIJVVGRPPPpZuxLdZd7Q96Zx9NIxaU3tdYxicLu2L76w3f4x9elj3hEHQPlYvwmAnlBA8TVrll3rHst4wzauvvqEnj94sJRoirWhVvhr3QceKPe4gwftw5Gv1+rVi8Xw4ZDCQvuhX7ef7dFjZrS+M+nRIHjuufYqzocIhU7sG9xJk2x3c9L7hZPgH2P8DoDqjfWbAOgJBRRfpZd0eflnz4XvgXXbCT1/xw77U6keZp59fmKitHTpEcf9+KN9+ArzL9to1y5WbwGOKSqy54NkNC3UA+Z5/WAaRK8heNnV2vHyexr74E79/JQNer7N/6jgupvsNSezso7Z7333hS8B07SLbbz7bpzeEVA9sH4TAD2hgOLriSfsWvdh5/CdPQYNOuE+MjPDfdTtaxsXXXTEmcSbN9uH7k6aahtXXhmjdwBX7dlj67dpyg8abx4sc7JIeVsoJUV6+eWjfix4wQWSMSEV1Qpf4Dw7O87vCKjaWL8JgJ5QQPFV+qnHl12HVOhEjvLs3SulpUnp5jvtrxFePF99tcwxK1eGbyFXJ/z7qn79YvUW4Lh16+xliXq0XK/x5sHINQSLk5KVVfti/cE8qdnm2mgYvOuuI243V1Ag1awpnWE22GNq1PDtTGOgumL9JgB6QgHFV+ndOdZ1vcM2xo+vVD+ffCIlJUm/M3+OXk7mu+8ij3/+ud09td4g23jkkVi9BUCS/WAvktkKC6XiYoVC0uTJUs2UkB4yz6jYJNr6O/dcaePGyHP/HT4Jfki9123j4ouDeRNAFcb6TQD0hAKKr9KLM3/f5TrbeO21Svc1aJBUwxRpVe3Otq/LL4+syHPm2F2ra3UMX0H67Vi9BeC4vv9e6tRJ6m4WaGdS+C4fGRnShg2SpLFjwze0aflr23j44YBHDFQ9rN8EQE8ooPg6/XS73uWfe6FtvPdepfvaulWqW9ee6ZufEP4q+Je/lAoKNHmy1MTsiH4Nt3NnDN8FcHzffmvvepNuvtNq08b+LvD006V//1vXhf/982Oj8NXKZ80KerhAlcP6TQD0hAKKr9RUu94VtmptG4sWeerv66+lNm2ka8w/dTDB/ih/5zmXqYH5QXea8AkgP/95jEYPnJgtW6Q+faSmZpu+MW0j/yB5Jek+/cL8LXpXm9zcoIcKVDms3wRATyig2Fq3Ttq3T/as3MPOfiwsjH4gV9KwUfi2His8v2Z2tr3M35VmrvJMPckY7TN1oi/G7/8QsClTpIy6P+gV85sjzxgeOjTo4QFVEus3AdATCih2PvxQSkiQHu/xqT1D45lnyjy+I/yNbJIpVigx/OP4bdti8trZ2dL550sdzNdaaX4WWVxXNrxU4r8tTgJr1tib11xqFiq7tEbT06Xdu4MeGlAlsX4TAD2hgGKj9M4bxkiLzCXRPw4ciByzapXd1frUndHHi4piNoZQSPrqK+kPjxbr82c/1Qu3LNA3K7zfsguIlawse+J79sqQtGsXl34BPGD9JgB6QgHFxqJF0Uy3yWRE//jf/40cU3rpi2tPXxm9dAsAAJXA+k0A9IQCio0337SZrpXZWPb3TXfdFTnmgw/srvvbzuf2bAAAT1i/CYCeUECxMW6czXSRM29LtwsuiBzzxht211Od3rGN7t0DHDEAoCpj/SYAekIBxcYDD9hM90czSjJGq9MutTtOOSVyNvBzz9ldU87/b9v4xS8CHjUAoKpi/SYAekIBxcbNN9tMNz/tVskYjW84Rio903f7dknSH/4QvuZtl3Bj0KCARw0AqKpYvx0OgGPHjlWXLl1Ut25dNW7cWDfeeKNWr159Qn1QQLFxYfjGHrsz7L3eepv3VZRxpt25YIEkacgQ++eXne+3jSeeCHjUAICqivXb4QB4zTXXaMqUKVq5cqWWLVum66+/XhkZGdq3b1+F+6CAYqNFC8mYkIrr2FuytTOrtOnc/7JB76WXJEl33GH/XNuhj228+GLAowYAVFWs3w4HwMPt3LlTxhgtXLiwws+hgLwrLrbXfU4z2+39ThMSlGIK9PeM39mgN2SIJOnaa+2fO1qHrxP47rsBjxwAUFWxfhMAI9atWydjjFYc4/ZiBQUFysvLi2w5OTnOF5BX223u06UJn0rGqKh5SyUmSreaafaBzp0lSV262D/z09vE5D7AAAB3EQAJgJKkUCik3r1765JLLjnmcZmZmTLGHLG5XEBeLVli89zw+q/ZRs+euukmqbnJCd/7LUnKz1d6ulTb/KSSpBp2/+bNQQ8dAFBFEQAJgJKkQYMGqWXLlsrJyTnmcXwCGHvvvmvz3Ovpj9jGwIH6+ONwxjOnS8Zo1eUD9Vvzsq42H9kHmjePXB4GAIATRQAkAGrIkCFq0aKFNm7ceMLPpYC8Gz/eZrrPW/zCNiZMUHGx1KiR9Ja5veyFoUu3vn2DHjYAoApj/XY4AIZCIQ0ePFjp6elau3ZtpfqggLwbOtRmuq1NOtnGhx9KkkaNktqbbM0xPVVkapQNgC+8EPCoAQBVGeu3wwFw4MCBql+/vhYsWKDt27dHtv3791e4DwrIuxtusJeAKaqZasNd+FqMBQXSvHnSX/5id19uPtH3Kc2lGjWkSgZ2AAAk1m/J4QBY3skcxhhNmTKlwn1QQN516iQ1M1ttyktMlAoLyzz+f/8X/eDv9j4HpG3bAhopAKC6YP12OADGAgXk3amnSpeahTbhnXHGEY//9FM0AN5xRwADBABUO6zfBEBPKCBvcnNtsLvLvGEbPXqUe1xpALz++jgPEABQLbF+EwA9oYC8Kf169+k6o23j178u97jLL7cPz5wZ5wECAKol1m8CoCcUkDevv26D3T+a/cY2nnii3OP27pW++IJL/wEAYoP1mwDoCQXkzYgRNvd9c3pP2ziBE3AAAKgs1m8CoCcUkDfXXmtz349NWtvGJ58EPSQAgANYvwmAnlBA3rRoISWYEpWk1LQBcMOGoIcEAHAA6zcB0BMKqPLy8mzmSzPbbSMh4YhrAAIA4AfWbwKgJxRQ5WVn29zXs94XttG8edBDAgA4gvWbAOgJBXSI/PwTOk13zhyb+37X4h3b6NbNx8EBABDF+k0A9MT1AvrhB+nbb6XQnLlS3bqvaCXhAAAYgklEQVTSVVdJxcUVem7pJWD+0ubZ8H3ebvd3sAAAhLm+fksEQE9cLqBdu6RGjaSGZpf2JtaP3q5j3LgKPX/sWHv43HZDbGPkSJ9HDACA5fL6XYoA6IHLBfT44za39TdTouHPGCk1Vdq+/bjPHzzYHr6qdW/bmDTJ/0EDACC31+9SBEAPXC2g4mLptNNsblvbua9kjEabx/SF6Wp39uolHThwzD769LGH7mre0TZmz47T6AEArnN1/T4UAdADVwtowwab2eqkHFSoQQPJGL3cf7EuMp+pwKTYB/v0kUpKjtpH13BWLKoT/vo4OzuO7wAA4DJX1+9DEQA9cLWA/vlPm9l+deZnttGggQr2HVSTJlIPM0/FNcIh8Pnnj9pHixbSKSY3+tXxvn1xfAcAAJe5un4figDogasF9PzzNrO90y78Q8Bbb5UkPfGE/fPp9Bei1/YrKjri+cXFUlKS1MF8bY9r2DDebwEA4DBX1+9DEQA9cLWASk/g2NIs/D3ua69Jknbvlk45RUoxBdp/Spp97K23jnj+unX2oZuTP7CNzp3j/RYAAA5zdf0+FAHQA1cL6KqrpAbmB4USEmyA27o18tjTT9tdf0wZbRvnn3/EBaI/COe+sc3/O/p7QQAA4sTV9ftQBEAPXC2gjAzpevOhDW9t25Z5rKhIuvxyqZHZqcLEmvaYRYvKHPPMM3b3B+1G2Mbw4fEcPgDAca6u34ciAHrgYgF99134d35mpG3cc88Rx3z6qX3o9ZTflvsJ3913290rz/mlbTz3XLyGDwCAk+v34QiAHrhYQK+9ZjPb0nqX2sbkyUccc/Cg1KCB1N5k22MSEqT16yOPX3ih3b377PBvCGfMiOdbAAA4zsX1+3AEQA9cLKC+faUkc1BFSeGvd1evLve4226zD3/T8hrbGDpUkv05YP3wpf+KGoZPFPnPf+L5FgAAjnNx/T4cAdADFwsoLU06w4SvBF2z5lEv9vxh+CeCfVI/jt4ibs8e7d4dfqo5EL0G4O7dcX4XAACXubh+H44A6IFrBbRjh81rV5k5ttG+/VGPLSmRzj5bMiakbY072OPHjdOXX9rmtY2W2MZppx1xljAAAH5ybf0uDwHQA9cKaO5cm9n+0HhS9J6/x/DWW/aw/maKbaSna9rUQhkjPXv2S3bf1VfHZ/AAAIS5tn6XhwDogWsFNGGCzWzvtQ5fvmXYsOM+Z+hQe2HoXclNJWM099pnZYy0oPW9to9HHonDyAEAiHJt/S4PAdAD1wqo9PItq9r1sY0XXjjuc3bulGrXln5jXpGMUWFSLXU1X2hbs/NsH9Onx2HkAABEubZ+l4cA6IFrBdSli81sP7bsaBuzZlXoeY89Zn8L+KHpFT3xo3TbvNnnUQMAUJZr63d5CIAeuFRAoZC9z68xIRXXTj3mJWAOV1Ii3XqrVMfs03xzWTT83XGHv4MGAKAcLq3fR0MA9MClAiq9fEsTsyN6ceeCghN6fuPGUrIp1JttRis0/METej4AALHi0vp9NARAD1wqoK++srmvd8PFtpGRccJ9rF0r/f3vUnGxDwMEAKCCXFq/j4YA6IFLBTRtms19o1tPtY0rrgh6SAAAVIpL6/fREAA9cKmAxo4N37a3Y6Zt3Htv0EMCAKBSXFq/j4YA6IFLBfSb39jct6zjnbbx9NNBDwkAgEpxaf0+GgKgBy4V0BVX2Nz3/dkX28bf/hb0kAAAqBSX1u+jIQB64FIBnXmmzX2FDZrYxn/+E/SQAACoFJfW76MhAHrgSgGVlEgpKVJdszd6Db/c3KCHBQBApbiyfh8LAdADVwpoR/jSf53MMtto2DDoIQEAUGmurN/HQgD0wJUCWrLE5r57Tp1uG127Bj0kAAAqzZX1+1gIgB64UkAzZtjc93yLP9nG7bcHPSQAACrNlfX7WAiAHrhSQC+8YHPfR2fcbxuPPRb0kAAAqDRX1u9jIQB64EoBPfSQzX2rM3raxpQpQQ8JAIBKc2X9PhYCoAeuFNBtt9nc9+NpZ9jGokVBDwkAgEpzZf0+FgKgB64U0IUXSsmmUKGERBsAt20LekgAAFSaK+v3sRAAPXChgEIh6dRTpdZmjQ1/derYnQAAVFEurN/HQwD0wIUC2rXL5r7rzCzb6Ngx6CEBAOCJC+v38RAAPXChgBYvtrnv8QbP28YttwQ9JAAAPHFh/T4eAqAHLhTQlCk29804/QHbePjhoIcEAIAnLqzfx0MA9MCFAnrkEZv7VmZcZxuvvBL0kAAA8MSF9ft4CIAeuFBAt9wSvgRMo7NtY/78oIcEAIAnLqzfx0MA9MCFAurQQaphilSSVMMGwJycoIcEAIAnLqzfx0MA9KC6F1BJiVSrlnSmWW/DX61adicAAFVYdV+/K4IA6EF1L6DNm23u+6+kj2zjnHOCHhIAAJ5V9/W7IgiAHlT3Apo71+a+0Wn/Yxs33RT0kAAA8Ky6r98V4XQAXLhwoXr16qVmzZrJGKOZM2ee0POrewFNnGhz3/tnDreNESOCHhIAAJ5V9/W7IpwOgLNnz9aoUaM0ffp0AmA5hg2zuS/7zF628dJLQQ8JAADPqvv6XRFOB8BDEQCPdF340n8/prW1jXnzgh4SAACeVff1uyIIgGEVCYAFBQXKy8uLbDk5OdW6gM46S0o0xSqpkWwD4KZNQQ8JAADPCIAEwIiKBMDMzEwZY47YqmMBFRRIiYlSS/OtDX8pKVJxcdDDAgDAMwIgATCCTwDLWrXK5r5etcKnArdrF/SQAACICQIgATCC3wCW9d57NveNOX2SbfTuHfSQAACIieq8flcUATCMAFjWn/5kc9+HbX9vGw8+GPSQAACIieq8fleU0wEwPz9fWVlZysrKkjFGEyZMUFZWljZv3lyh51fnArrnHpv71rS+3jYmTgx6SAAAxER1Xr8ryukAOH/+/HJP6ujfv3+Fnl+dC6hrV5v79jdIt43Fi4MeEgAAMVGd1++KcjoAelVdC6ikREpNlZqYHTb8JSRI+flBDwsAgJioruv3iSAAehC3Anr/falPH2nXLn9fJ2zjxvAZwDX+aRtt28bldQEAiAcCIAHQk7gVkDF2e+ghf18n7IMP7Mu90HSMbdx+e1xeFwCAeCAAEgA9iUsBFRVFA+A99/j3OocYPdq+3PKmV9nG+PFxeV0AAOKBAEgA9CQuBbRiRTQADh7s3+scont36VSzR8WJNezrrl0bl9cFACAeCIAEQE/iUkB//Ws0AN5yi3+vE5aXJ9WoId1pptrXPOcc318TAIB4IgASAD2JSwGNGBENgN26+fc6YVOnSsaEtKzmBfY1MzN9f00AAOKJAEgA9CQuBXTTTdEAeMYZ/r2OpCVL7OVfepv37evVqSN9/72vrwkAQLwRAAmAnsSlgHr2jAbAWrWkUMj+Ji8rK6Yvs26d1LhRSD3MPOUmN4zrWccAAMQTAZAA6IlfBbRvnzR/vs16uvjiaAA0xn4iV7++bW/a5Pm18vKkceOk7g1Xao1pHX2d886T9u/33D8AACcbAiAB0BO/CmjiRJvBfv5zaUdah7IB8LnnyrY92L1bysiQGpmd2mJaSMYoVKu2dP/9fPULAKi2CIAEQE/8KqAxY6TatW3G22DOKBMA9zY75FO6yy+31wl87jlp7twTfp2HH7bdvFprsGSMilu3JfgBAKo9AiAB0BM/C+iHH6RJk6QfazaRjIl8QnfoVmIStPXMS+wndzVqqPBfn0qFhdKyZdJPP0mSCgqkLVukg0Uh+0dRkSTpm29syPyZWamSpPD1/j75JObvAwCAkw0BkADoSVwKqE4dyRj90POXkeBXbBK1xJx/RCA8dMur2UhT0h7W6wl3a5VppxKTEAmNB1q11cTGmeph5umbU8KXe7nhBv/eAwAAJxECIAHQE98LqKQkGuomTIh+8nduB33z1LuRvx9PHqvF5uJjBsJjbvXq2Y8JAQBwAAGQAOiJ7wWUnx8NaZ9/Hm3ffbd08KB0661S//4KHSxWSV6+cu4brRl3/F0TJxRo5i/+qs3dblPukFEqef9Dfffld/pkZq5uu2KH7jB/1WxznQpPbWzPMv7qK3/GDwDASYgASAD0xPcC2r7dBr6EBPv7vdIAOHKkp25XrJC+/jpGYwQAoIohABIAPfG9gNavt4Gvbl3790UX2b9XrvTn9QAAcAABkADoie8FtGyZDXxpafbvPXvsLTsAAEClEQAJgJ74XkCLF9sAeNZZ/vQPAICDCIAEQE98L6CPP7YBsGNHf/oHAMBBBEACoCe+F9CMGTYAduvmT/8AADiIAEgA9MT3Apo61QbAq6/2p38AABxEACQAeuJ7Ab34og2Affr40z8AAA4iABIAPfG9gJ591gbAu+7yp38AABxEACQAeuJ7AWVm2gA4YIA//QMA4CACIAHQE98LaMQIGwBHjPCnfwAAHEQAJAB64nsBDRhgA+ATT/jTPwAADiIAEgA98b2A7rrLBsBnn/WnfwAAHEQAJAB64nsB9eljA+CkSf70DwCAgwiABEBPfC+gq66yAXDqVH/6BwDAQQRAAqAnvhdQt242AM6Y4U//AAA4iABIAPTE9wLq2NEGwI8/9qd/AAAcRAAkAHriewGddZYNgIsX+9M/AAAOIgASAD3xvYDS0mwA/Pprf/oHAMBBBEACoCe+F1DdujYArl/vT/8AADiIAEgA9MTXAiopkRISbADcsSP2/QMA4CgCIAHQE18LaN8+G/6MkfLzY98/AACOIgASAD3xtYC+/z4aAEtKYt8/AACOIgASAD3xtYA2bLDhr06d2PcNAIDDCIAEQE98LaDly20AbNIk9n0DAOAwAiAB0BNfC+izz2wAPPPM2PcNAIDDCIAEQE98LaC5c20A7NAh9n0DAOAwAiAB0BNfC2jmTBsAL7449n0DAOAwAiAB0BNfC+jNN20A7Nkz9n0DAOAwAiAB0BNfC+ill2wAvOmm2PcNAIDDCIAEQE98LaA//9kGwF/9KvZ9AwDgMAIgAdATXwvoySdtALz//tj3DQCAwwiABEBPfC2ghx6yAfB3v4t93wAAOIwASAD0xNcC6tfPBsCnn4593wAAOIwASAD0xNcC6tHDBsA334x93wAAOIwASAD0xNcCat3aBsAFC2LfNwAADiMAEgA98a2AQiGpdm0bANevj23fAAA4jgBIAPTEtwLavduGP2OkAwdi2zcAAI4jABIANXHiRLVq1Uo1a9ZU586dtWjRogo/17cCWrbMhr/GjWPbLwAAIADK8QA4bdo0JScn65VXXtGqVas0bNgwpaamavPmzRV6vm8F9I9/2AB43nmx7RcAABAA5XgA7Nq1qwYMGFBmX7t27TRy5MgKPd+3Apo0yQbAG26Ibb8AAIAAKIcDYGFhoZKSkjRjxowy+4cOHaru3btXqA/fCmjUKBsABw2Kbb8AAIAAKIcD4NatW2WM0eLFi8vsHzNmjNq0aVPucwoKCpSXlxfZcnJy/CmgL7+UJkyQ5s2Lbb8AAIAAKAKgPvvsszL7n3rqKbVt27bc52RmZsoYc8TmcgEBAFDVEAAdDoCV+Qo4bp8AAgAA3xAAHQ6Akj0JZODAgWX2tW/fPviTQAAAgG9Yvx0PgKWXgZk8ebJWrVql4cOHKzU1VZs2barQ8ykgAACqHtZvxwOgZC8E3bJlS6WkpKhz585auHBhhZ9LAQEAUPWwfhMAPaGAAACoeli/CYCeUEAAAFQ9rN8EQE8oIAAAqh7WbwKgJxQQAABVD+s3AdATCggAgKqH9ZsA6AkFBABA1cP6TQD0hAICAKDqYf0mAHpCAQEAUPWwfhMAPaGAAACoeli/CYCe5ObmyhijnJwc5eXlsbGxsbGxsVWBLScnR8YY5ebmBh0lAkMA9KC0gNjY2NjY2Niq3paTkxN0lAgMAdCDkpIS5eTkKDc317d/nfDpYjD/KmTemXcXNuadeXdpO3Tec3NzlZOTo5KSkqCjRGAIgCepvDx+nxAE5j0YzHswmPdgMO/BYN7LIgCepCjUYDDvwWDeg8G8B4N5DwbzXhYB8CRFoQaDeQ8G8x4M5j0YzHswmPeyCIAnqYKCAmVmZqqgoCDooTiFeQ8G8x4M5j0YzHswmPeyCIAAAACOIQACAAA4hgAIAADgGAIgAACAYwiAAAAAjiEAnoQmTpyoVq1aqWbNmurcubMWLVoU9JCqtIULF6pXr15q1qyZjDGaOXNmmcdDoZAyMzPVrFkz1apVS5dddplWrlxZ5piCggINGTJEDRs2VJ06ddS7d2+nbyFUEWPHjlWXLl1Ut25dNW7cWDfeeKNWr15d5hjmPvZefPFFdejQQfXq1VO9evV00UUXafbs2ZHHmXP/jR07VsYYDRs2LLKPefdHZmbmEbd3S0tLizzOvB8dAfAkM23aNCUnJ+uVV17RqlWrNGzYMKWmpmrz5s1BD63Kmj17tkaNGqXp06eXGwDHjRunevXqafr06VqxYoX69u2rZs2aae/evZFjBgwYoObNm2vu3LlaunSprrjiCnXq1EnFxcXxfjtVxjXXXKMpU6Zo5cqVWrZsma6//nplZGRo3759kWOY+9j74IMPNGvWLK1Zs0Zr1qzRo48+quTk5Miix5z766uvvlKrVq3UsWPHMgGQefdHZmamzjnnHG3fvj2y7dy5M/I48350BMCTTNeuXTVgwIAy+9q1a6eRI0cGNKLq5fAAGAqF1LRpU40bNy6yr6CgQPXr19dLL70kScrNzVVycrKmTZsWOWbr1q1KTEzURx99FL/BV3E7d+6UMUYLFy6UxNzHU4MGDfTqq68y5z7Lz89X69atNXfuXF122WWRAMi8+yczM1OdOnUq9zHm/dgIgCeRwsJCJSUlacaMGWX2Dx06VN27dw9oVNXL4QFww4YNMsZo6dKlZY674YYb1K9fP0nSv/71LxljtGfPnjLHdOzYUY8//rj/g64m1q1bJ2OMVqxYIYm5j4fi4mK9/fbbSklJUXZ2NnPus379+mn48OGSVCYAMu/+yczMVJ06ddSsWTO1atVKffv21YYNGyQx78dDADyJbN26VcYYLV68uMz+MWPGqE2bNgGNqno5PAAuXrxYxhht3bq1zHG//e1vdfXVV0uS3nrrLaWkpBzR11VXXaX77rvP3wFXE6FQSL1799Yll1wS2cfc+2f58uVKTU1VUlKS6tevr1mzZklizv309ttv69xzz9WBAwcklQ2AzLt/Zs+erXfffVfLly+PfPKalpam3bt3M+/HQQA8iZQGwM8++6zM/qeeekpt27YNaFTVy9EC4LZt28ocd++99+qaa66RdPT/QfTs2VP333+/vwOuJgYNGqSWLVuW+WE1c++fwsJCrVu3TkuWLNHIkSPVqFEjZWdnM+c+2bJli5o0aaJly5ZF9pUXAJl3/+3bt09paWkaP348834cBMCTCF8B+4+vgONvyJAhatGihTZu3FhmP3MfP1deeaXuu+8+5twnM2fOlDFGSUlJkc0Yo4SEBCUlJWn9+vXMexz17NlTAwYMoN6PgwB4kunatasGDhxYZl/79u05CSRGjnYSyDPPPBPZV1hYWO6PhN95553IMdu2bXPiR8JehEIhDR48WOnp6Vq7dm25jzP38dGjRw/179+fOffJ3r17tWLFijJbly5ddOedd2rFihXMexwVFBSoefPmevLJJ5n34yAAnmRKLwMzefJkrVq1SsOHD1dqaqo2bdoU9NCqrPz8fGVlZSkrK0vGGE2YMEFZWVmRS+uMGzdO9evX14wZM7RixQrdfvvt5V4moEWLFpo3b56WLl2qHj16OHGZAC8GDhyo+vXra8GCBWUu0bB///7IMcx97D3yyCNatGiRvv32Wy1fvlyPPvqoEhMTNWfOHEnMebwc+hWwxLz75fe//70WLFigjRs36osvvlCvXr1Ur169yJrJvB8dAfAkNHHiRLVs2VIpKSnq3Llz5LIZqJz58+cfcaFQY4z69+8vKXqh0KZNm6pmzZrq3r175EzVUgcOHNCQIUN02mmnqXbt2urVq5e2bNkSwLupOsqbc2OMpkyZEjmGuY+9e+65J/L/j8aNG+vKK6+MhD+JOY+XwwMg8+6P0uv6JScnKz09XTfffLOys7MjjzPvR0cABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAc8/9tEvw4TgLluQAAAABJRU5ErkJggg==\" width=\"640\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.figure()\n",
|
|
"plt.plot(current_row, color='blue')\n",
|
|
"plt.plot(filtered_EDA, color='red')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Next, the peaks are detected using the EDA Explorer.\n",
|
|
"Here, the parameters can be set in `extractGsrFeatures`, but their default values are also set.\n",
|
|
"\n",
|
|
"The explanations and illustrations of these parameters can be found at the [EDA Explorer FAQ](https://eda-explorer.media.mit.edu/info/), but in brief, they are:\n",
|
|
"* threshold: the minimum amplitude a potential skin conductance response (SCR) must reach in order to be counted as an SCR (in µS); \n",
|
|
"* offset: the number of seconds for which the *derivative must be positive before a peak* and the derivative must be negative after a peak; \n",
|
|
"* max rise time: allowed time in seconds from the \"start\" of the peak to the apex of a peak;\n",
|
|
"* max decay time: allowed time in seconds after the apex of a peak to the 50 % of maximum amplitude of the peak.\n",
|
|
"\n",
|
|
"Their default values are: `(threshold=.02, offset=1, riseTime=4, decayTime=4,)`"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"gsr_data = pd.DataFrame(current_row, columns=[\"EDA\"])\n",
|
|
"startTime = pd.to_datetime(0, unit=\"s\")\n",
|
|
"gsr_data.index = pd.date_range(start=startTime, periods=len(gsr_data), freq=str(1000/sampleRate_EDA) + 'L')\n",
|
|
"gsr_data['filtered_eda'] = filtered_EDA\n",
|
|
"peakData = calcPeakFeatures(gsr_data, offset=1, thresh=.02, start_WT=4, end_WT=4, sampleRate=int(sampleRate_EDA))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"This function returns peaks (i.e., the time of the peaks) and their characteristics.\n",
|
|
"These include their start and end time (when the amplitude falls by 50 %), their amplitude, their duration (or width) and more.\n",
|
|
"\n",
|
|
"Some peaks are visualized below, along with their start (>) and end (■) times."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[ 46 66 81 107 159 293 313 328 376 397 452]\n",
|
|
"[ 17 30 58 73 101 152 280 304 321 365 393 444]\n",
|
|
"[ 58 73 89 112 168 304 318 334 386 400 460]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"peaks = np.where(peakData.peaks == 1.0)[0]\n",
|
|
"peak_starts = np.where(peakData.peak_start == 1.0)[0]\n",
|
|
"peak_ends = np.where(peakData.peak_end == 1.0)[0]\n",
|
|
"print(peaks)\n",
|
|
"print(peak_starts)\n",
|
|
"print(peak_ends)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {
|
|
"scrolled": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/javascript": [
|
|
"/* Put everything inside the global mpl namespace */\n",
|
|
"/* global mpl */\n",
|
|
"window.mpl = {};\n",
|
|
"\n",
|
|
"mpl.get_websocket_type = function () {\n",
|
|
" if (typeof WebSocket !== 'undefined') {\n",
|
|
" return WebSocket;\n",
|
|
" } else if (typeof MozWebSocket !== 'undefined') {\n",
|
|
" return MozWebSocket;\n",
|
|
" } else {\n",
|
|
" alert(\n",
|
|
" 'Your browser does not have WebSocket support. ' +\n",
|
|
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
|
|
" 'Firefox 4 and 5 are also supported but you ' +\n",
|
|
" 'have to enable WebSockets in about:config.'\n",
|
|
" );\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
|
|
" this.id = figure_id;\n",
|
|
"\n",
|
|
" this.ws = websocket;\n",
|
|
"\n",
|
|
" this.supports_binary = this.ws.binaryType !== undefined;\n",
|
|
"\n",
|
|
" if (!this.supports_binary) {\n",
|
|
" var warnings = document.getElementById('mpl-warnings');\n",
|
|
" if (warnings) {\n",
|
|
" warnings.style.display = 'block';\n",
|
|
" warnings.textContent =\n",
|
|
" 'This browser does not support binary websocket messages. ' +\n",
|
|
" 'Performance may be slow.';\n",
|
|
" }\n",
|
|
" }\n",
|
|
"\n",
|
|
" this.imageObj = new Image();\n",
|
|
"\n",
|
|
" this.context = undefined;\n",
|
|
" this.message = undefined;\n",
|
|
" this.canvas = undefined;\n",
|
|
" this.rubberband_canvas = undefined;\n",
|
|
" this.rubberband_context = undefined;\n",
|
|
" this.format_dropdown = undefined;\n",
|
|
"\n",
|
|
" this.image_mode = 'full';\n",
|
|
"\n",
|
|
" this.root = document.createElement('div');\n",
|
|
" this.root.setAttribute('style', 'display: inline-block');\n",
|
|
" this._root_extra_style(this.root);\n",
|
|
"\n",
|
|
" parent_element.appendChild(this.root);\n",
|
|
"\n",
|
|
" this._init_header(this);\n",
|
|
" this._init_canvas(this);\n",
|
|
" this._init_toolbar(this);\n",
|
|
"\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" this.waiting = false;\n",
|
|
"\n",
|
|
" this.ws.onopen = function () {\n",
|
|
" fig.send_message('supports_binary', { value: fig.supports_binary });\n",
|
|
" fig.send_message('send_image_mode', {});\n",
|
|
" if (fig.ratio !== 1) {\n",
|
|
" fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
|
|
" }\n",
|
|
" fig.send_message('refresh', {});\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onload = function () {\n",
|
|
" if (fig.image_mode === 'full') {\n",
|
|
" // Full images could contain transparency (where diff images\n",
|
|
" // almost always do), so we need to clear the canvas so that\n",
|
|
" // there is no ghosting.\n",
|
|
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
|
|
" }\n",
|
|
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.imageObj.onunload = function () {\n",
|
|
" fig.ws.close();\n",
|
|
" };\n",
|
|
"\n",
|
|
" this.ws.onmessage = this._make_on_message_function(this);\n",
|
|
"\n",
|
|
" this.ondownload = ondownload;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_header = function () {\n",
|
|
" var titlebar = document.createElement('div');\n",
|
|
" titlebar.classList =\n",
|
|
" 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
|
|
" var titletext = document.createElement('div');\n",
|
|
" titletext.classList = 'ui-dialog-title';\n",
|
|
" titletext.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'width: 100%; text-align: center; padding: 3px;'\n",
|
|
" );\n",
|
|
" titlebar.appendChild(titletext);\n",
|
|
" this.root.appendChild(titlebar);\n",
|
|
" this.header = titletext;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_canvas = function () {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var canvas_div = (this.canvas_div = document.createElement('div'));\n",
|
|
" canvas_div.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'border: 1px solid #ddd;' +\n",
|
|
" 'box-sizing: content-box;' +\n",
|
|
" 'clear: both;' +\n",
|
|
" 'min-height: 1px;' +\n",
|
|
" 'min-width: 1px;' +\n",
|
|
" 'outline: 0;' +\n",
|
|
" 'overflow: hidden;' +\n",
|
|
" 'position: relative;' +\n",
|
|
" 'resize: both;'\n",
|
|
" );\n",
|
|
"\n",
|
|
" function on_keyboard_event_closure(name) {\n",
|
|
" return function (event) {\n",
|
|
" return fig.key_event(event, name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" canvas_div.addEventListener(\n",
|
|
" 'keydown',\n",
|
|
" on_keyboard_event_closure('key_press')\n",
|
|
" );\n",
|
|
" canvas_div.addEventListener(\n",
|
|
" 'keyup',\n",
|
|
" on_keyboard_event_closure('key_release')\n",
|
|
" );\n",
|
|
"\n",
|
|
" this._canvas_extra_style(canvas_div);\n",
|
|
" this.root.appendChild(canvas_div);\n",
|
|
"\n",
|
|
" var canvas = (this.canvas = document.createElement('canvas'));\n",
|
|
" canvas.classList.add('mpl-canvas');\n",
|
|
" canvas.setAttribute('style', 'box-sizing: content-box;');\n",
|
|
"\n",
|
|
" this.context = canvas.getContext('2d');\n",
|
|
"\n",
|
|
" var backingStore =\n",
|
|
" this.context.backingStorePixelRatio ||\n",
|
|
" this.context.webkitBackingStorePixelRatio ||\n",
|
|
" this.context.mozBackingStorePixelRatio ||\n",
|
|
" this.context.msBackingStorePixelRatio ||\n",
|
|
" this.context.oBackingStorePixelRatio ||\n",
|
|
" this.context.backingStorePixelRatio ||\n",
|
|
" 1;\n",
|
|
"\n",
|
|
" this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
|
|
" if (this.ratio !== 1) {\n",
|
|
" fig.send_message('set_dpi_ratio', { dpi_ratio: this.ratio });\n",
|
|
" }\n",
|
|
"\n",
|
|
" var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
|
|
" 'canvas'\n",
|
|
" ));\n",
|
|
" rubberband_canvas.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
|
|
" );\n",
|
|
"\n",
|
|
" var resizeObserver = new ResizeObserver(function (entries) {\n",
|
|
" var nentries = entries.length;\n",
|
|
" for (var i = 0; i < nentries; i++) {\n",
|
|
" var entry = entries[i];\n",
|
|
" var width, height;\n",
|
|
" if (entry.contentBoxSize) {\n",
|
|
" if (entry.contentBoxSize instanceof Array) {\n",
|
|
" // Chrome 84 implements new version of spec.\n",
|
|
" width = entry.contentBoxSize[0].inlineSize;\n",
|
|
" height = entry.contentBoxSize[0].blockSize;\n",
|
|
" } else {\n",
|
|
" // Firefox implements old version of spec.\n",
|
|
" width = entry.contentBoxSize.inlineSize;\n",
|
|
" height = entry.contentBoxSize.blockSize;\n",
|
|
" }\n",
|
|
" } else {\n",
|
|
" // Chrome <84 implements even older version of spec.\n",
|
|
" width = entry.contentRect.width;\n",
|
|
" height = entry.contentRect.height;\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Keep the size of the canvas and rubber band canvas in sync with\n",
|
|
" // the canvas container.\n",
|
|
" if (entry.devicePixelContentBoxSize) {\n",
|
|
" // Chrome 84 implements new version of spec.\n",
|
|
" canvas.setAttribute(\n",
|
|
" 'width',\n",
|
|
" entry.devicePixelContentBoxSize[0].inlineSize\n",
|
|
" );\n",
|
|
" canvas.setAttribute(\n",
|
|
" 'height',\n",
|
|
" entry.devicePixelContentBoxSize[0].blockSize\n",
|
|
" );\n",
|
|
" } else {\n",
|
|
" canvas.setAttribute('width', width * fig.ratio);\n",
|
|
" canvas.setAttribute('height', height * fig.ratio);\n",
|
|
" }\n",
|
|
" canvas.setAttribute(\n",
|
|
" 'style',\n",
|
|
" 'width: ' + width + 'px; height: ' + height + 'px;'\n",
|
|
" );\n",
|
|
"\n",
|
|
" rubberband_canvas.setAttribute('width', width);\n",
|
|
" rubberband_canvas.setAttribute('height', height);\n",
|
|
"\n",
|
|
" // And update the size in Python. We ignore the initial 0/0 size\n",
|
|
" // that occurs as the element is placed into the DOM, which should\n",
|
|
" // otherwise not happen due to the minimum size styling.\n",
|
|
" if (width != 0 && height != 0) {\n",
|
|
" fig.request_resize(width, height);\n",
|
|
" }\n",
|
|
" }\n",
|
|
" });\n",
|
|
" resizeObserver.observe(canvas_div);\n",
|
|
"\n",
|
|
" function on_mouse_event_closure(name) {\n",
|
|
" return function (event) {\n",
|
|
" return fig.mouse_event(event, name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mousedown',\n",
|
|
" on_mouse_event_closure('button_press')\n",
|
|
" );\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mouseup',\n",
|
|
" on_mouse_event_closure('button_release')\n",
|
|
" );\n",
|
|
" // Throttle sequential mouse events to 1 every 20ms.\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mousemove',\n",
|
|
" on_mouse_event_closure('motion_notify')\n",
|
|
" );\n",
|
|
"\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mouseenter',\n",
|
|
" on_mouse_event_closure('figure_enter')\n",
|
|
" );\n",
|
|
" rubberband_canvas.addEventListener(\n",
|
|
" 'mouseleave',\n",
|
|
" on_mouse_event_closure('figure_leave')\n",
|
|
" );\n",
|
|
"\n",
|
|
" canvas_div.addEventListener('wheel', function (event) {\n",
|
|
" if (event.deltaY < 0) {\n",
|
|
" event.step = 1;\n",
|
|
" } else {\n",
|
|
" event.step = -1;\n",
|
|
" }\n",
|
|
" on_mouse_event_closure('scroll')(event);\n",
|
|
" });\n",
|
|
"\n",
|
|
" canvas_div.appendChild(canvas);\n",
|
|
" canvas_div.appendChild(rubberband_canvas);\n",
|
|
"\n",
|
|
" this.rubberband_context = rubberband_canvas.getContext('2d');\n",
|
|
" this.rubberband_context.strokeStyle = '#000000';\n",
|
|
"\n",
|
|
" this._resize_canvas = function (width, height, forward) {\n",
|
|
" if (forward) {\n",
|
|
" canvas_div.style.width = width + 'px';\n",
|
|
" canvas_div.style.height = height + 'px';\n",
|
|
" }\n",
|
|
" };\n",
|
|
"\n",
|
|
" // Disable right mouse context menu.\n",
|
|
" this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
" });\n",
|
|
"\n",
|
|
" function set_focus() {\n",
|
|
" canvas.focus();\n",
|
|
" canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" window.setTimeout(set_focus, 100);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function () {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var toolbar = document.createElement('div');\n",
|
|
" toolbar.classList = 'mpl-toolbar';\n",
|
|
" this.root.appendChild(toolbar);\n",
|
|
"\n",
|
|
" function on_click_closure(name) {\n",
|
|
" return function (_event) {\n",
|
|
" return fig.toolbar_button_onclick(name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" function on_mouseover_closure(tooltip) {\n",
|
|
" return function (event) {\n",
|
|
" if (!event.currentTarget.disabled) {\n",
|
|
" return fig.toolbar_button_onmouseover(tooltip);\n",
|
|
" }\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.buttons = {};\n",
|
|
" var buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'mpl-button-group';\n",
|
|
" for (var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" /* Instead of a spacer, we start a new button group. */\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
" buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'mpl-button-group';\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var button = (fig.buttons[name] = document.createElement('button'));\n",
|
|
" button.classList = 'mpl-widget';\n",
|
|
" button.setAttribute('role', 'button');\n",
|
|
" button.setAttribute('aria-disabled', 'false');\n",
|
|
" button.addEventListener('click', on_click_closure(method_name));\n",
|
|
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
|
|
"\n",
|
|
" var icon_img = document.createElement('img');\n",
|
|
" icon_img.src = '_images/' + image + '.png';\n",
|
|
" icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
|
|
" icon_img.alt = tooltip;\n",
|
|
" button.appendChild(icon_img);\n",
|
|
"\n",
|
|
" buttonGroup.appendChild(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fmt_picker = document.createElement('select');\n",
|
|
" fmt_picker.classList = 'mpl-widget';\n",
|
|
" toolbar.appendChild(fmt_picker);\n",
|
|
" this.format_dropdown = fmt_picker;\n",
|
|
"\n",
|
|
" for (var ind in mpl.extensions) {\n",
|
|
" var fmt = mpl.extensions[ind];\n",
|
|
" var option = document.createElement('option');\n",
|
|
" option.selected = fmt === mpl.default_extension;\n",
|
|
" option.innerHTML = fmt;\n",
|
|
" fmt_picker.appendChild(option);\n",
|
|
" }\n",
|
|
"\n",
|
|
" var status_bar = document.createElement('span');\n",
|
|
" status_bar.classList = 'mpl-message';\n",
|
|
" toolbar.appendChild(status_bar);\n",
|
|
" this.message = status_bar;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
|
|
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
|
|
" // which will in turn request a refresh of the image.\n",
|
|
" this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_message = function (type, properties) {\n",
|
|
" properties['type'] = type;\n",
|
|
" properties['figure_id'] = this.id;\n",
|
|
" this.ws.send(JSON.stringify(properties));\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.send_draw_message = function () {\n",
|
|
" if (!this.waiting) {\n",
|
|
" this.waiting = true;\n",
|
|
" this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
|
|
" var format_dropdown = fig.format_dropdown;\n",
|
|
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
|
|
" fig.ondownload(fig, format);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
|
|
" var size = msg['size'];\n",
|
|
" if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
|
|
" fig._resize_canvas(size[0], size[1], msg['forward']);\n",
|
|
" fig.send_message('refresh', {});\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
|
|
" var x0 = msg['x0'] / fig.ratio;\n",
|
|
" var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
|
|
" var x1 = msg['x1'] / fig.ratio;\n",
|
|
" var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
|
|
" x0 = Math.floor(x0) + 0.5;\n",
|
|
" y0 = Math.floor(y0) + 0.5;\n",
|
|
" x1 = Math.floor(x1) + 0.5;\n",
|
|
" y1 = Math.floor(y1) + 0.5;\n",
|
|
" var min_x = Math.min(x0, x1);\n",
|
|
" var min_y = Math.min(y0, y1);\n",
|
|
" var width = Math.abs(x1 - x0);\n",
|
|
" var height = Math.abs(y1 - y0);\n",
|
|
"\n",
|
|
" fig.rubberband_context.clearRect(\n",
|
|
" 0,\n",
|
|
" 0,\n",
|
|
" fig.canvas.width / fig.ratio,\n",
|
|
" fig.canvas.height / fig.ratio\n",
|
|
" );\n",
|
|
"\n",
|
|
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
|
|
" // Updates the figure title.\n",
|
|
" fig.header.textContent = msg['label'];\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
|
|
" var cursor = msg['cursor'];\n",
|
|
" switch (cursor) {\n",
|
|
" case 0:\n",
|
|
" cursor = 'pointer';\n",
|
|
" break;\n",
|
|
" case 1:\n",
|
|
" cursor = 'default';\n",
|
|
" break;\n",
|
|
" case 2:\n",
|
|
" cursor = 'crosshair';\n",
|
|
" break;\n",
|
|
" case 3:\n",
|
|
" cursor = 'move';\n",
|
|
" break;\n",
|
|
" }\n",
|
|
" fig.rubberband_canvas.style.cursor = cursor;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_message = function (fig, msg) {\n",
|
|
" fig.message.textContent = msg['message'];\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
|
|
" // Request the server to send over a new figure.\n",
|
|
" fig.send_draw_message();\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
|
|
" fig.image_mode = msg['mode'];\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
|
|
" for (var key in msg) {\n",
|
|
" if (!(key in fig.buttons)) {\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" fig.buttons[key].disabled = !msg[key];\n",
|
|
" fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
|
|
" if (msg['mode'] === 'PAN') {\n",
|
|
" fig.buttons['Pan'].classList.add('active');\n",
|
|
" fig.buttons['Zoom'].classList.remove('active');\n",
|
|
" } else if (msg['mode'] === 'ZOOM') {\n",
|
|
" fig.buttons['Pan'].classList.remove('active');\n",
|
|
" fig.buttons['Zoom'].classList.add('active');\n",
|
|
" } else {\n",
|
|
" fig.buttons['Pan'].classList.remove('active');\n",
|
|
" fig.buttons['Zoom'].classList.remove('active');\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function () {\n",
|
|
" // Called whenever the canvas gets updated.\n",
|
|
" this.send_message('ack', {});\n",
|
|
"};\n",
|
|
"\n",
|
|
"// A function to construct a web socket function for onmessage handling.\n",
|
|
"// Called in the figure constructor.\n",
|
|
"mpl.figure.prototype._make_on_message_function = function (fig) {\n",
|
|
" return function socket_on_message(evt) {\n",
|
|
" if (evt.data instanceof Blob) {\n",
|
|
" /* FIXME: We get \"Resource interpreted as Image but\n",
|
|
" * transferred with MIME type text/plain:\" errors on\n",
|
|
" * Chrome. But how to set the MIME type? It doesn't seem\n",
|
|
" * to be part of the websocket stream */\n",
|
|
" evt.data.type = 'image/png';\n",
|
|
"\n",
|
|
" /* Free the memory for the previous frames */\n",
|
|
" if (fig.imageObj.src) {\n",
|
|
" (window.URL || window.webkitURL).revokeObjectURL(\n",
|
|
" fig.imageObj.src\n",
|
|
" );\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
|
|
" evt.data\n",
|
|
" );\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" } else if (\n",
|
|
" typeof evt.data === 'string' &&\n",
|
|
" evt.data.slice(0, 21) === 'data:image/png;base64'\n",
|
|
" ) {\n",
|
|
" fig.imageObj.src = evt.data;\n",
|
|
" fig.updated_canvas_event();\n",
|
|
" fig.waiting = false;\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var msg = JSON.parse(evt.data);\n",
|
|
" var msg_type = msg['type'];\n",
|
|
"\n",
|
|
" // Call the \"handle_{type}\" callback, which takes\n",
|
|
" // the figure and JSON message as its only arguments.\n",
|
|
" try {\n",
|
|
" var callback = fig['handle_' + msg_type];\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\n",
|
|
" \"No handler for the '\" + msg_type + \"' message type: \",\n",
|
|
" msg\n",
|
|
" );\n",
|
|
" return;\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (callback) {\n",
|
|
" try {\n",
|
|
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
|
|
" callback(fig, msg);\n",
|
|
" } catch (e) {\n",
|
|
" console.log(\n",
|
|
" \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
|
|
" e,\n",
|
|
" e.stack,\n",
|
|
" msg\n",
|
|
" );\n",
|
|
" }\n",
|
|
" }\n",
|
|
" };\n",
|
|
"};\n",
|
|
"\n",
|
|
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
|
|
"mpl.findpos = function (e) {\n",
|
|
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
|
|
" var targ;\n",
|
|
" if (!e) {\n",
|
|
" e = window.event;\n",
|
|
" }\n",
|
|
" if (e.target) {\n",
|
|
" targ = e.target;\n",
|
|
" } else if (e.srcElement) {\n",
|
|
" targ = e.srcElement;\n",
|
|
" }\n",
|
|
" if (targ.nodeType === 3) {\n",
|
|
" // defeat Safari bug\n",
|
|
" targ = targ.parentNode;\n",
|
|
" }\n",
|
|
"\n",
|
|
" // pageX,Y are the mouse positions relative to the document\n",
|
|
" var boundingRect = targ.getBoundingClientRect();\n",
|
|
" var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
|
|
" var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
|
|
"\n",
|
|
" return { x: x, y: y };\n",
|
|
"};\n",
|
|
"\n",
|
|
"/*\n",
|
|
" * return a copy of an object with only non-object keys\n",
|
|
" * we need this to avoid circular references\n",
|
|
" * http://stackoverflow.com/a/24161582/3208463\n",
|
|
" */\n",
|
|
"function simpleKeys(original) {\n",
|
|
" return Object.keys(original).reduce(function (obj, key) {\n",
|
|
" if (typeof original[key] !== 'object') {\n",
|
|
" obj[key] = original[key];\n",
|
|
" }\n",
|
|
" return obj;\n",
|
|
" }, {});\n",
|
|
"}\n",
|
|
"\n",
|
|
"mpl.figure.prototype.mouse_event = function (event, name) {\n",
|
|
" var canvas_pos = mpl.findpos(event);\n",
|
|
"\n",
|
|
" if (name === 'button_press') {\n",
|
|
" this.canvas.focus();\n",
|
|
" this.canvas_div.focus();\n",
|
|
" }\n",
|
|
"\n",
|
|
" var x = canvas_pos.x * this.ratio;\n",
|
|
" var y = canvas_pos.y * this.ratio;\n",
|
|
"\n",
|
|
" this.send_message(name, {\n",
|
|
" x: x,\n",
|
|
" y: y,\n",
|
|
" button: event.button,\n",
|
|
" step: event.step,\n",
|
|
" guiEvent: simpleKeys(event),\n",
|
|
" });\n",
|
|
"\n",
|
|
" /* This prevents the web browser from automatically changing to\n",
|
|
" * the text insertion cursor when the button is pressed. We want\n",
|
|
" * to control all of the cursor setting manually through the\n",
|
|
" * 'cursor' event from matplotlib */\n",
|
|
" event.preventDefault();\n",
|
|
" return false;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
|
|
" // Handle any extra behaviour associated with a key event\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.key_event = function (event, name) {\n",
|
|
" // Prevent repeat events\n",
|
|
" if (name === 'key_press') {\n",
|
|
" if (event.which === this._key) {\n",
|
|
" return;\n",
|
|
" } else {\n",
|
|
" this._key = event.which;\n",
|
|
" }\n",
|
|
" }\n",
|
|
" if (name === 'key_release') {\n",
|
|
" this._key = null;\n",
|
|
" }\n",
|
|
"\n",
|
|
" var value = '';\n",
|
|
" if (event.ctrlKey && event.which !== 17) {\n",
|
|
" value += 'ctrl+';\n",
|
|
" }\n",
|
|
" if (event.altKey && event.which !== 18) {\n",
|
|
" value += 'alt+';\n",
|
|
" }\n",
|
|
" if (event.shiftKey && event.which !== 16) {\n",
|
|
" value += 'shift+';\n",
|
|
" }\n",
|
|
"\n",
|
|
" value += 'k';\n",
|
|
" value += event.which.toString();\n",
|
|
"\n",
|
|
" this._key_event_extra(event, name);\n",
|
|
"\n",
|
|
" this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
|
|
" return false;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
|
|
" if (name === 'download') {\n",
|
|
" this.handle_save(this, null);\n",
|
|
" } else {\n",
|
|
" this.send_message('toolbar_button', { name: name });\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
|
|
" this.message.textContent = tooltip;\n",
|
|
"};\n",
|
|
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
|
|
"\n",
|
|
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
|
|
"\n",
|
|
"mpl.default_extension = \"png\";/* global mpl */\n",
|
|
"\n",
|
|
"var comm_websocket_adapter = function (comm) {\n",
|
|
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
|
|
" // object with the appropriate methods. Currently this is a non binary\n",
|
|
" // socket, so there is still some room for performance tuning.\n",
|
|
" var ws = {};\n",
|
|
"\n",
|
|
" ws.close = function () {\n",
|
|
" comm.close();\n",
|
|
" };\n",
|
|
" ws.send = function (m) {\n",
|
|
" //console.log('sending', m);\n",
|
|
" comm.send(m);\n",
|
|
" };\n",
|
|
" // Register the callback with on_msg.\n",
|
|
" comm.on_msg(function (msg) {\n",
|
|
" //console.log('receiving', msg['content']['data'], msg);\n",
|
|
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
|
|
" ws.onmessage(msg['content']['data']);\n",
|
|
" });\n",
|
|
" return ws;\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.mpl_figure_comm = function (comm, msg) {\n",
|
|
" // This is the function which gets called when the mpl process\n",
|
|
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
|
|
"\n",
|
|
" var id = msg.content.data.id;\n",
|
|
" // Get hold of the div created by the display call when the Comm\n",
|
|
" // socket was opened in Python.\n",
|
|
" var element = document.getElementById(id);\n",
|
|
" var ws_proxy = comm_websocket_adapter(comm);\n",
|
|
"\n",
|
|
" function ondownload(figure, _format) {\n",
|
|
" window.open(figure.canvas.toDataURL());\n",
|
|
" }\n",
|
|
"\n",
|
|
" var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
|
|
"\n",
|
|
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
|
|
" // web socket which is closed, not our websocket->open comm proxy.\n",
|
|
" ws_proxy.onopen();\n",
|
|
"\n",
|
|
" fig.parent_element = element;\n",
|
|
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
|
|
" if (!fig.cell_info) {\n",
|
|
" console.error('Failed to find cell for figure', id, fig);\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" fig.cell_info[0].output_area.element.one(\n",
|
|
" 'cleared',\n",
|
|
" { fig: fig },\n",
|
|
" fig._remove_fig_handler\n",
|
|
" );\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_close = function (fig, msg) {\n",
|
|
" var width = fig.canvas.width / fig.ratio;\n",
|
|
" fig.cell_info[0].output_area.element.off(\n",
|
|
" 'cleared',\n",
|
|
" fig._remove_fig_handler\n",
|
|
" );\n",
|
|
"\n",
|
|
" // Update the output cell to use the data from the current canvas.\n",
|
|
" fig.push_to_output();\n",
|
|
" var dataURL = fig.canvas.toDataURL();\n",
|
|
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
|
|
" // the notebook keyboard shortcuts fail.\n",
|
|
" IPython.keyboard_manager.enable();\n",
|
|
" fig.parent_element.innerHTML =\n",
|
|
" '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
|
|
" fig.close_ws(fig, msg);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.close_ws = function (fig, msg) {\n",
|
|
" fig.send_message('closing', msg);\n",
|
|
" // fig.ws.close()\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
|
|
" // Turn the data on the canvas into data in the output cell.\n",
|
|
" var width = this.canvas.width / this.ratio;\n",
|
|
" var dataURL = this.canvas.toDataURL();\n",
|
|
" this.cell_info[1]['text/html'] =\n",
|
|
" '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.updated_canvas_event = function () {\n",
|
|
" // Tell IPython that the notebook contents must change.\n",
|
|
" IPython.notebook.set_dirty(true);\n",
|
|
" this.send_message('ack', {});\n",
|
|
" var fig = this;\n",
|
|
" // Wait a second, then push the new image to the DOM so\n",
|
|
" // that it is saved nicely (might be nice to debounce this).\n",
|
|
" setTimeout(function () {\n",
|
|
" fig.push_to_output();\n",
|
|
" }, 1000);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._init_toolbar = function () {\n",
|
|
" var fig = this;\n",
|
|
"\n",
|
|
" var toolbar = document.createElement('div');\n",
|
|
" toolbar.classList = 'btn-toolbar';\n",
|
|
" this.root.appendChild(toolbar);\n",
|
|
"\n",
|
|
" function on_click_closure(name) {\n",
|
|
" return function (_event) {\n",
|
|
" return fig.toolbar_button_onclick(name);\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" function on_mouseover_closure(tooltip) {\n",
|
|
" return function (event) {\n",
|
|
" if (!event.currentTarget.disabled) {\n",
|
|
" return fig.toolbar_button_onmouseover(tooltip);\n",
|
|
" }\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" fig.buttons = {};\n",
|
|
" var buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'btn-group';\n",
|
|
" var button;\n",
|
|
" for (var toolbar_ind in mpl.toolbar_items) {\n",
|
|
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
|
|
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
|
|
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
|
|
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
|
|
"\n",
|
|
" if (!name) {\n",
|
|
" /* Instead of a spacer, we start a new button group. */\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
" buttonGroup = document.createElement('div');\n",
|
|
" buttonGroup.classList = 'btn-group';\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
"\n",
|
|
" button = fig.buttons[name] = document.createElement('button');\n",
|
|
" button.classList = 'btn btn-default';\n",
|
|
" button.href = '#';\n",
|
|
" button.title = name;\n",
|
|
" button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
|
|
" button.addEventListener('click', on_click_closure(method_name));\n",
|
|
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
|
|
" buttonGroup.appendChild(button);\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (buttonGroup.hasChildNodes()) {\n",
|
|
" toolbar.appendChild(buttonGroup);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Add the status bar.\n",
|
|
" var status_bar = document.createElement('span');\n",
|
|
" status_bar.classList = 'mpl-message pull-right';\n",
|
|
" toolbar.appendChild(status_bar);\n",
|
|
" this.message = status_bar;\n",
|
|
"\n",
|
|
" // Add the close button to the window.\n",
|
|
" var buttongrp = document.createElement('div');\n",
|
|
" buttongrp.classList = 'btn-group inline pull-right';\n",
|
|
" button = document.createElement('button');\n",
|
|
" button.classList = 'btn btn-mini btn-primary';\n",
|
|
" button.href = '#';\n",
|
|
" button.title = 'Stop Interaction';\n",
|
|
" button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
|
|
" button.addEventListener('click', function (_evt) {\n",
|
|
" fig.handle_close(fig, {});\n",
|
|
" });\n",
|
|
" button.addEventListener(\n",
|
|
" 'mouseover',\n",
|
|
" on_mouseover_closure('Stop Interaction')\n",
|
|
" );\n",
|
|
" buttongrp.appendChild(button);\n",
|
|
" var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
|
|
" titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._remove_fig_handler = function (event) {\n",
|
|
" var fig = event.data.fig;\n",
|
|
" fig.close_ws(fig, {});\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._root_extra_style = function (el) {\n",
|
|
" el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._canvas_extra_style = function (el) {\n",
|
|
" // this is important to make the div 'focusable\n",
|
|
" el.setAttribute('tabindex', 0);\n",
|
|
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
|
|
" // off when our div gets focus\n",
|
|
"\n",
|
|
" // location in version 3\n",
|
|
" if (IPython.notebook.keyboard_manager) {\n",
|
|
" IPython.notebook.keyboard_manager.register_events(el);\n",
|
|
" } else {\n",
|
|
" // location in version 2\n",
|
|
" IPython.keyboard_manager.register_events(el);\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
|
|
" var manager = IPython.notebook.keyboard_manager;\n",
|
|
" if (!manager) {\n",
|
|
" manager = IPython.keyboard_manager;\n",
|
|
" }\n",
|
|
"\n",
|
|
" // Check for shift+enter\n",
|
|
" if (event.shiftKey && event.which === 13) {\n",
|
|
" this.canvas_div.blur();\n",
|
|
" // select the cell after this one\n",
|
|
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
|
|
" IPython.notebook.select(index + 1);\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
|
|
" fig.ondownload(fig, null);\n",
|
|
"};\n",
|
|
"\n",
|
|
"mpl.find_output_cell = function (html_output) {\n",
|
|
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
|
|
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
|
|
" // IPython event is triggered only after the cells have been serialised, which for\n",
|
|
" // our purposes (turning an active figure into a static one), is too late.\n",
|
|
" var cells = IPython.notebook.get_cells();\n",
|
|
" var ncells = cells.length;\n",
|
|
" for (var i = 0; i < ncells; i++) {\n",
|
|
" var cell = cells[i];\n",
|
|
" if (cell.cell_type === 'code') {\n",
|
|
" for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
|
|
" var data = cell.output_area.outputs[j];\n",
|
|
" if (data.data) {\n",
|
|
" // IPython >= 3 moved mimebundle to data attribute of output\n",
|
|
" data = data.data;\n",
|
|
" }\n",
|
|
" if (data['text/html'] === html_output) {\n",
|
|
" return [cell, data, j];\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
"};\n",
|
|
"\n",
|
|
"// Register the function which deals with the matplotlib target/channel.\n",
|
|
"// The kernel may be null if the page has been refreshed.\n",
|
|
"if (IPython.notebook.kernel !== null) {\n",
|
|
" IPython.notebook.kernel.comm_manager.register_target(\n",
|
|
" 'matplotlib',\n",
|
|
" mpl.mpl_figure_comm\n",
|
|
" );\n",
|
|
"}\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nOzdd3gUxf8H8Dl6lQ4CoSoiSBNRQUEUENSfiDRBBCIqGhAJBESQkthAQVFQsdIsQfgSUFASaUFFRZEqRFAhKhApQUggtOTy/v3xYbN3yfW9u73k3q/nuUdyO7s7l4yZd3Z3ZhSIiIiIKKwosytARERERMHFAEhEREQUZhgAiYiIiMIMAyARERFRmGEAJCIiIgozDIBEREREYYYBkIiIiCjMMAASERERhRkGQCIiIqIwwwBIREREFGYYAImIiIjCDAMgERERUZhhACQiIiIKMwyARERERGGGAZCIiIgozDAAEhEREYUZBkAiIiKiMMMASERERBRmGACJiIiIwgwDIBEREVGYYQAkIiIiCjMMgERERERhhgGQiIiIKMwwABIRERGFGQZAIiIiojDDAEhEREQUZhgAiYiIiMIMAyARERFRmGEAJCIiIgozDIBEREREYYYBkIiIiCjMMAASERERhRkGQCIiIqIwwwBIREREFGYYAImIiIjCDAMgERERUZhhACQiIiIKMwyARERERGGGAZCIiIgozDAAEhEREYUZBkAiIiKiMMMASERERBRmGACJiIiIwgwDIBEREVGYYQAkIiIiCjMMgERERERhhgGQiIiIKMwwABIRERGFGQZAIiIiojDDAEhEREQUZhgAiYiIiMIMAyARERFRmGEAJCIiIgozDIBEREREYYYBkIiIiCjMMAASERERhRkGQAOsVisOHTqE06dPIyMjgy+++OKLL774KgSv06dP49ChQ7BarWZHCdMwABpw6NAhKKX44osvvvjii69C+Dp06JDZUcI0DIAGnD59Oq8Bmf3XDF988cUXX3zx5dlLu4Bz+vRps6OEaRgADcjIyIBSChkZGWZXhYiIiDzE/psB0BA2ICIiosKH/TcDoCFsQERERIUP+28GQEPYgIiIiAof9t8MgIawARERERU+7L8ZAA1hAyIiIip82H8zABrCBkRERFT4sP9mADSEDYiIiKjwYf/NAGgIGxAREVHhw/6bAdAQNiAiIqLCh/03A6AhbEBERESFD/tvBkBD2ICIiIgKH/bfDICGsAEREREVPuy/GQANYQMiInItx5qD5NRkrF0ci4NjH0bOhfNmV4mI/TcYAA1hAyIici4hJQERsyOg4hSg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\" width=\"640\">"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.figure()\n",
|
|
"plt.plot(filtered_EDA, color='red')\n",
|
|
"plt.scatter(peaks, filtered_EDA[peaks], color=\"green\")\n",
|
|
"plt.scatter(peak_starts, filtered_EDA[peak_starts], color=\"green\", marker=\">\", alpha=0.5)\n",
|
|
"plt.scatter(peak_ends, filtered_EDA[peak_ends], color=\"green\", marker=\"s\", alpha=0.5)\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Features, related to the peaks, are then calculated.\n",
|
|
"These include the number and rate (peaks per second) of the peaks, as well as the average and maximum of their characteristics (duration, increase and decrease time etc.)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"avgPeakAmplitudeChangeAfter 0.564829\n",
|
|
"avgPeakAmplitudeChangeBefore 0.000000\n",
|
|
"avgPeakChangeRatio 0.096774\n",
|
|
"avgPeakDecreaseTime 2.818182\n",
|
|
"avgPeakDuration 49.454545\n",
|
|
"avgPeakIncreaseTime 0.272727\n",
|
|
"maxPeakAmplitudeChangeAfter 1.660329\n",
|
|
"maxPeakAmplitudeChangeBefore 1.400329\n",
|
|
"maxPeakChangeRatio 0.259259\n",
|
|
"maxPeakDecreaseTime 6.750000\n",
|
|
"maxPeakDuration 8.500000\n",
|
|
"maxPeakIncreaseTime 1.750000\n",
|
|
"maxPeakResponseSlopeAfter -0.065041\n",
|
|
"maxPeakResponseSlopeBefore 0.233815\n",
|
|
"numPeaks 11.000000\n",
|
|
"powerPeaks 3.643448\n",
|
|
"ratePeaks 0.091667\n",
|
|
"Name: 131, dtype: float64\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(df_EDA.loc[no_interest, df_EDA.columns.str.contains('Peak')])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100%|██████████| 239/239 [01:04<00:00, 3.69it/s]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"calculatedFeatures_EDA = calculateFeatures(eda_data_2D, fs=int(sampleRate_EDA), featureNames=gsrFeatureNames)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|