Files
IPIN2016/code/lukas/ActivityRecognition_Python/DataReader.py
2016-04-05 08:44:29 +02:00

64 lines
1.6 KiB
Python

import numpy as np
import pandas as pd
data_paths = ["Data/WalkingStairs", "Data/Standing",
"Data/Walking", "Data/Fahrstuhl"]
def read_data_files(path):
accelerometer = pd.read_csv(
path + "/Accelerometer.csv", sep=";", skiprows=1, header=0, names=["t", "ax", "ay", "az"])
barometer = pd.read_csv(path + "/Barometer.csv", sep=";",
skiprows=1, header=0, names=["t", "bx", "by", "bz"])
events = pd.read_csv(path + "/Events.txt", sep=";",
skiprows=0, header=None, names=["t", "event"])
data = pd.merge(accelerometer, barometer, on="t", how="outer")
data = pd.merge(data, events, on="t", how="outer")
data = data.sort_values('t')
# Fill all nan values in event with the last known event
data['event'] = data['event'].fillna(method='pad')
# Add additional magnitude column
data['magnitude'] = np.sqrt(data['ax']**2 + data['ay']**2 + data['az']**2)
return data
def increment_timestamps(data_frames):
"""
data_frames: list
"""
max_t = 0
for frame in data_frames:
frame['t'] += max_t
max_t = frame['t'].iloc[-1]
return data_frames
def merge_data_frames(data_frames):
df = pd.DataFrame()
for frame in data_frames:
df = df.append(frame, ignore_index=True)
return df
def load_all_data():
print("Loading data files...")
d = []
for path in data_paths:
data = read_data_files(path)
d.append(data)
d = increment_timestamps(d)
data = merge_data_frames(d)
return data