-
Notifications
You must be signed in to change notification settings - Fork 0
/
datapopulator.py
79 lines (70 loc) · 3.05 KB
/
datapopulator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import os
from dataparser import DataParser
__author__ = 'alexander'
import _sqlite3 as lite
class DataPopulator:
def parseDataAndPersistIntoDb(self, db_filename):
raw_data_filenames = [
"PAMAP2_Dataset/Protocol/subject101.dat",
"PAMAP2_Dataset/Protocol/subject102.dat",
"PAMAP2_Dataset/Protocol/subject103.dat",
"PAMAP2_Dataset/Protocol/subject104.dat",
"PAMAP2_Dataset/Protocol/subject105.dat",
"PAMAP2_Dataset/Protocol/subject106.dat",
"PAMAP2_Dataset/Protocol/subject107.dat",
"PAMAP2_Dataset/Protocol/subject108.dat",
"PAMAP2_Dataset/Protocol/subject109.dat"
]
for (index, dataFilename) in enumerate(raw_data_filenames):
dataParser = DataParser()
dataParser.parseFile(dataFilename)
self.__persistDataParserIntoDb(db_filename, dataParser, index)
def __persistDataParserIntoDb(self, db_filename, data_parser, user_number):
with lite.connect(db_filename) as db_connection:
for (activity, session_list) in data_parser.sessions.items():
for session in session_list:
self.__persistSessionIntoDb(db_connection, user_number, activity, session)
def __persistSessionIntoDb(self, db_connection, user_number, activity, session):
"""
@type user_number int
@type activity int
@type session dataParser.Session
"""
c = db_connection.cursor()
c.execute("""INSERT INTO sessions VALUES(NULL, ?, ?)""", (activity, user_number));
session_id = c.lastrowid
for sample in session.samples:
c.execute("""INSERT INTO raw_samples VALUES(
NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""",
(session_id,
sample.timestamp,
sample.hr,
sample.hand.accX,
sample.hand.accY,
sample.hand.accZ,
sample.hand.gyrX,
sample.hand.gyrY,
sample.hand.gyrZ,
sample.hand.magX,
sample.hand.magY,
sample.hand.magZ,
sample.chest.accX,
sample.chest.accY,
sample.chest.accZ,
sample.chest.gyrX,
sample.chest.gyrY,
sample.chest.gyrZ,
sample.chest.magX,
sample.chest.magY,
sample.chest.magZ,
sample.ankle.accX,
sample.ankle.accY,
sample.ankle.accZ,
sample.ankle.gyrX,
sample.ankle.gyrY,
sample.ankle.gyrZ,
sample.ankle.magX,
sample.ankle.magY,
sample.ankle.magZ)
);
db_connection.commit()