- Fixed a bug that could result in
readTCX()
populatingcadence_cycling
with running cadence data. - Guard against
data.frame
's with no "file" attribute intrackeRdata()
. - Fixed a bug that could cause no units to be shown in the labels on the plots from
plot.distrProfile()
andplot.conProfile()
.
- added support for "m_per_min" speed units (functions
m_per_min2X()
andX2m_per_min()
whereX
are other speed units). - Fixed
plot_route()
andleaflet_route()
to work with ggmap's transition to Stadia maps. - Various documentation updates.
- Power is now extracted correctly from
.gpx
files (thanks to Andrew from \url{thethreshold.co.za} for spotting the issue).
readX
functions support reading from compressed versions (.gz
,.bz2
,.xz
,.zip
) of.tcx
,.gpx
,.json
files.- Example data files are now compressed and more is provided.
- Vignette and documentation updates.
- Provided example in
read_directory()
.
- Fixed a bug that would result in errors from
get_elevation_gain()
if altitude has too many NAs. smooth_elevation_gain
is not passed correctly inread_directory()
.change_units.trackeRthresholds()
is now exported.
get_elevation_gain
now has thevertical_noise
option to threshold absolute elevation gain.
- Fixed a bug in
plot.trackeRdataSummary()
where temperature and altitude would haveNULL
label on the resulting plot.
- Added support for cumulative elevation gain (
trackeRdata
andtrackeRdataSummary
objects and associated methods).
readGPX()
tries even harder to identify the sport.- Documentation improvements.
- Fixed bug that would discard temperature and latitude when
trackeRdataSummary
objects were fortified withmelt = TRUE
.
- Fixed bug that could result in an error may appear when printing summaries for non-thresholded objects.
threshold.trackeRdata()
reports on the progress of the operation iftrace = TRUE
in its arguments.
- Added new logo
- Updated documentation
- Fixed a bug that caused
threshold
to not threshold if applied without specifying any of variable, lower, upper and sport.
plot_route()
now returns plots using stamen maps (see?ggmap::get_map()
for the reasons we are moving away from other maps).
Updated vignettes to avoid errors during CRAN checks
- Multi-sport support (cycling, running, swimming)
- Comprehensive support for temperature recordings from devices
readGPX()
for reading Strava GPX filesreadX
functions now return objects with asport
attribute with values (cycling
,running
,swimming
)trackeRdata
objects now have a print method with basic summariesridges()
method fortrackeRdata
,distrProfile
andconProfile
objects for ridgeline plots of concentration profilesnsessions()
,sport()
,session_duration()
andsession_times()
methods fortrackeRdata
andtrackeRdataSummary
objectsauto_breaks
argument when plotting zones, distribution and concentration profilessort()
andunique()
methods fortrackeRdata
objects
- Numerous under-the-hood performance and design improvements
- Refactored code for
readTCX()
; reading Garmin TCX is now notably faster (circa 15x faster) and more robust - Refactored code for
summary()
method fortrackeRdata
objects, making it faster (circa 10x faster) - Code improvements in
readDirectory()
c()
improvements fortrackeRdata
objectsreadDirectory()
can be performed in parallel using foreach- sane multi-platform parallelization across methods using
foreach
. The parallel backend and its details needs to be set by the user - Wprime has been adapted for a multisport environment
- Enhancements to the definition of the
trackeRdata
object and the associated methods; the object now carries file and sport information
- Various bug fixes in
trackeRdata
- Fixed bug in
scaled()
method that would cause an error for single sessions - The
aggregate()
method is now doing what is supposed to
- Maintainer changed from Hannah Frick to Ioannis Kosmidis
- Robin Hornak joined developer team as author
- Added citation for JSS paper.
- The colour palette for plots of trackeRdataZones objects is now also based on black/blue.
- The vignette Tour de trackeR and the examples for
plotRoute()
now use maps from Stamen rather than OpenStreetMap.
- The sanity checks performed when creating a trackeRdata object now throw warnings. This can be switched off with the argument
silent = TRUE
. - The colour palette for plots of trackeRdataSummary and trackeRdataZones objects changed slightly.
plotRoute()
can now include more than one session in one plot. The new functionleafletRoute()
uses the leaflet package to produce an interactive map.- Added a method for distribution and concentration profiles to fit a functional principal components analysis and a plot function to accompany it.
- Added a second, shorter vignette "Tour de trackeR" to illustrate basic features and new functionality.
- Added a new timeline plot for trackeRdata object to visualise the date time of the sessions.
- Added a new nsessions method to access the number of sessions in various trackeR objects.
- Updated "runs" data object by splitting former session 20 into 2 sessions as the two parts of the session took place in two different place with a break of over 1.5 hours between them.
- The scale options has been removed from the distribution profile and is now set-up as a separate operation. In this implementation first smoothing and then scaling (the right order for those operations) is possible.
- Some improvements for trackeRdata(): session containing no information beyond the timestamps are removed; conversions between distance and speed now recognise the respective units.
- Distribution profile: if all values of the variable for which the profile is to be calculated are missing, the profile (and its smoothed version) will also consist of only NA (rather than throwing an error).
- Experimental support for reading Golden Cheetah's JSON files.
- First CRAN release of new "trackeR" package which provides infrastructure for handling running and cycling data from GPS-enabled tracking devices. See vignette("trackeR", package = "trackeR") for details.