Spaces:
Runtime error
Runtime error
| """ | |
| A set of mocap feature extraction functions | |
| Created by Omid Alemi | Nov 17 2017 | |
| """ | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| import pandas as pd | |
| import peakutils | |
| def get_foot_contact_idxs(signal, t=0.02, min_dist=120): | |
| up_idxs = peakutils.indexes(signal, thres=t / max(signal), min_dist=min_dist) | |
| down_idxs = peakutils.indexes(-signal, thres=t / min(signal), min_dist=min_dist) | |
| return [up_idxs, down_idxs] | |
| def create_foot_contact_signal(mocap_track, col_name, start=1, t=0.02, min_dist=120): | |
| signal = mocap_track.values[col_name].values | |
| idxs = get_foot_contact_idxs(signal, t, min_dist) | |
| step_signal = [] | |
| c = start | |
| for f in range(len(signal)): | |
| if f in idxs[1]: | |
| c = 0 | |
| elif f in idxs[0]: | |
| c = 1 | |
| step_signal.append(c) | |
| return step_signal | |
| def plot_foot_up_down(mocap_track, col_name, t=0.02, min_dist=120): | |
| signal = mocap_track.values[col_name].values | |
| idxs = get_foot_contact_idxs(signal, t, min_dist) | |
| plt.plot(mocap_track.values.index, signal) | |
| plt.plot(mocap_track.values.index[idxs[0]], signal[idxs[0]], "ro") | |
| plt.plot(mocap_track.values.index[idxs[1]], signal[idxs[1]], "go") | |