Regular Running

As someone who’d hoped to run 1,000 miles this year (Update/Spoiler Alert: I’m going to fall about 80 miles short), I have a regular running route that I follow.

My most common run is the one I do during the week, during my lunch or some time in the afternoon, around the campus of Georgia Tech. This is a pretty popular urban ‘trail’ known as the Pi Mile and I can extend it from 5k to around 7k by running a bit longer on 10th Street, depending on the amount of time I have on any given day.

After doing some detective work using SmashRun, I determined that I’ve run this route 59 times in 2016!

I did a little bit of file conversion and “wrote” some additional code since my last mapping project, and ended up with some fun visualizations of all that data.

Here, then, are variations of a heat map of all my Pi Mile runs in 2016:

Here’s the actual source code I used myself to create all the maps above:

library(plotKML)
library(ggplot2)
library(ggmap)

# GPX files downloaded from Runkeeper
files < - dir(pattern = "\\.gpx")

# Consolidate routes in one drata frame
index <- c()
latitude <- c()
longitude <- c()
for (i in 1:length(files)) {
    
  route <- readGPX(files[i])
  location <- route$tracks[[1]][[1]]
  
  index <- c(index, rep(i, dim(location)[1]))
  latitude <- c(latitude, location$lat)
  longitude <- c(longitude, location$lon)
}
routes <- data.frame(cbind(index, latitude, longitude))

# Map the routes
ids <- unique(index)
plot(routes$longitude, routes$latitude, type="n", 
axes=FALSE, xlab="", ylab="", main="", asp=1)
for (i in 1:length(ids)) {
  currRoute <- subset(routes, index==ids[i])
  lines(currRoute$longitude, currRoute$latitude, col="#0066FF20")
}

# Plot over map of campus
GnatsMap <- qmap(location = 'Georgia Institue of Technology, Atlanta', 
zoom = 15, maptype = 'satellite', source = 'google')

GnatsMap +
  geom_path(aes(x = longitude, y = latitude, group = factor(index)), 
  colour="#1E2B6A", data = routes, alpha=0.3)

All the GPX files (which you can get from Strava) need to be in one directory when you run the script in R.

To change the color of the routes, modify this hex value:

for (i in 1:length(ids)) {
  currRoute < - subset(routes, index==ids[i])
  lines(currRoute$longitude, currRoute$latitude, col="#0066FF20")
}

To change the underlying map, change this portion:

qmap(location = 'Georgia Institue of Technology, Atlanta', zoom = 15, 
maptype = 'satellite', source = 'google')

Many thanks to the code of Saul Torres-Ortega and Frazier at UCSB.

Refer back to this PDF if you need additional help fussing with the underlying map. If the parsing of the GPX files is the issue, I’d look at the original code I borrowed.

One of the things that jumps out at me, if you look solely at the heat map (without geo data), is that the data is really noisy where/when I start my runs (upper right side). As you can imagine I’m not running across 75/85 in Midtown Atlanta, but that’s what the data shows.

Probably just the nature of tracking GPS with a phone, but the fidelity of the rest of the data seems solid. You can tell at one point when I’m choosing to run on one side of the sidewalk versus the other (lower right side, near Bobby Dodd) and the rare occasions – when I extended a 5k/7k into something more like a 10k – those are the thinner, lighter lines on 10th Street and some of the streets interior to tech’s campus (mostly left side of the map).

If you want to see another cool visualization of the same area of midtown using public running data from Strava from 2015, it’s also pretty cool.

Until next time, Run Happy!

A Lapse of Running laps

My own lofty goal to run 1000 miles in 2016 has already been documented here – and I’m due to update my progress – but I saw a video this morning that was too cool not to share.

In the video a runner has compiled footage of his running over the course of a year, almost exclusively on a regular route, set the whole thing to music while cutting along seasonal variations so you can see just how gorgeous the same place can be over time.

As someone who tends to run the same places regularly (one at work, one at home) it’s great to appreciate both the familiarity and variance of someone else’s running. It’s also a pretty gorgeous landscape, I’m guessing in the American West somewhere based on the snow, mountains & the fact that the YouTube channel also features a “hyperlapse” video of a run in Bozeman, MT.

I also like the addition of race footage in to the video in what I assume is the actual location of the race, both geographically and linearly. Either way it highlights the opposite of what I just mentioned – a kind of breaking of the routine while still taking advantage of the seasons.

Good for this person for creating this video. The closest I’ve ever come is a simple test with my Father-In-Law’s GoPro almost 2 years ago.

Until next time, I’ll keep running so I can hopefully update my annual progress.

Cheers!

A Pint For Wednesday

It used to be the case that GoPro videos were mostly used to showcase amazing feats of sport or take us on a flight with an eagle, but now you can see first-hand how craft beer is made.

I realize I’m biased, but I like the beer-making just a bit more.

On the other end of the spectrum we have craft beer tourism as a means of predicting football games. I wish the video had links to each of the beers & brewers, but it’s a fun feature. I hope it’s a weekly thing this year.

Until next hump day, have a beer for me!

Craft Beer Contains Multitudes

Does craft beer contradict itself?

Can the same movement that chastises folks as “wussies” for enjoying “fizzy, yellow beer” also embrace the popularity and acceptance that those drinkers might deliver them?

If that brewer is Wild Heaven and that beer is Emergency Drinking Beer, the answer is a resounding yes. The story of their flagship beer, its striking yellow can and the success it has brought them is worth a read.

On the flip side of that argument is To ├śL out of Denmark. Their brewers actually made freeze-dried beer, which is about as crafty as you can get. Some might even say hipster-y.

So, yes, craft beer is full of contradictions. It’s full of real people making a real product they want to share with others.

Craft beer is large and getting larger, it contains multitudes.

High Anxiety

Because the first rule of blogging in 2016 is referencing the fact that you should blog more, I’ll admit that this post moved me to action.

Consider this sentence my mea culpa.

The first link I’d like to blog about is the wonderful essay entitled “Enjoli” on Medium. I’m not sure that I can speak in the voice of nor in support of the issues raised or the solutions presented, but it made me think of what it must be like to live that life. It also made me think of the demands put on my wife and how I could/should be working harder. I’m trying.

The second link I want to mention is “Putting Away Childish Things” on INC. It’s a whale of a post about “adulting” and the fierce urgency of now (and not just a trite tweet about “now” instead).

I’m not sure I’m brave enough to tackle what the author suggests, but I do know my safe place is snark, so getting serious starts at home.

All of which is to say that I’ve been thinking a lot lately. Some of it good, some of it bad, but I’ve been thinking.

I think that maybe all this thinking is the root of some of my nameless, faceless anxiety and I should act instead of think more often. It usually makes me feel better.

As a bonus my running this week has made a huge difference. The doldrums of July and early August might be pointing the way towards a fruitful Fall.

Until next time.