Kinetics (.kin)#
Contains functions for working with measurement wheel (Optipush and
SMARTwheel) and ergometer (Esseda) data You will usually only need the
top-level function auto_process.
- worklab.kin.auto_process(data, wheelsize=0.31, rimsize=0.27, sfreq=200, co_f=15, ord_f=2, co_s=6, ord_s=2, force=True, speed=True, variable='torque', cutoff=0.0, wl=201, ord_a=2, minpeak=5.0)[source]#
Top level processing function that performs all processing steps for mw/ergo data.
Contains all signal processing steps in fixed order. It is advised to use this function for all (pre-)processing. If needed to take a look at a specific function to see how it works.
- Parameters:
data (pd.DataFrame, dict) – raw ergometer or measurement wheel data
wheelsize (float) – wheel radius [m]
rimsize (float) – handrim radius [m]
sfreq (int) – sample frequency [Hz]
co_f (int) – cutoff frequency force filter [Hz]
ord_f (int) – order force filter [..]
co_s (int) – cutoff frequency force filter [Hz]
ord_s (int) – order speed filter [..]
force (bool) – force filter toggle, default is True
speed (bool) – speed filter toggle, default is True
variable (str) – variable name used for peak (push) detection
cutoff (float) – noise level for peak (push) detection
wl (int) – window length angle filter
ord_a (int) – order angle filter [..]
minpeak (float) – min peak height for peak (push) detection
- Returns:
data (pd.DataFrame, dict)
pushes (pd.DataFrame, dict)
See also
filter_mw,process_mw,push_by_push_mw,filter_ergo,process_ergo,push_by_push_ergo
- worklab.kin.camber_correct(data, ang)[source]#
Correct for camber angle in measurement wheel data
- Parameters:
data (pd.DataFrame()) – measurement wheel data with forces/torques in 3D
ang (int) – camber angle to correct
- Returns:
data – measurement wheel data with forces/torques in 3D corrected for camber angle
- Return type:
pd.DataFrame()
- worklab.kin.filter_ergo(data, co_f=15.0, ord_f=2, co_s=6.0, ord_s=2, force=True, speed=True)[source]#
Filters ergometer data.
Filters raw ergometer data. Should be used before further processing.
- Parameters:
data (dict) – raw measurement wheel data
co_f (float) – cutoff frequency force filter [Hz]
ord_f (int) – order force filter [..]
co_s (float) – cutoff frequency speed filter [Hz]
ord_s (int) – order speed filter [..]
force (bool) – force filter toggle, default is True
speed (bool) – speed filter toggle, default is True
- Returns:
data – Same data but filtered.
- Return type:
dict
See also
- worklab.kin.filter_mw(data, sfreq=200.0, co_f=15.0, ord_f=2, wl=201, ord_a=2, force=True, speed=True)[source]#
Filters measurement wheel data.
Filters raw measurement wheel data. Should be used before further processing.
- Parameters:
data (pd.DataFrame) – raw measurement wheel data
sfreq (float) – sample frequency [Hz]
co_f (float) – cutoff frequency force filter [Hz]
ord_f (int) – order force filter [..]
wl (int) – window length angle filter
ord_a (int) – order angle filter [..]
force (bool) – force filter toggle, default is True
speed (bool) – speed filter toggle, default is True
- Returns:
data (pd.DataFrame)
Same data but filtered.
See also
- worklab.kin.process_ergo(data, wheelsize=0.31, rimsize=0.275, unit='ms')[source]#
Basic processing for ergometer data.
Basic processing for ergometer data (e.g. speed to distance). Should be performed after filtering. Returned columns:
Column
Data
Unit
time
time
s
force
force (on wheel)
N
speed
speed
m/s
acc
acceleration
m/s^2
aspeed
angular velocity
rad/s
angle
angle
rad
dist
cumulative distance
m
power
power
W
torque
torque around wheel
Nm
uforce
effective force
N
work
instantaneous work
J
Note
the force column contains force on the wheels, uforce (user force) is force on the handrim
- Parameters:
data (dict) – raw ergometer data
wheelsize (float) – wheel radius [m]
rimsize (float) – handrim radius [m]
unit (str) – unit of measured ‘speed’ column; ms, kmh or mph
- Returns:
data
- Return type:
dict
See also
- worklab.kin.process_mw(data, wheelsize=0.31, rimsize=0.275, sfreq=200)[source]#
Basic processing for measurement wheel data.
Basic processing for measurement wheel data (e.g. speed to distance). Should be performed after filtering. Added columns:
Column
Data
Unit
aspeed
angular velocity
rad/s
speed
velocity
m/s
dist
cumulative distance
m
acc
acceleration
m/s^2
ftot
total combined force
N
uforce
effective force
N
force
force on wheel
N
power
power
W
work
instantaneous work
J
- Parameters:
data (pd.DataFrame) – raw measurement wheel data
wheelsize (float) – wheel radius [m]
rimsize (float) – handrim radius [m]
sfreq (int) – sample frequency [Hz]
- Returns:
data
- Return type:
pd.DataFrame
See also
- worklab.kin.push_by_push_ergo(data, variable='power', cutoff=0.0, minpeak=50.0, mindist=5, verbose=True)[source]#
Push-by-push analysis for wheelchair ergometer data.
Push detection and push-by-push analysis for ergometer data. Returns a pandas DataFrame with:
- Parameters:
data (dict) – wheelchair ergometer dictionary with left, right and mean DataFrame
variable (str) – variable name used for peak (push) detection, default = power
cutoff (float) – noise level for peak (push) detection, default = 0
minpeak (float) – min peak height for peak (push) detection, default = 50.0
mindist (int) – minimum sample distance between peak candidates, can be used to speed up algorithm
verbose (Boolean) – can be used to print out the number of pushes for left, right and mean, default = True
- Returns:
pbp – dictionary with left, right and mean push-by-push DataFrame
- Return type:
dict
- worklab.kin.push_by_push_mw(data, variable='torque', cutoff=0.0, minpeak=5.0, mindist=5, verbose=True)[source]#
Push-by-push analysis for measurement wheel data.
Push detection and push-by-push analysis for measurement wheel data. Returns a pandas DataFrame with:
Column
Data
Unit
start/stop/peak
respective indices
tstart/tstop/tpeak
respective samples
s
cangle
contact angle
rad
cangle_deg
contact angle
degrees
mean/maxpower
power per push
W
mean/maxtorque
torque per push
Nm
mean/maxforce
force per push
N
mean/maxuforce
(rim) force per push
N
mean/maxfeff
feffective per push
%
mean/maxftot
ftotal per push
N
work
work per push
J
cwork
work per cycle
J
negwork
negative work/cycle
J
slope
slope onset to peak
Nm/s
smoothness
mean/peak force
ptime
push time
s
ctime
cycle time
s
reltime
relative push/cycle
%
- Parameters:
data (pd.DataFrame) – measurement wheel DataFrame
variable (str) – variable name used for peak (push) detection
cutoff (float) – noise level for peak (push) detection
minpeak (float) – min peak height for peak (push) detection
mindist (int) – minimum sample distance between peak candidates, can be used to speed up algorithm
verbose (Boolean) – can be used to print out the number of pushes, default = True
- Returns:
pbp – push-by-push DataFrame
- Return type:
pd.DataFrame