Spaces:
Runtime error
Runtime error
move-model-file
#1
by EmmanuelMacaulay - opened
- .gitattributes +0 -1
- .gitignore +2 -0
- data/norm_params.json +0 -2807
- har_cnn.keras +0 -3
- src/model_def.py +3 -90
- src/phyphox_app_block.py +0 -260
- src/phyphox_pipeline.py +0 -514
- src/streamlit_app.py +94 -88
.gitattributes
CHANGED
|
@@ -34,4 +34,3 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
.DS_Store
|
| 37 |
-
har_cnn.keras filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
.DS_Store
|
|
|
.gitignore
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
|
|
|
|
|
| 1 |
__pycache__/
|
| 2 |
.DS_Store
|
|
|
|
| 1 |
+
model.keras
|
| 2 |
+
*.keras
|
| 3 |
__pycache__/
|
| 4 |
.DS_Store
|
data/norm_params.json
DELETED
|
@@ -1,2807 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"0": {
|
| 3 |
-
"name": "tBodyAcc-mean()-X",
|
| 4 |
-
"min": -0.26328375721874997,
|
| 5 |
-
"max": 0.14887772203125
|
| 6 |
-
},
|
| 7 |
-
"1": {
|
| 8 |
-
"name": "tBodyAcc-mean()-Y",
|
| 9 |
-
"min": -0.51552368046875,
|
| 10 |
-
"max": 0.5335020421875001
|
| 11 |
-
},
|
| 12 |
-
"2": {
|
| 13 |
-
"name": "tBodyAcc-mean()-Z",
|
| 14 |
-
"min": -0.2945620638046875,
|
| 15 |
-
"max": 0.36611885703125
|
| 16 |
-
},
|
| 17 |
-
"3": {
|
| 18 |
-
"name": "tBodyAcc-std()-X",
|
| 19 |
-
"min": 0.0014130360727270753,
|
| 20 |
-
"max": 0.6486752398611967
|
| 21 |
-
},
|
| 22 |
-
"4": {
|
| 23 |
-
"name": "tBodyAcc-std()-Y",
|
| 24 |
-
"min": 0.0017484061445967643,
|
| 25 |
-
"max": 0.32779607930200255
|
| 26 |
-
},
|
| 27 |
-
"5": {
|
| 28 |
-
"name": "tBodyAcc-std()-Z",
|
| 29 |
-
"min": 0.0030140865219084917,
|
| 30 |
-
"max": 0.361280316931005
|
| 31 |
-
},
|
| 32 |
-
"6": {
|
| 33 |
-
"name": "tBodyAcc-mad()-X",
|
| 34 |
-
"min": 0.0007622752,
|
| 35 |
-
"max": 0.4913942
|
| 36 |
-
},
|
| 37 |
-
"7": {
|
| 38 |
-
"name": "tBodyAcc-mad()-Y",
|
| 39 |
-
"min": 0.00075304705,
|
| 40 |
-
"max": 0.2845459
|
| 41 |
-
},
|
| 42 |
-
"8": {
|
| 43 |
-
"name": "tBodyAcc-mad()-Z",
|
| 44 |
-
"min": 0.0017515994999999997,
|
| 45 |
-
"max": 0.2565268
|
| 46 |
-
},
|
| 47 |
-
"9": {
|
| 48 |
-
"name": "tBodyAcc-max()-X",
|
| 49 |
-
"min": -0.03268312,
|
| 50 |
-
"max": 1.299912
|
| 51 |
-
},
|
| 52 |
-
"10": {
|
| 53 |
-
"name": "tBodyAcc-max()-Y",
|
| 54 |
-
"min": -0.2556468,
|
| 55 |
-
"max": 0.9759764
|
| 56 |
-
},
|
| 57 |
-
"11": {
|
| 58 |
-
"name": "tBodyAcc-max()-Z",
|
| 59 |
-
"min": -0.09262088,
|
| 60 |
-
"max": 1.066916
|
| 61 |
-
},
|
| 62 |
-
"12": {
|
| 63 |
-
"name": "tBodyAcc-min()-X",
|
| 64 |
-
"min": -1.232238,
|
| 65 |
-
"max": 0.0931572
|
| 66 |
-
},
|
| 67 |
-
"13": {
|
| 68 |
-
"name": "tBodyAcc-min()-Y",
|
| 69 |
-
"min": -1.345267,
|
| 70 |
-
"max": 0.2357287
|
| 71 |
-
},
|
| 72 |
-
"14": {
|
| 73 |
-
"name": "tBodyAcc-min()-Z",
|
| 74 |
-
"min": -1.364707,
|
| 75 |
-
"max": 0.1033281
|
| 76 |
-
},
|
| 77 |
-
"15": {
|
| 78 |
-
"name": "tBodyAcc-sma()",
|
| 79 |
-
"min": 0.006008519311421875,
|
| 80 |
-
"max": 1.0142895522164062
|
| 81 |
-
},
|
| 82 |
-
"16": {
|
| 83 |
-
"name": "tBodyAcc-energy()-X",
|
| 84 |
-
"min": 2.119730400936263e-06,
|
| 85 |
-
"max": 0.42191341785731845
|
| 86 |
-
},
|
| 87 |
-
"17": {
|
| 88 |
-
"name": "tBodyAcc-energy()-Y",
|
| 89 |
-
"min": 3.202494110011995e-06,
|
| 90 |
-
"max": 0.30543704882344747
|
| 91 |
-
},
|
| 92 |
-
"18": {
|
| 93 |
-
"name": "tBodyAcc-energy()-Z",
|
| 94 |
-
"min": 9.685525503281969e-06,
|
| 95 |
-
"max": 0.14802888465653852
|
| 96 |
-
},
|
| 97 |
-
"19": {
|
| 98 |
-
"name": "tBodyAcc-iqr()-X",
|
| 99 |
-
"min": 0.0015028268,
|
| 100 |
-
"max": 1.1469399249999999
|
| 101 |
-
},
|
| 102 |
-
"20": {
|
| 103 |
-
"name": "tBodyAcc-iqr()-Y",
|
| 104 |
-
"min": 0.0016611282,
|
| 105 |
-
"max": 0.5951065242499999
|
| 106 |
-
},
|
| 107 |
-
"21": {
|
| 108 |
-
"name": "tBodyAcc-iqr()-Z",
|
| 109 |
-
"min": 0.00355178375,
|
| 110 |
-
"max": 0.490158875
|
| 111 |
-
},
|
| 112 |
-
"22": {
|
| 113 |
-
"name": "tBodyAcc-entropy()-X",
|
| 114 |
-
"min": 3.7216257856553203,
|
| 115 |
-
"max": 4.840268802919563
|
| 116 |
-
},
|
| 117 |
-
"23": {
|
| 118 |
-
"name": "tBodyAcc-entropy()-Y",
|
| 119 |
-
"min": 3.6298565656953534,
|
| 120 |
-
"max": 4.8355848412115945
|
| 121 |
-
},
|
| 122 |
-
"24": {
|
| 123 |
-
"name": "tBodyAcc-entropy()-Z",
|
| 124 |
-
"min": 3.8145793878806193,
|
| 125 |
-
"max": 4.8419277434672185
|
| 126 |
-
},
|
| 127 |
-
"25": {
|
| 128 |
-
"name": "tBodyAcc-arCoeff()-X,1",
|
| 129 |
-
"min": -3.993485622860005,
|
| 130 |
-
"max": -0.3394885347301381
|
| 131 |
-
},
|
| 132 |
-
"26": {
|
| 133 |
-
"name": "tBodyAcc-arCoeff()-X,2",
|
| 134 |
-
"min": 0.31649056458097735,
|
| 135 |
-
"max": 5.986018636485488
|
| 136 |
-
},
|
| 137 |
-
"27": {
|
| 138 |
-
"name": "tBodyAcc-arCoeff()-X,3",
|
| 139 |
-
"min": -3.991569852380895,
|
| 140 |
-
"max": -0.2701889871512978
|
| 141 |
-
},
|
| 142 |
-
"28": {
|
| 143 |
-
"name": "tBodyAcc-arCoeff()-X,4",
|
| 144 |
-
"min": 0.20912282817914155,
|
| 145 |
-
"max": 0.9990403448501645
|
| 146 |
-
},
|
| 147 |
-
"29": {
|
| 148 |
-
"name": "tBodyAcc-arCoeff()-Y,1",
|
| 149 |
-
"min": -3.995020949658737,
|
| 150 |
-
"max": -1.1410620277909262
|
| 151 |
-
},
|
| 152 |
-
"30": {
|
| 153 |
-
"name": "tBodyAcc-arCoeff()-Y,2",
|
| 154 |
-
"min": 1.2319710058230748,
|
| 155 |
-
"max": 5.989246476027023
|
| 156 |
-
},
|
| 157 |
-
"31": {
|
| 158 |
-
"name": "tBodyAcc-arCoeff()-Y,3",
|
| 159 |
-
"min": -3.9934240253358753,
|
| 160 |
-
"max": -0.8615864222697873
|
| 161 |
-
},
|
| 162 |
-
"32": {
|
| 163 |
-
"name": "tBodyAcc-arCoeff()-Y,4",
|
| 164 |
-
"min": 0.4102282450773689,
|
| 165 |
-
"max": 0.9992004313678645
|
| 166 |
-
},
|
| 167 |
-
"33": {
|
| 168 |
-
"name": "tBodyAcc-arCoeff()-Z,1",
|
| 169 |
-
"min": -3.9930481774187205,
|
| 170 |
-
"max": -1.1624118930088911
|
| 171 |
-
},
|
| 172 |
-
"34": {
|
| 173 |
-
"name": "tBodyAcc-arCoeff()-Z,2",
|
| 174 |
-
"min": 1.2063447595003167,
|
| 175 |
-
"max": 5.985102379631272
|
| 176 |
-
},
|
| 177 |
-
"35": {
|
| 178 |
-
"name": "tBodyAcc-arCoeff()-Z,3",
|
| 179 |
-
"min": -3.9910483595252626,
|
| 180 |
-
"max": -0.9242658262195567
|
| 181 |
-
},
|
| 182 |
-
"36": {
|
| 183 |
-
"name": "tBodyAcc-arCoeff()-Z,4",
|
| 184 |
-
"min": 0.4786925494143609,
|
| 185 |
-
"max": 0.998998103868109
|
| 186 |
-
},
|
| 187 |
-
"37": {
|
| 188 |
-
"name": "tBodyAcc-correlation()-X,Y",
|
| 189 |
-
"min": -0.9899168729927267,
|
| 190 |
-
"max": 0.9934255399246379
|
| 191 |
-
},
|
| 192 |
-
"38": {
|
| 193 |
-
"name": "tBodyAcc-correlation()-X,Z",
|
| 194 |
-
"min": -0.993908428951397,
|
| 195 |
-
"max": 0.9951540664616219
|
| 196 |
-
},
|
| 197 |
-
"39": {
|
| 198 |
-
"name": "tBodyAcc-correlation()-Y,Z",
|
| 199 |
-
"min": -0.9692581007123172,
|
| 200 |
-
"max": 0.9956962839779167
|
| 201 |
-
},
|
| 202 |
-
"40": {
|
| 203 |
-
"name": "tGravityAcc-mean()-X",
|
| 204 |
-
"min": -0.371501310515625,
|
| 205 |
-
"max": 1.0369460061578126
|
| 206 |
-
},
|
| 207 |
-
"41": {
|
| 208 |
-
"name": "tGravityAcc-mean()-Y",
|
| 209 |
-
"min": -0.5164919773225782,
|
| 210 |
-
"max": 1.0167949543984374
|
| 211 |
-
},
|
| 212 |
-
"42": {
|
| 213 |
-
"name": "tGravityAcc-mean()-Z",
|
| 214 |
-
"min": -0.9882489759494532,
|
| 215 |
-
"max": 0.9772000942300001
|
| 216 |
-
},
|
| 217 |
-
"43": {
|
| 218 |
-
"name": "tGravityAcc-std()-X",
|
| 219 |
-
"min": 3.060002014324046e-05,
|
| 220 |
-
"max": 0.3130987538523641
|
| 221 |
-
},
|
| 222 |
-
"44": {
|
| 223 |
-
"name": "tGravityAcc-std()-Y",
|
| 224 |
-
"min": 6.003551975513042e-05,
|
| 225 |
-
"max": 0.3776578143048425
|
| 226 |
-
},
|
| 227 |
-
"45": {
|
| 228 |
-
"name": "tGravityAcc-std()-Z",
|
| 229 |
-
"min": 6.533989564774268e-05,
|
| 230 |
-
"max": 0.29410472753228395
|
| 231 |
-
},
|
| 232 |
-
"46": {
|
| 233 |
-
"name": "tGravityAcc-mad()-X",
|
| 234 |
-
"min": 1.7369749999995854e-05,
|
| 235 |
-
"max": 0.24027378
|
| 236 |
-
},
|
| 237 |
-
"47": {
|
| 238 |
-
"name": "tGravityAcc-mad()-Y",
|
| 239 |
-
"min": 1.93661500000053e-05,
|
| 240 |
-
"max": 0.3295304
|
| 241 |
-
},
|
| 242 |
-
"48": {
|
| 243 |
-
"name": "tGravityAcc-mad()-Z",
|
| 244 |
-
"min": 3.8968600000022224e-05,
|
| 245 |
-
"max": 0.2670156
|
| 246 |
-
},
|
| 247 |
-
"49": {
|
| 248 |
-
"name": "tGravityAcc-max()-X",
|
| 249 |
-
"min": -0.32487018100000004,
|
| 250 |
-
"max": 1.0962998499999999
|
| 251 |
-
},
|
| 252 |
-
"50": {
|
| 253 |
-
"name": "tGravityAcc-max()-Y",
|
| 254 |
-
"min": -0.460470783,
|
| 255 |
-
"max": 1.03974953
|
| 256 |
-
},
|
| 257 |
-
"51": {
|
| 258 |
-
"name": "tGravityAcc-max()-Z",
|
| 259 |
-
"min": -0.9872988607,
|
| 260 |
-
"max": 0.99061575
|
| 261 |
-
},
|
| 262 |
-
"52": {
|
| 263 |
-
"name": "tGravityAcc-min()-X",
|
| 264 |
-
"min": -0.4171418,
|
| 265 |
-
"max": 1.0289508
|
| 266 |
-
},
|
| 267 |
-
"53": {
|
| 268 |
-
"name": "tGravityAcc-min()-Y",
|
| 269 |
-
"min": -0.58493626,
|
| 270 |
-
"max": 1.0044006570000001
|
| 271 |
-
},
|
| 272 |
-
"54": {
|
| 273 |
-
"name": "tGravityAcc-min()-Z",
|
| 274 |
-
"min": -0.991391457,
|
| 275 |
-
"max": 0.975067418
|
| 276 |
-
},
|
| 277 |
-
"55": {
|
| 278 |
-
"name": "tGravityAcc-sma()",
|
| 279 |
-
"min": 1.0177961049515625,
|
| 280 |
-
"max": 1.7533490645414063
|
| 281 |
-
},
|
| 282 |
-
"56": {
|
| 283 |
-
"name": "tGravityAcc-energy()-X",
|
| 284 |
-
"min": 3.370129847819226e-07,
|
| 285 |
-
"max": 1.0759641995980522
|
| 286 |
-
},
|
| 287 |
-
"57": {
|
| 288 |
-
"name": "tGravityAcc-energy()-Y",
|
| 289 |
-
"min": 6.293435010833708e-07,
|
| 290 |
-
"max": 1.0341274035640655
|
| 291 |
-
},
|
| 292 |
-
"58": {
|
| 293 |
-
"name": "tGravityAcc-energy()-Z",
|
| 294 |
-
"min": 9.037239560199109e-07,
|
| 295 |
-
"max": 0.9766369442673355
|
| 296 |
-
},
|
| 297 |
-
"59": {
|
| 298 |
-
"name": "tGravityAcc-iqr()-X",
|
| 299 |
-
"min": 4.104815000016693e-05,
|
| 300 |
-
"max": 0.5521512974999999
|
| 301 |
-
},
|
| 302 |
-
"60": {
|
| 303 |
-
"name": "tGravityAcc-iqr()-Y",
|
| 304 |
-
"min": 5.7063725000000565e-05,
|
| 305 |
-
"max": 0.6839043250000001
|
| 306 |
-
},
|
| 307 |
-
"61": {
|
| 308 |
-
"name": "tGravityAcc-iqr()-Z",
|
| 309 |
-
"min": 8.918567499999197e-05,
|
| 310 |
-
"max": 0.53238375
|
| 311 |
-
},
|
| 312 |
-
"62": {
|
| 313 |
-
"name": "tGravityAcc-entropy()-X",
|
| 314 |
-
"min": 4.095769562775941,
|
| 315 |
-
"max": 4.8520302634661325
|
| 316 |
-
},
|
| 317 |
-
"63": {
|
| 318 |
-
"name": "tGravityAcc-entropy()-Y",
|
| 319 |
-
"min": 4.1189823350554855,
|
| 320 |
-
"max": 4.852030261789325
|
| 321 |
-
},
|
| 322 |
-
"64": {
|
| 323 |
-
"name": "tGravityAcc-entropy()-Z",
|
| 324 |
-
"min": 3.9104714368797984,
|
| 325 |
-
"max": 4.852030261000339
|
| 326 |
-
},
|
| 327 |
-
"65": {
|
| 328 |
-
"name": "tGravityAcc-arCoeff()-X,1",
|
| 329 |
-
"min": -3.997517509197459,
|
| 330 |
-
"max": -2.6786762479677377
|
| 331 |
-
},
|
| 332 |
-
"66": {
|
| 333 |
-
"name": "tGravityAcc-arCoeff()-X,2",
|
| 334 |
-
"min": 2.22240127863673,
|
| 335 |
-
"max": 5.994528870294291
|
| 336 |
-
},
|
| 337 |
-
"67": {
|
| 338 |
-
"name": "tGravityAcc-arCoeff()-X,3",
|
| 339 |
-
"min": -3.996503668194519,
|
| 340 |
-
"max": -0.40658829951531256
|
| 341 |
-
},
|
| 342 |
-
"68": {
|
| 343 |
-
"name": "tGravityAcc-arCoeff()-X,4",
|
| 344 |
-
"min": -0.13700578688020462,
|
| 345 |
-
"max": 0.9995130586163395
|
| 346 |
-
},
|
| 347 |
-
"69": {
|
| 348 |
-
"name": "tGravityAcc-arCoeff()-Y,1",
|
| 349 |
-
"min": -3.9975754065094593,
|
| 350 |
-
"max": -2.75151515689737
|
| 351 |
-
},
|
| 352 |
-
"70": {
|
| 353 |
-
"name": "tGravityAcc-arCoeff()-Y,2",
|
| 354 |
-
"min": 2.3993039546282047,
|
| 355 |
-
"max": 5.994640274808031
|
| 356 |
-
},
|
| 357 |
-
"71": {
|
| 358 |
-
"name": "tGravityAcc-arCoeff()-Y,3",
|
| 359 |
-
"min": -3.9966558041429368,
|
| 360 |
-
"max": -0.5410452033342692
|
| 361 |
-
},
|
| 362 |
-
"72": {
|
| 363 |
-
"name": "tGravityAcc-arCoeff()-Y,4",
|
| 364 |
-
"min": -0.10659177470350766,
|
| 365 |
-
"max": 0.999570254289037
|
| 366 |
-
},
|
| 367 |
-
"73": {
|
| 368 |
-
"name": "tGravityAcc-arCoeff()-Z,1",
|
| 369 |
-
"min": -3.9975252063090396,
|
| 370 |
-
"max": -2.9540628399692226
|
| 371 |
-
},
|
| 372 |
-
"74": {
|
| 373 |
-
"name": "tGravityAcc-arCoeff()-Z,2",
|
| 374 |
-
"min": 2.9023066376296422,
|
| 375 |
-
"max": 5.994560751158174
|
| 376 |
-
},
|
| 377 |
-
"75": {
|
| 378 |
-
"name": "tGravityAcc-arCoeff()-Z,3",
|
| 379 |
-
"min": -3.9965443504768046,
|
| 380 |
-
"max": -0.9404635774112333
|
| 381 |
-
},
|
| 382 |
-
"76": {
|
| 383 |
-
"name": "tGravityAcc-arCoeff()-Z,4",
|
| 384 |
-
"min": -0.007746887156580264,
|
| 385 |
-
"max": 0.9995092485555561
|
| 386 |
-
},
|
| 387 |
-
"77": {
|
| 388 |
-
"name": "tGravityAcc-correlation()-X,Y",
|
| 389 |
-
"min": -0.9998796586301408,
|
| 390 |
-
"max": 0.9999334236237624
|
| 391 |
-
},
|
| 392 |
-
"78": {
|
| 393 |
-
"name": "tGravityAcc-correlation()-X,Z",
|
| 394 |
-
"min": -0.9998012062235743,
|
| 395 |
-
"max": 0.9999633759168632
|
| 396 |
-
},
|
| 397 |
-
"79": {
|
| 398 |
-
"name": "tGravityAcc-correlation()-Y,Z",
|
| 399 |
-
"min": -0.9999470944838733,
|
| 400 |
-
"max": 0.9999465778808375
|
| 401 |
-
},
|
| 402 |
-
"80": {
|
| 403 |
-
"name": "tBodyAccJerk-mean()-X",
|
| 404 |
-
"min": -0.664351102362205,
|
| 405 |
-
"max": 0.5905879133858268
|
| 406 |
-
},
|
| 407 |
-
"81": {
|
| 408 |
-
"name": "tBodyAccJerk-mean()-Y",
|
| 409 |
-
"min": -0.42587149606299196,
|
| 410 |
-
"max": 0.37388566929133865
|
| 411 |
-
},
|
| 412 |
-
"82": {
|
| 413 |
-
"name": "tBodyAccJerk-mean()-Z",
|
| 414 |
-
"min": -0.4020321653543307,
|
| 415 |
-
"max": 0.36802818897637796
|
| 416 |
-
},
|
| 417 |
-
"83": {
|
| 418 |
-
"name": "tBodyAccJerk-std()-X",
|
| 419 |
-
"min": 0.051917231930881096,
|
| 420 |
-
"max": 15.10910846593158
|
| 421 |
-
},
|
| 422 |
-
"84": {
|
| 423 |
-
"name": "tBodyAccJerk-std()-Y",
|
| 424 |
-
"min": 0.04991529510131894,
|
| 425 |
-
"max": 9.566204872175952
|
| 426 |
-
},
|
| 427 |
-
"85": {
|
| 428 |
-
"name": "tBodyAccJerk-std()-Z",
|
| 429 |
-
"min": 0.1012348175672919,
|
| 430 |
-
"max": 13.67553489076389
|
| 431 |
-
},
|
| 432 |
-
"86": {
|
| 433 |
-
"name": "tBodyAccJerk-mad()-X",
|
| 434 |
-
"min": 0.029742779999999986,
|
| 435 |
-
"max": 8.679515500000004
|
| 436 |
-
},
|
| 437 |
-
"87": {
|
| 438 |
-
"name": "tBodyAccJerk-mad()-Y",
|
| 439 |
-
"min": 0.02713259000000001,
|
| 440 |
-
"max": 6.16240595
|
| 441 |
-
},
|
| 442 |
-
"88": {
|
| 443 |
-
"name": "tBodyAccJerk-mad()-Z",
|
| 444 |
-
"min": 0.05727944499999998,
|
| 445 |
-
"max": 6.829492
|
| 446 |
-
},
|
| 447 |
-
"89": {
|
| 448 |
-
"name": "tBodyAccJerk-max()-X",
|
| 449 |
-
"min": 0.12742757,
|
| 450 |
-
"max": 50.12208999999999
|
| 451 |
-
},
|
| 452 |
-
"90": {
|
| 453 |
-
"name": "tBodyAccJerk-max()-Y",
|
| 454 |
-
"min": 0.13674969,
|
| 455 |
-
"max": 40.250945
|
| 456 |
-
},
|
| 457 |
-
"91": {
|
| 458 |
-
"name": "tBodyAccJerk-max()-Z",
|
| 459 |
-
"min": 0.21645255000000002,
|
| 460 |
-
"max": 55.524165
|
| 461 |
-
},
|
| 462 |
-
"92": {
|
| 463 |
-
"name": "tBodyAccJerk-min()-X",
|
| 464 |
-
"min": -45.141071,
|
| 465 |
-
"max": -0.109377335
|
| 466 |
-
},
|
| 467 |
-
"93": {
|
| 468 |
-
"name": "tBodyAccJerk-min()-Y",
|
| 469 |
-
"min": -36.389145,
|
| 470 |
-
"max": -0.1361658
|
| 471 |
-
},
|
| 472 |
-
"94": {
|
| 473 |
-
"name": "tBodyAccJerk-min()-Z",
|
| 474 |
-
"min": -41.313185000000004,
|
| 475 |
-
"max": -0.21453255000000002
|
| 476 |
-
},
|
| 477 |
-
"95": {
|
| 478 |
-
"name": "tBodyAccJerk-sma()",
|
| 479 |
-
"min": 0.186100263023622,
|
| 480 |
-
"max": 26.449461048031495
|
| 481 |
-
},
|
| 482 |
-
"96": {
|
| 483 |
-
"name": "tBodyAccJerk-energy()-X",
|
| 484 |
-
"min": 0.0026965126167414794,
|
| 485 |
-
"max": 228.72652102249518
|
| 486 |
-
},
|
| 487 |
-
"97": {
|
| 488 |
-
"name": "tBodyAccJerk-energy()-Y",
|
| 489 |
-
"min": 0.0024915477203061066,
|
| 490 |
-
"max": 91.51388175389465
|
| 491 |
-
},
|
| 492 |
-
"98": {
|
| 493 |
-
"name": "tBodyAccJerk-energy()-Z",
|
| 494 |
-
"min": 0.010251549360765702,
|
| 495 |
-
"max": 187.0202573289124
|
| 496 |
-
},
|
| 497 |
-
"99": {
|
| 498 |
-
"name": "tBodyAccJerk-iqr()-X",
|
| 499 |
-
"min": 0.0598230815,
|
| 500 |
-
"max": 15.417539999999999
|
| 501 |
-
},
|
| 502 |
-
"100": {
|
| 503 |
-
"name": "tBodyAccJerk-iqr()-Y",
|
| 504 |
-
"min": 0.04945395000000001,
|
| 505 |
-
"max": 12.676634
|
| 506 |
-
},
|
| 507 |
-
"101": {
|
| 508 |
-
"name": "tBodyAccJerk-iqr()-Z",
|
| 509 |
-
"min": 0.11869906499999995,
|
| 510 |
-
"max": 13.52269725
|
| 511 |
-
},
|
| 512 |
-
"102": {
|
| 513 |
-
"name": "tBodyAccJerk-entropy()-X",
|
| 514 |
-
"min": 3.292845009401012,
|
| 515 |
-
"max": 4.665878660682823
|
| 516 |
-
},
|
| 517 |
-
"103": {
|
| 518 |
-
"name": "tBodyAccJerk-entropy()-Y",
|
| 519 |
-
"min": 3.66717574028378,
|
| 520 |
-
"max": 4.646608162452824
|
| 521 |
-
},
|
| 522 |
-
"104": {
|
| 523 |
-
"name": "tBodyAccJerk-entropy()-Z",
|
| 524 |
-
"min": 3.6879037834153934,
|
| 525 |
-
"max": 4.643337385461986
|
| 526 |
-
},
|
| 527 |
-
"105": {
|
| 528 |
-
"name": "tBodyAccJerk-arCoeff()-X,1",
|
| 529 |
-
"min": -2.932098690050769,
|
| 530 |
-
"max": 0.09845930281333523
|
| 531 |
-
},
|
| 532 |
-
"106": {
|
| 533 |
-
"name": "tBodyAccJerk-arCoeff()-X,2",
|
| 534 |
-
"min": -0.12382582818226293,
|
| 535 |
-
"max": 3.8896958808200353
|
| 536 |
-
},
|
| 537 |
-
"107": {
|
| 538 |
-
"name": "tBodyAccJerk-arCoeff()-X,3",
|
| 539 |
-
"min": -2.702881732259516,
|
| 540 |
-
"max": 0.26119719312840634
|
| 541 |
-
},
|
| 542 |
-
"108": {
|
| 543 |
-
"name": "tBodyAccJerk-arCoeff()-X,4",
|
| 544 |
-
"min": -0.3682595025337308,
|
| 545 |
-
"max": 0.8359972917691323
|
| 546 |
-
},
|
| 547 |
-
"109": {
|
| 548 |
-
"name": "tBodyAccJerk-arCoeff()-Y,1",
|
| 549 |
-
"min": -3.116988805297518,
|
| 550 |
-
"max": 0.13927924904101033
|
| 551 |
-
},
|
| 552 |
-
"110": {
|
| 553 |
-
"name": "tBodyAccJerk-arCoeff()-Y,2",
|
| 554 |
-
"min": -0.1484686109127366,
|
| 555 |
-
"max": 4.229391357049273
|
| 556 |
-
},
|
| 557 |
-
"111": {
|
| 558 |
-
"name": "tBodyAccJerk-arCoeff()-Y,3",
|
| 559 |
-
"min": -2.913943692512708,
|
| 560 |
-
"max": 0.6497990285692828
|
| 561 |
-
},
|
| 562 |
-
"112": {
|
| 563 |
-
"name": "tBodyAccJerk-arCoeff()-Y,4",
|
| 564 |
-
"min": -0.5921850640839303,
|
| 565 |
-
"max": 0.8648162148511046
|
| 566 |
-
},
|
| 567 |
-
"113": {
|
| 568 |
-
"name": "tBodyAccJerk-arCoeff()-Z,1",
|
| 569 |
-
"min": -2.513797379360826,
|
| 570 |
-
"max": -0.057460899808418134
|
| 571 |
-
},
|
| 572 |
-
"114": {
|
| 573 |
-
"name": "tBodyAccJerk-arCoeff()-Z,2",
|
| 574 |
-
"min": -0.06456727499600057,
|
| 575 |
-
"max": 3.1619288127612863
|
| 576 |
-
},
|
| 577 |
-
"115": {
|
| 578 |
-
"name": "tBodyAccJerk-arCoeff()-Z,3",
|
| 579 |
-
"min": -2.1755548687139807,
|
| 580 |
-
"max": 0.3466068230816849
|
| 581 |
-
},
|
| 582 |
-
"116": {
|
| 583 |
-
"name": "tBodyAccJerk-arCoeff()-Z,4",
|
| 584 |
-
"min": -0.47655595696262465,
|
| 585 |
-
"max": 0.748461403302116
|
| 586 |
-
},
|
| 587 |
-
"117": {
|
| 588 |
-
"name": "tBodyAccJerk-correlation()-X,Y",
|
| 589 |
-
"min": -0.8287148840635836,
|
| 590 |
-
"max": 0.7000102664588659
|
| 591 |
-
},
|
| 592 |
-
"118": {
|
| 593 |
-
"name": "tBodyAccJerk-correlation()-X,Z",
|
| 594 |
-
"min": -0.9264473808825381,
|
| 595 |
-
"max": 0.5718665695775615
|
| 596 |
-
},
|
| 597 |
-
"119": {
|
| 598 |
-
"name": "tBodyAccJerk-correlation()-Y,Z",
|
| 599 |
-
"min": -0.771552493592412,
|
| 600 |
-
"max": 0.8041884489803837
|
| 601 |
-
},
|
| 602 |
-
"120": {
|
| 603 |
-
"name": "tBodyGyro-mean()-X",
|
| 604 |
-
"min": -0.9141614453125,
|
| 605 |
-
"max": 0.7906608800468751
|
| 606 |
-
},
|
| 607 |
-
"121": {
|
| 608 |
-
"name": "tBodyGyro-mean()-Y",
|
| 609 |
-
"min": -0.3510968166015625,
|
| 610 |
-
"max": 0.485057559375
|
| 611 |
-
},
|
| 612 |
-
"122": {
|
| 613 |
-
"name": "tBodyGyro-mean()-Z",
|
| 614 |
-
"min": -0.4378068751484375,
|
| 615 |
-
"max": 0.40438009296875
|
| 616 |
-
},
|
| 617 |
-
"123": {
|
| 618 |
-
"name": "tBodyGyro-std()-X",
|
| 619 |
-
"min": 0.0016922260111185436,
|
| 620 |
-
"max": 1.736491006957507
|
| 621 |
-
},
|
| 622 |
-
"124": {
|
| 623 |
-
"name": "tBodyGyro-std()-Y",
|
| 624 |
-
"min": 0.002003253470538887,
|
| 625 |
-
"max": 1.5270449141577516
|
| 626 |
-
},
|
| 627 |
-
"125": {
|
| 628 |
-
"name": "tBodyGyro-std()-Z",
|
| 629 |
-
"min": 0.0021838172840389553,
|
| 630 |
-
"max": 0.9667912516003004
|
| 631 |
-
},
|
| 632 |
-
"126": {
|
| 633 |
-
"name": "tBodyGyro-mad()-X",
|
| 634 |
-
"min": 0.001053572,
|
| 635 |
-
"max": 1.2321353
|
| 636 |
-
},
|
| 637 |
-
"127": {
|
| 638 |
-
"name": "tBodyGyro-mad()-Y",
|
| 639 |
-
"min": 0.0012376295,
|
| 640 |
-
"max": 1.154000935
|
| 641 |
-
},
|
| 642 |
-
"128": {
|
| 643 |
-
"name": "tBodyGyro-mad()-Z",
|
| 644 |
-
"min": 0.00128438235,
|
| 645 |
-
"max": 0.81080785
|
| 646 |
-
},
|
| 647 |
-
"129": {
|
| 648 |
-
"name": "tBodyGyro-max()-X",
|
| 649 |
-
"min": -0.2417764,
|
| 650 |
-
"max": 4.155473
|
| 651 |
-
},
|
| 652 |
-
"130": {
|
| 653 |
-
"name": "tBodyGyro-max()-Y",
|
| 654 |
-
"min": -0.11351,
|
| 655 |
-
"max": 5.746062
|
| 656 |
-
},
|
| 657 |
-
"131": {
|
| 658 |
-
"name": "tBodyGyro-max()-Z",
|
| 659 |
-
"min": -0.2397656,
|
| 660 |
-
"max": 2.365982
|
| 661 |
-
},
|
| 662 |
-
"132": {
|
| 663 |
-
"name": "tBodyGyro-min()-X",
|
| 664 |
-
"min": -4.733656,
|
| 665 |
-
"max": 0.387086
|
| 666 |
-
},
|
| 667 |
-
"133": {
|
| 668 |
-
"name": "tBodyGyro-min()-Y",
|
| 669 |
-
"min": -5.97433,
|
| 670 |
-
"max": 0.2560976
|
| 671 |
-
},
|
| 672 |
-
"134": {
|
| 673 |
-
"name": "tBodyGyro-min()-Z",
|
| 674 |
-
"min": -2.763014,
|
| 675 |
-
"max": 0.2477599
|
| 676 |
-
},
|
| 677 |
-
"135": {
|
| 678 |
-
"name": "tBodyGyro-sma()",
|
| 679 |
-
"min": 0.006204816558296874,
|
| 680 |
-
"max": 2.8441347265312498
|
| 681 |
-
},
|
| 682 |
-
"136": {
|
| 683 |
-
"name": "tBodyGyro-energy()-X",
|
| 684 |
-
"min": 3.863115303707746e-06,
|
| 685 |
-
"max": 3.3178601746819814
|
| 686 |
-
},
|
| 687 |
-
"137": {
|
| 688 |
-
"name": "tBodyGyro-energy()-Y",
|
| 689 |
-
"min": 4.105321542015138e-06,
|
| 690 |
-
"max": 2.37121709970025
|
| 691 |
-
},
|
| 692 |
-
"138": {
|
| 693 |
-
"name": "tBodyGyro-energy()-Z",
|
| 694 |
-
"min": 4.840127377581405e-06,
|
| 695 |
-
"max": 1.0154306881262514
|
| 696 |
-
},
|
| 697 |
-
"139": {
|
| 698 |
-
"name": "tBodyGyro-iqr()-X",
|
| 699 |
-
"min": 0.0020302520225,
|
| 700 |
-
"max": 2.485016375
|
| 701 |
-
},
|
| 702 |
-
"140": {
|
| 703 |
-
"name": "tBodyGyro-iqr()-Y",
|
| 704 |
-
"min": 0.0024258175,
|
| 705 |
-
"max": 2.27983475
|
| 706 |
-
},
|
| 707 |
-
"141": {
|
| 708 |
-
"name": "tBodyGyro-iqr()-Z",
|
| 709 |
-
"min": 0.0026128333,
|
| 710 |
-
"max": 1.617129475
|
| 711 |
-
},
|
| 712 |
-
"142": {
|
| 713 |
-
"name": "tBodyGyro-entropy()-X",
|
| 714 |
-
"min": 3.2051100428736348,
|
| 715 |
-
"max": 4.84632806976598
|
| 716 |
-
},
|
| 717 |
-
"143": {
|
| 718 |
-
"name": "tBodyGyro-entropy()-Y",
|
| 719 |
-
"min": 3.0259441948359997,
|
| 720 |
-
"max": 4.8387648869372075
|
| 721 |
-
},
|
| 722 |
-
"144": {
|
| 723 |
-
"name": "tBodyGyro-entropy()-Z",
|
| 724 |
-
"min": 3.0137460931893565,
|
| 725 |
-
"max": 4.846136195807563
|
| 726 |
-
},
|
| 727 |
-
"145": {
|
| 728 |
-
"name": "tBodyGyro-arCoeff()-X,1",
|
| 729 |
-
"min": -3.9942285768748014,
|
| 730 |
-
"max": -0.5499415195258505
|
| 731 |
-
},
|
| 732 |
-
"146": {
|
| 733 |
-
"name": "tBodyGyro-arCoeff()-X,2",
|
| 734 |
-
"min": 0.5217543626347261,
|
| 735 |
-
"max": 5.987462557788201
|
| 736 |
-
},
|
| 737 |
-
"147": {
|
| 738 |
-
"name": "tBodyGyro-arCoeff()-X,3",
|
| 739 |
-
"min": -3.9922310851017047,
|
| 740 |
-
"max": -0.4286808346234274
|
| 741 |
-
},
|
| 742 |
-
"148": {
|
| 743 |
-
"name": "tBodyGyro-arCoeff()-X,4",
|
| 744 |
-
"min": 0.2927376341696726,
|
| 745 |
-
"max": 0.9989996644992987
|
| 746 |
-
},
|
| 747 |
-
"149": {
|
| 748 |
-
"name": "tBodyGyro-arCoeff()-Y,1",
|
| 749 |
-
"min": -3.9900531816461795,
|
| 750 |
-
"max": -0.6185528838931388
|
| 751 |
-
},
|
| 752 |
-
"150": {
|
| 753 |
-
"name": "tBodyGyro-arCoeff()-Y,2",
|
| 754 |
-
"min": 0.5489793720440668,
|
| 755 |
-
"max": 5.978714612062834
|
| 756 |
-
},
|
| 757 |
-
"151": {
|
| 758 |
-
"name": "tBodyGyro-arCoeff()-Y,3",
|
| 759 |
-
"min": -3.9872451998793124,
|
| 760 |
-
"max": -0.40709185146205895
|
| 761 |
-
},
|
| 762 |
-
"152": {
|
| 763 |
-
"name": "tBodyGyro-arCoeff()-Y,4",
|
| 764 |
-
"min": 0.24345550963650936,
|
| 765 |
-
"max": 0.99859201834582
|
| 766 |
-
},
|
| 767 |
-
"153": {
|
| 768 |
-
"name": "tBodyGyro-arCoeff()-Z,1",
|
| 769 |
-
"min": -3.9946433699601465,
|
| 770 |
-
"max": -1.2449695815902668
|
| 771 |
-
},
|
| 772 |
-
"154": {
|
| 773 |
-
"name": "tBodyGyro-arCoeff()-Z,2",
|
| 774 |
-
"min": 1.3074890410221043,
|
| 775 |
-
"max": 5.988413601742325
|
| 776 |
-
},
|
| 777 |
-
"155": {
|
| 778 |
-
"name": "tBodyGyro-arCoeff()-Z,3",
|
| 779 |
-
"min": -3.9928899532773277,
|
| 780 |
-
"max": -0.9965123641150018
|
| 781 |
-
},
|
| 782 |
-
"156": {
|
| 783 |
-
"name": "tBodyGyro-arCoeff()-Z,4",
|
| 784 |
-
"min": 0.5013647510609228,
|
| 785 |
-
"max": 0.9991219860711787
|
| 786 |
-
},
|
| 787 |
-
"157": {
|
| 788 |
-
"name": "tBodyGyro-correlation()-X,Y",
|
| 789 |
-
"min": -0.9908029505413216,
|
| 790 |
-
"max": 0.9895135571519915
|
| 791 |
-
},
|
| 792 |
-
"158": {
|
| 793 |
-
"name": "tBodyGyro-correlation()-X,Z",
|
| 794 |
-
"min": -0.9873342598711831,
|
| 795 |
-
"max": 0.9960575140526013
|
| 796 |
-
},
|
| 797 |
-
"159": {
|
| 798 |
-
"name": "tBodyGyro-correlation()-Y,Z",
|
| 799 |
-
"min": -0.990136236018121,
|
| 800 |
-
"max": 0.9931736105461424
|
| 801 |
-
},
|
| 802 |
-
"160": {
|
| 803 |
-
"name": "tBodyGyroJerk-mean()-X",
|
| 804 |
-
"min": -1.6592816141732283,
|
| 805 |
-
"max": 2.013248818897637
|
| 806 |
-
},
|
| 807 |
-
"161": {
|
| 808 |
-
"name": "tBodyGyroJerk-mean()-Y",
|
| 809 |
-
"min": -1.6457193700787398,
|
| 810 |
-
"max": 1.6168899606299212
|
| 811 |
-
},
|
| 812 |
-
"162": {
|
| 813 |
-
"name": "tBodyGyroJerk-mean()-Z",
|
| 814 |
-
"min": -1.0980803149606297,
|
| 815 |
-
"max": 1.1703807086614175
|
| 816 |
-
},
|
| 817 |
-
"163": {
|
| 818 |
-
"name": "tBodyGyroJerk-std()-X",
|
| 819 |
-
"min": 0.06929558346261355,
|
| 820 |
-
"max": 33.74331528814421
|
| 821 |
-
},
|
| 822 |
-
"164": {
|
| 823 |
-
"name": "tBodyGyroJerk-std()-Y",
|
| 824 |
-
"min": 0.07245960213986785,
|
| 825 |
-
"max": 60.16471883217185
|
| 826 |
-
},
|
| 827 |
-
"165": {
|
| 828 |
-
"name": "tBodyGyroJerk-std()-Z",
|
| 829 |
-
"min": 0.07838493412307453,
|
| 830 |
-
"max": 27.32717749581885
|
| 831 |
-
},
|
| 832 |
-
"166": {
|
| 833 |
-
"name": "tBodyGyroJerk-mad()-X",
|
| 834 |
-
"min": 0.03484355,
|
| 835 |
-
"max": 19.555299999999995
|
| 836 |
-
},
|
| 837 |
-
"167": {
|
| 838 |
-
"name": "tBodyGyroJerk-mad()-Y",
|
| 839 |
-
"min": 0.043890950000000005,
|
| 840 |
-
"max": 36.561184999999995
|
| 841 |
-
},
|
| 842 |
-
"168": {
|
| 843 |
-
"name": "tBodyGyroJerk-mad()-Z",
|
| 844 |
-
"min": 0.05136109999999997,
|
| 845 |
-
"max": 16.650260000000003
|
| 846 |
-
},
|
| 847 |
-
"169": {
|
| 848 |
-
"name": "tBodyGyroJerk-max()-X",
|
| 849 |
-
"min": 0.1614925,
|
| 850 |
-
"max": 100.94581
|
| 851 |
-
},
|
| 852 |
-
"170": {
|
| 853 |
-
"name": "tBodyGyroJerk-max()-Y",
|
| 854 |
-
"min": 0.181581265,
|
| 855 |
-
"max": 215.306335
|
| 856 |
-
},
|
| 857 |
-
"171": {
|
| 858 |
-
"name": "tBodyGyroJerk-max()-Z",
|
| 859 |
-
"min": 0.15593000000000135,
|
| 860 |
-
"max": 79.167395
|
| 861 |
-
},
|
| 862 |
-
"172": {
|
| 863 |
-
"name": "tBodyGyroJerk-min()-X",
|
| 864 |
-
"min": -112.5145,
|
| 865 |
-
"max": -0.1507297
|
| 866 |
-
},
|
| 867 |
-
"173": {
|
| 868 |
-
"name": "tBodyGyroJerk-min()-Y",
|
| 869 |
-
"min": -238.50659000000002,
|
| 870 |
-
"max": -0.18334175
|
| 871 |
-
},
|
| 872 |
-
"174": {
|
| 873 |
-
"name": "tBodyGyroJerk-min()-Z",
|
| 874 |
-
"min": -96.08938,
|
| 875 |
-
"max": -0.17956540000000001
|
| 876 |
-
},
|
| 877 |
-
"175": {
|
| 878 |
-
"name": "tBodyGyroJerk-sma()",
|
| 879 |
-
"min": 0.2075397469763779,
|
| 880 |
-
"max": 92.26371167874015
|
| 881 |
-
},
|
| 882 |
-
"176": {
|
| 883 |
-
"name": "tBodyGyroJerk-energy()-X",
|
| 884 |
-
"min": 0.004802159532839166,
|
| 885 |
-
"max": 1138.614594737907
|
| 886 |
-
},
|
| 887 |
-
"177": {
|
| 888 |
-
"name": "tBodyGyroJerk-energy()-Y",
|
| 889 |
-
"min": 0.005251358132581393,
|
| 890 |
-
"max": 3620.656853303606
|
| 891 |
-
},
|
| 892 |
-
"178": {
|
| 893 |
-
"name": "tBodyGyroJerk-energy()-Z",
|
| 894 |
-
"min": 0.006144543126360509,
|
| 895 |
-
"max": 746.7860401228261
|
| 896 |
-
},
|
| 897 |
-
"179": {
|
| 898 |
-
"name": "tBodyGyroJerk-iqr()-X",
|
| 899 |
-
"min": 0.0722756675,
|
| 900 |
-
"max": 39.5734875
|
| 901 |
-
},
|
| 902 |
-
"180": {
|
| 903 |
-
"name": "tBodyGyroJerk-iqr()-Y",
|
| 904 |
-
"min": 0.08480017675000001,
|
| 905 |
-
"max": 72.62820249999997
|
| 906 |
-
},
|
| 907 |
-
"181": {
|
| 908 |
-
"name": "tBodyGyroJerk-iqr()-Z",
|
| 909 |
-
"min": 0.101009085,
|
| 910 |
-
"max": 34.16415
|
| 911 |
-
},
|
| 912 |
-
"182": {
|
| 913 |
-
"name": "tBodyGyroJerk-entropy()-X",
|
| 914 |
-
"min": 3.279826061930519,
|
| 915 |
-
"max": 4.651005994419531
|
| 916 |
-
},
|
| 917 |
-
"183": {
|
| 918 |
-
"name": "tBodyGyroJerk-entropy()-Y",
|
| 919 |
-
"min": 3.2398880599466557,
|
| 920 |
-
"max": 4.644767529978027
|
| 921 |
-
},
|
| 922 |
-
"184": {
|
| 923 |
-
"name": "tBodyGyroJerk-entropy()-Z",
|
| 924 |
-
"min": 3.5101636935988636,
|
| 925 |
-
"max": 4.658434741934869
|
| 926 |
-
},
|
| 927 |
-
"185": {
|
| 928 |
-
"name": "tBodyGyroJerk-arCoeff()-X,1",
|
| 929 |
-
"min": -3.5332647912905553,
|
| 930 |
-
"max": 0.1121762434280636
|
| 931 |
-
},
|
| 932 |
-
"186": {
|
| 933 |
-
"name": "tBodyGyroJerk-arCoeff()-X,2",
|
| 934 |
-
"min": -0.18573483289764886,
|
| 935 |
-
"max": 5.0337143781470886
|
| 936 |
-
},
|
| 937 |
-
"187": {
|
| 938 |
-
"name": "tBodyGyroJerk-arCoeff()-X,3",
|
| 939 |
-
"min": -3.4142010428314467,
|
| 940 |
-
"max": 0.6674469935567561
|
| 941 |
-
},
|
| 942 |
-
"188": {
|
| 943 |
-
"name": "tBodyGyroJerk-arCoeff()-X,4",
|
| 944 |
-
"min": -0.6486217531635373,
|
| 945 |
-
"max": 0.9313578118866611
|
| 946 |
-
},
|
| 947 |
-
"189": {
|
| 948 |
-
"name": "tBodyGyroJerk-arCoeff()-Y,1",
|
| 949 |
-
"min": -2.9534150536396644,
|
| 950 |
-
"max": 0.21543787794111927
|
| 951 |
-
},
|
| 952 |
-
"190": {
|
| 953 |
-
"name": "tBodyGyroJerk-arCoeff()-Y,2",
|
| 954 |
-
"min": -0.2487132324717461,
|
| 955 |
-
"max": 3.9226650239435523
|
| 956 |
-
},
|
| 957 |
-
"191": {
|
| 958 |
-
"name": "tBodyGyroJerk-arCoeff()-Y,3",
|
| 959 |
-
"min": -2.7153299897184873,
|
| 960 |
-
"max": 0.7250058267134856
|
| 961 |
-
},
|
| 962 |
-
"192": {
|
| 963 |
-
"name": "tBodyGyroJerk-arCoeff()-Y,4",
|
| 964 |
-
"min": -0.7507952464884488,
|
| 965 |
-
"max": 0.8316122597908868
|
| 966 |
-
},
|
| 967 |
-
"193": {
|
| 968 |
-
"name": "tBodyGyroJerk-arCoeff()-Z,1",
|
| 969 |
-
"min": -3.2260947635064063,
|
| 970 |
-
"max": -0.004932322364492885
|
| 971 |
-
},
|
| 972 |
-
"194": {
|
| 973 |
-
"name": "tBodyGyroJerk-arCoeff()-Z,2",
|
| 974 |
-
"min": -0.2406562328727275,
|
| 975 |
-
"max": 4.434757423232501
|
| 976 |
-
},
|
| 977 |
-
"195": {
|
| 978 |
-
"name": "tBodyGyroJerk-arCoeff()-Z,3",
|
| 979 |
-
"min": -3.0439575635832203,
|
| 980 |
-
"max": 0.6421587632422695
|
| 981 |
-
},
|
| 982 |
-
"196": {
|
| 983 |
-
"name": "tBodyGyroJerk-arCoeff()-Z,4",
|
| 984 |
-
"min": -0.6590818491876634,
|
| 985 |
-
"max": 0.8833894286429035
|
| 986 |
-
},
|
| 987 |
-
"197": {
|
| 988 |
-
"name": "tBodyGyroJerk-correlation()-X,Y",
|
| 989 |
-
"min": -0.8661755976781939,
|
| 990 |
-
"max": 0.863466755874589
|
| 991 |
-
},
|
| 992 |
-
"198": {
|
| 993 |
-
"name": "tBodyGyroJerk-correlation()-X,Z",
|
| 994 |
-
"min": -0.9162208396562964,
|
| 995 |
-
"max": 0.8241548052505725
|
| 996 |
-
},
|
| 997 |
-
"199": {
|
| 998 |
-
"name": "tBodyGyroJerk-correlation()-Y,Z",
|
| 999 |
-
"min": -0.9220307456982642,
|
| 1000 |
-
"max": 0.8796814062351181
|
| 1001 |
-
},
|
| 1002 |
-
"200": {
|
| 1003 |
-
"name": "tBodyAccMag-mean()",
|
| 1004 |
-
"min": 0.0042358725852490895,
|
| 1005 |
-
"max": 0.685718928971917
|
| 1006 |
-
},
|
| 1007 |
-
"201": {
|
| 1008 |
-
"name": "tBodyAccMag-std()",
|
| 1009 |
-
"min": 0.0018899899032512415,
|
| 1010 |
-
"max": 0.36857196640438245
|
| 1011 |
-
},
|
| 1012 |
-
"202": {
|
| 1013 |
-
"name": "tBodyAccMag-mad()",
|
| 1014 |
-
"min": 0.000961093406528989,
|
| 1015 |
-
"max": 0.25435480593073734
|
| 1016 |
-
},
|
| 1017 |
-
"203": {
|
| 1018 |
-
"name": "tBodyAccMag-max()",
|
| 1019 |
-
"min": 0.008321346420900948,
|
| 1020 |
-
"max": 1.8063824308000673
|
| 1021 |
-
},
|
| 1022 |
-
"204": {
|
| 1023 |
-
"name": "tBodyAccMag-min()",
|
| 1024 |
-
"min": 0.00010956880663646237,
|
| 1025 |
-
"max": 0.363554788462686
|
| 1026 |
-
},
|
| 1027 |
-
"205": {
|
| 1028 |
-
"name": "tBodyAccMag-sma()",
|
| 1029 |
-
"min": 0.0042358725852490895,
|
| 1030 |
-
"max": 0.685718928971917
|
| 1031 |
-
},
|
| 1032 |
-
"206": {
|
| 1033 |
-
"name": "tBodyAccMag-energy()",
|
| 1034 |
-
"min": 2.3342858290785044e-05,
|
| 1035 |
-
"max": 0.5610773244303215
|
| 1036 |
-
},
|
| 1037 |
-
"207": {
|
| 1038 |
-
"name": "tBodyAccMag-iqr()",
|
| 1039 |
-
"min": 0.001971957450518559,
|
| 1040 |
-
"max": 0.6205653805818798
|
| 1041 |
-
},
|
| 1042 |
-
"208": {
|
| 1043 |
-
"name": "tBodyAccMag-entropy()",
|
| 1044 |
-
"min": 4.004544840198892,
|
| 1045 |
-
"max": 4.847603177482406
|
| 1046 |
-
},
|
| 1047 |
-
"209": {
|
| 1048 |
-
"name": "tBodyAccMag-arCoeff()1",
|
| 1049 |
-
"min": -3.994599440691333,
|
| 1050 |
-
"max": -0.4364555635617239
|
| 1051 |
-
},
|
| 1052 |
-
"210": {
|
| 1053 |
-
"name": "tBodyAccMag-arCoeff()2",
|
| 1054 |
-
"min": 0.40894443331229874,
|
| 1055 |
-
"max": 5.988422147999353
|
| 1056 |
-
},
|
| 1057 |
-
"211": {
|
| 1058 |
-
"name": "tBodyAccMag-arCoeff()3",
|
| 1059 |
-
"min": -3.9930387463904533,
|
| 1060 |
-
"max": -0.3433927805241726
|
| 1061 |
-
},
|
| 1062 |
-
"212": {
|
| 1063 |
-
"name": "tBodyAccMag-arCoeff()4",
|
| 1064 |
-
"min": 0.24810919010523594,
|
| 1065 |
-
"max": 0.9992184548169805
|
| 1066 |
-
},
|
| 1067 |
-
"213": {
|
| 1068 |
-
"name": "tGravityAccMag-mean()",
|
| 1069 |
-
"min": 0.9383601089346918,
|
| 1070 |
-
"max": 1.0621249705292954
|
| 1071 |
-
},
|
| 1072 |
-
"214": {
|
| 1073 |
-
"name": "tGravityAccMag-std()",
|
| 1074 |
-
"min": 3.2226071953373116e-05,
|
| 1075 |
-
"max": 0.05979793068265951
|
| 1076 |
-
},
|
| 1077 |
-
"215": {
|
| 1078 |
-
"name": "tGravityAccMag-mad()",
|
| 1079 |
-
"min": 1.1123388664158185e-05,
|
| 1080 |
-
"max": 0.05244003254722712
|
| 1081 |
-
},
|
| 1082 |
-
"216": {
|
| 1083 |
-
"name": "tGravityAccMag-max()",
|
| 1084 |
-
"min": 0.9673725997751309,
|
| 1085 |
-
"max": 1.1090412194205113
|
| 1086 |
-
},
|
| 1087 |
-
"217": {
|
| 1088 |
-
"name": "tGravityAccMag-min()",
|
| 1089 |
-
"min": 0.901711185186227,
|
| 1090 |
-
"max": 1.0425294186208138
|
| 1091 |
-
},
|
| 1092 |
-
"218": {
|
| 1093 |
-
"name": "tGravityAccMag-sma()",
|
| 1094 |
-
"min": 0.9383601089346918,
|
| 1095 |
-
"max": 1.0621249705292954
|
| 1096 |
-
},
|
| 1097 |
-
"219": {
|
| 1098 |
-
"name": "tGravityAccMag-energy()",
|
| 1099 |
-
"min": 0.8809216626281566,
|
| 1100 |
-
"max": 1.1287077639830705
|
| 1101 |
-
},
|
| 1102 |
-
"220": {
|
| 1103 |
-
"name": "tGravityAccMag-iqr()",
|
| 1104 |
-
"min": 2.6498303128175138e-05,
|
| 1105 |
-
"max": 0.12110995479273079
|
| 1106 |
-
},
|
| 1107 |
-
"221": {
|
| 1108 |
-
"name": "tGravityAccMag-entropy()",
|
| 1109 |
-
"min": 4.85020074049171,
|
| 1110 |
-
"max": 4.852030263427388
|
| 1111 |
-
},
|
| 1112 |
-
"222": {
|
| 1113 |
-
"name": "tGravityAccMag-arCoeff()1",
|
| 1114 |
-
"min": -3.9948300933421033,
|
| 1115 |
-
"max": -2.5886022865057314
|
| 1116 |
-
},
|
| 1117 |
-
"223": {
|
| 1118 |
-
"name": "tGravityAccMag-arCoeff()2",
|
| 1119 |
-
"min": 2.016871002811165,
|
| 1120 |
-
"max": 5.988519001305418
|
| 1121 |
-
},
|
| 1122 |
-
"224": {
|
| 1123 |
-
"name": "tGravityAccMag-arCoeff()3",
|
| 1124 |
-
"min": -3.99254107138926,
|
| 1125 |
-
"max": -0.2643712763277447
|
| 1126 |
-
},
|
| 1127 |
-
"225": {
|
| 1128 |
-
"name": "tGravityAccMag-arCoeff()4",
|
| 1129 |
-
"min": -0.16364169238349452,
|
| 1130 |
-
"max": 0.998853949177669
|
| 1131 |
-
},
|
| 1132 |
-
"226": {
|
| 1133 |
-
"name": "tBodyAccJerkMag-mean()",
|
| 1134 |
-
"min": 0.1255243696702924,
|
| 1135 |
-
"max": 18.126123530930997
|
| 1136 |
-
},
|
| 1137 |
-
"227": {
|
| 1138 |
-
"name": "tBodyAccJerkMag-std()",
|
| 1139 |
-
"min": 0.06222617452368327,
|
| 1140 |
-
"max": 11.363430959729174
|
| 1141 |
-
},
|
| 1142 |
-
"228": {
|
| 1143 |
-
"name": "tBodyAccJerkMag-mad()",
|
| 1144 |
-
"min": 0.036864429950027755,
|
| 1145 |
-
"max": 8.05181498114102
|
| 1146 |
-
},
|
| 1147 |
-
"229": {
|
| 1148 |
-
"name": "tBodyAccJerkMag-max()",
|
| 1149 |
-
"min": 0.320158544455194,
|
| 1150 |
-
"max": 60.90614806866397
|
| 1151 |
-
},
|
| 1152 |
-
"230": {
|
| 1153 |
-
"name": "tBodyAccJerkMag-min()",
|
| 1154 |
-
"min": 0.0027386966972403107,
|
| 1155 |
-
"max": 3.448654463669273
|
| 1156 |
-
},
|
| 1157 |
-
"231": {
|
| 1158 |
-
"name": "tBodyAccJerkMag-sma()",
|
| 1159 |
-
"min": 0.1255243696702924,
|
| 1160 |
-
"max": 18.126123530930997
|
| 1161 |
-
},
|
| 1162 |
-
"232": {
|
| 1163 |
-
"name": "tBodyAccJerkMag-energy()",
|
| 1164 |
-
"min": 0.019628464176976113,
|
| 1165 |
-
"max": 443.9358449184374
|
| 1166 |
-
},
|
| 1167 |
-
"233": {
|
| 1168 |
-
"name": "tBodyAccJerkMag-iqr()",
|
| 1169 |
-
"min": 0.07630130152276793,
|
| 1170 |
-
"max": 17.082789343637366
|
| 1171 |
-
},
|
| 1172 |
-
"234": {
|
| 1173 |
-
"name": "tBodyAccJerkMag-entropy()",
|
| 1174 |
-
"min": 3.9330832306958956,
|
| 1175 |
-
"max": 4.76552637309154
|
| 1176 |
-
},
|
| 1177 |
-
"235": {
|
| 1178 |
-
"name": "tBodyAccJerkMag-arCoeff()1",
|
| 1179 |
-
"min": -3.319109553292475,
|
| 1180 |
-
"max": 0.04551375880398564
|
| 1181 |
-
},
|
| 1182 |
-
"236": {
|
| 1183 |
-
"name": "tBodyAccJerkMag-arCoeff()2",
|
| 1184 |
-
"min": -0.06258445254069486,
|
| 1185 |
-
"max": 4.613236205731036
|
| 1186 |
-
},
|
| 1187 |
-
"237": {
|
| 1188 |
-
"name": "tBodyAccJerkMag-arCoeff()3",
|
| 1189 |
-
"min": -3.1555221221670333,
|
| 1190 |
-
"max": 0.065099561596612
|
| 1191 |
-
},
|
| 1192 |
-
"238": {
|
| 1193 |
-
"name": "tBodyAccJerkMag-arCoeff()4",
|
| 1194 |
-
"min": -0.06734481355387803,
|
| 1195 |
-
"max": 0.9063225958475319
|
| 1196 |
-
},
|
| 1197 |
-
"239": {
|
| 1198 |
-
"name": "tBodyGyroMag-mean()",
|
| 1199 |
-
"min": 0.004128067427194935,
|
| 1200 |
-
"max": 1.9359035531458741
|
| 1201 |
-
},
|
| 1202 |
-
"240": {
|
| 1203 |
-
"name": "tBodyGyroMag-std()",
|
| 1204 |
-
"min": 0.0018826768623940626,
|
| 1205 |
-
"max": 1.065254823937547
|
| 1206 |
-
},
|
| 1207 |
-
"241": {
|
| 1208 |
-
"name": "tBodyGyroMag-mad()",
|
| 1209 |
-
"min": 0.0011850359911818533,
|
| 1210 |
-
"max": 0.6646476717122016
|
| 1211 |
-
},
|
| 1212 |
-
"242": {
|
| 1213 |
-
"name": "tBodyGyroMag-max()",
|
| 1214 |
-
"min": 0.010594028103109034,
|
| 1215 |
-
"max": 6.042246673775695
|
| 1216 |
-
},
|
| 1217 |
-
"243": {
|
| 1218 |
-
"name": "tBodyGyroMag-min()",
|
| 1219 |
-
"min": 0.00024317714410044872,
|
| 1220 |
-
"max": 0.5423309241385835
|
| 1221 |
-
},
|
| 1222 |
-
"244": {
|
| 1223 |
-
"name": "tBodyGyroMag-sma()",
|
| 1224 |
-
"min": 0.004128067427194935,
|
| 1225 |
-
"max": 1.9359035531458741
|
| 1226 |
-
},
|
| 1227 |
-
"245": {
|
| 1228 |
-
"name": "tBodyGyroMag-energy()",
|
| 1229 |
-
"min": 2.1551005519112505e-05,
|
| 1230 |
-
"max": 4.418768568938004
|
| 1231 |
-
},
|
| 1232 |
-
"246": {
|
| 1233 |
-
"name": "tBodyGyroMag-iqr()",
|
| 1234 |
-
"min": 0.002408431927549769,
|
| 1235 |
-
"max": 1.3438494255581315
|
| 1236 |
-
},
|
| 1237 |
-
"247": {
|
| 1238 |
-
"name": "tBodyGyroMag-entropy()",
|
| 1239 |
-
"min": 3.3362895895377966,
|
| 1240 |
-
"max": 4.847122056791179
|
| 1241 |
-
},
|
| 1242 |
-
"248": {
|
| 1243 |
-
"name": "tBodyGyroMag-arCoeff()1",
|
| 1244 |
-
"min": -3.9947507531688653,
|
| 1245 |
-
"max": -0.3359072120099569
|
| 1246 |
-
},
|
| 1247 |
-
"249": {
|
| 1248 |
-
"name": "tBodyGyroMag-arCoeff()2",
|
| 1249 |
-
"min": 0.3097135858487371,
|
| 1250 |
-
"max": 5.988600693200239
|
| 1251 |
-
},
|
| 1252 |
-
"250": {
|
| 1253 |
-
"name": "tBodyGyroMag-arCoeff()3",
|
| 1254 |
-
"min": -3.992942260376584,
|
| 1255 |
-
"max": -0.27437346219417547
|
| 1256 |
-
},
|
| 1257 |
-
"251": {
|
| 1258 |
-
"name": "tBodyGyroMag-arCoeff()4",
|
| 1259 |
-
"min": 0.21442536668861495,
|
| 1260 |
-
"max": 0.9991539863247585
|
| 1261 |
-
},
|
| 1262 |
-
"252": {
|
| 1263 |
-
"name": "tBodyGyroJerkMag-mean()",
|
| 1264 |
-
"min": 0.1403115865422672,
|
| 1265 |
-
"max": 62.07602056892374
|
| 1266 |
-
},
|
| 1267 |
-
"253": {
|
| 1268 |
-
"name": "tBodyGyroJerkMag-std()",
|
| 1269 |
-
"min": 0.06471966181666673,
|
| 1270 |
-
"max": 42.86777378667186
|
| 1271 |
-
},
|
| 1272 |
-
"254": {
|
| 1273 |
-
"name": "tBodyGyroJerkMag-mad()",
|
| 1274 |
-
"min": 0.03835238310385612,
|
| 1275 |
-
"max": 25.880578764993693
|
| 1276 |
-
},
|
| 1277 |
-
"255": {
|
| 1278 |
-
"name": "tBodyGyroJerkMag-max()",
|
| 1279 |
-
"min": 0.3243723022092053,
|
| 1280 |
-
"max": 242.35611226476342
|
| 1281 |
-
},
|
| 1282 |
-
"256": {
|
| 1283 |
-
"name": "tBodyGyroJerkMag-min()",
|
| 1284 |
-
"min": 0.0007116355317155123,
|
| 1285 |
-
"max": 9.424757397117709
|
| 1286 |
-
},
|
| 1287 |
-
"257": {
|
| 1288 |
-
"name": "tBodyGyroJerkMag-sma()",
|
| 1289 |
-
"min": 0.1403115865422672,
|
| 1290 |
-
"max": 62.07602056892374
|
| 1291 |
-
},
|
| 1292 |
-
"258": {
|
| 1293 |
-
"name": "tBodyGyroJerkMag-energy()",
|
| 1294 |
-
"min": 0.024413434146474674,
|
| 1295 |
-
"max": 5485.88640461513
|
| 1296 |
-
},
|
| 1297 |
-
"259": {
|
| 1298 |
-
"name": "tBodyGyroJerkMag-iqr()",
|
| 1299 |
-
"min": 0.07939490031284152,
|
| 1300 |
-
"max": 55.68709605754883
|
| 1301 |
-
},
|
| 1302 |
-
"260": {
|
| 1303 |
-
"name": "tBodyGyroJerkMag-entropy()",
|
| 1304 |
-
"min": 3.598188748898203,
|
| 1305 |
-
"max": 4.779595188725109
|
| 1306 |
-
},
|
| 1307 |
-
"261": {
|
| 1308 |
-
"name": "tBodyGyroJerkMag-arCoeff()1",
|
| 1309 |
-
"min": -3.5578113153489372,
|
| 1310 |
-
"max": 0.02671902371115397
|
| 1311 |
-
},
|
| 1312 |
-
"262": {
|
| 1313 |
-
"name": "tBodyGyroJerkMag-arCoeff()2",
|
| 1314 |
-
"min": -0.025307717449186466,
|
| 1315 |
-
"max": 5.082911720536158
|
| 1316 |
-
},
|
| 1317 |
-
"263": {
|
| 1318 |
-
"name": "tBodyGyroJerkMag-arCoeff()3",
|
| 1319 |
-
"min": -3.4443852940382653,
|
| 1320 |
-
"max": 0.034846174202294265
|
| 1321 |
-
},
|
| 1322 |
-
"264": {
|
| 1323 |
-
"name": "tBodyGyroJerkMag-arCoeff()4",
|
| 1324 |
-
"min": -0.03553247840818885,
|
| 1325 |
-
"max": 0.9351353013411847
|
| 1326 |
-
},
|
| 1327 |
-
"265": {
|
| 1328 |
-
"name": "fBodyAcc-mean()-X",
|
| 1329 |
-
"min": 0.01237202527171472,
|
| 1330 |
-
"max": 3.9550492481178674
|
| 1331 |
-
},
|
| 1332 |
-
"266": {
|
| 1333 |
-
"name": "fBodyAcc-mean()-Y",
|
| 1334 |
-
"min": 0.013518167394674752,
|
| 1335 |
-
"max": 2.3190958596131037
|
| 1336 |
-
},
|
| 1337 |
-
"267": {
|
| 1338 |
-
"name": "fBodyAcc-mean()-Z",
|
| 1339 |
-
"min": 0.02621992969619822,
|
| 1340 |
-
"max": 2.6359581036313102
|
| 1341 |
-
},
|
| 1342 |
-
"268": {
|
| 1343 |
-
"name": "fBodyAcc-std()-X",
|
| 1344 |
-
"min": 0.011448813900416592,
|
| 1345 |
-
"max": 6.204875264918844
|
| 1346 |
-
},
|
| 1347 |
-
"269": {
|
| 1348 |
-
"name": "fBodyAcc-std()-Y",
|
| 1349 |
-
"min": 0.014058108218901008,
|
| 1350 |
-
"max": 8.565574535508444
|
| 1351 |
-
},
|
| 1352 |
-
"270": {
|
| 1353 |
-
"name": "fBodyAcc-std()-Z",
|
| 1354 |
-
"min": 0.022705999333689893,
|
| 1355 |
-
"max": 5.908300713917718
|
| 1356 |
-
},
|
| 1357 |
-
"271": {
|
| 1358 |
-
"name": "fBodyAcc-mad()-X",
|
| 1359 |
-
"min": 0.004243113407778255,
|
| 1360 |
-
"max": 1.5540556846610636
|
| 1361 |
-
},
|
| 1362 |
-
"272": {
|
| 1363 |
-
"name": "fBodyAcc-mad()-Y",
|
| 1364 |
-
"min": 0.0054972038332809885,
|
| 1365 |
-
"max": 1.002076272484623
|
| 1366 |
-
},
|
| 1367 |
-
"273": {
|
| 1368 |
-
"name": "fBodyAcc-mad()-Z",
|
| 1369 |
-
"min": 0.008715628687791709,
|
| 1370 |
-
"max": 1.3181088437622168
|
| 1371 |
-
},
|
| 1372 |
-
"274": {
|
| 1373 |
-
"name": "fBodyAcc-max()-X",
|
| 1374 |
-
"min": 0.043341548266239774,
|
| 1375 |
-
"max": 44.96954582227482
|
| 1376 |
-
},
|
| 1377 |
-
"275": {
|
| 1378 |
-
"name": "fBodyAcc-max()-Y",
|
| 1379 |
-
"min": 0.04932299113688046,
|
| 1380 |
-
"max": 68.28826140000001
|
| 1381 |
-
},
|
| 1382 |
-
"276": {
|
| 1383 |
-
"name": "fBodyAcc-max()-Z",
|
| 1384 |
-
"min": 0.0905469535517963,
|
| 1385 |
-
"max": 46.8632137
|
| 1386 |
-
},
|
| 1387 |
-
"277": {
|
| 1388 |
-
"name": "fBodyAcc-min()-X",
|
| 1389 |
-
"min": 3.8032809200282565e-06,
|
| 1390 |
-
"max": 0.49425421787520635
|
| 1391 |
-
},
|
| 1392 |
-
"278": {
|
| 1393 |
-
"name": "fBodyAcc-min()-Y",
|
| 1394 |
-
"min": 8.43651789674675e-06,
|
| 1395 |
-
"max": 0.42677440846776216
|
| 1396 |
-
},
|
| 1397 |
-
"279": {
|
| 1398 |
-
"name": "fBodyAcc-min()-Z",
|
| 1399 |
-
"min": 1.7830702208081442e-07,
|
| 1400 |
-
"max": 0.5091322678922322
|
| 1401 |
-
},
|
| 1402 |
-
"280": {
|
| 1403 |
-
"name": "fBodyAcc-sma()",
|
| 1404 |
-
"min": 0.06299726335260841,
|
| 1405 |
-
"max": 7.753584254858914
|
| 1406 |
-
},
|
| 1407 |
-
"281": {
|
| 1408 |
-
"name": "fBodyAcc-energy()-X",
|
| 1409 |
-
"min": 0.0002870378517315017,
|
| 1410 |
-
"max": 54.142891608239395
|
| 1411 |
-
},
|
| 1412 |
-
"282": {
|
| 1413 |
-
"name": "fBodyAcc-energy()-Y",
|
| 1414 |
-
"min": 0.00042636139128670946,
|
| 1415 |
-
"max": 75.52786809281902
|
| 1416 |
-
},
|
| 1417 |
-
"283": {
|
| 1418 |
-
"name": "fBodyAcc-energy()-Z",
|
| 1419 |
-
"min": 0.0012395613304968848,
|
| 1420 |
-
"max": 36.10516976376592
|
| 1421 |
-
},
|
| 1422 |
-
"284": {
|
| 1423 |
-
"name": "fBodyAcc-iqr()-X",
|
| 1424 |
-
"min": 0.010230336694165646,
|
| 1425 |
-
"max": 4.067090773647032
|
| 1426 |
-
},
|
| 1427 |
-
"285": {
|
| 1428 |
-
"name": "fBodyAcc-iqr()-Y",
|
| 1429 |
-
"min": 0.01442748833067542,
|
| 1430 |
-
"max": 3.3090199205780624
|
| 1431 |
-
},
|
| 1432 |
-
"286": {
|
| 1433 |
-
"name": "fBodyAcc-iqr()-Z",
|
| 1434 |
-
"min": 0.020036820959327326,
|
| 1435 |
-
"max": 3.591815338636069
|
| 1436 |
-
},
|
| 1437 |
-
"287": {
|
| 1438 |
-
"name": "fBodyAcc-entropy()-X",
|
| 1439 |
-
"min": 1.650898899610382,
|
| 1440 |
-
"max": 3.9805109901418376
|
| 1441 |
-
},
|
| 1442 |
-
"288": {
|
| 1443 |
-
"name": "fBodyAcc-entropy()-Y",
|
| 1444 |
-
"min": 1.1801921926950236,
|
| 1445 |
-
"max": 4.004133214479681
|
| 1446 |
-
},
|
| 1447 |
-
"289": {
|
| 1448 |
-
"name": "fBodyAcc-entropy()-Z",
|
| 1449 |
-
"min": 1.4520145201009442,
|
| 1450 |
-
"max": 3.9334853995663392
|
| 1451 |
-
},
|
| 1452 |
-
"290": {
|
| 1453 |
-
"name": "fBodyAcc-maxInds-X",
|
| 1454 |
-
"min": 1.0,
|
| 1455 |
-
"max": 33.0
|
| 1456 |
-
},
|
| 1457 |
-
"291": {
|
| 1458 |
-
"name": "fBodyAcc-maxInds-Y",
|
| 1459 |
-
"min": 1.0,
|
| 1460 |
-
"max": 32.0
|
| 1461 |
-
},
|
| 1462 |
-
"292": {
|
| 1463 |
-
"name": "fBodyAcc-maxInds-Z",
|
| 1464 |
-
"min": 1.0,
|
| 1465 |
-
"max": 27.0
|
| 1466 |
-
},
|
| 1467 |
-
"293": {
|
| 1468 |
-
"name": "fBodyAcc-meanFreq()-X",
|
| 1469 |
-
"min": 4.828120705849306,
|
| 1470 |
-
"max": 28.121365806711083
|
| 1471 |
-
},
|
| 1472 |
-
"294": {
|
| 1473 |
-
"name": "fBodyAcc-meanFreq()-Y",
|
| 1474 |
-
"min": 2.576677434383746,
|
| 1475 |
-
"max": 24.66492977423453
|
| 1476 |
-
},
|
| 1477 |
-
"295": {
|
| 1478 |
-
"name": "fBodyAcc-meanFreq()-Z",
|
| 1479 |
-
"min": 3.8565853265560843,
|
| 1480 |
-
"max": 23.782521555449975
|
| 1481 |
-
},
|
| 1482 |
-
"296": {
|
| 1483 |
-
"name": "fBodyAcc-skewness()-X",
|
| 1484 |
-
"min": 0.059479337892321606,
|
| 1485 |
-
"max": 7.710274185186048
|
| 1486 |
-
},
|
| 1487 |
-
"297": {
|
| 1488 |
-
"name": "fBodyAcc-kurtosis()-X",
|
| 1489 |
-
"min": -1.1856719277588446,
|
| 1490 |
-
"max": 57.95972993893258
|
| 1491 |
-
},
|
| 1492 |
-
"298": {
|
| 1493 |
-
"name": "fBodyAcc-skewness()-Y",
|
| 1494 |
-
"min": 0.5336178439398402,
|
| 1495 |
-
"max": 7.723650370852476
|
| 1496 |
-
},
|
| 1497 |
-
"299": {
|
| 1498 |
-
"name": "fBodyAcc-kurtosis()-Y",
|
| 1499 |
-
"min": -1.0028745964215782,
|
| 1500 |
-
"max": 58.1113345233398
|
| 1501 |
-
},
|
| 1502 |
-
"300": {
|
| 1503 |
-
"name": "fBodyAcc-skewness()-Z",
|
| 1504 |
-
"min": 0.5499524238335283,
|
| 1505 |
-
"max": 7.716056448347672
|
| 1506 |
-
},
|
| 1507 |
-
"301": {
|
| 1508 |
-
"name": "fBodyAcc-kurtosis()-Z",
|
| 1509 |
-
"min": -0.9042972807891978,
|
| 1510 |
-
"max": 58.00399921088198
|
| 1511 |
-
},
|
| 1512 |
-
"302": {
|
| 1513 |
-
"name": "fBodyAcc-bandsEnergy()-1,8",
|
| 1514 |
-
"min": 0.004071649018614799,
|
| 1515 |
-
"max": 2441.7728029982527
|
| 1516 |
-
},
|
| 1517 |
-
"303": {
|
| 1518 |
-
"name": "fBodyAcc-bandsEnergy()-9,16",
|
| 1519 |
-
"min": 0.0025959183130582755,
|
| 1520 |
-
"max": 917.6976803754808
|
| 1521 |
-
},
|
| 1522 |
-
"304": {
|
| 1523 |
-
"name": "fBodyAcc-bandsEnergy()-17,24",
|
| 1524 |
-
"min": 0.0013799890597189358,
|
| 1525 |
-
"max": 246.27430929468565
|
| 1526 |
-
},
|
| 1527 |
-
"305": {
|
| 1528 |
-
"name": "fBodyAcc-bandsEnergy()-25,32",
|
| 1529 |
-
"min": 0.000541266070963658,
|
| 1530 |
-
"max": 98.76465244989758
|
| 1531 |
-
},
|
| 1532 |
-
"306": {
|
| 1533 |
-
"name": "fBodyAcc-bandsEnergy()-33,40",
|
| 1534 |
-
"min": 0.0002816407340464972,
|
| 1535 |
-
"max": 34.86174793411658
|
| 1536 |
-
},
|
| 1537 |
-
"307": {
|
| 1538 |
-
"name": "fBodyAcc-bandsEnergy()-41,48",
|
| 1539 |
-
"min": 0.00013045796137692474,
|
| 1540 |
-
"max": 22.783224926917384
|
| 1541 |
-
},
|
| 1542 |
-
"308": {
|
| 1543 |
-
"name": "fBodyAcc-bandsEnergy()-49,56",
|
| 1544 |
-
"min": 4.005382520952431e-05,
|
| 1545 |
-
"max": 13.948985648863097
|
| 1546 |
-
},
|
| 1547 |
-
"309": {
|
| 1548 |
-
"name": "fBodyAcc-bandsEnergy()-57,64",
|
| 1549 |
-
"min": 2.9250560541035117e-09,
|
| 1550 |
-
"max": 7.566251392364055
|
| 1551 |
-
},
|
| 1552 |
-
"310": {
|
| 1553 |
-
"name": "fBodyAcc-bandsEnergy()-1,16",
|
| 1554 |
-
"min": 0.010484339632580351,
|
| 1555 |
-
"max": 3066.9057780572894
|
| 1556 |
-
},
|
| 1557 |
-
"311": {
|
| 1558 |
-
"name": "fBodyAcc-bandsEnergy()-17,32",
|
| 1559 |
-
"min": 0.0036501022421142177,
|
| 1560 |
-
"max": 320.3696406578141
|
| 1561 |
-
},
|
| 1562 |
-
"312": {
|
| 1563 |
-
"name": "fBodyAcc-bandsEnergy()-33,48",
|
| 1564 |
-
"min": 0.0007113124077480072,
|
| 1565 |
-
"max": 56.35440717099074
|
| 1566 |
-
},
|
| 1567 |
-
"313": {
|
| 1568 |
-
"name": "fBodyAcc-bandsEnergy()-49,64",
|
| 1569 |
-
"min": 5.0659451091580556e-05,
|
| 1570 |
-
"max": 21.515237041227152
|
| 1571 |
-
},
|
| 1572 |
-
"314": {
|
| 1573 |
-
"name": "fBodyAcc-bandsEnergy()-1,24",
|
| 1574 |
-
"min": 0.014754190974556432,
|
| 1575 |
-
"max": 3313.1800873519755
|
| 1576 |
-
},
|
| 1577 |
-
"315": {
|
| 1578 |
-
"name": "fBodyAcc-bandsEnergy()-25,48",
|
| 1579 |
-
"min": 0.001701552820289688,
|
| 1580 |
-
"max": 130.44973853411918
|
| 1581 |
-
},
|
| 1582 |
-
"316": {
|
| 1583 |
-
"name": "fBodyAcc-bandsEnergy()-1,8",
|
| 1584 |
-
"min": 0.005406430450198294,
|
| 1585 |
-
"max": 4832.795560246551
|
| 1586 |
-
},
|
| 1587 |
-
"317": {
|
| 1588 |
-
"name": "fBodyAcc-bandsEnergy()-9,16",
|
| 1589 |
-
"min": 0.0028402732594171413,
|
| 1590 |
-
"max": 446.3996656316805
|
| 1591 |
-
},
|
| 1592 |
-
"318": {
|
| 1593 |
-
"name": "fBodyAcc-bandsEnergy()-17,24",
|
| 1594 |
-
"min": 0.002311350804377598,
|
| 1595 |
-
"max": 170.00174588156742
|
| 1596 |
-
},
|
| 1597 |
-
"319": {
|
| 1598 |
-
"name": "fBodyAcc-bandsEnergy()-25,32",
|
| 1599 |
-
"min": 0.0007621336161870941,
|
| 1600 |
-
"max": 49.945008505147854
|
| 1601 |
-
},
|
| 1602 |
-
"320": {
|
| 1603 |
-
"name": "fBodyAcc-bandsEnergy()-33,40",
|
| 1604 |
-
"min": 0.00027154637838153043,
|
| 1605 |
-
"max": 17.703680468095268
|
| 1606 |
-
},
|
| 1607 |
-
"321": {
|
| 1608 |
-
"name": "fBodyAcc-bandsEnergy()-41,48",
|
| 1609 |
-
"min": 0.00021060361707929442,
|
| 1610 |
-
"max": 7.458339509466047
|
| 1611 |
-
},
|
| 1612 |
-
"322": {
|
| 1613 |
-
"name": "fBodyAcc-bandsEnergy()-49,56",
|
| 1614 |
-
"min": 5.0156957134404054e-05,
|
| 1615 |
-
"max": 4.511654470054515
|
| 1616 |
-
},
|
| 1617 |
-
"323": {
|
| 1618 |
-
"name": "fBodyAcc-bandsEnergy()-57,64",
|
| 1619 |
-
"min": 3.9759845449131736e-08,
|
| 1620 |
-
"max": 2.815808177370262
|
| 1621 |
-
},
|
| 1622 |
-
"324": {
|
| 1623 |
-
"name": "fBodyAcc-bandsEnergy()-1,16",
|
| 1624 |
-
"min": 0.016247916088730857,
|
| 1625 |
-
"max": 4833.3940438876025
|
| 1626 |
-
},
|
| 1627 |
-
"325": {
|
| 1628 |
-
"name": "fBodyAcc-bandsEnergy()-17,32",
|
| 1629 |
-
"min": 0.0034251055691045095,
|
| 1630 |
-
"max": 178.65563339954895
|
| 1631 |
-
},
|
| 1632 |
-
"326": {
|
| 1633 |
-
"name": "fBodyAcc-bandsEnergy()-33,48",
|
| 1634 |
-
"min": 0.0008199850612541953,
|
| 1635 |
-
"max": 21.74570025493538
|
| 1636 |
-
},
|
| 1637 |
-
"327": {
|
| 1638 |
-
"name": "fBodyAcc-bandsEnergy()-49,64",
|
| 1639 |
-
"min": 7.770167079909225e-05,
|
| 1640 |
-
"max": 6.968003230416617
|
| 1641 |
-
},
|
| 1642 |
-
"328": {
|
| 1643 |
-
"name": "fBodyAcc-bandsEnergy()-1,24",
|
| 1644 |
-
"min": 0.022542711990611124,
|
| 1645 |
-
"max": 4833.66936541378
|
| 1646 |
-
},
|
| 1647 |
-
"329": {
|
| 1648 |
-
"name": "fBodyAcc-bandsEnergy()-25,48",
|
| 1649 |
-
"min": 0.0020918370756561125,
|
| 1650 |
-
"max": 71.69070876008323
|
| 1651 |
-
},
|
| 1652 |
-
"330": {
|
| 1653 |
-
"name": "fBodyAcc-bandsEnergy()-1,8",
|
| 1654 |
-
"min": 0.017419743314532048,
|
| 1655 |
-
"max": 2309.379473829486
|
| 1656 |
-
},
|
| 1657 |
-
"331": {
|
| 1658 |
-
"name": "fBodyAcc-bandsEnergy()-9,16",
|
| 1659 |
-
"min": 0.00870006619228687,
|
| 1660 |
-
"max": 361.7939391691087
|
| 1661 |
-
},
|
| 1662 |
-
"332": {
|
| 1663 |
-
"name": "fBodyAcc-bandsEnergy()-17,24",
|
| 1664 |
-
"min": 0.0038523868222955053,
|
| 1665 |
-
"max": 214.16320517252393
|
| 1666 |
-
},
|
| 1667 |
-
"333": {
|
| 1668 |
-
"name": "fBodyAcc-bandsEnergy()-25,32",
|
| 1669 |
-
"min": 0.0017157232273768326,
|
| 1670 |
-
"max": 120.29449560794177
|
| 1671 |
-
},
|
| 1672 |
-
"334": {
|
| 1673 |
-
"name": "fBodyAcc-bandsEnergy()-33,40",
|
| 1674 |
-
"min": 0.0006008624258766215,
|
| 1675 |
-
"max": 41.69746881815616
|
| 1676 |
-
},
|
| 1677 |
-
"335": {
|
| 1678 |
-
"name": "fBodyAcc-bandsEnergy()-41,48",
|
| 1679 |
-
"min": 0.00038682378870926544,
|
| 1680 |
-
"max": 12.912369033221323
|
| 1681 |
-
},
|
| 1682 |
-
"336": {
|
| 1683 |
-
"name": "fBodyAcc-bandsEnergy()-49,56",
|
| 1684 |
-
"min": 0.00015397547444222123,
|
| 1685 |
-
"max": 6.453276020916135
|
| 1686 |
-
},
|
| 1687 |
-
"337": {
|
| 1688 |
-
"name": "fBodyAcc-bandsEnergy()-57,64",
|
| 1689 |
-
"min": 2.4225124354171243e-08,
|
| 1690 |
-
"max": 2.226122352587876
|
| 1691 |
-
},
|
| 1692 |
-
"338": {
|
| 1693 |
-
"name": "fBodyAcc-bandsEnergy()-1,16",
|
| 1694 |
-
"min": 0.03864675888532582,
|
| 1695 |
-
"max": 2310.2168667513306
|
| 1696 |
-
},
|
| 1697 |
-
"339": {
|
| 1698 |
-
"name": "fBodyAcc-bandsEnergy()-17,32",
|
| 1699 |
-
"min": 0.011479547806034792,
|
| 1700 |
-
"max": 334.45770078046564
|
| 1701 |
-
},
|
| 1702 |
-
"340": {
|
| 1703 |
-
"name": "fBodyAcc-bandsEnergy()-33,48",
|
| 1704 |
-
"min": 0.002288417818395397,
|
| 1705 |
-
"max": 54.36013099542112
|
| 1706 |
-
},
|
| 1707 |
-
"341": {
|
| 1708 |
-
"name": "fBodyAcc-bandsEnergy()-49,64",
|
| 1709 |
-
"min": 0.00015432691466135193,
|
| 1710 |
-
"max": 7.379874064435473
|
| 1711 |
-
},
|
| 1712 |
-
"342": {
|
| 1713 |
-
"name": "fBodyAcc-bandsEnergy()-1,24",
|
| 1714 |
-
"min": 0.05715269187124267,
|
| 1715 |
-
"max": 2310.387131518508
|
| 1716 |
-
},
|
| 1717 |
-
"343": {
|
| 1718 |
-
"name": "fBodyAcc-bandsEnergy()-25,48",
|
| 1719 |
-
"min": 0.006803746657778421,
|
| 1720 |
-
"max": 174.65462660336289
|
| 1721 |
-
},
|
| 1722 |
-
"344": {
|
| 1723 |
-
"name": "fBodyAccJerk-mean()-X",
|
| 1724 |
-
"min": 0.4628367911411038,
|
| 1725 |
-
"max": 130.90326989985402
|
| 1726 |
-
},
|
| 1727 |
-
"345": {
|
| 1728 |
-
"name": "fBodyAccJerk-mean()-Y",
|
| 1729 |
-
"min": 0.45444765605611215,
|
| 1730 |
-
"max": 75.72698207648175
|
| 1731 |
-
},
|
| 1732 |
-
"346": {
|
| 1733 |
-
"name": "fBodyAccJerk-mean()-Z",
|
| 1734 |
-
"min": 0.8726057602060784,
|
| 1735 |
-
"max": 105.56986129546289
|
| 1736 |
-
},
|
| 1737 |
-
"347": {
|
| 1738 |
-
"name": "fBodyAccJerk-std()-X",
|
| 1739 |
-
"min": 0.3275499539821552,
|
| 1740 |
-
"max": 120.76837351175024
|
| 1741 |
-
},
|
| 1742 |
-
"348": {
|
| 1743 |
-
"name": "fBodyAccJerk-std()-Y",
|
| 1744 |
-
"min": 0.3277700358612746,
|
| 1745 |
-
"max": 82.92956914931888
|
| 1746 |
-
},
|
| 1747 |
-
"349": {
|
| 1748 |
-
"name": "fBodyAccJerk-std()-Z",
|
| 1749 |
-
"min": 0.6129111098448281,
|
| 1750 |
-
"max": 111.44962205235908
|
| 1751 |
-
},
|
| 1752 |
-
"350": {
|
| 1753 |
-
"name": "fBodyAccJerk-mad()-X",
|
| 1754 |
-
"min": 0.24481413446484218,
|
| 1755 |
-
"max": 67.66401503164244
|
| 1756 |
-
},
|
| 1757 |
-
"351": {
|
| 1758 |
-
"name": "fBodyAccJerk-mad()-Y",
|
| 1759 |
-
"min": 0.25490192039854254,
|
| 1760 |
-
"max": 48.37408853773491
|
| 1761 |
-
},
|
| 1762 |
-
"352": {
|
| 1763 |
-
"name": "fBodyAccJerk-mad()-Z",
|
| 1764 |
-
"min": 0.3653792793244242,
|
| 1765 |
-
"max": 64.40328252861148
|
| 1766 |
-
},
|
| 1767 |
-
"353": {
|
| 1768 |
-
"name": "fBodyAccJerk-max()-X",
|
| 1769 |
-
"min": 1.335856096602167,
|
| 1770 |
-
"max": 686.8009029215207
|
| 1771 |
-
},
|
| 1772 |
-
"354": {
|
| 1773 |
-
"name": "fBodyAccJerk-max()-Y",
|
| 1774 |
-
"min": 1.4134065132783362,
|
| 1775 |
-
"max": 457.5129638665394
|
| 1776 |
-
},
|
| 1777 |
-
"355": {
|
| 1778 |
-
"name": "fBodyAccJerk-max()-Z",
|
| 1779 |
-
"min": 2.248117591917168,
|
| 1780 |
-
"max": 559.5396843602708
|
| 1781 |
-
},
|
| 1782 |
-
"356": {
|
| 1783 |
-
"name": "fBodyAccJerk-min()-X",
|
| 1784 |
-
"min": 7.165000000006194e-05,
|
| 1785 |
-
"max": 21.803468320235307
|
| 1786 |
-
},
|
| 1787 |
-
"357": {
|
| 1788 |
-
"name": "fBodyAccJerk-min()-Y",
|
| 1789 |
-
"min": 5.449999999712629e-06,
|
| 1790 |
-
"max": 16.102625680765506
|
| 1791 |
-
},
|
| 1792 |
-
"358": {
|
| 1793 |
-
"name": "fBodyAccJerk-min()-Z",
|
| 1794 |
-
"min": 0.00018599999999935335,
|
| 1795 |
-
"max": 15.340776451655199
|
| 1796 |
-
},
|
| 1797 |
-
"359": {
|
| 1798 |
-
"name": "fBodyAccJerk-sma()",
|
| 1799 |
-
"min": 2.0945724355015907,
|
| 1800 |
-
"max": 277.2991815929879
|
| 1801 |
-
},
|
| 1802 |
-
"360": {
|
| 1803 |
-
"name": "fBodyAccJerk-energy()-X",
|
| 1804 |
-
"min": 0.33992198423204834,
|
| 1805 |
-
"max": 28876.94368371198
|
| 1806 |
-
},
|
| 1807 |
-
"361": {
|
| 1808 |
-
"name": "fBodyAccJerk-energy()-Y",
|
| 1809 |
-
"min": 0.31395586850339563,
|
| 1810 |
-
"max": 11531.666434018478
|
| 1811 |
-
},
|
| 1812 |
-
"362": {
|
| 1813 |
-
"name": "fBodyAccJerk-energy()-Z",
|
| 1814 |
-
"min": 1.2921610287837284,
|
| 1815 |
-
"max": 23566.013869556955
|
| 1816 |
-
},
|
| 1817 |
-
"363": {
|
| 1818 |
-
"name": "fBodyAccJerk-iqr()-X",
|
| 1819 |
-
"min": 0.45183153905796114,
|
| 1820 |
-
"max": 136.72301462623955
|
| 1821 |
-
},
|
| 1822 |
-
"364": {
|
| 1823 |
-
"name": "fBodyAccJerk-iqr()-Y",
|
| 1824 |
-
"min": 0.5106198040351102,
|
| 1825 |
-
"max": 107.2065696669863
|
| 1826 |
-
},
|
| 1827 |
-
"365": {
|
| 1828 |
-
"name": "fBodyAccJerk-iqr()-Z",
|
| 1829 |
-
"min": 0.7318347145478054,
|
| 1830 |
-
"max": 116.7984330328269
|
| 1831 |
-
},
|
| 1832 |
-
"366": {
|
| 1833 |
-
"name": "fBodyAccJerk-entropy()-X",
|
| 1834 |
-
"min": 3.416490853619734,
|
| 1835 |
-
"max": 4.032164334579004
|
| 1836 |
-
},
|
| 1837 |
-
"367": {
|
| 1838 |
-
"name": "fBodyAccJerk-entropy()-Y",
|
| 1839 |
-
"min": 3.43511032542208,
|
| 1840 |
-
"max": 4.038468849166367
|
| 1841 |
-
},
|
| 1842 |
-
"368": {
|
| 1843 |
-
"name": "fBodyAccJerk-entropy()-Z",
|
| 1844 |
-
"min": 3.4494441750253193,
|
| 1845 |
-
"max": 4.033533167437243
|
| 1846 |
-
},
|
| 1847 |
-
"369": {
|
| 1848 |
-
"name": "fBodyAccJerk-maxInds-X",
|
| 1849 |
-
"min": 1.0,
|
| 1850 |
-
"max": 51.0
|
| 1851 |
-
},
|
| 1852 |
-
"370": {
|
| 1853 |
-
"name": "fBodyAccJerk-maxInds-Y",
|
| 1854 |
-
"min": 1.0,
|
| 1855 |
-
"max": 51.0
|
| 1856 |
-
},
|
| 1857 |
-
"371": {
|
| 1858 |
-
"name": "fBodyAccJerk-maxInds-Z",
|
| 1859 |
-
"min": 1.0,
|
| 1860 |
-
"max": 51.0
|
| 1861 |
-
},
|
| 1862 |
-
"372": {
|
| 1863 |
-
"name": "fBodyAccJerk-meanFreq()-X",
|
| 1864 |
-
"min": 17.35567462820525,
|
| 1865 |
-
"max": 33.279343932003584
|
| 1866 |
-
},
|
| 1867 |
-
"373": {
|
| 1868 |
-
"name": "fBodyAccJerk-meanFreq()-Y",
|
| 1869 |
-
"min": 16.014576920586485,
|
| 1870 |
-
"max": 34.13569874912843
|
| 1871 |
-
},
|
| 1872 |
-
"374": {
|
| 1873 |
-
"name": "fBodyAccJerk-meanFreq()-Z",
|
| 1874 |
-
"min": 19.14880573147533,
|
| 1875 |
-
"max": 31.23328007953361
|
| 1876 |
-
},
|
| 1877 |
-
"375": {
|
| 1878 |
-
"name": "fBodyAccJerk-skewness()-X",
|
| 1879 |
-
"min": -0.15911069873758898,
|
| 1880 |
-
"max": 4.217935841088276
|
| 1881 |
-
},
|
| 1882 |
-
"376": {
|
| 1883 |
-
"name": "fBodyAccJerk-kurtosis()-X",
|
| 1884 |
-
"min": -1.6864192389665331,
|
| 1885 |
-
"max": 22.01325033659963
|
| 1886 |
-
},
|
| 1887 |
-
"377": {
|
| 1888 |
-
"name": "fBodyAccJerk-skewness()-Y",
|
| 1889 |
-
"min": -0.4169935777951699,
|
| 1890 |
-
"max": 5.542537853284935
|
| 1891 |
-
},
|
| 1892 |
-
"378": {
|
| 1893 |
-
"name": "fBodyAccJerk-kurtosis()-Y",
|
| 1894 |
-
"min": -1.3490236843763141,
|
| 1895 |
-
"max": 35.50536963012938
|
| 1896 |
-
},
|
| 1897 |
-
"379": {
|
| 1898 |
-
"name": "fBodyAccJerk-skewness()-Z",
|
| 1899 |
-
"min": -0.09487574920519555,
|
| 1900 |
-
"max": 4.431310110202496
|
| 1901 |
-
},
|
| 1902 |
-
"380": {
|
| 1903 |
-
"name": "fBodyAccJerk-kurtosis()-Z",
|
| 1904 |
-
"min": -1.2616100517735551,
|
| 1905 |
-
"max": 23.446776096573945
|
| 1906 |
-
},
|
| 1907 |
-
"381": {
|
| 1908 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,8",
|
| 1909 |
-
"min": 0.19634314108697953,
|
| 1910 |
-
"max": 487959.10271620407
|
| 1911 |
-
},
|
| 1912 |
-
"382": {
|
| 1913 |
-
"name": "fBodyAccJerk-bandsEnergy()-9,16",
|
| 1914 |
-
"min": 2.2226025622666734,
|
| 1915 |
-
"max": 681705.6823304204
|
| 1916 |
-
},
|
| 1917 |
-
"383": {
|
| 1918 |
-
"name": "fBodyAccJerk-bandsEnergy()-17,24",
|
| 1919 |
-
"min": 2.214949652059473,
|
| 1920 |
-
"max": 451677.21619104553
|
| 1921 |
-
},
|
| 1922 |
-
"384": {
|
| 1923 |
-
"name": "fBodyAccJerk-bandsEnergy()-25,32",
|
| 1924 |
-
"min": 2.2693892151081467,
|
| 1925 |
-
"max": 352789.0929182987
|
| 1926 |
-
},
|
| 1927 |
-
"385": {
|
| 1928 |
-
"name": "fBodyAccJerk-bandsEnergy()-33,40",
|
| 1929 |
-
"min": 1.5350959145555498,
|
| 1930 |
-
"max": 138868.5799731129
|
| 1931 |
-
},
|
| 1932 |
-
"386": {
|
| 1933 |
-
"name": "fBodyAccJerk-bandsEnergy()-41,48",
|
| 1934 |
-
"min": 0.6033198721101419,
|
| 1935 |
-
"max": 113210.46923657591
|
| 1936 |
-
},
|
| 1937 |
-
"387": {
|
| 1938 |
-
"name": "fBodyAccJerk-bandsEnergy()-49,56",
|
| 1939 |
-
"min": 0.30619202705847737,
|
| 1940 |
-
"max": 91793.54734930322
|
| 1941 |
-
},
|
| 1942 |
-
"388": {
|
| 1943 |
-
"name": "fBodyAccJerk-bandsEnergy()-57,64",
|
| 1944 |
-
"min": 5.8918965009400135e-05,
|
| 1945 |
-
"max": 8523.270103438279
|
| 1946 |
-
},
|
| 1947 |
-
"389": {
|
| 1948 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,16",
|
| 1949 |
-
"min": 3.2614884551153485,
|
| 1950 |
-
"max": 1112682.5422150625
|
| 1951 |
-
},
|
| 1952 |
-
"390": {
|
| 1953 |
-
"name": "fBodyAccJerk-bandsEnergy()-17,32",
|
| 1954 |
-
"min": 9.171077029678896,
|
| 1955 |
-
"max": 655883.3897515865
|
| 1956 |
-
},
|
| 1957 |
-
"391": {
|
| 1958 |
-
"name": "fBodyAccJerk-bandsEnergy()-33,48",
|
| 1959 |
-
"min": 4.2239450594924675,
|
| 1960 |
-
"max": 252079.04920968882
|
| 1961 |
-
},
|
| 1962 |
-
"392": {
|
| 1963 |
-
"name": "fBodyAccJerk-bandsEnergy()-49,64",
|
| 1964 |
-
"min": 0.33760645135606987,
|
| 1965 |
-
"max": 92199.24100462561
|
| 1966 |
-
},
|
| 1967 |
-
"393": {
|
| 1968 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,24",
|
| 1969 |
-
"min": 9.021749459917444,
|
| 1970 |
-
"max": 1354177.1966499668
|
| 1971 |
-
},
|
| 1972 |
-
"394": {
|
| 1973 |
-
"name": "fBodyAccJerk-bandsEnergy()-25,48",
|
| 1974 |
-
"min": 8.967502546368557,
|
| 1975 |
-
"max": 451382.88088563905
|
| 1976 |
-
},
|
| 1977 |
-
"395": {
|
| 1978 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,8",
|
| 1979 |
-
"min": 0.3445267354801653,
|
| 1980 |
-
"max": 89802.969052987
|
| 1981 |
-
},
|
| 1982 |
-
"396": {
|
| 1983 |
-
"name": "fBodyAccJerk-bandsEnergy()-9,16",
|
| 1984 |
-
"min": 1.3886563334579907,
|
| 1985 |
-
"max": 389740.9836707453
|
| 1986 |
-
},
|
| 1987 |
-
"397": {
|
| 1988 |
-
"name": "fBodyAccJerk-bandsEnergy()-17,24",
|
| 1989 |
-
"min": 4.624237133713184,
|
| 1990 |
-
"max": 300653.2201528965
|
| 1991 |
-
},
|
| 1992 |
-
"398": {
|
| 1993 |
-
"name": "fBodyAccJerk-bandsEnergy()-25,32",
|
| 1994 |
-
"min": 2.732913069058874,
|
| 1995 |
-
"max": 147915.52688097768
|
| 1996 |
-
},
|
| 1997 |
-
"399": {
|
| 1998 |
-
"name": "fBodyAccJerk-bandsEnergy()-33,40",
|
| 1999 |
-
"min": 1.2504066034951786,
|
| 2000 |
-
"max": 76954.03292481464
|
| 2001 |
-
},
|
| 2002 |
-
"400": {
|
| 2003 |
-
"name": "fBodyAccJerk-bandsEnergy()-41,48",
|
| 2004 |
-
"min": 1.5848737040075767,
|
| 2005 |
-
"max": 51932.054115492036
|
| 2006 |
-
},
|
| 2007 |
-
"401": {
|
| 2008 |
-
"name": "fBodyAccJerk-bandsEnergy()-49,56",
|
| 2009 |
-
"min": 0.42434971595016885,
|
| 2010 |
-
"max": 31803.248321812385
|
| 2011 |
-
},
|
| 2012 |
-
"402": {
|
| 2013 |
-
"name": "fBodyAccJerk-bandsEnergy()-57,64",
|
| 2014 |
-
"min": 2.1861275657521006e-05,
|
| 2015 |
-
"max": 5136.260225532653
|
| 2016 |
-
},
|
| 2017 |
-
"403": {
|
| 2018 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,16",
|
| 2019 |
-
"min": 2.765846221178636,
|
| 2020 |
-
"max": 432256.5011325866
|
| 2021 |
-
},
|
| 2022 |
-
"404": {
|
| 2023 |
-
"name": "fBodyAccJerk-bandsEnergy()-17,32",
|
| 2024 |
-
"min": 7.806077690740377,
|
| 2025 |
-
"max": 374017.16369594214
|
| 2026 |
-
},
|
| 2027 |
-
"405": {
|
| 2028 |
-
"name": "fBodyAccJerk-bandsEnergy()-33,48",
|
| 2029 |
-
"min": 5.427992591674114,
|
| 2030 |
-
"max": 121249.24426093763
|
| 2031 |
-
},
|
| 2032 |
-
"406": {
|
| 2033 |
-
"name": "fBodyAccJerk-bandsEnergy()-49,64",
|
| 2034 |
-
"min": 0.4311665031819857,
|
| 2035 |
-
"max": 33388.91468520344
|
| 2036 |
-
},
|
| 2037 |
-
"407": {
|
| 2038 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,24",
|
| 2039 |
-
"min": 8.270324465439757,
|
| 2040 |
-
"max": 604706.0116090263
|
| 2041 |
-
},
|
| 2042 |
-
"408": {
|
| 2043 |
-
"name": "fBodyAccJerk-bandsEnergy()-25,48",
|
| 2044 |
-
"min": 11.106609008419923,
|
| 2045 |
-
"max": 250876.27342138632
|
| 2046 |
-
},
|
| 2047 |
-
"409": {
|
| 2048 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,8",
|
| 2049 |
-
"min": 0.4965488935801202,
|
| 2050 |
-
"max": 90129.70232146455
|
| 2051 |
-
},
|
| 2052 |
-
"410": {
|
| 2053 |
-
"name": "fBodyAccJerk-bandsEnergy()-9,16",
|
| 2054 |
-
"min": 6.966425533189531,
|
| 2055 |
-
"max": 209850.60657258285
|
| 2056 |
-
},
|
| 2057 |
-
"411": {
|
| 2058 |
-
"name": "fBodyAccJerk-bandsEnergy()-17,24",
|
| 2059 |
-
"min": 9.349601148410397,
|
| 2060 |
-
"max": 481762.22962454817
|
| 2061 |
-
},
|
| 2062 |
-
"412": {
|
| 2063 |
-
"name": "fBodyAccJerk-bandsEnergy()-25,32",
|
| 2064 |
-
"min": 6.24936384606945,
|
| 2065 |
-
"max": 451950.967853051
|
| 2066 |
-
},
|
| 2067 |
-
"413": {
|
| 2068 |
-
"name": "fBodyAccJerk-bandsEnergy()-33,40",
|
| 2069 |
-
"min": 5.3183544266302185,
|
| 2070 |
-
"max": 248753.7243771523
|
| 2071 |
-
},
|
| 2072 |
-
"414": {
|
| 2073 |
-
"name": "fBodyAccJerk-bandsEnergy()-41,48",
|
| 2074 |
-
"min": 3.0288260450020026,
|
| 2075 |
-
"max": 92528.81756266626
|
| 2076 |
-
},
|
| 2077 |
-
"415": {
|
| 2078 |
-
"name": "fBodyAccJerk-bandsEnergy()-49,56",
|
| 2079 |
-
"min": 0.7967681104465839,
|
| 2080 |
-
"max": 57971.24133144367
|
| 2081 |
-
},
|
| 2082 |
-
"416": {
|
| 2083 |
-
"name": "fBodyAccJerk-bandsEnergy()-57,64",
|
| 2084 |
-
"min": 0.00010023773310129967,
|
| 2085 |
-
"max": 9506.028711612198
|
| 2086 |
-
},
|
| 2087 |
-
"417": {
|
| 2088 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,16",
|
| 2089 |
-
"min": 10.760270052800498,
|
| 2090 |
-
"max": 269302.58504333126
|
| 2091 |
-
},
|
| 2092 |
-
"418": {
|
| 2093 |
-
"name": "fBodyAccJerk-bandsEnergy()-17,32",
|
| 2094 |
-
"min": 30.067438885857403,
|
| 2095 |
-
"max": 933713.1974775991
|
| 2096 |
-
},
|
| 2097 |
-
"419": {
|
| 2098 |
-
"name": "fBodyAccJerk-bandsEnergy()-33,48",
|
| 2099 |
-
"min": 13.446232916603478,
|
| 2100 |
-
"max": 328936.0412518716
|
| 2101 |
-
},
|
| 2102 |
-
"420": {
|
| 2103 |
-
"name": "fBodyAccJerk-bandsEnergy()-49,64",
|
| 2104 |
-
"min": 0.8077064056071276,
|
| 2105 |
-
"max": 58036.93778245307
|
| 2106 |
-
},
|
| 2107 |
-
"421": {
|
| 2108 |
-
"name": "fBodyAccJerk-bandsEnergy()-1,24",
|
| 2109 |
-
"min": 35.3649026636445,
|
| 2110 |
-
"max": 708265.5203267524
|
| 2111 |
-
},
|
| 2112 |
-
"422": {
|
| 2113 |
-
"name": "fBodyAccJerk-bandsEnergy()-25,48",
|
| 2114 |
-
"min": 25.165532711715667,
|
| 2115 |
-
"max": 780887.0091049226
|
| 2116 |
-
},
|
| 2117 |
-
"423": {
|
| 2118 |
-
"name": "fBodyGyro-mean()-X",
|
| 2119 |
-
"min": 0.016314320626294655,
|
| 2120 |
-
"max": 9.422155819754993
|
| 2121 |
-
},
|
| 2122 |
-
"424": {
|
| 2123 |
-
"name": "fBodyGyro-mean()-Y",
|
| 2124 |
-
"min": 0.017308432722376386,
|
| 2125 |
-
"max": 11.00466097339114
|
| 2126 |
-
},
|
| 2127 |
-
"425": {
|
| 2128 |
-
"name": "fBodyGyro-mean()-Z",
|
| 2129 |
-
"min": 0.018407064527380917,
|
| 2130 |
-
"max": 5.82837341478685
|
| 2131 |
-
},
|
| 2132 |
-
"426": {
|
| 2133 |
-
"name": "fBodyGyro-std()-X",
|
| 2134 |
-
"min": 0.015245481941087468,
|
| 2135 |
-
"max": 19.46593178626173
|
| 2136 |
-
},
|
| 2137 |
-
"427": {
|
| 2138 |
-
"name": "fBodyGyro-std()-Y",
|
| 2139 |
-
"min": 0.015073089162351231,
|
| 2140 |
-
"max": 13.723720351005777
|
| 2141 |
-
},
|
| 2142 |
-
"428": {
|
| 2143 |
-
"name": "fBodyGyro-std()-Z",
|
| 2144 |
-
"min": 0.017023551688804858,
|
| 2145 |
-
"max": 11.076054588341252
|
| 2146 |
-
},
|
| 2147 |
-
"429": {
|
| 2148 |
-
"name": "fBodyGyro-mad()-X",
|
| 2149 |
-
"min": 0.005636999892928657,
|
| 2150 |
-
"max": 3.6349889438621736
|
| 2151 |
-
},
|
| 2152 |
-
"430": {
|
| 2153 |
-
"name": "fBodyGyro-mad()-Y",
|
| 2154 |
-
"min": 0.005921797361361499,
|
| 2155 |
-
"max": 6.785559270447114
|
| 2156 |
-
},
|
| 2157 |
-
"431": {
|
| 2158 |
-
"name": "fBodyGyro-mad()-Z",
|
| 2159 |
-
"min": 0.007597671784425804,
|
| 2160 |
-
"max": 2.9914552023711765
|
| 2161 |
-
},
|
| 2162 |
-
"432": {
|
| 2163 |
-
"name": "fBodyGyro-max()-X",
|
| 2164 |
-
"min": 0.06607816321,
|
| 2165 |
-
"max": 117.012665
|
| 2166 |
-
},
|
| 2167 |
-
"433": {
|
| 2168 |
-
"name": "fBodyGyro-max()-Y",
|
| 2169 |
-
"min": 0.0533851005760631,
|
| 2170 |
-
"max": 92.28196159099338
|
| 2171 |
-
},
|
| 2172 |
-
"434": {
|
| 2173 |
-
"name": "fBodyGyro-max()-Z",
|
| 2174 |
-
"min": 0.0665115154644795,
|
| 2175 |
-
"max": 76.96565781747961
|
| 2176 |
-
},
|
| 2177 |
-
"435": {
|
| 2178 |
-
"name": "fBodyGyro-min()-X",
|
| 2179 |
-
"min": 4.827285153041225e-06,
|
| 2180 |
-
"max": 1.5661257894586067
|
| 2181 |
-
},
|
| 2182 |
-
"436": {
|
| 2183 |
-
"name": "fBodyGyro-min()-Y",
|
| 2184 |
-
"min": 1.2346961989128442e-05,
|
| 2185 |
-
"max": 1.3141493927496437
|
| 2186 |
-
},
|
| 2187 |
-
"437": {
|
| 2188 |
-
"name": "fBodyGyro-min()-Z",
|
| 2189 |
-
"min": 7.854520340317124e-06,
|
| 2190 |
-
"max": 1.0660006431405662
|
| 2191 |
-
},
|
| 2192 |
-
"438": {
|
| 2193 |
-
"name": "fBodyGyro-sma()",
|
| 2194 |
-
"min": 0.06258657698041892,
|
| 2195 |
-
"max": 25.07732440364832
|
| 2196 |
-
},
|
| 2197 |
-
"439": {
|
| 2198 |
-
"name": "fBodyGyro-energy()-X",
|
| 2199 |
-
"min": 0.0005245311551547874,
|
| 2200 |
-
"max": 463.4007637095542
|
| 2201 |
-
},
|
| 2202 |
-
"440": {
|
| 2203 |
-
"name": "fBodyGyro-energy()-Y",
|
| 2204 |
-
"min": 0.0005267798602012197,
|
| 2205 |
-
"max": 308.54688634914567
|
| 2206 |
-
},
|
| 2207 |
-
"441": {
|
| 2208 |
-
"name": "fBodyGyro-energy()-Z",
|
| 2209 |
-
"min": 0.0006286213366165755,
|
| 2210 |
-
"max": 140.31053252912236
|
| 2211 |
-
},
|
| 2212 |
-
"442": {
|
| 2213 |
-
"name": "fBodyGyro-iqr()-X",
|
| 2214 |
-
"min": 0.01371117989424013,
|
| 2215 |
-
"max": 9.417859284004836
|
| 2216 |
-
},
|
| 2217 |
-
"443": {
|
| 2218 |
-
"name": "fBodyGyro-iqr()-Y",
|
| 2219 |
-
"min": 0.016964481270246187,
|
| 2220 |
-
"max": 14.613290116907585
|
| 2221 |
-
},
|
| 2222 |
-
"444": {
|
| 2223 |
-
"name": "fBodyGyro-iqr()-Z",
|
| 2224 |
-
"min": 0.016511494136773903,
|
| 2225 |
-
"max": 6.963030628511725
|
| 2226 |
-
},
|
| 2227 |
-
"445": {
|
| 2228 |
-
"name": "fBodyGyro-entropy()-X",
|
| 2229 |
-
"min": 1.2357520757706306,
|
| 2230 |
-
"max": 4.042275132483958
|
| 2231 |
-
},
|
| 2232 |
-
"446": {
|
| 2233 |
-
"name": "fBodyGyro-entropy()-Y",
|
| 2234 |
-
"min": 1.5552691644338834,
|
| 2235 |
-
"max": 3.99336444235346
|
| 2236 |
-
},
|
| 2237 |
-
"447": {
|
| 2238 |
-
"name": "fBodyGyro-entropy()-Z",
|
| 2239 |
-
"min": 1.275806532628427,
|
| 2240 |
-
"max": 3.9716034061903462
|
| 2241 |
-
},
|
| 2242 |
-
"448": {
|
| 2243 |
-
"name": "fBodyGyro-maxInds-X",
|
| 2244 |
-
"min": 1.0,
|
| 2245 |
-
"max": 32.0
|
| 2246 |
-
},
|
| 2247 |
-
"449": {
|
| 2248 |
-
"name": "fBodyGyro-maxInds-Y",
|
| 2249 |
-
"min": 1.0,
|
| 2250 |
-
"max": 29.0
|
| 2251 |
-
},
|
| 2252 |
-
"450": {
|
| 2253 |
-
"name": "fBodyGyro-maxInds-Z",
|
| 2254 |
-
"min": 1.0,
|
| 2255 |
-
"max": 26.0
|
| 2256 |
-
},
|
| 2257 |
-
"451": {
|
| 2258 |
-
"name": "fBodyGyro-meanFreq()-X",
|
| 2259 |
-
"min": 3.2379469244937384,
|
| 2260 |
-
"max": 26.490646686720936
|
| 2261 |
-
},
|
| 2262 |
-
"452": {
|
| 2263 |
-
"name": "fBodyGyro-meanFreq()-Y",
|
| 2264 |
-
"min": 4.019356153745302,
|
| 2265 |
-
"max": 24.88615102986705
|
| 2266 |
-
},
|
| 2267 |
-
"453": {
|
| 2268 |
-
"name": "fBodyGyro-meanFreq()-Z",
|
| 2269 |
-
"min": 3.0748864873616606,
|
| 2270 |
-
"max": 23.672419273191743
|
| 2271 |
-
},
|
| 2272 |
-
"454": {
|
| 2273 |
-
"name": "fBodyGyro-skewness()-X",
|
| 2274 |
-
"min": 0.23290704873180104,
|
| 2275 |
-
"max": 7.763214970332133
|
| 2276 |
-
},
|
| 2277 |
-
"455": {
|
| 2278 |
-
"name": "fBodyGyro-kurtosis()-X",
|
| 2279 |
-
"min": -0.9985662308732359,
|
| 2280 |
-
"max": 58.51422168797056
|
| 2281 |
-
},
|
| 2282 |
-
"456": {
|
| 2283 |
-
"name": "fBodyGyro-skewness()-Y",
|
| 2284 |
-
"min": -0.2090170461083047,
|
| 2285 |
-
"max": 7.706652293551183
|
| 2286 |
-
},
|
| 2287 |
-
"457": {
|
| 2288 |
-
"name": "fBodyGyro-kurtosis()-Y",
|
| 2289 |
-
"min": -1.53895997788601,
|
| 2290 |
-
"max": 57.918617604593415
|
| 2291 |
-
},
|
| 2292 |
-
"458": {
|
| 2293 |
-
"name": "fBodyGyro-skewness()-Z",
|
| 2294 |
-
"min": 0.5161176580027725,
|
| 2295 |
-
"max": 7.769740771737564
|
| 2296 |
-
},
|
| 2297 |
-
"459": {
|
| 2298 |
-
"name": "fBodyGyro-kurtosis()-Z",
|
| 2299 |
-
"min": -1.2080010166999977,
|
| 2300 |
-
"max": 58.58436612370891
|
| 2301 |
-
},
|
| 2302 |
-
"460": {
|
| 2303 |
-
"name": "fBodyGyro-bandsEnergy()-1,8",
|
| 2304 |
-
"min": 0.009094987230944214,
|
| 2305 |
-
"max": 27356.76971954018
|
| 2306 |
-
},
|
| 2307 |
-
"461": {
|
| 2308 |
-
"name": "fBodyGyro-bandsEnergy()-9,16",
|
| 2309 |
-
"min": 0.004171170044938749,
|
| 2310 |
-
"max": 3730.612606431678
|
| 2311 |
-
},
|
| 2312 |
-
"462": {
|
| 2313 |
-
"name": "fBodyGyro-bandsEnergy()-17,24",
|
| 2314 |
-
"min": 0.0019930712939066064,
|
| 2315 |
-
"max": 1338.3684439773233
|
| 2316 |
-
},
|
| 2317 |
-
"463": {
|
| 2318 |
-
"name": "fBodyGyro-bandsEnergy()-25,32",
|
| 2319 |
-
"min": 0.0009770849952446799,
|
| 2320 |
-
"max": 741.1687027456685
|
| 2321 |
-
},
|
| 2322 |
-
"464": {
|
| 2323 |
-
"name": "fBodyGyro-bandsEnergy()-33,40",
|
| 2324 |
-
"min": 0.00042375348817032997,
|
| 2325 |
-
"max": 197.9386888360205
|
| 2326 |
-
},
|
| 2327 |
-
"465": {
|
| 2328 |
-
"name": "fBodyGyro-bandsEnergy()-41,48",
|
| 2329 |
-
"min": 0.00015749782589132602,
|
| 2330 |
-
"max": 111.8306296056
|
| 2331 |
-
},
|
| 2332 |
-
"466": {
|
| 2333 |
-
"name": "fBodyGyro-bandsEnergy()-49,56",
|
| 2334 |
-
"min": 8.146879234643517e-05,
|
| 2335 |
-
"max": 76.74530782711977
|
| 2336 |
-
},
|
| 2337 |
-
"467": {
|
| 2338 |
-
"name": "fBodyGyro-bandsEnergy()-57,64",
|
| 2339 |
-
"min": 2.495010030832153e-08,
|
| 2340 |
-
"max": 56.863067544755445
|
| 2341 |
-
},
|
| 2342 |
-
"468": {
|
| 2343 |
-
"name": "fBodyGyro-bandsEnergy()-1,16",
|
| 2344 |
-
"min": 0.02373028538298916,
|
| 2345 |
-
"max": 28868.491484954542
|
| 2346 |
-
},
|
| 2347 |
-
"469": {
|
| 2348 |
-
"name": "fBodyGyro-bandsEnergy()-17,32",
|
| 2349 |
-
"min": 0.004722286812640953,
|
| 2350 |
-
"max": 1665.4164657167285
|
| 2351 |
-
},
|
| 2352 |
-
"470": {
|
| 2353 |
-
"name": "fBodyGyro-bandsEnergy()-33,48",
|
| 2354 |
-
"min": 0.001360803200703357,
|
| 2355 |
-
"max": 286.4064783759284
|
| 2356 |
-
},
|
| 2357 |
-
"471": {
|
| 2358 |
-
"name": "fBodyGyro-bandsEnergy()-49,64",
|
| 2359 |
-
"min": 9.354830478070986e-05,
|
| 2360 |
-
"max": 133.60837537187524
|
| 2361 |
-
},
|
| 2362 |
-
"472": {
|
| 2363 |
-
"name": "fBodyGyro-bandsEnergy()-1,24",
|
| 2364 |
-
"min": 0.02882703178700683,
|
| 2365 |
-
"max": 29515.00035839448
|
| 2366 |
-
},
|
| 2367 |
-
"473": {
|
| 2368 |
-
"name": "fBodyGyro-bandsEnergy()-25,48",
|
| 2369 |
-
"min": 0.0032073932552019215,
|
| 2370 |
-
"max": 1027.5751811215969
|
| 2371 |
-
},
|
| 2372 |
-
"474": {
|
| 2373 |
-
"name": "fBodyGyro-bandsEnergy()-1,8",
|
| 2374 |
-
"min": 0.006737175490407506,
|
| 2375 |
-
"max": 10662.317637021766
|
| 2376 |
-
},
|
| 2377 |
-
"475": {
|
| 2378 |
-
"name": "fBodyGyro-bandsEnergy()-9,16",
|
| 2379 |
-
"min": 0.005294895188508087,
|
| 2380 |
-
"max": 10428.934324060729
|
| 2381 |
-
},
|
| 2382 |
-
"476": {
|
| 2383 |
-
"name": "fBodyGyro-bandsEnergy()-17,24",
|
| 2384 |
-
"min": 0.003310262743222727,
|
| 2385 |
-
"max": 8571.455398683449
|
| 2386 |
-
},
|
| 2387 |
-
"477": {
|
| 2388 |
-
"name": "fBodyGyro-bandsEnergy()-25,32",
|
| 2389 |
-
"min": 0.0013022023450892932,
|
| 2390 |
-
"max": 2666.35221307885
|
| 2391 |
-
},
|
| 2392 |
-
"478": {
|
| 2393 |
-
"name": "fBodyGyro-bandsEnergy()-33,40",
|
| 2394 |
-
"min": 0.0006849660999934517,
|
| 2395 |
-
"max": 928.3144805209527
|
| 2396 |
-
},
|
| 2397 |
-
"479": {
|
| 2398 |
-
"name": "fBodyGyro-bandsEnergy()-41,48",
|
| 2399 |
-
"min": 0.0003007047394871467,
|
| 2400 |
-
"max": 229.62115921506023
|
| 2401 |
-
},
|
| 2402 |
-
"480": {
|
| 2403 |
-
"name": "fBodyGyro-bandsEnergy()-49,56",
|
| 2404 |
-
"min": 0.00017849011972244486,
|
| 2405 |
-
"max": 93.29140002514505
|
| 2406 |
-
},
|
| 2407 |
-
"481": {
|
| 2408 |
-
"name": "fBodyGyro-bandsEnergy()-57,64",
|
| 2409 |
-
"min": 5.817040544932034e-08,
|
| 2410 |
-
"max": 48.79796880216024
|
| 2411 |
-
},
|
| 2412 |
-
"482": {
|
| 2413 |
-
"name": "fBodyGyro-bandsEnergy()-1,16",
|
| 2414 |
-
"min": 0.016615803694764626,
|
| 2415 |
-
"max": 16048.56858855874
|
| 2416 |
-
},
|
| 2417 |
-
"483": {
|
| 2418 |
-
"name": "fBodyGyro-bandsEnergy()-17,32",
|
| 2419 |
-
"min": 0.005795107287563859,
|
| 2420 |
-
"max": 9114.222287974902
|
| 2421 |
-
},
|
| 2422 |
-
"484": {
|
| 2423 |
-
"name": "fBodyGyro-bandsEnergy()-33,48",
|
| 2424 |
-
"min": 0.00111964323655206,
|
| 2425 |
-
"max": 1144.7663870653257
|
| 2426 |
-
},
|
| 2427 |
-
"485": {
|
| 2428 |
-
"name": "fBodyGyro-bandsEnergy()-49,64",
|
| 2429 |
-
"min": 0.00018523944914305512,
|
| 2430 |
-
"max": 113.76692654518531
|
| 2431 |
-
},
|
| 2432 |
-
"486": {
|
| 2433 |
-
"name": "fBodyGyro-bandsEnergy()-1,24",
|
| 2434 |
-
"min": 0.02794651350834082,
|
| 2435 |
-
"max": 17363.900197610405
|
| 2436 |
-
},
|
| 2437 |
-
"487": {
|
| 2438 |
-
"name": "fBodyGyro-bandsEnergy()-25,48",
|
| 2439 |
-
"min": 0.0035343446357684596,
|
| 2440 |
-
"max": 3491.309669449439
|
| 2441 |
-
},
|
| 2442 |
-
"488": {
|
| 2443 |
-
"name": "fBodyGyro-bandsEnergy()-1,8",
|
| 2444 |
-
"min": 0.0072634765534291094,
|
| 2445 |
-
"max": 8562.695968456674
|
| 2446 |
-
},
|
| 2447 |
-
"489": {
|
| 2448 |
-
"name": "fBodyGyro-bandsEnergy()-9,16",
|
| 2449 |
-
"min": 0.007121895190174638,
|
| 2450 |
-
"max": 2555.0696718404633
|
| 2451 |
-
},
|
| 2452 |
-
"490": {
|
| 2453 |
-
"name": "fBodyGyro-bandsEnergy()-17,24",
|
| 2454 |
-
"min": 0.002158364816173335,
|
| 2455 |
-
"max": 1170.0299732721128
|
| 2456 |
-
},
|
| 2457 |
-
"491": {
|
| 2458 |
-
"name": "fBodyGyro-bandsEnergy()-25,32",
|
| 2459 |
-
"min": 0.0012766166295392644,
|
| 2460 |
-
"max": 499.7603550570554
|
| 2461 |
-
},
|
| 2462 |
-
"492": {
|
| 2463 |
-
"name": "fBodyGyro-bandsEnergy()-33,40",
|
| 2464 |
-
"min": 0.0006805472797776749,
|
| 2465 |
-
"max": 223.78292988258377
|
| 2466 |
-
},
|
| 2467 |
-
"493": {
|
| 2468 |
-
"name": "fBodyGyro-bandsEnergy()-41,48",
|
| 2469 |
-
"min": 0.00017640189200608577,
|
| 2470 |
-
"max": 73.46010766682528
|
| 2471 |
-
},
|
| 2472 |
-
"494": {
|
| 2473 |
-
"name": "fBodyGyro-bandsEnergy()-49,56",
|
| 2474 |
-
"min": 0.00010398419526083536,
|
| 2475 |
-
"max": 22.67069071572638
|
| 2476 |
-
},
|
| 2477 |
-
"495": {
|
| 2478 |
-
"name": "fBodyGyro-bandsEnergy()-57,64",
|
| 2479 |
-
"min": 2.017859923812237e-07,
|
| 2480 |
-
"max": 17.751019872095753
|
| 2481 |
-
},
|
| 2482 |
-
"496": {
|
| 2483 |
-
"name": "fBodyGyro-bandsEnergy()-1,16",
|
| 2484 |
-
"min": 0.024537744640541044,
|
| 2485 |
-
"max": 8932.614551347204
|
| 2486 |
-
},
|
| 2487 |
-
"497": {
|
| 2488 |
-
"name": "fBodyGyro-bandsEnergy()-17,32",
|
| 2489 |
-
"min": 0.007125166885141811,
|
| 2490 |
-
"max": 1241.5102277598644
|
| 2491 |
-
},
|
| 2492 |
-
"498": {
|
| 2493 |
-
"name": "fBodyGyro-bandsEnergy()-33,48",
|
| 2494 |
-
"min": 0.0018050466002682017,
|
| 2495 |
-
"max": 289.11337567939347
|
| 2496 |
-
},
|
| 2497 |
-
"499": {
|
| 2498 |
-
"name": "fBodyGyro-bandsEnergy()-49,64",
|
| 2499 |
-
"min": 0.00010823181127660029,
|
| 2500 |
-
"max": 40.42171058782213
|
| 2501 |
-
},
|
| 2502 |
-
"500": {
|
| 2503 |
-
"name": "fBodyGyro-bandsEnergy()-1,24",
|
| 2504 |
-
"min": 0.03369028112738488,
|
| 2505 |
-
"max": 8969.766691073819
|
| 2506 |
-
},
|
| 2507 |
-
"501": {
|
| 2508 |
-
"name": "fBodyGyro-bandsEnergy()-25,48",
|
| 2509 |
-
"min": 0.003867269583824559,
|
| 2510 |
-
"max": 783.7574154195805
|
| 2511 |
-
},
|
| 2512 |
-
"502": {
|
| 2513 |
-
"name": "fBodyAccMag-mean()",
|
| 2514 |
-
"min": 0.02680749699787196,
|
| 2515 |
-
"max": 3.9551395414163233
|
| 2516 |
-
},
|
| 2517 |
-
"503": {
|
| 2518 |
-
"name": "fBodyAccMag-std()",
|
| 2519 |
-
"min": 0.06624383333822732,
|
| 2520 |
-
"max": 10.81348219785095
|
| 2521 |
-
},
|
| 2522 |
-
"504": {
|
| 2523 |
-
"name": "fBodyAccMag-mad()",
|
| 2524 |
-
"min": 0.005379004524554695,
|
| 2525 |
-
"max": 1.2778227143489536
|
| 2526 |
-
},
|
| 2527 |
-
"505": {
|
| 2528 |
-
"name": "fBodyAccMag-max()",
|
| 2529 |
-
"min": 0.5421916909118834,
|
| 2530 |
-
"max": 87.77202290840538
|
| 2531 |
-
},
|
| 2532 |
-
"506": {
|
| 2533 |
-
"name": "fBodyAccMag-min()",
|
| 2534 |
-
"min": 3.1388124252401924e-05,
|
| 2535 |
-
"max": 0.5184860239484557
|
| 2536 |
-
},
|
| 2537 |
-
"507": {
|
| 2538 |
-
"name": "fBodyAccMag-sma()",
|
| 2539 |
-
"min": 0.02680749699787196,
|
| 2540 |
-
"max": 3.9551395414163233
|
| 2541 |
-
},
|
| 2542 |
-
"508": {
|
| 2543 |
-
"name": "fBodyAccMag-energy()",
|
| 2544 |
-
"min": 0.005311476142537404,
|
| 2545 |
-
"max": 132.00464580599308
|
| 2546 |
-
},
|
| 2547 |
-
"509": {
|
| 2548 |
-
"name": "fBodyAccMag-iqr()",
|
| 2549 |
-
"min": 0.011989119718243596,
|
| 2550 |
-
"max": 3.5391195673447386
|
| 2551 |
-
},
|
| 2552 |
-
"510": {
|
| 2553 |
-
"name": "fBodyAccMag-entropy()",
|
| 2554 |
-
"min": 1.0293285948538355,
|
| 2555 |
-
"max": 3.6893347353791763
|
| 2556 |
-
},
|
| 2557 |
-
"511": {
|
| 2558 |
-
"name": "fBodyAccMag-maxInds",
|
| 2559 |
-
"min": 1.0,
|
| 2560 |
-
"max": 1.0
|
| 2561 |
-
},
|
| 2562 |
-
"512": {
|
| 2563 |
-
"name": "fBodyAccMag-meanFreq()",
|
| 2564 |
-
"min": 2.9290279792959133,
|
| 2565 |
-
"max": 22.940301114288896
|
| 2566 |
-
},
|
| 2567 |
-
"513": {
|
| 2568 |
-
"name": "fBodyAccMag-skewness()",
|
| 2569 |
-
"min": 3.792148850191923,
|
| 2570 |
-
"max": 7.776766533941913
|
| 2571 |
-
},
|
| 2572 |
-
"514": {
|
| 2573 |
-
"name": "fBodyAccMag-kurtosis()",
|
| 2574 |
-
"min": 16.020318882235326,
|
| 2575 |
-
"max": 58.65807478581257
|
| 2576 |
-
},
|
| 2577 |
-
"515": {
|
| 2578 |
-
"name": "fBodyBodyAccJerkMag-mean()",
|
| 2579 |
-
"min": 0.8557950819817379,
|
| 2580 |
-
"max": 129.1131674431919
|
| 2581 |
-
},
|
| 2582 |
-
"516": {
|
| 2583 |
-
"name": "fBodyBodyAccJerkMag-std()",
|
| 2584 |
-
"min": 1.9303833810860112,
|
| 2585 |
-
"max": 284.0912483953395
|
| 2586 |
-
},
|
| 2587 |
-
"517": {
|
| 2588 |
-
"name": "fBodyBodyAccJerkMag-mad()",
|
| 2589 |
-
"min": 0.19932218423831533,
|
| 2590 |
-
"max": 38.82025582952414
|
| 2591 |
-
},
|
| 2592 |
-
"518": {
|
| 2593 |
-
"name": "fBodyBodyAccJerkMag-max()",
|
| 2594 |
-
"min": 15.941594948127134,
|
| 2595 |
-
"max": 2302.017688428236
|
| 2596 |
-
},
|
| 2597 |
-
"519": {
|
| 2598 |
-
"name": "fBodyBodyAccJerkMag-min()",
|
| 2599 |
-
"min": 0.0033601493941307465,
|
| 2600 |
-
"max": 21.493937520942193
|
| 2601 |
-
},
|
| 2602 |
-
"520": {
|
| 2603 |
-
"name": "fBodyBodyAccJerkMag-sma()",
|
| 2604 |
-
"min": 0.8557950819817379,
|
| 2605 |
-
"max": 129.1131674431919
|
| 2606 |
-
},
|
| 2607 |
-
"521": {
|
| 2608 |
-
"name": "fBodyBodyAccJerkMag-energy()",
|
| 2609 |
-
"min": 4.45876522031719,
|
| 2610 |
-
"max": 95607.68764769277
|
| 2611 |
-
},
|
| 2612 |
-
"522": {
|
| 2613 |
-
"name": "fBodyBodyAccJerkMag-iqr()",
|
| 2614 |
-
"min": 0.39955822966655435,
|
| 2615 |
-
"max": 83.84422488373852
|
| 2616 |
-
},
|
| 2617 |
-
"523": {
|
| 2618 |
-
"name": "fBodyBodyAccJerkMag-entropy()",
|
| 2619 |
-
"min": 3.1517916114310935,
|
| 2620 |
-
"max": 3.857529358482581
|
| 2621 |
-
},
|
| 2622 |
-
"524": {
|
| 2623 |
-
"name": "fBodyBodyAccJerkMag-maxInds",
|
| 2624 |
-
"min": 1.0,
|
| 2625 |
-
"max": 1.0
|
| 2626 |
-
},
|
| 2627 |
-
"525": {
|
| 2628 |
-
"name": "fBodyBodyAccJerkMag-meanFreq()",
|
| 2629 |
-
"min": 13.448312191376981,
|
| 2630 |
-
"max": 24.550908936173027
|
| 2631 |
-
},
|
| 2632 |
-
"526": {
|
| 2633 |
-
"name": "fBodyBodyAccJerkMag-skewness()",
|
| 2634 |
-
"min": 2.8940049083485673,
|
| 2635 |
-
"max": 7.620183610601216
|
| 2636 |
-
},
|
| 2637 |
-
"527": {
|
| 2638 |
-
"name": "fBodyBodyAccJerkMag-kurtosis()",
|
| 2639 |
-
"min": 10.860014896384403,
|
| 2640 |
-
"max": 57.05847044058592
|
| 2641 |
-
},
|
| 2642 |
-
"528": {
|
| 2643 |
-
"name": "fBodyBodyGyroMag-mean()",
|
| 2644 |
-
"min": 0.026278419794193035,
|
| 2645 |
-
"max": 11.456083974120057
|
| 2646 |
-
},
|
| 2647 |
-
"529": {
|
| 2648 |
-
"name": "fBodyBodyGyroMag-std()",
|
| 2649 |
-
"min": 0.06452001082578006,
|
| 2650 |
-
"max": 30.222913970830337
|
| 2651 |
-
},
|
| 2652 |
-
"530": {
|
| 2653 |
-
"name": "fBodyBodyGyroMag-mad()",
|
| 2654 |
-
"min": 0.005918658165523781,
|
| 2655 |
-
"max": 3.610106590035792
|
| 2656 |
-
},
|
| 2657 |
-
"531": {
|
| 2658 |
-
"name": "fBodyBodyGyroMag-max()",
|
| 2659 |
-
"min": 0.5283926306809517,
|
| 2660 |
-
"max": 247.79565480267192
|
| 2661 |
-
},
|
| 2662 |
-
"532": {
|
| 2663 |
-
"name": "fBodyBodyGyroMag-min()",
|
| 2664 |
-
"min": 5.347162508886825e-05,
|
| 2665 |
-
"max": 1.2553463754790897
|
| 2666 |
-
},
|
| 2667 |
-
"533": {
|
| 2668 |
-
"name": "fBodyBodyGyroMag-sma()",
|
| 2669 |
-
"min": 0.026278419794193035,
|
| 2670 |
-
"max": 11.456083974120057
|
| 2671 |
-
},
|
| 2672 |
-
"534": {
|
| 2673 |
-
"name": "fBodyBodyGyroMag-energy()",
|
| 2674 |
-
"min": 0.004939196601034788,
|
| 2675 |
-
"max": 1044.666388910302
|
| 2676 |
-
},
|
| 2677 |
-
"535": {
|
| 2678 |
-
"name": "fBodyBodyGyroMag-iqr()",
|
| 2679 |
-
"min": 0.01398634448462046,
|
| 2680 |
-
"max": 8.705845967295334
|
| 2681 |
-
},
|
| 2682 |
-
"536": {
|
| 2683 |
-
"name": "fBodyBodyGyroMag-entropy()",
|
| 2684 |
-
"min": 1.1430647555007023,
|
| 2685 |
-
"max": 3.909315800800602
|
| 2686 |
-
},
|
| 2687 |
-
"537": {
|
| 2688 |
-
"name": "fBodyBodyGyroMag-maxInds",
|
| 2689 |
-
"min": 1.0,
|
| 2690 |
-
"max": 1.0
|
| 2691 |
-
},
|
| 2692 |
-
"538": {
|
| 2693 |
-
"name": "fBodyBodyGyroMag-meanFreq()",
|
| 2694 |
-
"min": 3.3273513360826588,
|
| 2695 |
-
"max": 23.37855718077422
|
| 2696 |
-
},
|
| 2697 |
-
"539": {
|
| 2698 |
-
"name": "fBodyBodyGyroMag-skewness()",
|
| 2699 |
-
"min": 2.349072596994333,
|
| 2700 |
-
"max": 7.7671815498214425
|
| 2701 |
-
},
|
| 2702 |
-
"540": {
|
| 2703 |
-
"name": "fBodyBodyGyroMag-kurtosis()",
|
| 2704 |
-
"min": 5.331232841102512,
|
| 2705 |
-
"max": 58.55674980655295
|
| 2706 |
-
},
|
| 2707 |
-
"541": {
|
| 2708 |
-
"name": "fBodyBodyGyroJerkMag-mean()",
|
| 2709 |
-
"min": 0.92556598225241,
|
| 2710 |
-
"max": 489.6624743201612
|
| 2711 |
-
},
|
| 2712 |
-
"542": {
|
| 2713 |
-
"name": "fBodyBodyGyroJerkMag-std()",
|
| 2714 |
-
"min": 2.168033638652841,
|
| 2715 |
-
"max": 976.0134050428912
|
| 2716 |
-
},
|
| 2717 |
-
"543": {
|
| 2718 |
-
"name": "fBodyBodyGyroJerkMag-mad()",
|
| 2719 |
-
"min": 0.17451701638424091,
|
| 2720 |
-
"max": 127.23532153273048
|
| 2721 |
-
},
|
| 2722 |
-
"544": {
|
| 2723 |
-
"name": "fBodyBodyGyroJerkMag-max()",
|
| 2724 |
-
"min": 17.819571490867933,
|
| 2725 |
-
"max": 7883.654612253318
|
| 2726 |
-
},
|
| 2727 |
-
"545": {
|
| 2728 |
-
"name": "fBodyBodyGyroJerkMag-min()",
|
| 2729 |
-
"min": 0.0021022455958009086,
|
| 2730 |
-
"max": 54.08506129799475
|
| 2731 |
-
},
|
| 2732 |
-
"546": {
|
| 2733 |
-
"name": "fBodyBodyGyroJerkMag-sma()",
|
| 2734 |
-
"min": 0.92556598225241,
|
| 2735 |
-
"max": 489.6624743201612
|
| 2736 |
-
},
|
| 2737 |
-
"547": {
|
| 2738 |
-
"name": "fBodyBodyGyroJerkMag-energy()",
|
| 2739 |
-
"min": 5.557042245833149,
|
| 2740 |
-
"max": 1176827.1239479724
|
| 2741 |
-
},
|
| 2742 |
-
"548": {
|
| 2743 |
-
"name": "fBodyBodyGyroJerkMag-iqr()",
|
| 2744 |
-
"min": 0.3981284982958495,
|
| 2745 |
-
"max": 287.3131508716929
|
| 2746 |
-
},
|
| 2747 |
-
"549": {
|
| 2748 |
-
"name": "fBodyBodyGyroJerkMag-entropy()",
|
| 2749 |
-
"min": 3.080396163312534,
|
| 2750 |
-
"max": 3.8726150126528016
|
| 2751 |
-
},
|
| 2752 |
-
"550": {
|
| 2753 |
-
"name": "fBodyBodyGyroJerkMag-maxInds",
|
| 2754 |
-
"min": 1.0,
|
| 2755 |
-
"max": 1.0
|
| 2756 |
-
},
|
| 2757 |
-
"551": {
|
| 2758 |
-
"name": "fBodyBodyGyroJerkMag-meanFreq()",
|
| 2759 |
-
"min": 12.3877846810103,
|
| 2760 |
-
"max": 25.181312775275515
|
| 2761 |
-
},
|
| 2762 |
-
"552": {
|
| 2763 |
-
"name": "fBodyBodyGyroJerkMag-skewness()",
|
| 2764 |
-
"min": 2.0634497813112325,
|
| 2765 |
-
"max": 7.6502566004961485
|
| 2766 |
-
},
|
| 2767 |
-
"553": {
|
| 2768 |
-
"name": "fBodyBodyGyroJerkMag-kurtosis()",
|
| 2769 |
-
"min": 4.6343499328124045,
|
| 2770 |
-
"max": 57.36750813293581
|
| 2771 |
-
},
|
| 2772 |
-
"554": {
|
| 2773 |
-
"name": "angle(tBodyAccMean,gravity)",
|
| 2774 |
-
"min": 0.03867344557044592,
|
| 2775 |
-
"max": 3.119822768812346
|
| 2776 |
-
},
|
| 2777 |
-
"555": {
|
| 2778 |
-
"name": "angle(tBodyAccJerkMean),gravityMean)",
|
| 2779 |
-
"min": 0.02039567460261523,
|
| 2780 |
-
"max": 3.1207880552139895
|
| 2781 |
-
},
|
| 2782 |
-
"556": {
|
| 2783 |
-
"name": "angle(tBodyGyroMean,gravityMean)",
|
| 2784 |
-
"min": 0.003262846088150804,
|
| 2785 |
-
"max": 3.1346980802948465
|
| 2786 |
-
},
|
| 2787 |
-
"557": {
|
| 2788 |
-
"name": "angle(tBodyGyroJerkMean,gravityMean)",
|
| 2789 |
-
"min": 0.010409743954799154,
|
| 2790 |
-
"max": 3.132722940686013
|
| 2791 |
-
},
|
| 2792 |
-
"558": {
|
| 2793 |
-
"name": "angle(X,gravityMean)",
|
| 2794 |
-
"min": 0.0028986038760071575,
|
| 2795 |
-
"max": 1.972033249755388
|
| 2796 |
-
},
|
| 2797 |
-
"559": {
|
| 2798 |
-
"name": "angle(Y,gravityMean)",
|
| 2799 |
-
"min": 0.007190985205403231,
|
| 2800 |
-
"max": 2.1154456997791735
|
| 2801 |
-
},
|
| 2802 |
-
"560": {
|
| 2803 |
-
"name": "angle(Z,gravityMean)",
|
| 2804 |
-
"min": 0.1742479452264304,
|
| 2805 |
-
"max": 2.9184235521275985
|
| 2806 |
-
}
|
| 2807 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
har_cnn.keras
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:974c4a0507c5ae78f0d98c8aacbc3aad5419863e22bd130f00beea756fba573b
|
| 3 |
-
size 2163544
|
|
|
|
|
|
|
|
|
|
|
|
src/model_def.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
-
"""
|
| 2 |
|
| 3 |
-
|
| 4 |
-
can resolve the registered custom
|
| 5 |
"""
|
| 6 |
|
| 7 |
import keras
|
|
@@ -63,90 +63,3 @@ class FeedForwardNetwork(tf.keras.Model):
|
|
| 63 |
"dropout_rate": self._dropout_rate,
|
| 64 |
})
|
| 65 |
return config
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
@keras.saving.register_keras_serializable()
|
| 69 |
-
class Conv1DNetwork(tf.keras.Model):
|
| 70 |
-
"""1D-CNN for classification on pre-computed feature vectors.
|
| 71 |
-
|
| 72 |
-
Architecture: Reshape(561, 1)
|
| 73 |
-
β Conv1D(64, k=5) β BN β ReLU β MaxPool(2) β Dropout(0.3)
|
| 74 |
-
β Conv1D(128, k=5) β BN β ReLU β MaxPool(2) β Dropout(0.3)
|
| 75 |
-
β Conv1D(256, k=3) β BN β ReLU β GlobalAvgPool1D
|
| 76 |
-
β Dense(128) β BN β ReLU β Dropout(0.5)
|
| 77 |
-
β Dense(6, softmax)
|
| 78 |
-
"""
|
| 79 |
-
|
| 80 |
-
def __init__(
|
| 81 |
-
self,
|
| 82 |
-
num_features,
|
| 83 |
-
num_classes,
|
| 84 |
-
dropout_rate=0.3,
|
| 85 |
-
**kwargs,
|
| 86 |
-
):
|
| 87 |
-
super().__init__(**kwargs)
|
| 88 |
-
self._num_features = num_features
|
| 89 |
-
self._num_classes = num_classes
|
| 90 |
-
self._dropout_rate = dropout_rate
|
| 91 |
-
|
| 92 |
-
self.reshape = tf.keras.layers.Reshape((num_features, 1))
|
| 93 |
-
|
| 94 |
-
self.conv1 = tf.keras.layers.Conv1D(64, kernel_size=5, padding="same", use_bias=False)
|
| 95 |
-
self.bn1 = tf.keras.layers.BatchNormalization()
|
| 96 |
-
self.relu1 = tf.keras.layers.ReLU()
|
| 97 |
-
self.pool1 = tf.keras.layers.MaxPooling1D(pool_size=2)
|
| 98 |
-
self.drop1 = tf.keras.layers.Dropout(dropout_rate)
|
| 99 |
-
|
| 100 |
-
self.conv2 = tf.keras.layers.Conv1D(128, kernel_size=5, padding="same", use_bias=False)
|
| 101 |
-
self.bn2 = tf.keras.layers.BatchNormalization()
|
| 102 |
-
self.relu2 = tf.keras.layers.ReLU()
|
| 103 |
-
self.pool2 = tf.keras.layers.MaxPooling1D(pool_size=2)
|
| 104 |
-
self.drop2 = tf.keras.layers.Dropout(dropout_rate)
|
| 105 |
-
|
| 106 |
-
self.conv3 = tf.keras.layers.Conv1D(256, kernel_size=3, padding="same", use_bias=False)
|
| 107 |
-
self.bn3 = tf.keras.layers.BatchNormalization()
|
| 108 |
-
self.relu3 = tf.keras.layers.ReLU()
|
| 109 |
-
self.gap = tf.keras.layers.GlobalAveragePooling1D()
|
| 110 |
-
|
| 111 |
-
self.dense1 = tf.keras.layers.Dense(128, use_bias=False)
|
| 112 |
-
self.bn_fc = tf.keras.layers.BatchNormalization()
|
| 113 |
-
self.relu_fc = tf.keras.layers.ReLU()
|
| 114 |
-
self.drop_fc = tf.keras.layers.Dropout(0.5)
|
| 115 |
-
|
| 116 |
-
self.output_layer = tf.keras.layers.Dense(num_classes, activation="softmax")
|
| 117 |
-
|
| 118 |
-
def call(self, inputs, training=False):
|
| 119 |
-
x = self.reshape(inputs)
|
| 120 |
-
|
| 121 |
-
x = self.conv1(x)
|
| 122 |
-
x = self.bn1(x, training=training)
|
| 123 |
-
x = self.relu1(x)
|
| 124 |
-
x = self.pool1(x)
|
| 125 |
-
x = self.drop1(x, training=training)
|
| 126 |
-
|
| 127 |
-
x = self.conv2(x)
|
| 128 |
-
x = self.bn2(x, training=training)
|
| 129 |
-
x = self.relu2(x)
|
| 130 |
-
x = self.pool2(x)
|
| 131 |
-
x = self.drop2(x, training=training)
|
| 132 |
-
|
| 133 |
-
x = self.conv3(x)
|
| 134 |
-
x = self.bn3(x, training=training)
|
| 135 |
-
x = self.relu3(x)
|
| 136 |
-
x = self.gap(x)
|
| 137 |
-
|
| 138 |
-
x = self.dense1(x)
|
| 139 |
-
x = self.bn_fc(x, training=training)
|
| 140 |
-
x = self.relu_fc(x)
|
| 141 |
-
x = self.drop_fc(x, training=training)
|
| 142 |
-
|
| 143 |
-
return self.output_layer(x)
|
| 144 |
-
|
| 145 |
-
def get_config(self):
|
| 146 |
-
config = super().get_config()
|
| 147 |
-
config.update({
|
| 148 |
-
"num_features": self._num_features,
|
| 149 |
-
"num_classes": self._num_classes,
|
| 150 |
-
"dropout_rate": self._dropout_rate,
|
| 151 |
-
})
|
| 152 |
-
return config
|
|
|
|
| 1 |
+
"""FeedForwardNetwork definition required for deserializing model.keras.
|
| 2 |
|
| 3 |
+
This must be imported before tf.keras.models.load_model() is called so
|
| 4 |
+
that keras can resolve the registered custom class.
|
| 5 |
"""
|
| 6 |
|
| 7 |
import keras
|
|
|
|
| 63 |
"dropout_rate": self._dropout_rate,
|
| 64 |
})
|
| 65 |
return config
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/phyphox_app_block.py
DELETED
|
@@ -1,260 +0,0 @@
|
|
| 1 |
-
"""Streamlit UI block for Tab 2: Phyphox live sensor upload.
|
| 2 |
-
|
| 3 |
-
Call from streamlit_app.py:
|
| 4 |
-
|
| 5 |
-
from phyphox_app_block import render_phyphox_tab
|
| 6 |
-
with tab2:
|
| 7 |
-
render_phyphox_tab(ffn_model, ffn_status, cnn_model, cnn_status)
|
| 8 |
-
"""
|
| 9 |
-
|
| 10 |
-
import json
|
| 11 |
-
import os
|
| 12 |
-
|
| 13 |
-
import numpy as np
|
| 14 |
-
import pandas as pd
|
| 15 |
-
import streamlit as st
|
| 16 |
-
|
| 17 |
-
from phyphox_pipeline import process_phyphox_files, FS, WINDOW, STEP
|
| 18 |
-
|
| 19 |
-
LABEL_MAP = {
|
| 20 |
-
0: "WALKING",
|
| 21 |
-
1: "WALKING_UPSTAIRS",
|
| 22 |
-
2: "WALKING_DOWNSTAIRS",
|
| 23 |
-
3: "SITTING",
|
| 24 |
-
4: "STANDING",
|
| 25 |
-
5: "LAYING",
|
| 26 |
-
}
|
| 27 |
-
|
| 28 |
-
EXPLANATIONS = {
|
| 29 |
-
"LAYING": "Minimal movement detected across all axes: consistent with a stationary horizontal posture.",
|
| 30 |
-
"SITTING": "Low dynamic acceleration with stable gravity: stationary upright posture.",
|
| 31 |
-
"STANDING": "Similar to sitting with slight postural micro-movements.",
|
| 32 |
-
"WALKING": "Rhythmic periodic acceleration on the vertical axis: level walking at normal cadence.",
|
| 33 |
-
"WALKING_DOWNSTAIRS": "Downward gravitational shift with higher impact peaks: descending stairs.",
|
| 34 |
-
"WALKING_UPSTAIRS": "Elevated vertical acceleration effort: climbing stairs.",
|
| 35 |
-
}
|
| 36 |
-
|
| 37 |
-
@st.cache_resource
|
| 38 |
-
def _load_norm_params(norm_path: str):
|
| 39 |
-
"""Load per-feature min/max from norm_params.json (keys are string indices 0-560)."""
|
| 40 |
-
with open(norm_path) as f:
|
| 41 |
-
d = json.load(f)
|
| 42 |
-
min_vals = np.array([d[str(i)]["min"] for i in range(561)], dtype=np.float32)
|
| 43 |
-
max_vals = np.array([d[str(i)]["max"] for i in range(561)], dtype=np.float32)
|
| 44 |
-
return min_vals, max_vals
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
def _normalize(features: np.ndarray, min_vals: np.ndarray, max_vals: np.ndarray) -> np.ndarray:
|
| 48 |
-
"""Best-effort feature-level min-max scaling to [-1, 1].
|
| 49 |
-
|
| 50 |
-
Uses per-feature min/max observed in the UCI HAR training set. This is
|
| 51 |
-
an approximation: the UCI pipeline normalises raw signals before feature
|
| 52 |
-
extraction, so physical-unit features may fall outside the training range.
|
| 53 |
-
Values are clipped before scaling to keep outputs bounded.
|
| 54 |
-
"""
|
| 55 |
-
rng = max_vals - min_vals
|
| 56 |
-
rng = np.where(rng < 1e-8, 1.0, rng) # avoid div-by-zero
|
| 57 |
-
clipped = np.clip(features, min_vals, max_vals)
|
| 58 |
-
return 2.0 * (clipped - min_vals) / rng - 1.0
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
def render_phyphox_tab(
|
| 62 |
-
ffn_model, ffn_status: str,
|
| 63 |
-
cnn_model, cnn_status: str,
|
| 64 |
-
norm_params_path: str,
|
| 65 |
-
) -> None:
|
| 66 |
-
st.subheader("Upload Phyphox sensor recording")
|
| 67 |
-
with st.expander("How to record and export your data - step by step", expanded=True):
|
| 68 |
-
st.markdown("""
|
| 69 |
-
**Step 1 - Install Phyphox**
|
| 70 |
-
Download the free [Phyphox](https://phyphox.org/) app from the Play Store (Android) or App Store (iOS).
|
| 71 |
-
|
| 72 |
-
**Step 2 - Create a new experiment**
|
| 73 |
-
- Open the app and tap the **+** icon in the top-right corner
|
| 74 |
-
- Select **Add simple experiment**
|
| 75 |
-
- In the active sensors list, add **Accelerometer** and **Gyroscope**
|
| 76 |
-
- Set the **sensor rate to 50** (Hz) for both
|
| 77 |
-
- Give the experiment a title (e.g. "Walking") then tap **Proceed**
|
| 78 |
-
|
| 79 |
-
**Step 3 - Configure a timed run**
|
| 80 |
-
- Tap the **three-dot menu** in the top-right corner and select **Timed run**
|
| 81 |
-
- Set a **recording duration** (15-20 seconds recommended)
|
| 82 |
-
- Optionally set a **start delay** (e.g. 5 seconds) so you have time to get into position before recording begins
|
| 83 |
-
|
| 84 |
-
**Step 4 - Position the device**
|
| 85 |
-
Place your phone in your **trouser pocket** or attach it at your **waist**. This mirrors how the original UCI dataset was collected and gives the most accurate results.
|
| 86 |
-
|
| 87 |
-
**Step 5 - Record one activity**
|
| 88 |
-
- Press the **play button** to start
|
| 89 |
-
- Perform a **single activity continuously** - do not stop and restart mid-recording
|
| 90 |
-
- Stay in steady motion for the full duration before stopping
|
| 91 |
-
|
| 92 |
-
**Step 6 - Export the data**
|
| 93 |
-
- After the recording ends, tap the **three-dot menu** and select **Export data**
|
| 94 |
-
- Choose **CSV (comma separated values)** and confirm
|
| 95 |
-
- You will receive a **.zip file** - unzip it to find separate CSV files for the **Accelerometer** and **Gyroscope**
|
| 96 |
-
|
| 97 |
-
**Step 7 - Upload below**
|
| 98 |
-
Upload each CSV file into its corresponding field below, then the pipeline will extract features and classify your activity.
|
| 99 |
-
|
| 100 |
-
> β οΈ **Important:** Each export is a fresh experiment. Do not reuse an old experiment - it will contain data from previous recordings stitched together, which will confuse the classifier.
|
| 101 |
-
""")
|
| 102 |
-
|
| 103 |
-
if "phyphox_run" not in st.session_state:
|
| 104 |
-
st.session_state.phyphox_run = 0
|
| 105 |
-
|
| 106 |
-
col1, col2 = st.columns(2)
|
| 107 |
-
with col1:
|
| 108 |
-
acc_file = st.file_uploader(
|
| 109 |
-
"Accelerometer CSV",
|
| 110 |
-
type=["csv"],
|
| 111 |
-
key=f"acc_upload_{st.session_state.phyphox_run}",
|
| 112 |
-
help="Columns: Time (s), X (m/sΒ²), Y (m/sΒ²), Z (m/sΒ²)",
|
| 113 |
-
)
|
| 114 |
-
with col2:
|
| 115 |
-
gyro_file = st.file_uploader(
|
| 116 |
-
"Gyroscope CSV",
|
| 117 |
-
type=["csv"],
|
| 118 |
-
key=f"gyro_upload_{st.session_state.phyphox_run}",
|
| 119 |
-
help="Columns: Time (s), X (rad/s), Y (rad/s), Z (rad/s)",
|
| 120 |
-
)
|
| 121 |
-
|
| 122 |
-
if acc_file is not None or gyro_file is not None:
|
| 123 |
-
if st.button("Clear / new recording"):
|
| 124 |
-
st.session_state.phyphox_run += 1
|
| 125 |
-
st.rerun()
|
| 126 |
-
|
| 127 |
-
if acc_file is None or gyro_file is None:
|
| 128 |
-
st.info("Upload both files to continue.")
|
| 129 |
-
return
|
| 130 |
-
|
| 131 |
-
try:
|
| 132 |
-
import io as _io
|
| 133 |
-
_raw = acc_file.read()
|
| 134 |
-
acc_file.seek(0)
|
| 135 |
-
_df = pd.read_csv(_io.StringIO(_raw.decode("utf-8") if isinstance(_raw, bytes) else _raw))
|
| 136 |
-
_df.columns = [c.strip('"').strip() for c in _df.columns]
|
| 137 |
-
_num_cols = [c for c in _df.columns if c != "Time (s)"]
|
| 138 |
-
_mag = float((_df[_num_cols].apply(pd.to_numeric, errors="coerce") ** 2).sum(axis=1).mean() ** 0.5)
|
| 139 |
-
if _mag < 3.0:
|
| 140 |
-
st.error(
|
| 141 |
-
f"Mean accelerometer magnitude is only {_mag:.2f} m/sΒ² β this looks like "
|
| 142 |
-
"'Acceleration **without** g'. Please re-record using **'Acceleration (with g)'** "
|
| 143 |
-
"so gravity is included in the signal."
|
| 144 |
-
)
|
| 145 |
-
return
|
| 146 |
-
else:
|
| 147 |
-
st.caption(f"Signal check: mean magnitude = {_mag:.2f} m/sΒ² (gravity present)")
|
| 148 |
-
|
| 149 |
-
# Detect Phyphox pause/resume sessions: large gaps in the time column
|
| 150 |
-
# mean different activities were stitched together in one CSV.
|
| 151 |
-
_t = pd.to_numeric(_df["Time (s)"], errors="coerce").dropna().values
|
| 152 |
-
_gaps = np.diff(_t)
|
| 153 |
-
_expected_dt = np.median(_gaps)
|
| 154 |
-
_session_breaks = int(np.sum(_gaps > _expected_dt * 20))
|
| 155 |
-
if _session_breaks > 0:
|
| 156 |
-
st.warning(
|
| 157 |
-
f"**{_session_breaks} session break(s) detected** in this recording. "
|
| 158 |
-
"Phyphox accumulates data across pause/resume cycles β your CSV contains "
|
| 159 |
-
f"{_session_breaks + 1} separate recordings stitched together. "
|
| 160 |
-
"Only windows from a single activity will predict correctly. "
|
| 161 |
-
"To fix: tap the **trash icon** in Phyphox to clear data before each new recording."
|
| 162 |
-
)
|
| 163 |
-
except Exception:
|
| 164 |
-
pass
|
| 165 |
-
|
| 166 |
-
try:
|
| 167 |
-
with st.spinner("Extracting 561 features from sensor dataβ¦"):
|
| 168 |
-
features, pipeline_warnings = process_phyphox_files(acc_file, gyro_file)
|
| 169 |
-
except ValueError as err:
|
| 170 |
-
st.error(str(err))
|
| 171 |
-
return
|
| 172 |
-
except Exception as err:
|
| 173 |
-
st.error(f"Unexpected error during feature extraction: {err}")
|
| 174 |
-
return
|
| 175 |
-
|
| 176 |
-
for w in pipeline_warnings:
|
| 177 |
-
st.warning(w)
|
| 178 |
-
|
| 179 |
-
n_windows = len(features)
|
| 180 |
-
duration_s = (n_windows - 1) * (STEP / FS) + (WINDOW / FS)
|
| 181 |
-
|
| 182 |
-
c1, c2, c3 = st.columns(3)
|
| 183 |
-
c1.metric("Windows extracted", n_windows)
|
| 184 |
-
c2.metric("Approx. duration", f"{duration_s:.1f} s")
|
| 185 |
-
c3.metric("Features per window", 561)
|
| 186 |
-
st.caption(
|
| 187 |
-
f"Each window = {WINDOW / FS:.2f} s at {FS} Hz Β· "
|
| 188 |
-
f"50% overlap ({STEP / FS:.2f} s hop)"
|
| 189 |
-
)
|
| 190 |
-
|
| 191 |
-
if os.path.exists(norm_params_path):
|
| 192 |
-
min_vals, max_vals = _load_norm_params(norm_params_path)
|
| 193 |
-
features = _normalize(features, min_vals, max_vals)
|
| 194 |
-
st.caption(
|
| 195 |
-
"Accelerometer converted from m/sΒ² to g units to match UCI training data. "
|
| 196 |
-
"Features scaled to [β1, 1] using physical-unit min/max computed from the "
|
| 197 |
-
"UCI HAR training set raw inertial signals."
|
| 198 |
-
)
|
| 199 |
-
else:
|
| 200 |
-
st.warning(
|
| 201 |
-
"norm_params.json not found: features are in physical units. "
|
| 202 |
-
"Predictions will be unreliable until normalisation is applied."
|
| 203 |
-
)
|
| 204 |
-
|
| 205 |
-
if ffn_status != "ready" and cnn_status != "ready":
|
| 206 |
-
st.warning("Models not loaded: cannot predict yet.")
|
| 207 |
-
return
|
| 208 |
-
|
| 209 |
-
st.markdown("---")
|
| 210 |
-
st.subheader("Model comparison")
|
| 211 |
-
|
| 212 |
-
left, right = st.columns(2)
|
| 213 |
-
|
| 214 |
-
def _render_model_col(col, model, status, name):
|
| 215 |
-
with col:
|
| 216 |
-
st.markdown(f"#### {name}")
|
| 217 |
-
if status != "ready":
|
| 218 |
-
st.error(f"Model not loaded: {status}")
|
| 219 |
-
return
|
| 220 |
-
|
| 221 |
-
probs_all = model.predict(features, verbose=0) # (n_windows, 6)
|
| 222 |
-
pred_labels = [LABEL_MAP[int(np.argmax(p))] for p in probs_all]
|
| 223 |
-
|
| 224 |
-
from collections import Counter
|
| 225 |
-
# Skip first and last window for the final vote: these are typically
|
| 226 |
-
# contaminated by recording start/stop transients (person not yet
|
| 227 |
-
# in full motion, or the gravity filter still warming up).
|
| 228 |
-
core = probs_all[1:-1] if n_windows > 3 else probs_all
|
| 229 |
-
core_labels = [LABEL_MAP[int(np.argmax(p))] for p in core]
|
| 230 |
-
vote = Counter(core_labels).most_common(1)[0][0]
|
| 231 |
-
avg_conf = float(np.mean(np.max(core, axis=1))) * 100
|
| 232 |
-
|
| 233 |
-
st.success(f"**{vote}** Β· {avg_conf:.1f}% avg confidence")
|
| 234 |
-
st.markdown(f"_{EXPLANATIONS[vote]}_")
|
| 235 |
-
|
| 236 |
-
if n_windows > 1:
|
| 237 |
-
with st.expander(f"Per-window breakdown ({n_windows} windows)"):
|
| 238 |
-
rows = []
|
| 239 |
-
for i, (p, label) in enumerate(zip(probs_all, pred_labels)):
|
| 240 |
-
t_start = i * STEP / FS
|
| 241 |
-
is_edge = (i == 0 or i == n_windows - 1) and n_windows > 3
|
| 242 |
-
rows.append({
|
| 243 |
-
"Window": i + 1,
|
| 244 |
-
"Time (s)": f"{t_start:.1f}β{t_start + WINDOW/FS:.1f}",
|
| 245 |
-
"Prediction": label + (" *" if is_edge else ""),
|
| 246 |
-
"Confidence": f"{float(np.max(p))*100:.1f}%",
|
| 247 |
-
})
|
| 248 |
-
st.dataframe(pd.DataFrame(rows), use_container_width=True)
|
| 249 |
-
if n_windows > 3:
|
| 250 |
-
st.caption("* Edge windows excluded from overall vote (recording start/stop transient).")
|
| 251 |
-
|
| 252 |
-
mean_probs = core.mean(axis=0)
|
| 253 |
-
st.markdown("**Average confidence across all classes**")
|
| 254 |
-
st.bar_chart(pd.DataFrame(
|
| 255 |
-
{"Confidence (%)": [float(mean_probs[i]) * 100 for i in range(6)]},
|
| 256 |
-
index=[LABEL_MAP[i] for i in range(6)],
|
| 257 |
-
))
|
| 258 |
-
|
| 259 |
-
_render_model_col(left, ffn_model, ffn_status, "Feedforward Network")
|
| 260 |
-
_render_model_col(right, cnn_model, cnn_status, "1D Convolutional Network")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/phyphox_pipeline.py
DELETED
|
@@ -1,514 +0,0 @@
|
|
| 1 |
-
"""Phyphox sensor pipeline for Human Activity Recognition.
|
| 2 |
-
|
| 3 |
-
Converts raw Phyphox accelerometer + gyroscope CSV exports into the
|
| 4 |
-
561-feature vector expected by the UCI HAR classifier.
|
| 5 |
-
|
| 6 |
-
Feature order matches features.txt exactly:
|
| 7 |
-
1-200 : time-domain 3-axis signals (5 signals Γ 40 features)
|
| 8 |
-
201-265 : time-domain magnitudes (5 signals Γ 13 features)
|
| 9 |
-
266-502 : frequency-domain 3-axis (3 signals Γ 79 features)
|
| 10 |
-
503-554 : frequency-domain magnitudes (4 signals Γ 13 features)
|
| 11 |
-
555-561 : angle features (7 features)
|
| 12 |
-
"""
|
| 13 |
-
|
| 14 |
-
import io
|
| 15 |
-
import numpy as np
|
| 16 |
-
import pandas as pd
|
| 17 |
-
from scipy import signal as sp_signal
|
| 18 |
-
from scipy.stats import skew, kurtosis as sp_kurtosis
|
| 19 |
-
|
| 20 |
-
FS = 50 # target sampling rate Hz
|
| 21 |
-
WINDOW = 128 # samples per window (2.56 s)
|
| 22 |
-
STEP = 64 # hop size β 50% overlap
|
| 23 |
-
AR_ORDER = 4 # Burg AR model order
|
| 24 |
-
|
| 25 |
-
# 14 frequency band pairs (1-indexed, inclusive) applied per axis
|
| 26 |
-
BANDS = [
|
| 27 |
-
(1, 8), (9, 16), (17, 24), (25, 32), (33, 40), (41, 48),
|
| 28 |
-
(49, 56), (57, 64), (1, 16), (17, 32), (33, 48), (49, 64),
|
| 29 |
-
(1, 24), (25, 48),
|
| 30 |
-
]
|
| 31 |
-
|
| 32 |
-
ACC_COLS = ["Time (s)", "X (m/s^2)", "Y (m/s^2)", "Z (m/s^2)"]
|
| 33 |
-
GYRO_COLS = ["Time (s)", "X (rad/s)", "Y (rad/s)", "Z (rad/s)"]
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
def _parse_csv(file_obj, expected_cols: list) -> pd.DataFrame:
|
| 37 |
-
"""Parse a Phyphox CSV export and validate required columns.
|
| 38 |
-
|
| 39 |
-
Args:
|
| 40 |
-
file_obj: file-like object (bytes or str) from Phyphox export
|
| 41 |
-
expected_cols: list of required column names
|
| 42 |
-
|
| 43 |
-
Returns:
|
| 44 |
-
DataFrame with numeric data, NaN rows dropped
|
| 45 |
-
|
| 46 |
-
Raises:
|
| 47 |
-
ValueError: if columns are missing or file cannot be parsed
|
| 48 |
-
"""
|
| 49 |
-
try:
|
| 50 |
-
raw = file_obj.read()
|
| 51 |
-
if isinstance(raw, bytes):
|
| 52 |
-
raw = raw.decode("utf-8")
|
| 53 |
-
df = pd.read_csv(io.StringIO(raw), float_precision="high")
|
| 54 |
-
except Exception as exc:
|
| 55 |
-
raise ValueError(f"Cannot parse CSV: {exc}") from exc
|
| 56 |
-
|
| 57 |
-
df.columns = [c.strip('"').strip() for c in df.columns]
|
| 58 |
-
missing = [c for c in expected_cols if c not in df.columns]
|
| 59 |
-
if missing:
|
| 60 |
-
raise ValueError(
|
| 61 |
-
f"Missing columns {missing}. Found: {list(df.columns)}. "
|
| 62 |
-
"Check you uploaded the correct Phyphox CSV (Accelerometer or Gyroscope)."
|
| 63 |
-
)
|
| 64 |
-
return df[expected_cols].apply(pd.to_numeric, errors="coerce").dropna()
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
def _butter_lp(data: np.ndarray, cutoff: float, fs: float = FS, order: int = 3) -> np.ndarray:
|
| 68 |
-
"""Zero-phase Butterworth low-pass filter applied along axis 0.
|
| 69 |
-
|
| 70 |
-
Args:
|
| 71 |
-
data: 1-D or 2-D array
|
| 72 |
-
cutoff: cutoff frequency in Hz
|
| 73 |
-
fs: sampling rate in Hz
|
| 74 |
-
order: filter order
|
| 75 |
-
|
| 76 |
-
Returns:
|
| 77 |
-
Filtered array, same shape as input
|
| 78 |
-
"""
|
| 79 |
-
b, a = sp_signal.butter(order, cutoff / (fs / 2.0), btype="low")
|
| 80 |
-
# Use maximum safe padding β critical for low cutoffs (e.g. 0.3 Hz needs
|
| 81 |
-
# ~167 samples to settle; scipy's default 9-sample pad is far too short).
|
| 82 |
-
padlen = min(len(data) - 1, max(3 * int(fs / cutoff), 9))
|
| 83 |
-
if data.ndim == 1:
|
| 84 |
-
return sp_signal.filtfilt(b, a, data, padlen=padlen)
|
| 85 |
-
return np.column_stack(
|
| 86 |
-
[sp_signal.filtfilt(b, a, data[:, i], padlen=padlen) for i in range(data.shape[1])]
|
| 87 |
-
)
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
def _median_filt(data: np.ndarray, k: int = 3) -> np.ndarray:
|
| 91 |
-
"""Median filter applied along axis 0.
|
| 92 |
-
|
| 93 |
-
Args:
|
| 94 |
-
data: 1-D or 2-D array
|
| 95 |
-
k: kernel size (must be odd)
|
| 96 |
-
|
| 97 |
-
Returns:
|
| 98 |
-
Filtered array, same shape as input
|
| 99 |
-
"""
|
| 100 |
-
if data.ndim == 1:
|
| 101 |
-
return sp_signal.medfilt(data, kernel_size=k)
|
| 102 |
-
return np.column_stack(
|
| 103 |
-
[sp_signal.medfilt(data[:, i], kernel_size=k) for i in range(data.shape[1])]
|
| 104 |
-
)
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
def _burg_ar(x: np.ndarray, order: int = AR_ORDER) -> np.ndarray:
|
| 108 |
-
"""Burg method autoregressive coefficients.
|
| 109 |
-
|
| 110 |
-
Implements the standard Burg recursion with Levinson-Durbin update.
|
| 111 |
-
Mean-centres the signal before fitting.
|
| 112 |
-
|
| 113 |
-
Args:
|
| 114 |
-
x: 1-D signal array
|
| 115 |
-
order: AR model order
|
| 116 |
-
|
| 117 |
-
Returns:
|
| 118 |
-
Array of `order` AR coefficients [a1, a2, ..., ap]
|
| 119 |
-
"""
|
| 120 |
-
x = np.asarray(x, dtype=np.float64)
|
| 121 |
-
x = x - x.mean()
|
| 122 |
-
N = len(x)
|
| 123 |
-
ef = x.copy()
|
| 124 |
-
eb = x.copy()
|
| 125 |
-
a = np.zeros(order)
|
| 126 |
-
|
| 127 |
-
for m in range(1, order + 1):
|
| 128 |
-
f = ef[m:].copy()
|
| 129 |
-
b = eb[m - 1: N - 1].copy()
|
| 130 |
-
|
| 131 |
-
denom = np.dot(f, f) + np.dot(b, b) + 1e-12
|
| 132 |
-
km = -2.0 * np.dot(f, b) / denom
|
| 133 |
-
|
| 134 |
-
# Levinson-Durbin update of AR polynomial
|
| 135 |
-
a_prev = a[:m - 1].copy()
|
| 136 |
-
for j in range(m - 1):
|
| 137 |
-
a[j] = a_prev[j] + km * a_prev[m - 2 - j]
|
| 138 |
-
a[m - 1] = km
|
| 139 |
-
|
| 140 |
-
# Update forward/backward prediction errors
|
| 141 |
-
ef[m:] = f + km * b
|
| 142 |
-
eb[m - 1: N - 1] = b + km * f
|
| 143 |
-
|
| 144 |
-
return a
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
def _entropy(x: np.ndarray) -> float:
|
| 148 |
-
"""Normalised signal entropy via absolute-value probability distribution.
|
| 149 |
-
|
| 150 |
-
Args:
|
| 151 |
-
x: 1-D array
|
| 152 |
-
|
| 153 |
-
Returns:
|
| 154 |
-
Entropy value (>= 0)
|
| 155 |
-
"""
|
| 156 |
-
total = np.abs(x).sum()
|
| 157 |
-
if total < 1e-12:
|
| 158 |
-
return 0.0
|
| 159 |
-
p = np.abs(x) / total
|
| 160 |
-
p = p[p > 0]
|
| 161 |
-
return float(-np.sum(p * np.log(p)))
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
def _bands_energy(fft_mag: np.ndarray) -> np.ndarray:
|
| 165 |
-
"""Energy in each of the 14 UCI HAR frequency bands (1-indexed, inclusive).
|
| 166 |
-
|
| 167 |
-
Args:
|
| 168 |
-
fft_mag: FFT magnitude array, must contain at least 64 values
|
| 169 |
-
|
| 170 |
-
Returns:
|
| 171 |
-
Array of 14 energy values
|
| 172 |
-
"""
|
| 173 |
-
m = fft_mag[:64]
|
| 174 |
-
return np.array([float(np.sum(m[s - 1: e] ** 2)) for s, e in BANDS])
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
def _safe_corr(a: np.ndarray, b: np.ndarray) -> float:
|
| 178 |
-
"""Pearson correlation, returns 0.0 if either signal is constant.
|
| 179 |
-
|
| 180 |
-
Args:
|
| 181 |
-
a: first 1-D array
|
| 182 |
-
b: second 1-D array
|
| 183 |
-
|
| 184 |
-
Returns:
|
| 185 |
-
Correlation coefficient in [-1, 1]
|
| 186 |
-
"""
|
| 187 |
-
if a.std() < 1e-10 or b.std() < 1e-10:
|
| 188 |
-
return 0.0
|
| 189 |
-
r = np.corrcoef(a, b)[0, 1]
|
| 190 |
-
return 0.0 if not np.isfinite(r) else float(r)
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
def _angle(u: np.ndarray, v: np.ndarray) -> float:
|
| 194 |
-
"""Angle in radians between two 3-D vectors.
|
| 195 |
-
|
| 196 |
-
Args:
|
| 197 |
-
u: first vector, shape (3,)
|
| 198 |
-
v: second vector, shape (3,)
|
| 199 |
-
|
| 200 |
-
Returns:
|
| 201 |
-
Angle in radians, or 0.0 if either vector is zero
|
| 202 |
-
"""
|
| 203 |
-
un, vn = np.linalg.norm(u), np.linalg.norm(v)
|
| 204 |
-
if un < 1e-10 or vn < 1e-10:
|
| 205 |
-
return 0.0
|
| 206 |
-
return float(np.arccos(np.clip(np.dot(u, v) / (un * vn), -1.0, 1.0)))
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
def _t3ax(sig: np.ndarray) -> np.ndarray:
|
| 210 |
-
"""40 time-domain features from a 3-axis signal (N, 3).
|
| 211 |
-
|
| 212 |
-
Order: meanΓ3, stdΓ3, madΓ3, maxΓ3, minΓ3, sma,
|
| 213 |
-
energyΓ3, iqrΓ3, entropyΓ3, arCoeffΓ12, correlationΓ3
|
| 214 |
-
"""
|
| 215 |
-
N = len(sig)
|
| 216 |
-
x, y, z = sig[:, 0], sig[:, 1], sig[:, 2]
|
| 217 |
-
out = []
|
| 218 |
-
|
| 219 |
-
out += [x.mean(), y.mean(), z.mean()]
|
| 220 |
-
out += [x.std(), y.std(), z.std()]
|
| 221 |
-
out += [
|
| 222 |
-
float(np.median(np.abs(x - np.median(x)))),
|
| 223 |
-
float(np.median(np.abs(y - np.median(y)))),
|
| 224 |
-
float(np.median(np.abs(z - np.median(z)))),
|
| 225 |
-
]
|
| 226 |
-
out += [x.max(), y.max(), z.max()]
|
| 227 |
-
out += [x.min(), y.min(), z.min()]
|
| 228 |
-
out += [float((np.abs(x) + np.abs(y) + np.abs(z)).sum() / N)] # sma
|
| 229 |
-
out += [float(np.sum(x ** 2) / N), float(np.sum(y ** 2) / N), float(np.sum(z ** 2) / N)]
|
| 230 |
-
out += [
|
| 231 |
-
float(np.percentile(x, 75) - np.percentile(x, 25)),
|
| 232 |
-
float(np.percentile(y, 75) - np.percentile(y, 25)),
|
| 233 |
-
float(np.percentile(z, 75) - np.percentile(z, 25)),
|
| 234 |
-
]
|
| 235 |
-
out += [_entropy(x), _entropy(y), _entropy(z)]
|
| 236 |
-
out += _burg_ar(x).tolist()
|
| 237 |
-
out += _burg_ar(y).tolist()
|
| 238 |
-
out += _burg_ar(z).tolist()
|
| 239 |
-
out += [_safe_corr(x, y), _safe_corr(x, z), _safe_corr(y, z)]
|
| 240 |
-
|
| 241 |
-
return np.array(out, dtype=np.float64) # 40 values
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
def _tmag(sig: np.ndarray) -> np.ndarray:
|
| 245 |
-
"""13 time-domain features from a 1-D magnitude signal.
|
| 246 |
-
|
| 247 |
-
Order: mean, std, mad, max, min, sma, energy, iqr, entropy, arCoeffΓ4
|
| 248 |
-
"""
|
| 249 |
-
N = len(sig)
|
| 250 |
-
out = [
|
| 251 |
-
float(sig.mean()),
|
| 252 |
-
float(sig.std()),
|
| 253 |
-
float(np.median(np.abs(sig - np.median(sig)))),
|
| 254 |
-
float(sig.max()),
|
| 255 |
-
float(sig.min()),
|
| 256 |
-
float(np.abs(sig).sum() / N), # sma (1-D)
|
| 257 |
-
float(np.sum(sig ** 2) / N), # energy
|
| 258 |
-
float(np.percentile(sig, 75) - np.percentile(sig, 25)),
|
| 259 |
-
_entropy(sig),
|
| 260 |
-
]
|
| 261 |
-
out += _burg_ar(sig).tolist()
|
| 262 |
-
return np.array(out, dtype=np.float64) # 13 values
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
def _f3ax(sig: np.ndarray) -> np.ndarray:
|
| 266 |
-
"""79 frequency-domain features from a 3-axis signal (N, 3).
|
| 267 |
-
|
| 268 |
-
Order: meanΓ3, stdΓ3, madΓ3, maxΓ3, minΓ3, sma,
|
| 269 |
-
energyΓ3, iqrΓ3, entropyΓ3,
|
| 270 |
-
maxIndsΓ3, meanFreqΓ3,
|
| 271 |
-
(skewness, kurtosis)Γ3 interleaved,
|
| 272 |
-
bandsEnergyΓ14 per axis (Γ3 axes = 42)
|
| 273 |
-
"""
|
| 274 |
-
x, y, z = sig[:, 0], sig[:, 1], sig[:, 2]
|
| 275 |
-
|
| 276 |
-
def _fft(s):
|
| 277 |
-
return np.abs(np.fft.rfft(s))[:64]
|
| 278 |
-
|
| 279 |
-
fx, fy, fz = _fft(x), _fft(y), _fft(z)
|
| 280 |
-
bins = np.arange(1, 65, dtype=np.float64) # 1-indexed bin numbers
|
| 281 |
-
|
| 282 |
-
def _mfreq(fm):
|
| 283 |
-
t = fm.sum()
|
| 284 |
-
return float(np.dot(bins[:len(fm)], fm) / t) if t > 1e-12 else 0.0
|
| 285 |
-
|
| 286 |
-
def _maxinds(fm):
|
| 287 |
-
return float(np.argmax(fm) + 1) # 1-indexed
|
| 288 |
-
|
| 289 |
-
out = []
|
| 290 |
-
out += [fx.mean(), fy.mean(), fz.mean()]
|
| 291 |
-
out += [fx.std(), fy.std(), fz.std()]
|
| 292 |
-
out += [
|
| 293 |
-
float(np.median(np.abs(fx - np.median(fx)))),
|
| 294 |
-
float(np.median(np.abs(fy - np.median(fy)))),
|
| 295 |
-
float(np.median(np.abs(fz - np.median(fz)))),
|
| 296 |
-
]
|
| 297 |
-
out += [fx.max(), fy.max(), fz.max()]
|
| 298 |
-
out += [fx.min(), fy.min(), fz.min()]
|
| 299 |
-
n = len(fx)
|
| 300 |
-
out += [float((fx + fy + fz).sum() / n)] # sma of FFT mags
|
| 301 |
-
out += [float(np.sum(fx ** 2) / n), float(np.sum(fy ** 2) / n), float(np.sum(fz ** 2) / n)]
|
| 302 |
-
out += [
|
| 303 |
-
float(np.percentile(fx, 75) - np.percentile(fx, 25)),
|
| 304 |
-
float(np.percentile(fy, 75) - np.percentile(fy, 25)),
|
| 305 |
-
float(np.percentile(fz, 75) - np.percentile(fz, 25)),
|
| 306 |
-
]
|
| 307 |
-
out += [_entropy(fx), _entropy(fy), _entropy(fz)]
|
| 308 |
-
out += [_maxinds(fx), _maxinds(fy), _maxinds(fz)]
|
| 309 |
-
out += [_mfreq(fx), _mfreq(fy), _mfreq(fz)]
|
| 310 |
-
# skewness/kurtosis interleaved per axis (skX,kurX, skY,kurY, skZ,kurZ)
|
| 311 |
-
out += [float(skew(fx)), float(sp_kurtosis(fx))]
|
| 312 |
-
out += [float(skew(fy)), float(sp_kurtosis(fy))]
|
| 313 |
-
out += [float(skew(fz)), float(sp_kurtosis(fz))]
|
| 314 |
-
out += _bands_energy(fx).tolist()
|
| 315 |
-
out += _bands_energy(fy).tolist()
|
| 316 |
-
out += _bands_energy(fz).tolist()
|
| 317 |
-
|
| 318 |
-
return np.array(out, dtype=np.float64) # 79 values
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
def _fmag(sig: np.ndarray) -> np.ndarray:
|
| 322 |
-
"""13 frequency-domain features from a 1-D magnitude signal.
|
| 323 |
-
|
| 324 |
-
Order: mean, std, mad, max, min, sma, energy, iqr, entropy,
|
| 325 |
-
maxInds, meanFreq, skewness, kurtosis
|
| 326 |
-
"""
|
| 327 |
-
fm = np.abs(np.fft.rfft(sig))[:64]
|
| 328 |
-
n = len(fm)
|
| 329 |
-
bins = np.arange(1, n + 1, dtype=np.float64)
|
| 330 |
-
total = fm.sum()
|
| 331 |
-
out = [
|
| 332 |
-
float(fm.mean()),
|
| 333 |
-
float(fm.std()),
|
| 334 |
-
float(np.median(np.abs(fm - np.median(fm)))),
|
| 335 |
-
float(fm.max()),
|
| 336 |
-
float(fm.min()),
|
| 337 |
-
float(np.abs(fm).sum() / n),
|
| 338 |
-
float(np.sum(fm ** 2) / n),
|
| 339 |
-
float(np.percentile(fm, 75) - np.percentile(fm, 25)),
|
| 340 |
-
_entropy(fm),
|
| 341 |
-
float(np.argmax(fm) + 1), # maxInds (1-indexed)
|
| 342 |
-
float(np.dot(bins, fm) / total) if total > 1e-12 else 0.0, # meanFreq
|
| 343 |
-
float(skew(fm)),
|
| 344 |
-
float(sp_kurtosis(fm)),
|
| 345 |
-
]
|
| 346 |
-
return np.array(out, dtype=np.float64) # 13 values
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
def _window_features(
|
| 350 |
-
body_acc: np.ndarray,
|
| 351 |
-
grav_acc: np.ndarray,
|
| 352 |
-
body_jerk: np.ndarray,
|
| 353 |
-
gyro: np.ndarray,
|
| 354 |
-
gyro_jerk: np.ndarray,
|
| 355 |
-
) -> np.ndarray:
|
| 356 |
-
"""Extract all 561 features from one pre-processed window.
|
| 357 |
-
|
| 358 |
-
Args:
|
| 359 |
-
body_acc: body linear acceleration (128, 3) m/sΒ²
|
| 360 |
-
grav_acc: gravity component (128, 3) m/sΒ²
|
| 361 |
-
body_jerk: body jerk (127, 3) m/sΒ³
|
| 362 |
-
gyro: angular velocity (128, 3) rad/s
|
| 363 |
-
gyro_jerk: gyro jerk (127, 3) rad/sΒ²
|
| 364 |
-
|
| 365 |
-
Returns:
|
| 366 |
-
1-D array of 561 features
|
| 367 |
-
"""
|
| 368 |
-
# Magnitudes
|
| 369 |
-
ba_mag = np.linalg.norm(body_acc, axis=1)
|
| 370 |
-
ga_mag = np.linalg.norm(grav_acc, axis=1)
|
| 371 |
-
bj_mag = np.linalg.norm(body_jerk, axis=1)
|
| 372 |
-
gy_mag = np.linalg.norm(gyro, axis=1)
|
| 373 |
-
gj_mag = np.linalg.norm(gyro_jerk, axis=1)
|
| 374 |
-
|
| 375 |
-
parts = []
|
| 376 |
-
|
| 377 |
-
# Time 3-axis (5 Γ 40 = 200)
|
| 378 |
-
for sig in [body_acc, grav_acc, body_jerk, gyro, gyro_jerk]:
|
| 379 |
-
parts.append(_t3ax(sig))
|
| 380 |
-
|
| 381 |
-
# Time magnitudes (5 Γ 13 = 65)
|
| 382 |
-
for mag in [ba_mag, ga_mag, bj_mag, gy_mag, gj_mag]:
|
| 383 |
-
parts.append(_tmag(mag))
|
| 384 |
-
|
| 385 |
-
# Freq 3-axis (3 Γ 79 = 237)
|
| 386 |
-
for sig in [body_acc, body_jerk, gyro]:
|
| 387 |
-
parts.append(_f3ax(sig))
|
| 388 |
-
|
| 389 |
-
# Freq magnitudes (4 Γ 13 = 52)
|
| 390 |
-
for mag in [ba_mag, bj_mag, gy_mag, gj_mag]:
|
| 391 |
-
parts.append(_fmag(mag))
|
| 392 |
-
|
| 393 |
-
# Angle features (7)
|
| 394 |
-
ba_mean = body_acc.mean(axis=0)
|
| 395 |
-
ga_mean = grav_acc.mean(axis=0)
|
| 396 |
-
bj_mean = body_jerk.mean(axis=0)
|
| 397 |
-
gy_mean = gyro.mean(axis=0)
|
| 398 |
-
gj_mean = gyro_jerk.mean(axis=0)
|
| 399 |
-
|
| 400 |
-
parts.append(np.array([
|
| 401 |
-
_angle(ba_mean, ga_mean),
|
| 402 |
-
_angle(bj_mean, ga_mean),
|
| 403 |
-
_angle(gy_mean, ga_mean),
|
| 404 |
-
_angle(gj_mean, ga_mean),
|
| 405 |
-
_angle(np.array([1.0, 0.0, 0.0]), ga_mean),
|
| 406 |
-
_angle(np.array([0.0, 1.0, 0.0]), ga_mean),
|
| 407 |
-
_angle(np.array([0.0, 0.0, 1.0]), ga_mean),
|
| 408 |
-
]))
|
| 409 |
-
|
| 410 |
-
result = np.concatenate(parts)
|
| 411 |
-
assert result.shape == (561,), f"Feature count error: got {result.shape[0]}, expected 561"
|
| 412 |
-
return result
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
def process_phyphox_files(
|
| 416 |
-
acc_file,
|
| 417 |
-
gyro_file,
|
| 418 |
-
) -> tuple:
|
| 419 |
-
"""Convert Phyphox CSV exports to (n_windows, 561) feature array.
|
| 420 |
-
|
| 421 |
-
Pipeline:
|
| 422 |
-
1. Parse + validate both CSVs
|
| 423 |
-
2. Convert accelerometer from m/sΒ² to g (Γ· 9.80665) to match UCI training units
|
| 424 |
-
3. Interpolate onto common 50 Hz grid
|
| 425 |
-
4. Segment: 128-sample windows, 64-sample hop (50% overlap)
|
| 426 |
-
5. Per window: median filter β 20 Hz Butterworth β gravity separation
|
| 427 |
-
at 0.3 Hz β jerk β magnitudes β 561 features
|
| 428 |
-
|
| 429 |
-
Args:
|
| 430 |
-
acc_file: file-like object β Phyphox Accelerometer CSV
|
| 431 |
-
(columns: Time (s), X (m/s^2), Y (m/s^2), Z (m/s^2))
|
| 432 |
-
gyro_file: file-like object β Phyphox Gyroscope CSV
|
| 433 |
-
(columns: Time (s), X (rad/s), Y (rad/s), Z (rad/s))
|
| 434 |
-
|
| 435 |
-
Returns:
|
| 436 |
-
Tuple of:
|
| 437 |
-
np.ndarray shape (n_windows, 561) β raw (un-normalised) features
|
| 438 |
-
list[str] β warning messages
|
| 439 |
-
|
| 440 |
-
Raises:
|
| 441 |
-
ValueError: invalid format, wrong columns, or < 3 s of data
|
| 442 |
-
"""
|
| 443 |
-
warnings: list = []
|
| 444 |
-
|
| 445 |
-
acc_df = _parse_csv(acc_file, ACC_COLS)
|
| 446 |
-
gyro_df = _parse_csv(gyro_file, GYRO_COLS)
|
| 447 |
-
|
| 448 |
-
acc_t = acc_df["Time (s)"].values
|
| 449 |
-
acc_xyz = acc_df[["X (m/s^2)", "Y (m/s^2)", "Z (m/s^2)"]].values / 9.80665 # m/sΒ² β g
|
| 450 |
-
gyro_t = gyro_df["Time (s)"].values
|
| 451 |
-
gyro_xyz = gyro_df[["X (rad/s)", "Y (rad/s)", "Z (rad/s)"]].values
|
| 452 |
-
|
| 453 |
-
t0 = max(acc_t[0], gyro_t[0])
|
| 454 |
-
t1 = min(acc_t[-1], gyro_t[-1])
|
| 455 |
-
duration = t1 - t0
|
| 456 |
-
|
| 457 |
-
if duration < 3.0:
|
| 458 |
-
raise ValueError(
|
| 459 |
-
f"Recording is {duration:.2f} s β minimum 3 seconds required. "
|
| 460 |
-
"Hold the phone still or walk for at least 3 seconds before exporting."
|
| 461 |
-
)
|
| 462 |
-
|
| 463 |
-
t_grid = np.arange(t0, t1, 1.0 / FS)
|
| 464 |
-
am = (acc_t >= t0) & (acc_t <= t1)
|
| 465 |
-
gm = (gyro_t >= t0) & (gyro_t <= t1)
|
| 466 |
-
|
| 467 |
-
acc_50 = np.column_stack(
|
| 468 |
-
[np.interp(t_grid, acc_t[am], acc_xyz[am, i]) for i in range(3)]
|
| 469 |
-
)
|
| 470 |
-
gyro_50 = np.column_stack(
|
| 471 |
-
[np.interp(t_grid, gyro_t[gm], gyro_xyz[gm, i]) for i in range(3)]
|
| 472 |
-
)
|
| 473 |
-
|
| 474 |
-
n = min(len(acc_50), len(gyro_50))
|
| 475 |
-
acc_50, gyro_50 = acc_50[:n], gyro_50[:n]
|
| 476 |
-
|
| 477 |
-
n_windows = max(0, (n - WINDOW) // STEP + 1)
|
| 478 |
-
if n_windows == 0:
|
| 479 |
-
raise ValueError(
|
| 480 |
-
f"Only {n} samples ({n / FS:.1f} s) after alignment β "
|
| 481 |
-
f"need at least {WINDOW} samples ({WINDOW / FS:.1f} s)."
|
| 482 |
-
)
|
| 483 |
-
|
| 484 |
-
if duration > 60:
|
| 485 |
-
warnings.append(f"Long recording ({duration:.0f} s) β {n_windows} windows extracted.")
|
| 486 |
-
|
| 487 |
-
# Apply noise filters to the full signal before windowing.
|
| 488 |
-
acc_50 = _butter_lp(_median_filt(acc_50), cutoff=20.0)
|
| 489 |
-
gyro_50 = _butter_lp(_median_filt(gyro_50), cutoff=20.0)
|
| 490 |
-
|
| 491 |
-
all_features = []
|
| 492 |
-
dt = 1.0 / FS
|
| 493 |
-
|
| 494 |
-
for start in range(0, n - WINDOW + 1, STEP):
|
| 495 |
-
end = start + WINDOW
|
| 496 |
-
aw = acc_50[start:end] # (128, 3)
|
| 497 |
-
gw = gyro_50[start:end] # (128, 3)
|
| 498 |
-
|
| 499 |
-
# Gravity separation: window mean as gravity estimate.
|
| 500 |
-
# The UCI pipeline used a 0.3 Hz LP on a full continuous recording.
|
| 501 |
-
# That filter needs ~167 samples to settle; a 10-second clip gives only
|
| 502 |
-
# ~500 samples total, so the filter corrupts all but the central window.
|
| 503 |
-
# The window mean is equivalent for symmetric activities (oscillations
|
| 504 |
-
# cancel over a stride cycle) and exact for static activities.
|
| 505 |
-
grav = np.tile(aw.mean(axis=0), (WINDOW, 1))
|
| 506 |
-
body = aw - grav
|
| 507 |
-
|
| 508 |
-
# Jerk: finite difference β (127, 3)
|
| 509 |
-
body_jerk = np.diff(body, axis=0) / dt
|
| 510 |
-
gyro_jerk = np.diff(gw, axis=0) / dt
|
| 511 |
-
|
| 512 |
-
all_features.append(_window_features(body, grav, body_jerk, gw, gyro_jerk))
|
| 513 |
-
|
| 514 |
-
return np.array(all_features), warnings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/streamlit_app.py
CHANGED
|
@@ -1,13 +1,8 @@
|
|
| 1 |
-
import os
|
| 2 |
import streamlit as st
|
| 3 |
import numpy as np
|
| 4 |
import pandas as pd
|
| 5 |
|
| 6 |
-
#
|
| 7 |
-
_SRC_DIR = os.path.dirname(os.path.abspath(__file__))
|
| 8 |
-
_REPO_ROOT = os.path.dirname(_SRC_DIR)
|
| 9 |
-
_SAMPLES_PATH = os.path.join(_REPO_ROOT, "data", "samples.csv")
|
| 10 |
-
_NORM_PATH = os.path.join(_REPO_ROOT, "data", "norm_params.json")
|
| 11 |
|
| 12 |
LABEL_MAP = {
|
| 13 |
0: "WALKING",
|
|
@@ -19,41 +14,35 @@ LABEL_MAP = {
|
|
| 19 |
}
|
| 20 |
|
| 21 |
EXPLANATIONS = {
|
| 22 |
-
"LAYING": "Minimal movement detected across all axes with low acceleration magnitude
|
| 23 |
"SITTING": "Low dynamic acceleration with a stable gravity component suggests a stationary upright posture with little body movement.",
|
| 24 |
"STANDING": "Similar to sitting but with slight postural micro-movements. This class is often the hardest to distinguish from sitting.",
|
| 25 |
-
"WALKING": "Rhythmic periodic acceleration with peaks on the vertical axis
|
| 26 |
"WALKING_DOWNSTAIRS": "Downward gravitational shift with higher impact peaks characteristic of descending a staircase.",
|
| 27 |
-
"WALKING_UPSTAIRS": "Elevated vertical acceleration effort with upward body displacement
|
| 28 |
}
|
| 29 |
|
|
|
|
|
|
|
| 30 |
@st.cache_resource
|
| 31 |
-
def load_model(
|
| 32 |
try:
|
| 33 |
-
from huggingface_hub import hf_hub_download
|
| 34 |
import tensorflow as tf
|
| 35 |
-
from model_def import FeedForwardNetwork
|
| 36 |
-
|
| 37 |
-
model_path = hf_hub_download(
|
| 38 |
-
repo_id="Group3DActRecog/actRecog",
|
| 39 |
-
filename=filename,
|
| 40 |
-
repo_type="space",
|
| 41 |
-
)
|
| 42 |
model = tf.keras.models.load_model(
|
| 43 |
-
|
| 44 |
-
custom_objects={
|
| 45 |
-
"FeedForwardNetwork": FeedForwardNetwork,
|
| 46 |
-
"Conv1DNetwork": Conv1DNetwork,
|
| 47 |
-
},
|
| 48 |
)
|
| 49 |
return model, "ready"
|
| 50 |
except Exception as e:
|
| 51 |
return None, f"error: {e}"
|
| 52 |
|
|
|
|
|
|
|
| 53 |
st.set_page_config(
|
| 54 |
page_title="Human Activity Recognition",
|
| 55 |
page_icon="π",
|
| 56 |
-
layout="
|
| 57 |
)
|
| 58 |
|
| 59 |
st.title("Human Activity Recognition")
|
|
@@ -63,6 +52,8 @@ st.markdown(
|
|
| 63 |
"Classifies six daily activities from accelerometer and gyroscope readings."
|
| 64 |
)
|
| 65 |
|
|
|
|
|
|
|
| 66 |
with st.sidebar:
|
| 67 |
st.header("About")
|
| 68 |
st.markdown("""
|
|
@@ -74,29 +65,25 @@ with st.sidebar:
|
|
| 74 |
**Classes:** 6 activities of daily living
|
| 75 |
""")
|
| 76 |
st.markdown("---")
|
| 77 |
-
st.markdown("**
|
| 78 |
-
st.
|
| 79 |
-
|
| 80 |
-
Dense(512) β Dense(256) β Dense(128)
|
| 81 |
-
BatchNorm + Dropout(0.3) per layer
|
| 82 |
-
|
| 83 |
-
**CNN**: 1D Convolutional Network
|
| 84 |
-
Conv1D(64) β Conv1D(128) β Conv1D(256)
|
| 85 |
-
GlobalAvgPool β Dense(128)
|
| 86 |
-
""")
|
| 87 |
st.markdown("---")
|
|
|
|
|
|
|
|
|
|
| 88 |
|
| 89 |
-
|
| 90 |
-
cnn_model, cnn_status = load_model("har_cnn.keras")
|
| 91 |
|
| 92 |
-
if
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
st.warning(f"CNN not loaded: {cnn_status}")
|
| 97 |
|
| 98 |
tab1, tab2 = st.tabs(["Select a Sample", "Upload Phyphox CSV"])
|
| 99 |
|
|
|
|
|
|
|
| 100 |
with tab1:
|
| 101 |
st.subheader("Select a pre-loaded test sample")
|
| 102 |
st.caption(
|
|
@@ -105,11 +92,14 @@ with tab1:
|
|
| 105 |
)
|
| 106 |
|
| 107 |
try:
|
| 108 |
-
samples_df = pd.read_csv(
|
| 109 |
-
feature_cols = [
|
|
|
|
|
|
|
|
|
|
| 110 |
|
| 111 |
sample_labels = [
|
| 112 |
-
f"Sample {i+1}
|
| 113 |
for i, (_, row) in enumerate(samples_df.iterrows())
|
| 114 |
]
|
| 115 |
|
|
@@ -126,57 +116,73 @@ with tab1:
|
|
| 126 |
st.metric("Feature count", len(feature_vector))
|
| 127 |
|
| 128 |
if st.button("Classify this sample", type="primary"):
|
| 129 |
-
if
|
| 130 |
-
st.error("
|
| 131 |
else:
|
| 132 |
arr = feature_vector.reshape(1, -1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 133 |
|
| 134 |
-
|
| 135 |
-
|
| 136 |
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
|
|
|
|
|
|
|
|
|
| 143 |
|
| 144 |
-
st.markdown("
|
| 145 |
-
st.
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
st.error(f"**{ffn_label}** Β· {ffn_conf:.1f}% confidence Β· β Incorrect (true: {true_label})")
|
| 155 |
-
|
| 156 |
-
st.markdown(f"_{EXPLANATIONS[ffn_label]}_")
|
| 157 |
-
st.markdown("**Confidence across all classes**")
|
| 158 |
-
st.bar_chart(pd.DataFrame(
|
| 159 |
-
{"Confidence (%)": [float(ffn_probs[i]) * 100 for i in range(6)]},
|
| 160 |
-
index=[LABEL_MAP[i] for i in range(6)]
|
| 161 |
-
))
|
| 162 |
-
|
| 163 |
-
with right:
|
| 164 |
-
st.markdown("#### 1D Convolutional Network")
|
| 165 |
-
if cnn_label == true_label:
|
| 166 |
-
st.success(f"**{cnn_label}** Β· {cnn_conf:.1f}% confidence Β· β Correct")
|
| 167 |
-
else:
|
| 168 |
-
st.error(f"**{cnn_label}** Β· {cnn_conf:.1f}% confidence Β· β Incorrect (true: {true_label})")
|
| 169 |
-
|
| 170 |
-
st.markdown(f"_{EXPLANATIONS[cnn_label]}_")
|
| 171 |
-
st.markdown("**Confidence across all classes**")
|
| 172 |
-
st.bar_chart(pd.DataFrame(
|
| 173 |
-
{"Confidence (%)": [float(cnn_probs[i]) * 100 for i in range(6)]},
|
| 174 |
-
index=[LABEL_MAP[i] for i in range(6)]
|
| 175 |
-
))
|
| 176 |
|
| 177 |
except FileNotFoundError:
|
| 178 |
st.error("Sample data file not found. Add `data/samples.csv` to the repo.")
|
| 179 |
|
|
|
|
|
|
|
| 180 |
with tab2:
|
| 181 |
-
|
| 182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import numpy as np
|
| 3 |
import pandas as pd
|
| 4 |
|
| 5 |
+
# ββ Constants ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
LABEL_MAP = {
|
| 8 |
0: "WALKING",
|
|
|
|
| 14 |
}
|
| 15 |
|
| 16 |
EXPLANATIONS = {
|
| 17 |
+
"LAYING": "Minimal movement detected across all axes with low acceleration magnitude β consistent with a stationary horizontal posture.",
|
| 18 |
"SITTING": "Low dynamic acceleration with a stable gravity component suggests a stationary upright posture with little body movement.",
|
| 19 |
"STANDING": "Similar to sitting but with slight postural micro-movements. This class is often the hardest to distinguish from sitting.",
|
| 20 |
+
"WALKING": "Rhythmic periodic acceleration with peaks on the vertical axis β consistent with level walking at normal cadence.",
|
| 21 |
"WALKING_DOWNSTAIRS": "Downward gravitational shift with higher impact peaks characteristic of descending a staircase.",
|
| 22 |
+
"WALKING_UPSTAIRS": "Elevated vertical acceleration effort with upward body displacement β consistent with climbing stairs.",
|
| 23 |
}
|
| 24 |
|
| 25 |
+
# ββ Model loader ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 26 |
+
|
| 27 |
@st.cache_resource
|
| 28 |
+
def load_model():
|
| 29 |
try:
|
|
|
|
| 30 |
import tensorflow as tf
|
| 31 |
+
from model_def import FeedForwardNetwork
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
model = tf.keras.models.load_model(
|
| 33 |
+
"model.keras",
|
| 34 |
+
custom_objects={"FeedForwardNetwork": FeedForwardNetwork},
|
|
|
|
|
|
|
|
|
|
| 35 |
)
|
| 36 |
return model, "ready"
|
| 37 |
except Exception as e:
|
| 38 |
return None, f"error: {e}"
|
| 39 |
|
| 40 |
+
# ββ Page config βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 41 |
+
|
| 42 |
st.set_page_config(
|
| 43 |
page_title="Human Activity Recognition",
|
| 44 |
page_icon="π",
|
| 45 |
+
layout="centered"
|
| 46 |
)
|
| 47 |
|
| 48 |
st.title("Human Activity Recognition")
|
|
|
|
| 52 |
"Classifies six daily activities from accelerometer and gyroscope readings."
|
| 53 |
)
|
| 54 |
|
| 55 |
+
# ββ Sidebar ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 56 |
+
|
| 57 |
with st.sidebar:
|
| 58 |
st.header("About")
|
| 59 |
st.markdown("""
|
|
|
|
| 65 |
**Classes:** 6 activities of daily living
|
| 66 |
""")
|
| 67 |
st.markdown("---")
|
| 68 |
+
st.markdown("**Model performance on test set**")
|
| 69 |
+
st.metric("Architecture", "FFN 512β256β128")
|
| 70 |
+
st.metric("Status", "FFN live Β· CNN pending")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
st.markdown("---")
|
| 72 |
+
st.caption("DAT606 Group Assignment Β· Pan-Atlantic University")
|
| 73 |
+
|
| 74 |
+
# ββ Model status βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 75 |
|
| 76 |
+
model, model_status = load_model()
|
|
|
|
| 77 |
|
| 78 |
+
if model_status != "ready":
|
| 79 |
+
st.warning(f"Model not loaded β {model_status}")
|
| 80 |
+
|
| 81 |
+
# ββ Tabs βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
|
|
| 82 |
|
| 83 |
tab1, tab2 = st.tabs(["Select a Sample", "Upload Phyphox CSV"])
|
| 84 |
|
| 85 |
+
# ββ Tab 1: Sample selector βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 86 |
+
|
| 87 |
with tab1:
|
| 88 |
st.subheader("Select a pre-loaded test sample")
|
| 89 |
st.caption(
|
|
|
|
| 92 |
)
|
| 93 |
|
| 94 |
try:
|
| 95 |
+
samples_df = pd.read_csv("data/samples.csv")
|
| 96 |
+
feature_cols = [
|
| 97 |
+
c for c in samples_df.columns
|
| 98 |
+
if c not in ["Activity", "subject"]
|
| 99 |
+
]
|
| 100 |
|
| 101 |
sample_labels = [
|
| 102 |
+
f"Sample {i+1} β {row['Activity']}"
|
| 103 |
for i, (_, row) in enumerate(samples_df.iterrows())
|
| 104 |
]
|
| 105 |
|
|
|
|
| 116 |
st.metric("Feature count", len(feature_vector))
|
| 117 |
|
| 118 |
if st.button("Classify this sample", type="primary"):
|
| 119 |
+
if model_status == "no_model":
|
| 120 |
+
st.error("Model not loaded β cannot predict yet.")
|
| 121 |
else:
|
| 122 |
arr = feature_vector.reshape(1, -1)
|
| 123 |
+
probs = model.predict(arr, verbose=0)[0]
|
| 124 |
+
pred_idx = int(np.argmax(probs))
|
| 125 |
+
pred_label = LABEL_MAP[pred_idx]
|
| 126 |
+
confidence = float(probs[pred_idx]) * 100
|
| 127 |
+
correct = pred_label == true_label
|
| 128 |
|
| 129 |
+
st.markdown("---")
|
| 130 |
+
st.subheader("Result")
|
| 131 |
|
| 132 |
+
if correct:
|
| 133 |
+
st.success(
|
| 134 |
+
f"**{pred_label}** Β· {confidence:.1f}% confidence Β· β Correct"
|
| 135 |
+
)
|
| 136 |
+
else:
|
| 137 |
+
st.error(
|
| 138 |
+
f"**{pred_label}** Β· {confidence:.1f}% confidence Β· "
|
| 139 |
+
f"β Incorrect (true: {true_label})"
|
| 140 |
+
)
|
| 141 |
|
| 142 |
+
st.markdown(f"_{EXPLANATIONS[pred_label]}_")
|
| 143 |
+
st.markdown("**Confidence across all classes**")
|
| 144 |
+
|
| 145 |
+
chart_data = pd.DataFrame({
|
| 146 |
+
"Confidence (%)": [
|
| 147 |
+
float(probs[i]) * 100 for i in range(6)
|
| 148 |
+
]
|
| 149 |
+
}, index=[LABEL_MAP[i] for i in range(6)])
|
| 150 |
+
|
| 151 |
+
st.bar_chart(chart_data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
|
| 153 |
except FileNotFoundError:
|
| 154 |
st.error("Sample data file not found. Add `data/samples.csv` to the repo.")
|
| 155 |
|
| 156 |
+
# ββ Tab 2: Phyphox upload (placeholder) ββββββββοΏ½οΏ½ββββββββββββββββββββββββββββ
|
| 157 |
+
|
| 158 |
with tab2:
|
| 159 |
+
st.subheader("Upload Phyphox sensor recording")
|
| 160 |
+
st.markdown("""
|
| 161 |
+
**How to record your own data:**
|
| 162 |
+
1. Install [Phyphox](https://phyphox.org/) on your phone
|
| 163 |
+
2. Open the **Acceleration (without g)** and **Gyroscope** experiments
|
| 164 |
+
3. Record at least 3 seconds of a single activity
|
| 165 |
+
4. Export as CSV and upload below
|
| 166 |
+
""")
|
| 167 |
+
|
| 168 |
+
uploaded_file = st.file_uploader(
|
| 169 |
+
"Upload Phyphox CSV export",
|
| 170 |
+
type=["csv"],
|
| 171 |
+
help="Export from Phyphox as CSV β must contain accelerometer and gyroscope columns"
|
| 172 |
+
)
|
| 173 |
+
|
| 174 |
+
if uploaded_file is not None:
|
| 175 |
+
st.info(
|
| 176 |
+
"Phyphox pipeline coming soon. "
|
| 177 |
+
"Feature extraction from raw sensor readings "
|
| 178 |
+
"(filtering β jerk β FFT β 561 features) is under development."
|
| 179 |
+
)
|
| 180 |
+
try:
|
| 181 |
+
preview = pd.read_csv(uploaded_file)
|
| 182 |
+
st.markdown("**File preview:**")
|
| 183 |
+
st.dataframe(preview.head(10))
|
| 184 |
+
st.caption(
|
| 185 |
+
f"{len(preview)} rows Β· {len(preview.columns)} columns detected"
|
| 186 |
+
)
|
| 187 |
+
except Exception as e:
|
| 188 |
+
st.error(f"Could not read file: {e}")
|