README.md

activatr

R-CMD-check Codecov test
coverage

activatr (pronounced like the word “activator”) is a library for parsing GPX files into a standard format, and then manipulating and visualizing those files.

Installation

You can install the released version of activatr from CRAN with:

install.packages("activatr")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("dschafer/activatr")

Example

Basic parsing of a GPX file is simple: we use the parse_gpx function and pass it the name of the GPX file.

library(activatr)

# Get the running_example.gpx file included with this package.
filename <- system.file(
  "extdata",
  "running_example.gpx.gz",
  package = "activatr")

df <- parse_gpx(filename)

In its default configuration, parse_gpx will create a row for every GPS point in the file, and pull out the latitude (lat), longitude (lon), elevation (ele, in meters), and time (time) into the tibble:

| lat | lon | ele | time | | -------: | ---------: | ---: | :------------------ | | 37.80405 | -122.4267 | 17.0 | 2018-11-03 14:24:45 | | 37.80406 | -122.4267 | 16.8 | 2018-11-03 14:24:46 | | 37.80408 | -122.4266 | 17.0 | 2018-11-03 14:24:48 | | 37.80409 | -122.4266 | 17.0 | 2018-11-03 14:24:49 | | 37.80409 | -122.4265 | 17.2 | 2018-11-03 14:24:50 |

We can also get a summary of the activity:

summary(df)

| Distance | Date | Time | AvgPace | MaxPace | ElevGain | ElevLoss | AvgElev | Title | | -------: | :------------------ | -------------------: | ---------------------------------: | ---------------------------------: | -------: | -------: | ---------: | :------------------------ | | 9.407317 | 2018-11-03 14:24:45 | 4622s (\~1.28 hours) | 491.319700444844s (\~8.19 minutes) | 186.462178755299s (\~3.11 minutes) | 188.364 | 253.4996 | -24.29198 | Sunrise 15K PR (sub-8:00) |

Once we have the data, it’s useful to visualize it. While basic visualizations work as expected with a data frame:

library(ggplot2)
qplot(lon, lat, data=df)

It’s more helpful to overlay this information on a correctly-sized map. To aid in that, get_map_from_df gives us a ggmap object (from the ggmap package), which we can use to visualize our track.

Let’s see that on its own to start:

ggmap::ggmap(get_ggmap_from_df(df)) + theme_void()

The axes show that we now have a ggmap at the right size to visualize the run. So putting it all together, we can make a nice basic graphic of the run:

ggmap::ggmap(get_ggmap_from_df(df)) +
  theme_void() +
  geom_path(aes(x = lon, y = lat), size = 1, data = df, color = "red")



Try the activatr package in your browser

Any scripts or data that you put into this service are public.

activatr documentation built on Jan. 15, 2021, 3:36 p.m.