trackeR: Infrastructure for running and cycling data from GPS-enabled tracking devices
Description
trackeR provides infrastructure for handling cycling and running data from GPS-enabled tracking devices. After extraction and appropriate manipulation of the training or competition attributes, the data are placed into session-aware data objects with an S3 class trackeRdata. The information in the resultant data objects can then be visualised, summarised and analysed through corresponding flexible and extensible methods.
Note
Core facilities in the trackeR package, including reading functions
(see readX ), data pre-processing strategies (see
trackeRdata ), and calculation of concentration and
distribution profiles (see distributionProfile and
concentrationProfile ) are based on un-packaged R code
that was developed by Ioannis Kosmidis for the requirements of the
analyses in Kosmidis & Passfield (2015).
Note
This work has been supported by the English Institute of Sport (currently UK Sports Institute) https://uksportsinstitute.co.uk and University College London (UCL), which jointly contributed to the grant that funded Hannah Frick's Post Doctoral Research Fellowship at UCL between 2014 and 2016 and a percentage of Ioannis Kosmidis' time. Ioannis Kosmidis has also been supported by the Alan Turing Institute under the EPSRC grant EP/N510129/1 (Turing award number TU/B/000082). The support of the aforementioned organisations is greatly acknowledged.
Hannah Frick maintained trackeR from its first release up and since version 1.0.0.
Author(s)
Maintainer: Ioannis Kosmidis ioannis.kosmidis@warwick.ac.uk (ORCID)
Authors:
Hannah Frick hannah.frick@gmail.com (ORCID)
Robin Hornak robinhornak@gmail.com
References
Frick, H., Kosmidis, I. (2017). trackeR: Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices in R. Journal of Statistical Software, 82(7), 1–29. doi:10.18637/jss.v082.i07
Kosmidis, I., and Passfield, L. (2015). Linking the Performance of Endurance Runners to Training and Physiological Effects via Multi-Resolution Elastic Net. ArXiv e-print arXiv:1506.01388.
See Also
Useful links:
Report bugs at https://github.com/trackerproject/trackeR/issues
Coercion function for use in Golden Cheetah
Description
Coercion function for use in Golden Cheetah
Usage
GC2trackeRdata(
gc,
cycling = TRUE,
correct_distances = FALSE,
country = NULL,
mask = TRUE,
from_distances = FALSE,
lgap = 30,
lskip = 5,
m = 11,
silent = FALSE
)
Arguments
gc
Output of GC.activity.
cycling
Logical. Does the data stem from cycling?
correct_distances
Logical. Should the distances be corrected
for elevation? Default is FALSE.
country
ISO3 country code for downloading altitude data. If
NULL, country is derived from longitude and latitude
mask
Logical. Passed on to
getData . Should only the altitudes for
the specified country be extracted (TRUE) or also
those for the neighbouring countries (FALSE)?
from_distances
Logical. Should the speeds be calculated from the distance recordings instead of taken from the speed recordings directly?
lgap
Time in seconds corresponding to the minimal sampling rate.
lskip
Time in seconds between the last observation before a small break and the first imputed speed or the last imputed speed and the first observation after a small break.
m
Number of imputed observations in each small break.
silent
Logical. Should warnings be generated if any of the sanity checks on the data are triggered?
See Also
W' expended.
Description
Calculate W' expended, i.e., the work capacity above critical power/speed which has been depleted and not yet been replenished.
Usage
Wexp(object, w0, cp, version = c("2015", "2012"), meanRecoveryPower = FALSE)
Arguments
object
Univariate zoo object containing
the time stamped power output or speed values. (Power should be
in Watts, speed in meters per second.)
w0
Initial capacity of W', as calculated based on the critical power model by Monod and Scherrer (1965).
cp
Critical power/speed, i.e., the power/speed which can be maintained for longer period of time.
version
How should W' be replenished? Options include
'2015' and '2012' for the versions presented in
Skiba et al. (2015) and Skiba et al. (2012), respectively. See
Details.
meanRecoveryPower
Should the mean of all power outputs below critical power be used as recovery power? See Details.
Details
Skiba et al. (2015) and Skiba et al. (2012) both describe an
exponential decay of W' expended over an interval
[t_{i-1}, t_i) if the power output during this interval is
below critical power:
W_exp (t_i) = W_exp(t_{i-1}) * exp(nu * (t_i - t_{i-1}))
However, the factor nu differs: Skiba et al. (2012) describe it as
1/\tau with \tau estimated as
tau = 546 * exp(-0.01 * (CP - P_i)) + 316
Skiba et al. (2015) use (P_i - CP) / W'_0. Skiba et
al. (2012) and Skiba et al. (2015) employ a constant recovery power
(calculated as the mean over all power outputs below critical
power). This rationale can be applied by setting the argument
meanRecoveryPower to TRUE. Note that this uses
information from all observations with a power output below
critical power, not just those prior to the current time point.
References
Monod H, Scherrer J (1965). 'The Work Capacity of a Synergic Muscular Group.' Ergonomics, 8(3), 329–338.
Skiba PF, Chidnok W, Vanhatalo A, Jones AM (2012). 'Modeling the Expenditure and Reconstitution of Work Capacity above Critical Power.' Medicine & Science in Sports & Exercise, 44(8), 1526–1532.
Skiba PF, Fulford J, Clarke DC, Vanhatalo A, Jones AM (2015). 'Intramuscular Determinants of the Ability to Recover Work Capacity above Critical Power.' European Journal of Applied Physiology, 115(4), 703–713.
W': work capacity above critical power/speed.
Description
W': work capacity above critical power/speed.
Usage
Wprime(
object,
session = NULL,
quantity = c("expended", "balance"),
w0,
cp,
version = c("2015", "2012"),
meanRecoveryPower = FALSE,
parallel = FALSE,
...
)
Arguments
object
A trackeRdata object.
session
A numeric vector of the sessions to be used, defaults to all sessions.
quantity
Should W' 'expended' or W' 'balance'
be returned?
w0
Initial capacity of W', as calculated based on the critical power model by Monod and Scherrer (1965).
cp
Critical power/speed, i.e., the power/speed which can be maintained for longer period of time.
version
How should W' be replenished? Options include
'2015' and '2012' for the versions presented in
Skiba et al. (2015) and Skiba et al. (2012), respectively. See
Details.
meanRecoveryPower
Should the mean of all power outputs below critical power be used as recovery power? See Details.
parallel
Logical. Should computation be carried out in
parallel? If TRUE computation is performed in parallel
using the backend provided to foreach. Default is
FALSE.
...
Currently not used.
Details
#' Skiba et al. (2015) and Skiba et al. (2012) both describe an
exponential decay of W' expended over an interval
[t_{i-1}, t_i) if the power output during this interval is
below critical power:
W_exp (t_i) = W_exp(t_{i-1}) * exp(nu * (t_i - t_{i-1}))
However, the factor nu differs: Skiba et al. (2012) describe it as
1/\tau with \tau estimated as
tau = 546 * exp(-0.01 * (CP - P_i)) + 316
Skiba et al. (2015) use (P_i - CP) / W'_0. Skiba et
al. (2012) and Skiba et al. (2015) employ a constant recovery power
(calculated as the mean over all power outputs below critical
power). This rationale can be applied by setting the argument
meanRecoveryPower to TRUE. Note that this uses
information from all observations with a power output below
critical power, not just those prior to the current time point.
Value
An object of class trackeRWprime.
References
Monod H, Scherrer J (1965). 'The Work Capacity of a Synergic Muscular Group.' Ergonomics, 8(3), 329–338.
Skiba PF, Chidnok W, Vanhatalo A, Jones AM (2012). 'Modeling the Expenditure and Reconstitution of Work Capacity above Critical Power.' Medicine & Science in Sports & Exercise, 44(8), 1526–1532.
Skiba PF, Fulford J, Clarke DC, Vanhatalo A, Jones AM (2015). 'Intramuscular Determinants of the Ability to Recover Work Capacity above Critical Power.' European Journal of Applied Physiology, 115(4), 703–713.
Examples
## Not run:
data('runs', package = 'trackeR')
wexp <- Wprime(runs, session = c(11,13), cp = 4, version = '2012')
plot(wexp)
## End(Not run)
Generic function for appending data to existing files
Description
Generic function for appending data to existing files
Usage
append(object, file, ...)
Arguments
object
The object to be appended.
file
The file to which object is to be appended.
...
Arguments to be passed to methods.
Append training sessions to existing file
Description
Append training sessions to existing file
Usage
## S3 method for class 'trackeRdata'
append(object, file, ...)
Arguments
object
The object to be appended.
file
The file to which object is to be appended.
...
Currently not used.
Transform concentration profile to distribution profile.
Description
Transform concentration profile to distribution profile.
Usage
c2d(cp)
Arguments
cp
Single concentration profile as a zoo object.
Generic function for changing the units of measurement
Description
Generic function for changing the units of measurement
Usage
change_units(object, variable, unit, sport, ...)
changeUnits(object, variable, unit, sport, ...)
Arguments
object
The object of which the units of measurement are changed.
variable
A vector of variables whose units are to be changed.
unit
A vector with the units, corresponding to variable.
sport
A vector of sports (among 'cycling',
'running', 'swimming') with each element
corresponding to variable and unit.
...
Arguments to be passed to methods.
Change the units of the variables in an conProfile object
Description
Change the units of the variables in an conProfile object
Usage
## S3 method for class 'conProfile'
change_units(object, variable, unit, ...)
Arguments
object
An object of class conProfile as returned by concentrationProfile .
variable
A vector of variables to be changed.
unit
A vector with the units, corresponding to variable.
...
Currently not used.
Change the units of the variables in an distrProfile object
Description
Change the units of the variables in an distrProfile object
Usage
## S3 method for class 'distrProfile'
change_units(object, variable, unit, ...)
Arguments
object
An object of class distrProfile as returned by distributionProfile .
variable
A vector of variables to be changed.
unit
A vector with the units, corresponding to variable.
...
Currently not used.
Change the units of the variables in an trackeRWprime object
Description
Change the units of the variables in an trackeRWprime object
Usage
## S3 method for class 'trackeRWprime'
change_units(object, variable, unit, ...)
Arguments
object
An object of class trackeRWprime .
variable
A vector of variables to be changed.
unit
A vector with the units, corresponding to variable.
...
Currently not used.
Change the units of the variables in an trackeRdata object
Description
Change the units of the variables in an trackeRdata object
Usage
## S3 method for class 'trackeRdata'
change_units(object, variable, unit, sport, ...)
Arguments
object
An object of class trackeRdata .
variable
A vector of variables whose units are to be changed.
unit
A vector with the units, corresponding to variable.
sport
A vector of sports (among 'cycling',
'running', 'swimming') with each element
corresponding to variable and unit.
...
Arguments to be passed to methods.
Change the units of the variables in an trackeRdataSummary object
Description
Change the units of the variables in an trackeRdataSummary object
Usage
## S3 method for class 'trackeRdataSummary'
change_units(object, variable, unit, ...)
Arguments
object
An object of class trackeRdataSummary.
variable
A vector of variables to be changed. Note, these are expected to be concepts like 'speed' rather than variable names like 'avgSpeed' or 'avgSpeedMoving'.
unit
A vector with the units, corresponding to variable.
...
Currently not used.
Change the units of the variables in an trackeRdataZones object
Description
Change the units of the variables in an trackeRdataZones object
Usage
## S3 method for class 'trackeRdataZones'
change_units(object, variable, unit, ...)
Arguments
object
An object of class trackeRdataZones.
variable
A vector of variables to be changed. Note, these are expected to be concepts like 'speed' rather than variable names like 'avgSpeed' or 'avgSpeedMoving'.
unit
A vector with the units, corresponding to variable.
...
Currently not used.
Change the units of the variables in an trackeRthresholds object
Description
Change the units of the variables in an trackeRthresholds object
Usage
## S3 method for class 'trackeRthresholds'
change_units(object, variable, unit, sport, ...)
Arguments
object
An object of class trackeRthresholds.
variable
A vector of variables whose units are to be changed.
unit
A vector with the units, corresponding to variable.
sport
A vector of sports (among 'cycling',
'running', 'swimming') with each element
corresponding to variable and unit.
...
Arguments to be passed to methods.
Collect units from the result of generate_units
Description
Collects the units from the results of generate_units
according to a unit_reference_sport
Usage
collect_units(object, unit_reference_sport = NULL)
Arguments
object
a data.frame, as returned by
generate_units
unit_reference_sport
The sport to inherit units from
(default is taken to be the most frequent sport in
object).
Compute a grid of breakpoints per variable from a trackeRdata object.
Description
Compute a grid of breakpoints per variable from a trackeRdata object.
Usage
compute_breaks(
object,
a = 1e-04,
n_breaks = 9,
limits = NULL,
what = c("speed", "heart_rate")
)
Arguments
object
A trackeRdata object.
a
The levels at which quantiles will be computed are
a and 1 - a. Default is a = 0.0001.
n_breaks
A scalar determining the number of breakpoints to be computed
limits
A list of a vectors, each specifying the lower and
upper limit for each variable to be used when computing the
grid. Default is NULL, in which case
compute_limits is used.
what
The variables for which a grid of breakpoints should be
computed. Defaults to c("speed", "heart_rate").
Value
A named list with names as in what, with elements the grids
of breakpoints per variable.
Examples
data("runs")
compute_breaks(runs, what = c("speed", "heart_rate", "altitude"))
Compute variable limits from a trackeRdata object.
Description
Compute variable limits from a trackeRdata object.
Usage
compute_limits(object, a = 1e-04)
Arguments
object
A trackeRdata object.
a
The levels at which quantiles will be computed are a
and 1 - a. Default is a = 0.0001.
Details
compute_limits computes limits by finding the a and
1 - a quantiles for each variable in each session, and then
taking the minimum and maximum of the a and 1 - a,
respectively, across sessions.
Generic method for concentration profiles
Description
Generic method for concentration profiles
Usage
concentration_profile(object, session = NULL, what = NULL, ...)
concentrationProfile(object, session = NULL, what = NULL, ...)
Arguments
object
An object of class trackeRdata or distrProfile .
session
A numeric vector of the sessions to be used, defaults to all sessions.
what
The variables for which the distribution profiles
should be generated. Defaults to all variables in object
(what = NULL).
...
Currently not used.
See Also
concentration_profile.distrProfile concentration_profile.trackeRdata
Examples
## Not run:
## Compute conecntration profiles from distribution profiles
data('run', package = 'trackeR')
dProfile <- distributionProfile(run, what = 'speed', grid = seq(0, 12.5, by = 0.05))
cProfile <- concentrationProfile(dProfile)
plot(cProfile, smooth = FALSE)
plot(cProfile)
## And now directly from the 'trackeRdata' object, which is a
## considerably faster if all that is needed are the concentration
## profiles
cProfile <- concentrationProfile(runs, what = 'speed',
limits = list(speed = c(0, 12.5)))
plot(cProfile, smooth = FALSE)
ridges(cProfile)
plot(cProfile, smooth = TRUE)
## End(Not run)
Generate training concentration profiles.
Description
Generate training concentration profiles.
Usage
## S3 method for class 'distrProfile'
concentration_profile(object, session = NULL, what = NULL, ...)
## S3 method for class 'trackeRdata'
concentration_profile(
object,
session = NULL,
what = NULL,
limits = NULL,
parallel = FALSE,
unit_reference_sport = NULL,
scale = FALSE,
...
)
Arguments
object
An object of class trackeRdata or distrProfile .
session
A numeric vector of the sessions to be used, defaults to all sessions.
what
The variables for which the distribution profiles
should be generated. Defaults to all variables in object
(what = NULL).
...
Currently not used.
limits
A named list of vectors of two numbers to specify the
lower and upper limits for the variables in what. If
NULL (default) the limits for the variables in
what are inferred from object.
parallel
Logical. Should computation be carried out in
parallel? Default is FALSE.
unit_reference_sport
The sport to inherit units from
(default is taken to be the most frequent sport in
object).
scale
Logical. If FALSE (default) then the integral
of the profiles over the real line matches the session length.
Value
An object of class conProfile.
Object:
A named list with one or more components, corresponding to the
value of what. Each component is a matrix of dimension
g times n, where g is the length of the grids
set in grid (or 200 if grid = NULL) and n is
the number of sessions requested in the session argument.
Attributes:
Each conProfile object has the following attributes:
-
sport: the sports corresponding to the columns of each list component -
session_times: the session start and end times corresponding to the columns of each list component -
unit_reference_sport: the sport where the units have been inherited from -
operations: a list with the operations that have been applied to the object. Seeget_operations.distrProfile -
limits: The variable limits that have been used for the computation of the concentration profiles. -
units: an object listing the units used for the calculation of distribution profiles. These is the output ofget_unitson the correspondingtrackeRdataobject, after inheriting units fromunit_reference_sport.
References
Kosmidis, I., and Passfield, L. (2015). Linking the Performance of Endurance Runners to Training and Physiological Effects via Multi-Resolution Elastic Net. ArXiv e-print arXiv:1506.01388.
Frick, H., Kosmidis, I. (2017). trackeR: Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices in R. Journal of Statistical Software, 82(7), 1–29. doi:10.18637/jss.v082.i07
Auxiliary conversion functions
Description
Conversion functions for distance, duration, speed, pace, power, cadence and temperature.
Usage
m2km(variable)
km2m(variable)
m2ft(variable)
ft2m(variable)
m2mi(variable)
mi2m(variable)
km2ft(variable)
ft2km(variable)
km2mi(variable)
mi2km(variable)
ft2mi(variable)
mi2ft(variable)
m2m(variable)
km2km(variable)
ft2ft(variable)
mi2mi(variable)
s2min(variable)
min2s(variable)
s2h(variable)
h2s(variable)
min2h(variable)
h2min(variable)
h2h(variable)
min2min(variable)
s2s(variable)
min2min(variable)
h2h(variable)
degree2degree(variable)
m_per_s2km_per_h(variable)
km_per_h2m_per_s(variable)
m_per_s2ft_per_min(variable)
ft_per_min2m_per_s(variable)
m_per_s2ft_per_s(variable)
ft_per_s2m_per_s(variable)
m_per_s2mi_per_h(variable)
mi_per_h2m_per_s(variable)
m_per_s2km_per_min(variable)
km_per_min2m_per_s(variable)
m_per_s2mi_per_min(variable)
mi_per_min2m_per_s(variable)
km_per_h2ft_per_min(variable)
ft_per_min2km_per_h(variable)
km_per_h2ft_per_s(variable)
ft_per_s2km_per_h(variable)
km_per_h2mi_per_h(variable)
mi_per_h2km_per_h(variable)
km_per_h2km_per_min(variable)
km_per_min2km_per_h(variable)
km_per_h2mi_per_min(variable)
mi_per_min2km_per_h(variable)
ft_per_min2ft_per_s(variable)
ft_per_s2ft_per_min(variable)
ft_per_min2mi_per_h(variable)
mi_per_h2ft_per_min(variable)
ft_per_min2km_per_min(variable)
km_per_min2ft_per_min(variable)
ft_per_min2mi_per_min(variable)
mi_per_min2ft_per_min(variable)
ft_per_s2mi_per_h(variable)
mi_per_h2ft_per_s(variable)
ft_per_s2km_per_min(variable)
km_per_min2ft_per_s(variable)
ft_per_s2mi_per_min(variable)
mi_per_min2ft_per_s(variable)
mi_per_h2km_per_min(variable)
km_per_min2mi_per_h(variable)
mi_per_h2mi_per_min(variable)
mi_per_min2mi_per_h(variable)
km_per_min2mi_per_min(variable)
mi_per_min2km_per_min(variable)
m_per_s2m_per_s(variable)
km_per_h2km_per_h(variable)
ft_per_min2ft_per_min(variable)
ft_per_s2ft_per_s(variable)
mi_per_h2mi_per_h(variable)
km_per_min2km_per_min(variable)
mi_per_min2mi_per_min(variable)
m_per_s2m_per_min(variable)
m_per_min2m_per_s(variable)
m_per_min2m_per_min(variable)
bpm2bpm(variable)
s_per_m2min_per_km(variable)
min_per_km2s_per_m(variable)
s_per_m2min_per_mi(variable)
min_per_mi2s_per_m(variable)
min_per_km2min_per_mi(variable)
min_per_mi2min_per_km(variable)
min_per_ft2min_per_km(variable)
min_per_ft2min_per_mi(variable)
s_per_m2s_per_m(variable)
min_per_km2min_per_km(variable)
min_per_mi2min_per_mi(variable)
h_per_km2min_per_km(variable)
h_per_km2min_per_mi(variable)
h_per_mi2min_per_km(variable)
h_per_mi2min_per_mi(variable)
W2kW(variable)
kW2W(variable)
W2W(variable)
kW2kW(variable)
steps_per_min2steps_per_min(variable)
rev_per_min2rev_per_min(variable)
steps_per_min2rev_per_min(variable)
rev_per_min2steps_per_min(variable)
C2F(variable)
C2C(variable)
F2F(variable)
F2C(variable)
Arguments
variable
Variable to be converted.
Smooth a decreasing function.
Description
This smoother ensures a positive response that is a monotone decreasing function of x.
Usage
decreasing_smoother(x, y, k = 30, len = NULL, sp = NULL)
decreasingSmoother(x, y, k = 30, len = NULL, sp = NULL)
Arguments
x
The regressor passed on to the formula argument of scam .
y
The response passed on to the formula argument of scam .
k
Number of knots.
len
If NULL, the default, x is used for prediction. Otherwise,
prediction is done over the range of x with len equidistant points.
sp
A vector of smoothing parameters passed on to scam .
Convert distance to speed.
Description
Convert distance to speed.
Usage
distance2speed(distance, time, timeunit)
Arguments
distance
Distance in meters.
time
Time.
timeunit
Time unit in speed, e.g., "hours" for speed in *_per_h.
Value
Speed in meters per second.
Generate training distribution profiles.
Description
Generate training distribution profiles.
Usage
distribution_profile(
object,
session = NULL,
what = NULL,
grid = NULL,
parallel = FALSE,
unit_reference_sport = NULL
)
distributionProfile(
object,
session = NULL,
what = NULL,
grid = NULL,
parallel = FALSE,
unit_reference_sport = NULL
)
Arguments
object
An object of class trackeRdata .
session
A numeric vector of the sessions to be used, defaults to all sessions.
what
The variables for which the distribution profiles
should be generated. Defaults to all variables in
object (what = NULL).
grid
A named list containing the grid values for the
variables in what. If NULL (default) the grids
for the variables in what are inferred from
object.
parallel
Logical. Should computation be carried out in
parallel? Default is FALSE.
unit_reference_sport
The sport to inherit units from
(default is taken to be the most frequent sport in
object).
Value
An object of class distrProfile.
Object:
A named list with one or more components, corresponding to the
value of what. Each component is a matrix of dimension
g times n, where g is the length of the grids
set in grid (or 201 if grid = NULL) and n is
the number of sessions requested in the session argument.
Attributes:
Each distrProfile object has the following attributes:
-
sport: the sports corresponding to the columns of each list component -
session_times: the session start and end times corresponding to the columns of each list component -
unit_reference_sport: the sport where the units have been inherited from -
operations: a list with the operations that have been applied to the object. Seeget_operations.distrProfile -
limits: The variable limits that have been used for the computation of the distribution profiles -
units: an object listing the units used for the calculation of distribution profiles. These is the output ofget_unitson the correspondingtrackeRdataobject, after inheriting units fromunit_reference_sport.
References
Kosmidis, I., and Passfield, L. (2015). Linking the Performance of Endurance Runners to Training and Physiological Effects via Multi-Resolution Elastic Net. ArXiv e-print arXiv:1506.01388.
Frick, H., Kosmidis, I. (2017). trackeR: Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices in R. Journal of Statistical Software, 82(7), 1–29. doi:10.18637/jss.v082.i07
Examples
data('run', package = 'trackeR')
dProfile <- distribution_profile(run, what = c("speed", "cadence_running"))
## Not run:
plot(dProfile, smooth = FALSE)
## End(Not run)
Find the most frequent sport in an object
Description
Find the most frequent sport in an object
Usage
find_unit_reference_sport(object)
Arguments
object
any object with a get_sport method
implemented (run methods(get_sport)).
Fortify a conProfile object for plotting with ggplot2.
Description
Fortify a conProfile object for plotting with ggplot2.
Usage
## S3 method for class 'conProfile'
fortify(model, data, melt = FALSE, ...)
fortify_conProfile(model, data, melt = FALSE, ...)
Arguments
model
The conProfile object.
data
Ignored.
melt
Logical. Should the data be melted into long format instead of the default wide format?
...
Ignored.
Fortify a distrProfile object for plotting with ggplot2.
Description
Fortify a distrProfile object for plotting with ggplot2.
Usage
## S3 method for class 'distrProfile'
fortify(model, data, melt = FALSE, ...)
fortify_distrProfile(model, data, melt = FALSE, ...)
Arguments
model
The distrProfile object.
data
Ignored.
melt
Logical. Should the data be melted into long format instead of the default wide format?
...
Ignored.
Fortify a trackeRWprime object for plotting with ggplot2.
Description
Fortify a trackeRWprime object for plotting with ggplot2.
Usage
## S3 method for class 'trackeRWprime'
fortify(model, data, melt = FALSE, ...)
fortify_trackeRWprime(model, data, melt = FALSE, ...)
Arguments
model
The trackeRWprime object as returned by Wprime .
data
Ignored.
melt
Logical. Should the data be melted into long format instead of the default wide format?
...
Ignored.
Fortify a trackeRdata object for plotting with ggplot2
Description
Fortify a trackeRdata object for plotting with ggplot2
Usage
## S3 method for class 'trackeRdata'
fortify(model, data, melt = FALSE, ...)
fortify_trackeRdata(model, data, melt = FALSE, ...)
Arguments
model
The trackeRdata object.
data
Ignored.
melt
Logical. Should the data be melted into long format instead of the default wide format?
...
Ignored.
Fortify a trackeRdataSummary object for plotting with ggplot2.
Description
Fortify a trackeRdataSummary object for plotting with ggplot2.
Usage
## S3 method for class 'trackeRdataSummary'
fortify(model, data, melt = FALSE, ...)
fortify_trackeRdataSummary(model, data, melt = FALSE, ...)
Arguments
model
The trackeRdata object.
data
Ignored.
melt
Logical. Should the data be melted into long format instead of the default wide format?
...
Currently not used.
Functional principal components analysis of distribution or concentration profiles.
Description
Functional principal components analysis of distribution or concentration profiles.
Generic function for functional principal components analysis
Usage
## S3 method for class 'distrProfile'
funPCA(object, what, nharm = 4, ...)
## S3 method for class 'conProfile'
funPCA(object, what, nharm = 4, ...)
funPCA(object, ...)
Arguments
object
The object to which a functional principal components analysis is applied.
what
The variable for which the profiles should be analysed.
nharm
The number of principal components estimated.
...
Arguments to be passed to methods.
Details
The ... argument is passed on to pca.fd .
Value
An object of class trackeRfpca.
References
Ramsay JO, Silverman BW (2005). Functional Data Analysis. Springer-Verlag New York.
Examples
## Not run:
data('runs', package = 'trackeR')
dp <- distributionProfile(runs, what = 'speed')
dp.pca <- funPCA(dp, what = 'speed', nharm = 4)
## 1st harmonic captures vast majority of the variation
plot(dp.pca, harm = 1)
## time spent above speed = 0 is the characteristic distinguishing the profiles
sumRuns <- summary(runs)
plot(sumRuns$durationMoving, dp.pca$scores[,1])
## End(Not run)
Generate default thresholds.
Description
Generate default thresholds.
Usage
generate_thresholds(variable, lower, upper, sport, ...)
generateDefaultThresholds(variable, lower, upper, sport, ...)
Arguments
variable
A vector of variables with user-specified thresholds.
lower
A vector of lower limits corresponding to the elements of variable.
upper
A vector of upper limits corresponding to the elements of variable.
sport
A vector of sports (amongst 'cycling',
'running', 'swimming') with each element
corresponding to variable, lower and upper.
...
Currently not used.
Generate and set base units.
Description
Generate and set base units.
Usage
generate_units(variable, unit, sport, ...)
generateBaseUnits(variable, unit, sport, ...)
Arguments
variable
A vector of variables with user-specified units.
unit
A vector with the user-specified units, corresponding to variable (see details).
sport
A vector of sports (amongst 'cycling',
'running', 'swimming') with each element
corresponding to variable and unit.
...
Currently not used.
Details
The available units are
variables
latitudeandlongitudewith unitdegree(default)variables
altitude,distancewith unitm(default),km,miorftvariable
heart_ratewith unitbpm(default)variable
speedwith unitm_per_s(default),km_per_h,ft_per_min,ft_per_sormi_per_hvariable
cadence_runningwith unitsteps_per_min(default; running only)variable
cadence_cyclingwith unitrev_per_min(default; cycling only)variable
powerwith unitW(Watt; default) orkW(cycling only)variable
temperaturewith unitC(Celsius; default) orF
Note that generate_units checks if the supplied combinations
of variable and sport are valid.
generate_units will not check if any of the supplied units
are correct for the corresponding combination of variable
and sport.
(Cumulative) Elevation gain.
Description
(Cumulative) Elevation gain.
Usage
get_elevation_gain(
object,
smooth = FALSE,
cumulative = FALSE,
vertical_noise = 0
)
Arguments
object
A (univariate) zoo object.
smooth
Logical. Should the elevation be smoothed? Default is
TRUE.
cumulative
Logical. Return the cumulative elevation gain
(FALSE; default) or just the elevation gain?
vertical_noise
A scalar. Absolute elevation gains less that
vertical_noise are set to zero. Default is 0.
Details
The elevation gain is defined here as the difference in altitude
between two consecutive observations. If cumulative = FALSE
then the elevation gain is returned, otherwise any elevation loses
(i.e. negative elevation gain) are ignored and the cumulative
elevation gain is returned. If smooth = TRUE then the
elevation gain will be smoothed using a spline smoother before
either returning it or computing cumulative elevation gains.
Generic function for retrieving the operation settings
Description
Generic function for retrieving the operation settings
Usage
get_operations(object, ...)
getOperations(object, ...)
Arguments
object
The object of which the units of measurement are retrieved.
...
Arguments to be passed to methods.
Get the operation settings of an conProfile object
Description
Get the operation settings of an conProfile object
Usage
## S3 method for class 'conProfile'
get_operations(object, ...)
Arguments
object
An object of class conProfile as returned by concentrationProfile .
...
Currently not used.
Get the operation settings of an distrProfile object
Description
Get the operation settings of an distrProfile object
Usage
## S3 method for class 'distrProfile'
get_operations(object, ...)
Arguments
object
An object of class distrProfile as returned by distributionProfile .
...
Currently not used.
Get the operation settings of an trackeRdata object
Description
Get the operation settings of an trackeRdata object
Usage
## S3 method for class 'trackeRdata'
get_operations(object, ...)
Arguments
object
An object of class trackeRdata .
...
Currently not used.
Generic function to subset distribution and concentration profiles
Description
Generic function to subset distribution and concentration profiles
Usage
## S3 method for class 'distrProfile'
get_profile(object, session = NULL, what = NULL, ...)
## S3 method for class 'conProfile'
get_profile(object, session = NULL, what = NULL, ...)
get_profile(object, session, what, ...)
Arguments
object
An object of class distrProfile or conProfile
as returned by distribution_profile and
concentration_profile , respectively.
session
A numeric vector of the sessions to selected. Defaults to all sessions.
what
A character version of the variables to be
selected. Defaults to all variables in object
(what = NULL).
...
Current no used.
Extract resting period characteristics
Description
Extract resting period characteristics
Usage
get_resting_periods(times, session_threshold)
restingPeriods(times, session_threshold)
Arguments
times
Timestamps.
session_threshold
The threshold in hours for the time difference between consecutive timestamps above which they are considered to belong to different training sessions.
Value
A list containing a dataframe with start, end, and duration for each session and the resting time between sessions, named 'sessions' and 'restingTime', respectively.
Generic function for extracting sports
Description
Generic function for extracting sports
Usage
## S3 method for class 'trackeRWprime'
get_sport(object, ...)
## S3 method for class 'conProfile'
get_sport(object, session = NULL, ...)
## S3 method for class 'distrProfile'
get_sport(object, session = NULL, ...)
get_sport(object, session, ...)
## S3 method for class 'trackeRdata'
get_sport(object, session = NULL, ...)
## S3 method for class 'trackeRdataSummary'
get_sport(object, session = NULL, ...)
Arguments
object
The object from which to extract sports.
...
Arguments to be passed to methods.
session
The sessions for which to extract sports.
Generic function for extracting the units of measurement
Description
Generic function for extracting the units of measurement
Usage
get_units(object, ...)
getUnits(object, ...)
Arguments
object
The object of which the units of measurement are retrieved.
...
Arguments to be passed to methods.
Get the units of the variables in an conProfile object
Description
Get the units of the variables in an conProfile object
Usage
## S3 method for class 'conProfile'
get_units(object, ...)
Arguments
object
An object of class conProfile.
...
Currently not used.
Get the units of the variables in an distrProfile object
Description
Get the units of the variables in an distrProfile object
Usage
## S3 method for class 'distrProfile'
get_units(object, ...)
Arguments
object
An object of class distrProfile.
...
Currently not used.
Get the units of the variables in an trackeRWprime object
Description
Get the units of the variables in an trackeRWprime object
Usage
## S3 method for class 'trackeRWprime'
get_units(object, ...)
Arguments
object
An object of class trackeRWprime.
...
Currently not used.
Get the units of the variables in an trackeRdata object
Description
Get the units of the variables in an trackeRdata object
Usage
## S3 method for class 'trackeRdata'
get_units(object, ...)
Arguments
object
An object of class trackeRdata .
...
Currently not used.
Get the units of the variables in an trackeRdataSummary object
Description
Get the units of the variables in an trackeRdataSummary object
Usage
## S3 method for class 'trackeRdataSummary'
get_units(object, ...)
Arguments
object
An object of class trackeRdataSummary.
...
Currently not used.
Get the units of the variables in an trackeRdataZones object
Description
Get the units of the variables in an trackeRdataZones object
Usage
## S3 method for class 'trackeRdataZones'
get_units(object, ...)
Arguments
object
An object of class trackeRdataZones.
...
Currently not used.
Get the units of the variables in an trackeRfpca object
Description
Get the units of the variables in an trackeRfpca object
Usage
## S3 method for class 'trackeRfpca'
get_units(object, ...)
Arguments
object
An object of class trackeRfpca.
...
Currently not used.
Get the units of the variables in an trackeRthresholds object
Description
Get the units of the variables in an trackeRthresholds object
Usage
## S3 method for class 'trackeRthresholds'
get_units(object, ...)
Arguments
object
An object of class trackeRthresholds.
...
Currently not used.
Impute speeds
Description
Impute speeds of 0 during small breaks within a session.
Usage
impute_speeds(
session_data,
from_distances = TRUE,
lgap = 30,
lskip = 5,
m = 11,
sport = "cycling",
units = NULL
)
imputeSpeeds(
session_data,
from_distances = TRUE,
lgap = 30,
lskip = 5,
m = 11,
sport = "cycling",
units = NULL
)
Arguments
session_data
A multivariate zoo object with
observations of either distance or speed (named Distance or Speed,
respectively).
from_distances
Logical. Should the speeds be calculated from the distance recordings instead of taken from the speed recordings directly?
lgap
Time in seconds corresponding to the minimal sampling rate.
lskip
Time in seconds between the last observation before a small break and the first imputed speed or the last imputed speed and the first observation after a small break.
m
Number of imputed observations in each small break.
sport
What sport does sessions_data contain data of? Either
'cycling' (default), 'running', 'swimming'.
units
Units of measurement.
Value
A multivariate zoo object with imputed observations:
0 for speed, last known position for latitude, longitude and altitude,
NA for all other variables. Distances are calculated based on speeds after imputation.
References
Kosmidis, I., and Passfield, L. (2015). Linking the Performance of Endurance Runners to Training and Physiological Effects via Multi-Resolution Elastic Net. ArXiv e-print arXiv:1506.01388.
Frick, H., Kosmidis, I. (2017). trackeR: Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices in R. Journal of Statistical Software, 82(7), 1–29. doi:10.18637/jss.v082.i07
Plot routes for training sessions
Description
Plot the route ran/cycled during training on an interactive map. Internet connection is required to download the background map. Icons are by Maps Icons Collection https://mapicons.mapsmarker.com
Usage
leaflet_route(x, session = NULL, threshold = TRUE, ...)
leafletRoute(x, session = NULL, threshold = TRUE, ...)
Arguments
x
A object of class trackeRdata .
session
A numeric vector of the sessions to be plotted. Defaults to all sessions.
threshold
Logical. Should thresholds be applied?
...
Additional arguments passed on to
threshold .
Examples
## Not run:
data('runs', package = 'trackeR')
leafletRoute(runs, session = 23:24)
## End(Not run)
Generic function for calculating number of sessions
Description
Generic function for calculating number of sessions
Usage
## S3 method for class 'trackeRWprime'
nsessions(object, ...)
## S3 method for class 'distrProfile'
nsessions(object, ...)
## S3 method for class 'conProfile'
nsessions(object, ...)
nsessions(object, ...)
## S3 method for class 'trackeRdataSummary'
nsessions(object, ...)
Arguments
object
The object for which to calculate the number of sessions.
...
Arguments to be passed to methods.
Plot concentration profiles.
Description
Plot concentration profiles.
Usage
## S3 method for class 'conProfile'
plot(x, session = NULL, what = NULL, multiple = FALSE, smooth = FALSE, ...)
Arguments
x
An object of class conProfile as returned by
concentration_profile .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
what
Which variables should be plotted? Defaults to all
variables in object (what = NULL).
multiple
Logical. Should all sessions be plotted in one panel?
smooth
Logical. Should unsmoothed profiles be smoothed before plotting?
...
Further arguments to be passed to
smoother_control.distrProfile .
Examples
data('runs', package = 'trackeR')
dProfile <- distributionProfile(runs, session = 1:3, what = 'speed',
grid = seq(0, 12.5, by = 0.05))
cProfile <- concentrationProfile(dProfile)
## Not run:
plot(cProfile, smooth = FALSE)
plot(cProfile)
## End(Not run)
Plot distribution profiles.
Description
Plot distribution profiles.
Usage
## S3 method for class 'distrProfile'
plot(x, session = NULL, what = NULL, multiple = FALSE, smooth = FALSE, ...)
Arguments
x
An object of class distrProfile as returned by
distribution_profile .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
what
Which variables should be plotted? Defaults to all
variables in object (what = NULL).
multiple
Logical. Should all sessions be plotted in one panel?
smooth
Logical. Should unsmoothed profiles be smoothed before plotting?
...
Further arguments to be passed to
smoother_control.distrProfile .
Examples
## Not run:
data('runs', package = 'trackeR')
dProfile <- distribution_profile(runs, session = 1:2,
what = "speed", grid = seq(0, 12.5, by = 0.05))
plot(dProfile, smooth = FALSE)
plot(dProfile, smooth = FALSE, multiple = TRUE)
plot(dProfile, multiple = TRUE)
## End(Not run)
Plot W'.
Description
Plot W'.
Usage
## S3 method for class 'trackeRWprime'
plot(x, session = NULL, dates = TRUE, scaled = TRUE, ...)
Arguments
x
An object of class trackeRWprime as returned by Wprime .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
dates
Logical. Should the date of the session be used in the panel header?
scaled
Logical. Should the W' be scaled to the movement variable (power or speed) which is then plotted in the background?
...
Currently not used.
Examples
## Not run:
data('runs', package = 'trackeR')
wexp <- Wprime(runs, session = 1:3, cp = 4, version = '2012')
plot(wexp, session = 1:2)
## End(Not run)
Plot training sessions in form of trackeRdata objects
Description
Plot training sessions in form of trackeRdata objects
Usage
## S3 method for class 'trackeRdata'
plot(
x,
session = NULL,
what = c("pace", "heart_rate"),
threshold = TRUE,
smooth = FALSE,
trend = TRUE,
dates = TRUE,
unit_reference_sport = NULL,
moving_threshold = NULL,
...
)
Arguments
x
An object of class trackeRdata .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
what
Which variables should be plotted? A vector with at least one of "latitude", "longitude", "altitude", "distance", "heart_rate", "speed", "cadence_running", "cadence_cycling", "power", "temperature", "pace", "cumulative_elevation_gain". Default is c("pace", "heart_rate").
threshold
Logical. Should thresholds be applied?
smooth
Logical. Should the data be smoothed?
trend
Logical. Should a smooth trend be plotted?
dates
Logical. Should the date of the session be used in the panel header?
unit_reference_sport
The sport to inherit units from
(default is taken to be the most frequent sport in
object).
moving_threshold
A named vector of 3 speeds to be used for
thresholding pace, given in the unit of the speed measurements
in object. If NULL (default), the speeds are
taken to be c(cycling = 2, running = 1, swimming =
0.5). See Details.
...
Further arguments to be passed to
threshold and
smootherControl.trackeRdata .
Details
Note that a threshold is always applied to the pace. This (upper) threshold corresponds to a speed of 1.4 meters per second, the preferred walking speed of humans. The lower threshold is 0.
The units for the variables match those of the sport specified by
unit_reference_sport.
See Also
trackeRdata
Examples
## Not run:
data('runs', package = 'trackeR')
## plot heart rate and pace for the first 3 sessions
plot(runs, session = 1:3)
## plot raw speed data for session 4
plot(runs, session = 4, what = "speed", threshold = FALSE, smooth = FALSE)
## threshold speed variable
plot(runs, session = 4, what = "speed", threshold = TRUE, smooth = FALSE,
variable = "speed", lower = 0, upper = 10)
## and smooth (thresholding with default values)
plot(runs, session = 4, what = "speed", threshold = TRUE,
smooth = TRUE, width = 15, parallel = FALSE)
#'
## Speed and elevation gain
plot(runs, session = 2:10, what = c("speed", "cumulative_elevation_gain"), trend = FALSE)
## End(Not run)
Plot an object of class trackeRdataSummary .
Description
Plot an object of class trackeRdataSummary .
Usage
## S3 method for class 'trackeRdataSummary'
plot(x, date = TRUE, what = NULL, group = NULL, trend = TRUE, ...)
Arguments
x
An object of class trackeRdataSummary.
date
Should the date or the session number be used on the abscissa?
what
Name of variables which should be plotted. Default is all. A vector with at least one of "distance", "duration", "avgSpeed", "avgPace", "avgCadenceRunning", "avgCadenceCycling", "avgAltitude", "avgPower", "avgHeartRate", "avgTemperature", "wrRatio", "total_elevation_gain", and NULL, in which case all variables are plotted.
group
Which group of variables should be plotted? This can either be
total or moving. Default is both.
trend
Should a smooth trend be plotted?
...
Currently not used.
See Also
Examples
## Not run:
data('runs', package = 'trackeR')
runSummary <- summary(runs)
plot(runSummary)
plot(runSummary, date = FALSE, group = 'total',
what = c('distance', 'duration', 'avgSpeed'))
## End(Not run)
Plot training zones.
Description
Plot training zones.
Usage
## S3 method for class 'trackeRdataZones'
plot(x, percent = TRUE, ...)
Arguments
x
An object of class trackeRdataZones as returned by zones .
percent
Logical. Should the relative or absolute times spent training in the different zones be plotted?
...
Currently not used.
Examples
## Not run:
data('run', package = 'trackeR')
runZones <- zones(run, what = 'speed', breaks = c(0, 2:6, 12.5))
plot(runZones, percent = FALSE)
## End(Not run)
Plot function for functional principal components analysis of distribution and concentration profiles.
Description
Plot function for functional principal components analysis of distribution and concentration profiles.
Usage
## S3 method for class 'trackeRfpca'
plot(x, harm = NULL, expand = NULL, pointplot = TRUE, ...)
Arguments
x
An object of class trackeRfpca as returned by funPCA .
harm
A numerical vector of the harmonics to be plotted. Defaults to all harmonics.
expand
The factor used to generate suitable multiples of the harmonics.
If NULL, the effect of +/- 2 standard deviations of each harmonic is plotted.
pointplot
Should the harmonics be plotted with + and -
point characters? Otherwise, lines are used.
...
Currently not used.
References
Ramsay JO, Silverman BW (2005). Functional Data Analysis. Springer-Verlag New York.
See Also
Examples
## Not run:
data('runs', package = 'trackeR')
dp <- distributionProfile(runs, what = 'speed')
dp.pca <- funPCA(dp, what = 'speed', nharm = 4)
## 1st harmonic captures vast majority of the variation
plot(dp.pca)
plot(dp.pca, harm = 1, pointplot = FALSE)
## End(Not run)
Plot routes for training sessions
Description
Plot the route ran/cycled during training onto a background map. Internet connection is required to download the background map.
Usage
plot_route(
x,
session = 1,
zoom = NULL,
speed = TRUE,
threshold = TRUE,
mfrow = NULL,
maptype = "stamen_terrain",
messaging = FALSE,
...
)
plotRoute(
x,
session = 1,
zoom = NULL,
speed = TRUE,
threshold = TRUE,
mfrow = NULL,
maptype = "stamen_terrain",
messaging = FALSE,
...
)
Arguments
x
A object of class trackeRdata .
session
A numeric vector of the sessions to be plotted. Defaults
to the first session, all sessions can be plotted by session = NULL.
zoom
The zoom level for the background map as passed on to
get_stadiamap (2 corresponds roughly to continent
level and 20 to building level).
speed
Logical. Should the trace be coloured according to speed?
threshold
Logical. Should thresholds be applied?
mfrow
A vector of 2 elements, number of rows and number of columns, specifying the layout for multiple sessions.
maptype
Passed to get_stadiamap . Default is "stamen_terrain".
messaging
Passed to get_stadiamap . Default is FALSE.
...
Additional arguments passed on to threshold and
get_stadiamap .
Details
plot_route() requires a a Stadia Maps API key. See register_stadiamaps for details.
See Also
Examples
## Not run:
data('runs', package = 'trackeR')
plot_route(runs, session = 4, zoom = 13)
plot_route(runs, session = 4, zoom = 13, maptype = "outdoors")
## multiple sessions
plot_route(runs, session = c(1:4, 8:11))
## different zoom level per panel
plot_route(runs, session = 6:7, zoom = c(13, 14))
## End(Not run)
Prepare a data.frame for use in
leaflet_route and plot_route
Description
Prepare a data.frame for use in
leaflet_route and plot_route
Usage
prepare_route(x, session = 1, threshold = TRUE, ...)
Arguments
x
a trackeRdata object.
session
which session to prepare the
data.frame for?
threshold
if TRUE (default), then thresholds are
applied to x prior to preparing the
data.frame .
...
Additional arguments to be passed to
threshold .
Details
To be used internally in mapping function and rarely by the user.
Value
A data.frame with variables longitude,
latitude, speed, SessionID, longitude0,
longitude1, latitude0, latitude1. The
observations are ordered according to the timestamp they have in
x. A suffix of 0 indicates 'start' and a suffix of 1
indicates 'end' at any given observation.
Returns 'pretty' units for use for plotting or printing
Description
Returns 'pretty' units for use for plotting or printing
Usage
prettifyUnit(unit)
prettifyUnits(unit)
Arguments
unit
a unit as recorded in the data.frame
generated by generate_units .
Details
prettifyUnits is the vectorized version of prettifyUnit
Examples
prettifyUnit("m_per_s")
prettifyUnit("rev_per_min")
prettifyUnits(c("rev_per_min", "ft_per_min"))
print method for trackeRdata objects
Description
print method for trackeRdata objects
Usage
## S3 method for class 'trackeRdata'
print(x, duration_unit = "h", digits = 2, ...)
Arguments
x
An object of class trackeRdata .
duration_unit
The unit of duration in the resulting output. Default is h (hours).
digits
Number of digits to be printed.
...
Currently not used; only for compatibility with generic summary method only.
Details
The print method returns training coverage, number of sessions and
total training duration from the data in the
trackeRdata object.
Print method for session summaries.
Description
Print method for session summaries.
Usage
## S3 method for class 'trackeRdataSummary'
print(x, ..., digits = 2)
Arguments
x
An object of class trackeRdataSummary.
...
Not used, for compatibility with generic summary method only.
digits
Number of digits to be printed.
Transform distribution and concentration profiles to functional data objects of class fd.
Description
Transform distribution and concentration profiles to functional data objects of class fd.
Usage
profile2fd(object, what, ...)
Arguments
object
An object of class distrProfile or conProfile, as returned by distributionProfile and concentrationProfile , respectively.
what
The variable for which the profiles should be transformed to a functional data object.
...
Additional arguments passed on to Data2fd
Value
An object of class fd .
Examples
## Not run:
library('fda')
data('runs', package = 'trackeR')
dp <- distributionProfile(runs, what = 'speed')
dpFun <- profile2fd(dp, what = 'speed',
fdnames = list('speed', 'sessions', 'time above threshold'))
dp.pca <- pca.fd(dpFun, nharm = 4)
## 1st harmonic captures vast majority of the variation
dp.pca$varprop
## time spent above speed = 0 is the characteristic distinguishing the profiles
plot(dp.pca, harm = 1)
sumRuns <- summary(runs)
plot(sumRuns$durationMoving, dp.pca$scores[,1])
## End(Not run)
Read a training file in tcx, gpx, db3 or Golden Cheetah's JSON format
Description
Read a training file in tcx, gpx, db3 or Golden Cheetah's JSON format
Usage
readTCX(file, timezone = "", speedunit = "m_per_s", distanceunit = "m", ...)
readGPX(file, timezone = "", speedunit = "km_per_h", distanceunit = "km", ...)
readDB3(
file,
timezone = "",
table = "gps_data",
speedunit = "km_per_h",
distanceunit = "km",
...
)
readJSON(file, timezone = "", speedunit = "km_per_h", distanceunit = "km", ...)
Arguments
file
The path to a tcx, gpx, json or db3 file. Compressed versions (gz, bz2, xz, zip) of tcx, gpx, and json files are directly supported.
timezone
The timezone of the observations as passed on to
as.POSIXct . Ignored for JSON files.
speedunit
Character string indicating the measurement unit of the speeds in the container file to be converted into meters per second. See Details.
distanceunit
Character string indicating the measurement unit of the distance in the container file to be converted into meters. See Details.
...
Currently not used.
table
Character string indicating the name of the table with the GPS data in the db3 container file.
Details
Available options for speedunit currently are
km_per_h, m_per_s, mi_per_h,
ft_per_min and ft_per_s. The default is
m_per_s for TCX files and km_per_h for db3 and
Golden Cheetah's json files. Available options for
distanceunit currently are km, m,
mi and ft. The default is m for TCX and
km for gpx, db3 and Golden Cheetah's json files.
readTCX, readGPX, readGPX and readDB3,
try to identify the sport from the data in the container file. If
that fails, then an attempt is made to guess the sport from
keywords in the filename. If identification is not possible then
the file attribute of the returned object has value
NA.
Reading Golden Cheetah's JSON files is experimental.
Examples
## read raw data
filepath <- system.file("extdata/tcx", "2013-06-08-090442.TCX.gz", package = "trackeR")
run0 <- readTCX(file = filepath, timezone = "GMT")
## turn into trackeRdata object
units0 <- generate_units()
run0 <- trackeRdata(run0, units = units0)
## alternatively
## Not run:
run0 <- read_container(filepath, type = "tcx", timezone = "GMT")
## End(Not run)
Read a GPS container file.
Description
Read a GPS container file.
Usage
read_container(
file,
type = c("tcx", "gpx", "db3", "json"),
table = "gps_data",
timezone = "",
session_threshold = 2,
correct_distances = FALSE,
smooth_elevation_gain = TRUE,
country = NULL,
mask = TRUE,
from_distances = NULL,
speedunit = NULL,
distanceunit = NULL,
sport = NULL,
lgap = 30,
lskip = 5,
m = 11,
silent = FALSE
)
readContainer(
file,
type = c("tcx", "gpx", "db3", "json"),
table = "gps_data",
timezone = "",
session_threshold = 2,
correct_distances = FALSE,
smooth_elevation_gain = TRUE,
country = NULL,
mask = TRUE,
from_distances = NULL,
speedunit = NULL,
distanceunit = NULL,
sport = NULL,
lgap = 30,
lskip = 5,
m = 11,
silent = FALSE
)
Arguments
file
The path to a tcx, gpx, json or db3 file. Compressed versions (gz, bz2, xz, zip) of tcx, gpx, and json files are directly supported.
type
The type of the GPS container file. Supported so far
are tcx, db3, and json.
table
The name of the table in the database if type
is set to db3, ignored otherwise.
timezone
The timezone of the observations as passed on to
as.POSIXct . Ignored for JSON files.
session_threshold
The threshold in hours for the time difference between consecutive timestamps above which they are considered to belong to different training sessions.
correct_distances
Logical. Should the distances be corrected
for elevation? Default is FALSE.
smooth_elevation_gain
Logical. Should the elevation gain be
smoothed before computing elevation gain? Default
is TRUE.
country
ISO3 country code for downloading altitude data. If
NULL, country is derived from longitude and latitude
mask
Logical. Passed on to
getData . Should only the altitudes for
the specified country be extracted (TRUE) or also
those for the neighbouring countries (FALSE)?
from_distances
Logical. Should the speeds be calculated from
the distance recordings instead of taken from the speed
recordings directly. Defaults to TRUE for tcx and
Golden Cheetah's json files and to FALSE for db3
files.
speedunit
Character string indicating the measurement unit
of the speeds in the container file to be converted into meters
per second. Default is m_per_s when type is
tcx and km_per_h when type is db3
or json. See Details.
distanceunit
Character string indicating the measurement
unit of the distance in the container file to be converted into
meters. Default is m when type is tcx and
km when type is db3 or json. See
Details.
sport
What sport does file contain data from? Either
'cycling', 'running', 'swimming' or
NULL (default), in which case the sport is directly
obtained from the readX extractors.
lgap
Time in seconds corresponding to the minimal sampling rate.
lskip
Time in seconds between the last observation before a small break and the first imputed speed or the last imputed speed and the first observation after a small break.
m
Number of imputed observations in each small break.
silent
Logical. Should warnings be generated if any of the sanity checks on the data are triggered?
Details
Available options for speedunit currently are
km_per_h, m_per_s, mi_per_h,
ft_per_min and ft_per_s. Available options for
distanceunit currently are km, m,
mi and ft.
read_container try to identify the sport from the data in
the container file. If that fails, then an attempt is made to guess
the sport from keywords in the filename. If identification is not
possible then an error is returned from
trackeRdata . To avoid that error, and if the sport is
known, append an appropriate keyword to the filename (e.g. 'ride',
'swim', 'run'). This should fix the error.
Value
An object of class trackeRdata .
See Also
trackeRdata , readTCX , readDB3 , readJSON
Examples
filepath <- system.file("extdata/tcx", "2013-06-08-090442.TCX.gz", package = "trackeR")
run <- read_container(filepath, type = "tcx", timezone = "GMT")
Read all supported container files from a supplied directory
Description
Read all supported container files from a supplied directory
Usage
read_directory(
directory,
aggregate = FALSE,
table = "gps_data",
timezone = "",
session_threshold = 2,
smooth_elevation_gain = TRUE,
correct_distances = FALSE,
country = NULL,
mask = TRUE,
from_distances = NULL,
speedunit = list(tcx = "m_per_s", gpx = "km_per_h", db3 = "km_per_h", json =
"km_per_h"),
distanceunit = list(tcx = "m", gpx = "km", db3 = "km", json = "km"),
sport = NULL,
lgap = 30,
lskip = 5,
m = 11,
silent = FALSE,
parallel = FALSE,
verbose = TRUE
)
readDirectory(
directory,
aggregate = FALSE,
table = "gps_data",
timezone = "",
session_threshold = 2,
smooth_elevation_gain = TRUE,
correct_distances = FALSE,
country = NULL,
mask = TRUE,
from_distances = NULL,
speedunit = list(tcx = "m_per_s", gpx = "km_per_h", db3 = "km_per_h", json =
"km_per_h"),
distanceunit = list(tcx = "m", gpx = "km", db3 = "km", json = "km"),
sport = NULL,
lgap = 30,
lskip = 5,
m = 11,
silent = FALSE,
parallel = FALSE,
verbose = TRUE
)
Arguments
directory
The path to the directory.
aggregate
Logical. Aggregate data from different files to
the same session if observations are less then
session_threshold hours apart? Alternatively, data from
different files is stored in different sessions.
table
The name of the table in the database for db3 files.
timezone
The timezone of the observations as passed on to
as.POSIXct . Ignored for JSON files.
session_threshold
The threshold in hours for the time difference between consecutive timestamps above which they are considered to belong to different training sessions.
smooth_elevation_gain
Logical. Should the elevation gain be
smoothed before computing elevation gain? Default
is TRUE.
correct_distances
Logical. Should the distances be corrected
for elevation? Default is FALSE.
country
ISO3 country code for downloading altitude data. If
NULL, country is derived from longitude and latitude
mask
Logical. Passed on to
getData . Should only the altitudes for
the specified country be extracted (TRUE) or also
those for the neighbouring countries (FALSE)?
from_distances
Logical. Should the speeds be calculated from
the distance recordings instead of taken from the speed
recordings directly. Defaults to TRUE for tcx and Golden
Cheetah's json files and to FALSE for db3 files.
speedunit
Character string indicating the measurement unit
of the speeds in the container file to be converted into meters
per second. Default is m_per_s for tcx files and
km_per_h for db3 and Golden Cheetah's json files. See
Details.
distanceunit
Character string indicating the measurement
unit of the distance in the container file to be converted into
meters. Default is m for tcx files and km for db3
and Golden Cheetah's json files. See Details.
sport
What sport do the files in directory correspond
to? Either 'cycling', 'running',
'swimming' or NULL (default), in which case an
attempt is made to extract the sport from each file in
directory.
lgap
Time in seconds corresponding to the minimal sampling rate.
lskip
Time in seconds between the last observation before a small break and the first imputed speed or the last imputed speed and the first observation after a small break.
m
Number of imputed observations in each small break.
silent
Logical. Should warnings be generated if any of the sanity checks on the data are triggered?
parallel
Logical. Should reading be carried out in parallel?
If TRUE reading is performed in parallel using the
backend provided to foreach. Default is
FALSE.
verbose
Logical. Should progress reports be printed?
Details
Available options for speedunit currently are
km_per_h, m_per_s, mi_per_h,
ft_per_min and ft_per_s. Available options for
distanceunit currently are km, m,
mi and ft.
If aggregate = TRUE, then if sport = NULL the
sport in all sessions is determined by the first file read with
a sport specification; else if sport is one of the other
valid options it determines the sport for all sessions.
Value
An object of class trackeRdata .
See Also
trackeRdata , readTCX , readDB3 , readJSON
Examples
## Not run:
filepath <- system.file("extdata/gpx", package = "trackeR")
gpx_files <- read_directory(filepath)
## End(Not run)
Generic function for ridgeline plots
Description
Generic function for ridgeline plots
Usage
ridges(x, ...)
Arguments
x
An object of class distrProfile or
conProfile.
...
Arguments to be passed to methods.
See Also
ridges.trackeRdata ridges.conProfile ridges.distrProfile
Ridgeline plots for distrProfile objects
Description
Ridgeline plots for distrProfile objects
Usage
## S3 method for class 'conProfile'
ridges(x, session = NULL, what = NULL, smooth = FALSE, ...)
Arguments
x
An object of class conProfile as returned by
concentration_profile .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
what
Which variables should be plotted? Defaults to all
variables in object (what = NULL).
smooth
Logical. Should unsmoothed profiles be smoothed before plotting?
...
Further arguments to be passed to
smoother_control.distrProfile .
Examples
## Not run:
data('runs', package = 'trackeR')
dProfile <- distributionProfile(runs, what = c('speed', 'heart_rate'))
cProfile <- concentrationProfile(dProfile)
ridges(cProfile, what = "speed")
ridges(cProfile, what = "heart_rate")
## End(Not run)
Ridgeline plots for distrProfile objects
Description
Ridgeline plots for distrProfile objects
Usage
## S3 method for class 'distrProfile'
ridges(x, session = NULL, what = NULL, smooth = FALSE, ...)
Arguments
x
An object of class distrProfile as returned by
distribution_profile .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
what
Which variables should be plotted? Defaults to all
variables in object (what = NULL).
smooth
Logical. Should unsmoothed profiles be smoothed before plotting?
...
Further arguments to be passed to
smoother_control.distrProfile .
Examples
## Not run:
data('runs', package = 'trackeR')
dProfile <- distribution_profile(runs, what = c("speed", "heart_rate"))
ridges(dProfile)
## End(Not run)
Ridgeline plots for trackeRdata objects
Description
Ridgeline plots for trackeRdata objects
Usage
## S3 method for class 'trackeRdata'
ridges(x, session = NULL, what = "speed", smooth = TRUE, ...)
Arguments
x
A trackeRdata object.
session
A numeric vector of the sessions to be used, defaults to all sessions.
what
The variables for which the distribution profiles
should be generated. Defaults to all variables in
object (what = NULL).
smooth
Logical. Should the concentration profiles be smoothed before plotting?
...
Currently not used.
Examples
## Not run:
data('runs', package = 'trackeR')
ridges(runs)
## End(Not run)
Training session.
Description
Training session.
Usage
run
Format
A trackeRdata object containing one running training session.
Training sessions.
Description
Training sessions.
Usage
runs
Format
A trackeRdata object containing 33 running training sessions.
Sanity checks for tracking data
Description
Heart rate measurements of 0 are set to NA, assuming the athlete is alive. Observations with missing or duplicated time stamps are removed.
Usage
sanity_checks(dat, silent)
Arguments
dat
Data set to be cleaned up.
silent
Logical. Should warnings be generated if any of the sanity checks on the data are triggered?
Generic function for scaling
Description
Generic function for scaling
Usage
scaled(object, ...)
Arguments
object
The object to be scaled.
...
Arguments to be passed to methods.
Scale the distribution profile relative to its maximum value.
Description
Scale the distribution profile relative to its maximum value.
Usage
## S3 method for class 'distrProfile'
scaled(object, session = NULL, what = NULL, ...)
Arguments
object
An object of class distrProfile as returned by
distributionProfile .
session
A numeric vector of the sessions to be selected and scaled. Defaults to all sessions.
what
A character version of the variables to be selected and
scaled. Defaults to all variables in object (what
= NULL).
...
Currently not used.
Generic function for calculating session durations
Description
Generic function for calculating session durations
Usage
session_duration(object, session, duration_unit, ...)
## S3 method for class 'trackeRdata'
session_duration(object, session = NULL, duration_unit = "h", ...)
## S3 method for class 'trackeRdataSummary'
session_duration(object, session = NULL, ...)
Arguments
object
The object for which to calculate session durations.
session
The sessions for which to extract sports.
duration_unit
The unit of duration.
...
Arguments to be passed to methods.
Details
The times units will be inherited from object.
Generic function for calculating session times
Description
Generic function for calculating session times
Usage
session_times(object, session, duration_unit, ...)
## S3 method for class 'trackeRdata'
session_times(object, session = NULL, ...)
## S3 method for class 'trackeRdataSummary'
session_times(object, session = NULL, ...)
Arguments
object
The object for which to calculate session start and end times.
session
The sessions for which to extract sports.
duration_unit
The unit durations should be returned.
...
Arguments to be passed to methods.
Generic function for smoothing
Description
Generic function for smoothing
Usage
smoother(object, ...)
Arguments
object
The object to be smoothed.
...
Arguments to be passed to methods.
Smoother for concentration profiles.
Description
To ensure positivity of the smoothed concentration profiles, the concentration profiles are transformed to distribution profiles before smoothing. The smoothed distribution profiles are then transformed to concentration profiles.
Usage
## S3 method for class 'conProfile'
smoother(object, session = NULL, what = NULL, control = list(...), ...)
Arguments
object
An object of class conProfile as returned by
concentration_profile .
session
A numeric vector of the sessions to be selected and smoothed. Defaults to all sessions.
what
A character version of the variables to be selected and
smoothed. Defaults to all variables in object
(what = NULL).
control
A list of parameters for controlling the smoothing
process. This is passed to
smoother_control.distrProfile .
...
Arguments to be used to form the default control
argument if it is not supplied directly.
See Also
Smoother for distribution profiles.
Description
The distribution profiles are smoothed using a shape constrained additive model with Poisson responses to ensure that the smoothed distribution profile is positive and monotone decreasing.
Usage
## S3 method for class 'distrProfile'
smoother(object, session = NULL, what = NULL, control = list(...), ...)
Arguments
object
An object of class distrProfile as returned by
distribution_profile .
session
A numeric vector of the sessions to be selected and smoothed. Defaults to all sessions.
what
A character version of the variables to be selected and
smoothed. Defaults to all variables in object
(what = NULL).
control
A list of parameters for controlling the smoothing
process. This is passed to
smoother_control.distrProfile .
...
Arguments to be used to form the default control
argument if it is not supplied directly.
References
Kosmidis, I., and Passfield, L. (2015). Linking the Performance of Endurance Runners to Training and Physiological Effects via Multi-Resolution Elastic Net. ArXiv e-print arXiv:1506.01388.
Pya, N. and Wood S. (2015). Shape Constrained Additive Models. Statistics and Computing, 25(3), 543–559. Frick, H.,
Kosmidis, I. (2017). trackeR: Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices in R. Journal of Statistical Software, 82(7), 1–29. doi:10.18637/jss.v082.i07
See Also
Smoother for trackeRdata objects.
Description
Smoother for trackeRdata objects.
Usage
## S3 method for class 'trackeRdata'
smoother(object, session = NULL, control = list(...), ...)
Arguments
object
An object of class trackeRdata .
session
The sessions to be smoothed. Default is all sessions.
control
A list of parameters for controlling the smoothing
process. This is passed to smoother_control.trackeRdata .
...
Arguments to be used to form the default control
argument if it is not supplied directly.
Value
An object of class trackeRdata .
See Also
Examples
## Not run:
data('run', package = 'trackeR')
## unsmoothed speeds
plot(run, smooth = FALSE)
## default smoothing
plot(run, smooth = TRUE)
## smoothed with some non-default options
runS <- smoother(run, fun = 'median', width = 20, what = 'speed')
plot(runS, smooth = FALSE)
## End(Not run)
Auxiliary function for
smoother.distrProfile . Typically used to construct a
control argument for smoother.distrProfile .
Description
Auxiliary function for
smoother.distrProfile . Typically used to construct a
control argument for smoother.distrProfile .
Usage
smoother_control.distrProfile(k = 30, sp = NULL, parallel = FALSE)
smootherControl.distrProfile(k = 30, sp = NULL, parallel = FALSE)
Arguments
k
Number of knots.
sp
A vector of smoothing parameters passed on to scam .
parallel
Logical. Should computation be carried out in parallel?
Auxiliary function for smoother.trackeRdata . Typically used to construct
a control argument for smoother.trackeRdata .
Description
Auxiliary function for smoother.trackeRdata . Typically used to construct
a control argument for smoother.trackeRdata .
Usage
smoother_control.trackeRdata(
fun = "mean",
width = 10,
parallel = FALSE,
what = c("speed", "heart_rate"),
nsessions = NA,
...
)
smootherControl.trackeRdata(
fun = "mean",
width = 10,
parallel = FALSE,
what = c("speed", "heart_rate"),
nsessions = NA,
...
)
Arguments
fun
The name of the function to be matched and used to aggregate/smooth the data.
width
The width of the window in which the raw observations
get aggregated via function fun.
parallel
Logical. Should computation be carried out in
parallel? If TRUE computation is performed in parallel
using the backend provided to foreach. Default is
FALSE.
what
Vector of the names of the variables which should be smoothed.
nsessions
Vector containing the number of session. Default corresponds to all sessions belonging to the same group. Used only internally.
...
Currently not used.
See Also
Sort sessions in trackeRdata objects
Description
Sort the sessions trackeRdata objects into ascending
or descending order according to the first session timestamp.
Usage
## S3 method for class 'trackeRdata'
sort(x, decreasing = FALSE, ...)
Arguments
x
A trackeRdata object.
decreasing
Logical. Should the objects be sorted in increasing or decreasing order?
...
Currently not used.
Convert speed to distance.
Description
Convert speed to distance.
Usage
speed2distance(speed, time, timeunit, cumulative = TRUE)
Arguments
speed
Speed in meters per second.
time
Time.
timeunit
Time unit in speed, e.g., "hours" for speed in *_per_h.
cumulative
Logical. Should the cumulative distances be returned?
Value
Distance in meters.
Summary of training sessions
Description
Summary of training sessions
Usage
## S3 method for class 'trackeRdata'
summary(
object,
session = NULL,
moving_threshold = NULL,
unit_reference_sport = NULL,
...
)
Arguments
object
An object of class trackeRdata .
session
A numeric vector of the sessions to be summarised, defaults to all sessions.
moving_threshold
A named vector of 3 speeds above which an
athlete is considered moving, given in the unit of the speed
measurements in object. If NULL (default), the
speeds are taken to be c(cycling = 2, running = 1,
swimming = 0.5). See Details.
unit_reference_sport
The sport to inherit units from
(default is taken to be the most frequent sport in
object).
...
Currently not used.
Details
The default speed thresholds are 1 m/s for running (3.6 km/h; slow walking), 2 m/s for cycling (7.2 km/h) for cycling and 0.5 m/s (1.8km/h) for swimming. For reference, the preferred walking speed for humans is around 1.4 m/s (Bohannon, 1997).
The units for the computed summaries match those of the sport
specified by unit_reference_sport.
If object has thresholds then the thresholds that match
those of the sport specified by unit_reference_sport are
applied to the respective summaries.
Value
An object of class trackeRdataSummary.
References
Bohannon RW (1997). 'Comfortable and Maximum Walking Speed of Adults Aged 20–79 Years: Reference Values and Determinants.' Age and Ageing, 26(1), 15–19. doi: 10.1093/ageing/26.1.15.
See Also
Examples
data('runs', package = 'trackeR')
runSummary <- summary(runs, session = 1:2)
## print summary
runSummary
print(runSummary, digits = 3)
## Not run:
## change units
change_units(runSummary, variable = 'speed', unit = 'km_per_h')
## plot summary
runSummaryFull <- summary(runs)
plot(runSummaryFull)
plot(runSummaryFull, group = c('total', 'moving'),
what = c('avgSpeed', 'distance', 'duration', 'avgHeartRate', "total_elevation_gain"))
## End(Not run)
Thresholding for variables in trackeRdata objects
Description
Thresholding for variables in trackeRdata objects
Usage
## S3 method for class 'trackeRdata'
threshold(object, variable, lower, upper, sport, trace = FALSE, ...)
threshold(object, ...)
Arguments
object
An object of class trackeRdata .
variable
A vector containing the names of the variables to which thresholding is applied. See Details.
lower
A vector containing the corresponding lower thresholds. See Details.
upper
A vector containing the corresponding upper thresholds. See Details.
sport
A vector of sports (amongst 'cycling',
'running', 'swimming') with each element
corresponding to variable, lower and upper
trace
Should a progress report be printed? Default is FALSE
...
Currently not used.
Details
lower and upper are always understood as referring to
the units of the object.
If the arguments variable, lower, and upper
are all unspecified, the following default thresholds are employed
latitude [-90, 90] degrees
longitude [-180, 180] degrees
altitude [-500, 9000] m
distance [0, Inf] meters
cadence_running [0, Inf] steps per min
cadence_cycling [0, Inf] revolutions per min
speed [0, Inf] meters
heart rate [0, 250] bpm
power [0, Inf] W
pace [0, Inf] min per km
duration [0, Inf] seconds
temperature [-20, 60] C
after they have been transformed to the units of the object
The thresholds for speed differ across sports: for running they are [0, 12.5] meters per second, for cycling [0, 100] meters per second and for swimming [0, 5] meters per second.
Examples
## Not run:
data('runs', package = 'trackeR')
plot(runs, session = 4, what = 'speed', threshold = FALSE)
runsT <- threshold(runs, variable = 'speed', lower = 0, upper = 12.5, sport = "running")
plot(runsT, session = 4, what = 'speed', threshold = FALSE)
## End(Not run)
Time spent above a certain threshold.
Description
Time spent above a certain threshold.
Usage
timeAboveThreshold(object, threshold = -1, ge = TRUE)
Arguments
object
A (univariate) zoo object.
threshold
The threshold.
ge
Logical. Should time include the threshold (greater or equal to threshold) or not (greater only)?
Generic function for visualising the sessions on a time versus date plot
Description
Generic function for visualising the sessions on a time versus date plot
Timeline plot for trackeRdata objects.
Timeline plot for trackeRdataSummary objects
Usage
timeline(object, lims, ...)
## S3 method for class 'trackeRdata'
timeline(object, lims = NULL, ...)
## S3 method for class 'trackeRdataSummary'
timeline(object, lims = NULL, ...)
Arguments
object
An object of class trackeRdata or
trackeRdataSummary .
lims
An optional vector of two times in HH:MM
format. Default is NULL If supplied, the times are used
to define the limits of the time axis.
...
Arguments passed to summary.trackeRdata .
Examples
## Not run:
data('runs', package = 'trackeR')
## timeline plot applied on the \code{trackeRdata} object directly and with
## inferred limits for the time axis
timeline(runs)
## the same timeline plot applied on the \code{trackeRdataSummary} object
runSummary <- summary(runs)
timeline(runSummary, lims = c('00:01', '23:59'))
## End(Not run)
Create a trackeRdata object
Description
Create a trackeRdata object from a data frame with observations being divided in separate training sessions. For breaks within a session observations are imputed.
Usage
trackeRdata(
dat,
units = NULL,
sport = NULL,
session_threshold = 2,
correct_distances = FALSE,
smooth_elevation_gain = TRUE,
from_distances = TRUE,
country = NULL,
mask = TRUE,
lgap = 30,
lskip = 5,
m = 11,
silent = FALSE
)
Arguments
dat
A data.frame object.
units
The output of generate_units .
sport
What sport does dat contain data of? Either
'cycling', 'running', 'swimming' or
NULL (default), in which case the sport is directly
extracted from the dat. See Details.
session_threshold
The threshold in hours for the time difference between consecutive timestamps above which they are considered to belong to different training sessions.
correct_distances
Logical. Should the distances be corrected
for elevation? Default is FALSE.
smooth_elevation_gain
Logical. Should the elevation gain be
smoothed before computing elevation gain? Default
is TRUE.
from_distances
Logical. Should the speeds be calculated from the distance recordings instead of taken from the speed recordings directly?
country
ISO3 country code for downloading altitude data. If
NULL, country is derived from longitude and latitude
mask
Logical. Passed on to
getData . Should only the altitudes for
the specified country be extracted (TRUE) or also
those for the neighbouring countries (FALSE)?
lgap
Time in seconds corresponding to the minimal sampling rate.
lskip
Time in seconds between the last observation before a small break and the first imputed speed or the last imputed speed and the first observation after a small break.
m
Number of imputed observations in each small break.
silent
Logical. Should warnings be generated if any of the sanity checks on the data are triggered?
Details
During small breaks within a session, e.g., because the recording device was paused, observations are imputed the following way: 0 for speed, last known position for latitude, longitude and altitude, NA or 0 power for running or cycling session, respectively, and NA for all other variables. Distances are (re-)calculated based on speeds after imputation.
trackeRdata assumes that all observations in dat are
from the same sport, even if dat ends up having
observations from different sessions (also depending on the value
of session_threshold.
if attr(dat, 'sport') is NA then the current
implementation of trackeRdata returns an error.
More details about the resulting trackeRdata object are
available in the package vignette, which is an up-to-date version
of Frick & Kosmidis (2017).
References
Frick, H., Kosmidis, I. (2017). trackeR: Infrastructure for Running and Cycling Data from GPS-Enabled Tracking Devices in R. Journal of Statistical Software, 82(7), 1–29. doi:10.18637/jss.v082.i07
See Also
readContainer for reading .tcx and .db3
files directly into trackeRdata objects, and
get_elevation_gain for details on the computation
of the elevation gain.
Examples
## read raw data
filepath <- system.file('extdata/tcx/', '2013-06-08-090442.TCX.gz', package = 'trackeR')
run0 <- readTCX(file = filepath, timezone = 'GMT')
## turn into trackeRdata object
units0 <- generate_units()
run0 <- trackeRdata(run0, units = units0)
Extract unique sessions in a trackerRdata object
Description
Extract unique sessions in a trackerRdata object
Usage
## S3 method for class 'trackeRdata'
unique(x, incomparables = FALSE, ...)
Arguments
x
A trackeRdata object.
incomparables
Currently not used.
...
Currently not used.
Details
Uniqueness is determined by comparing the first timestamp of the
sessions in the trackeRdata object.
Time spent in training zones.
Description
Time spent in training zones.
Usage
zones(
object,
session = NULL,
what = c("speed"),
breaks = NULL,
parallel = FALSE,
n_zones = 9,
unit_reference_sport = NULL,
...
)
Arguments
object
An object of class trackeRdata .
session
A numeric vector of the sessions to be plotted, defaults to all sessions.
what
A vector of variable names.
breaks
A list of breakpoints between zones, corresponding to
the variables in what.
parallel
Logical. Should computation be carried out in
parallel? If TRUE computation is performed in parallel
using the backend provided to foreach. Default is
FALSE.
n_zones
numeric that sets the number of zones for data to be
split into. Default is 9.
unit_reference_sport
The sport to inherit units from
(default is taken to be the most frequent sport in
object).
...
Currently not used.
Value
An object of class trackeRdataZones.
See Also
Examples
data('run', package = 'trackeR')
runZones <- zones(run, what = 'speed', breaks = list(speed = c(0, 2:6, 12.5)))
## if breaks is a named list, argument 'what' can be left unspecified
runZones <- zones(run, breaks = list(speed = c(0, 2:6, 12.5)))
## if only a single variable is to be evaluated, 'breaks' can also be a vector
runZones <- zones(run, what = 'speed', breaks = c(0, 2:6, 12.5))
plot(runZones)