add script to process training data
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
if not sys.stdin.isatty():
|
||||
input_stream = sys.stdin
|
||||
|
||||
else:
|
||||
try:
|
||||
input_filename = sys.argv[1]
|
||||
except IndexError:
|
||||
message = 'need filename as first argument if stdin is not full'
|
||||
raise IndexError(message)
|
||||
else:
|
||||
input_stream = open(input_filename, 'r')
|
||||
|
||||
Path("output/plots").mkdir(parents=True, exist_ok=True)
|
||||
|
||||
s = open(f'output/makeplots.sh', 'w')
|
||||
f = None
|
||||
num_events = 0
|
||||
num_records = 0
|
||||
|
||||
for line in input_stream:
|
||||
if not len(line):
|
||||
continue
|
||||
if line.strip() == '=== END ===':
|
||||
if f is not None:
|
||||
f.close()
|
||||
elif line.upper().strip().endswith('.CSV'):
|
||||
num_events += 1
|
||||
components = line.strip().split('.')[:-1]
|
||||
if components[0] == 'TE':
|
||||
components[0] = 'testing'
|
||||
elif components[0] == 'ID':
|
||||
components[0] = 'idle'
|
||||
elif components[0] == 'OF':
|
||||
components[0] = 'off_wrist'
|
||||
elif components[0] == 'SL':
|
||||
components[0] = 'sleeping'
|
||||
elif components[0] == 'WH':
|
||||
components[0] = 'washing_hands'
|
||||
elif components[0] == 'WA':
|
||||
components[0] = 'walking'
|
||||
elif components[0] == 'WB':
|
||||
components[0] = 'walking_with_beverage'
|
||||
elif components[0] == 'JO':
|
||||
components[0] = 'jogging'
|
||||
elif components[0] == 'RU':
|
||||
components[0] = 'running'
|
||||
elif components[0] == 'BI':
|
||||
components[0] = 'biking'
|
||||
elif components[0] == 'HI':
|
||||
components[0] = 'hiking'
|
||||
elif components[0] == 'EL':
|
||||
components[0] = 'elliptical'
|
||||
elif components[0] == 'SU':
|
||||
components[0] = 'stairs_up'
|
||||
elif components[0] == 'SD':
|
||||
components[0] = 'stairs_down'
|
||||
elif components[0] == 'WL':
|
||||
components[0] = 'weight_lifting'
|
||||
name = '.'.join(components).lower().replace('_', '-')
|
||||
s.write(f'../csv2gnuplot.sh -i "{name}.csv" -O "./plots/{name}.png" -g "{name}.gnuplot" -F png -W 1200 -H 675 -e -l -G ../plot.options && rm "{name}.gnuplot"\n')
|
||||
if f is not None:
|
||||
f.close()
|
||||
f = open(f'output/{name}.csv', 'w')
|
||||
else:
|
||||
num_records += 1
|
||||
f.write(line)
|
||||
|
||||
s.close()
|
||||
|
||||
print(f"Processed {num_records} records in {num_events} events!")
|
||||
print("To generate plots: cd output && bash makeplots.sh")
|
||||
Reference in New Issue
Block a user