mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-23 03:30:30 +08:00
75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
#!/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") |