I recently finished hiking about 1100 miles of the Pacific Crest Trail. I logged GPS data for almost every mile of hiking, including over 100 miles worth of side trails and roads. Before my hike, I found a handy planning utility, Craig’s PCT Planner, which estimates the time required to hike the trail, by using a base hiking speed, plus a time added per 1000 feet of climbing, both of which can be adjusted for a particular hiker. Now that I’m home, I thought it would be interesting to check if this model holds up to my data.
I wrote some fairly simple Python code, which breaks down all the GPS data by kilometer, then plots each kilometer’s climbing and the time it took me to hike it. I did some basic filtering to remove kilometers where I was obviously in a car (since on a few occasions, I forgot to stop it before hitchhiking to town), and removes much of the time I spent stopped on trail. The basic result is shown below, along with linear regression.
Here, each blue dot is one kilometer hiked. The horizontal axis is the meters of ascent, ignoring any descending. So if there was a kilometer where I hiked up 50 meters, then down 50 meters, ending at the same elevation as I started, it will count as 50 meters of climbing here. The vertical axis is the time it took me to hike that kilometer. The red line is a line of best fit, using the built-in polynomial fitting function from NumPy:
So it looks like modeling my hiking as a base speed (the y-intercept), plus an amount of time per meter of climbing (the slope) is pretty reasonable, and I think it lends credence to the usefulness of the planner.
But it’s fun to try tweaking the model! So far, we’ve completely ignored any descending, which presumably can affect my hiking speed as well. One way to account for this is to look at the net elevation change (so the hypothetical 50m up and 50m down km would be 0m on this graph):
This shows that, compared to no elevation change, my typical speed is higher when I lose a little elevation and slower when I lose a lot of elevation over a km. The linear relationship doesn’t look as good here. But this still includes kilometers where I have both a lot of climbing and a lot of descending.
If we remove all kilometers where both climbing and descending are above 20m, (so we don’t have to worry about mixing up the effects of climbing and descending, or the total descending is greater than 40m, we get a nice, reasonably linear relationship which extends below zero net climbing:
Doing the same thing, but for more than 40m of descending, we have this:
So it looks like my hiking speed while descending increases less at higher grades and is less well-predicted by the grade. This matches my experience while hiking—sometimes I would be able to move pretty quickly on steep descents, but sometimes I had to move slowly because of rocky terrain or snow or something. For steep grades while climbing, I was already moving slowly and it’s easier and less dangerous to hike up than down on things like trails cut into scree fields.
This is all fairly preliminary and not particularly scientific. There’s more analysis I’d like to do in the future, such as:
Regression on more variables, such as:
Temperature (as logged by a thermometer on my pack)
Time of day
Days until next resupply (as a proxy for pack weight)
Days since last zero day
Altitude
Look at how the slop and intercept of this curve changed over time. I gained a lot of fitness from hiking
More careful filtering of data, to deal with stops better
Different methodology, like seeing how well it performs over longer runs than discrete, independent kilometers of hiking