Kinetics (.kin)
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)[source]#
Basic processing for ergometer data.
Basic processing for ergometer data (e.g. speed to distance). Should be performed after filtering. Added columns:
Column
Data
Unit
angle
angle
rad
aspeed
angular velocity
rad/s
acc
acceleration
m/s^2
dist
cumulative distance
m
power
power
W
work
instantaneous work
J
uforce
effective force
N
torque
torque around wheel
Nm
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]
- 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:
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/maxspeed
velocity per push
ms
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 (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