Run Mapping Graphic Update

160709_14 miler blue_FINAL

Recently I have been refining the graphics of my run mapping visualization tools. Previous iterations suffer from a few issues: First and foremost I didn’t incorporate topographical lines on the 2D background. I was using a GIS file of building outlines to keep my files lighter. This is fine in an urban area, but parks and undeveloped zones read as empty space. Secondly there was a lack of contrast between the vertical elevation bars (colored by pace) and the background. My latest iteration incorporates topography and adds a cobalt blue background.



Lessons From My first 50 Miler

This April I ran the The North Face Endurance Challenge 50 Miler in Sterling, Virginia, just northwest of DC along the Potomac River. It was my first 50, so I went into it with optimism, but also not knowing exactly what to expect. I had a great experience and a decent race, but fell short of my goal. So what could I have done differently to perform better? What went well?

Train more on trails!
By the time I hit the last 12 miles of trail, they were trashed by other runners and the rain, sleet, and snow that fell for the first few hours of the day. Hills were slick with mud and even the flat portions had long stretches of wet mud that was unavoidable. Every footfall was unstable and my shoes got little traction. My relative lack of trail experience bit me in the ass. Maintaining footing and balance recruits all the tiny supporting muscles in your hips and ankles and by mile 38, mine were shot. Miles 38-48 were an interminable muddy slog and I didn’t have the mental reserves to talk myself into just charging through.

There was some mud.

If I had better trail running chops I could’ve tackled this better. In training I hit my mileage targets, but too few miles were on trails, so all those small supporting muscles were under-trained. A pacer may have also helped at this point. I needed a cheerleader and simply couldn’t cheerlead myself. My buddy Brett paced me in the final stretch and was amazing, but I really needed him much earlier.

Eat, eat, and eat more.
My nutrition plan totally blew up at the end of the race. Having had success getting calories from gels and liquid at the 50k distance, I deployed the same strategy here. I easily stuck to my plan through mile 38, adding in some hot veggie broth, my new favorite aid station food. But over the miles of muddy trail I got super pissed and frustrated, lost focus, and totally lost track of my food schedule. I simply didn’t eat enough. This started a death spiral of slow running, frustration, not thinking about my food schedule, more slow running, and so forth. Thankfully I had no stomach pain and only very minor pain in my gut.

The weather was perfect for racing: temps in the 40’s and low 50’s with high humidity. Based on my sweat tests, I knew that hydration would be less of a concern. I didn’t drink as much as planned yet I think I was actually over hydrated. I stopped to pee 2 or 3 times and at the end felt hydrated enough to have a few post-race beers without fear of my typical instantaneous post-race hangover.

Enjoy the trail camaraderie.
I’ve heard it said that the ultra community is incredibly supportive and I definitely found this to be true. The support I got, and gave, on the trail was a highlight of my race. The course had multiple out-and-back sections, so runners headed the opposite direction gave me tons high fives and cheered me on. I was also running with the same 3 or 4 runners for hours at a time, so we got to know one another, talked about running, and commiserated about the mud. My pit crew was also fantastic, cheering me on and feeding me along the way. I couldn’t have done it without them.

None of this gear will ever be this clean again.

Gear was a non-issue.
My gear choices were generally solid. I didn’t use anything I hadn’t used previously: Altra Lone Peak 2.5 shoes, hydration pack, calf compression sleeves, Garmin, and my typical running clothes and cold weather gear. My hydration pack proved why I love it: it’s super easy to refill, didn’t chafe at all, and moved with me, even when it was full.

I am typically not a fan of stopping to change shoes and socks mid-run, but with the mud and wetness it may have been a good idea. I had a pinky toe blister that I know changed my gait and I could’ve possibly avoided it with a shoe change. In the future I’ll also experiment with shoes with more aggressive lugs that provide better traction in the mud – that may have helped.

Get comfortable with fatigue.
Lately I’ve been reading new research on the athlete’s perception of muscle fatigue. Originally thought to be a the result of signals sent from muscles, perceptions of fatigue have recently been shown to originate in the brain, at least in endurance athletes. (For a great summary, check out this Science of Ultra podcast.) So improving performance is partially a matter of training yourself to accept and overcome these sensations. I understand this concept, but until the end of my race I never fully grasped it. At about mile 49 my legs were toast and I was walking off and on, but for the last few miles I mustered a steady run and sprinted for the last 100m. I even passed two people. Somehow I was able to override my brain’s signals telling me my muscles were tired. After I crossed the line I thought: “Wow. Okay, I guess I need to get more comfortable with fatigue.” In my future training runs, I’ll push myself with this in mind.

You’ll have good days and bad days.
I realize now that in my first trail 50k a few weeks prior, everything just fell into place. My legs were fresh, I felt strong for the entire race, the weather was cool and dry, and the trails were almost completely runnable. It was a small race, I had a really relaxed attitude, and I finished in just over 5 hours. This 50 miler was the opposite: I was nervous about how I would do, having trained for months just to get to the start line. Rain fell as the race started and it gradually changed to sleet and snow, which fell for the first few hours of the race. At the time the rain and nerves didn’t mean much and I just pushed through, but in hindsight I realize that they took their toll mentally. I didn’t have a full mental reservoir for the muddy slog at the end of the race.

My mind also went to some dark places at one point. I had been running in a group and chatting for the majority of the race, but on one stretch I found myself alone. The day was cloudy and dense tree cover made for a surprisingly dark scene. It felt like 6:00pm and it seemed like I had been running forever. I found myself saying, “You’re not that good a runner. Why did you waste so much time training for this? You’ll never finish this. This *$&#% sucks.” From other ultra runners I knew to expect some bad thoughts, but I don’t think I truly appreciated how difficult some stretches can be. But now that I know what to expect, I’ll be much more prepared next time, both mentally and physically.

22 + 8 Back to Back Workout

This weekend I ran my two longest back-to-back workouts in about the last 6 months: Saturday I ran 22 miles, followed by an 8 mile run on Sunday. My Saturday long run was strong. I averaged an 8:28 pace and kept my cadence at an average of 174 steps/minute. For several weeks I’ve been trying to keep it between 170 and 180 and generally I’ve been successful, but on long runs it tends to dip towards the end as I slow down. Here’s my 22 mile route, followed by run data from Garmin Connect:



Looking at my cadence in the bottom chart, I can see that:

  1. I need to focus on getting my cadence up early as I start a run.
  2. My cadence was consistently higher in the middle hour, which corresponds loosely to the rolling hills of Forbidden Drive along the Wissahickon Creek. I was really pysched about all the hills and it shows. Even when the trail was trending uphill I was in the high 170’s.
  3. The big climb up and over Belmont Hill near the end kicked my butt. Even after I got to the top and was headed down my cadence was still below my 174 average.
  4. In the last two miles I made it a point to focus intently on my form and tune out distractions. My cadence went right back up.

Below is my route, pace, and elevation represented in 3D. So I could easily compare it with my trail run on the Rattling Run Trail, I’ve used the same color range to represent my pace.


The most obvious difference between my previous long run is that there is very little orange and red. Most of the red is the result of getting stuck at stop lights.

At the end of my run I felt good except for some tightness in my lower right calf. The next day I was generally a little sore and wary of running 8 miles, but I took it easy and ran at about 9:30 pace. As I write this on Monday my legs feel much less sore than they typically do two days after a long run. I have only a little lingering calf soreness.

Long Run Data:

Conditions: Mid 40’s, approx 75% RH, overcast and windy.

Nutrition/Hydration: 1 – 22oz water bottle with 2x Nuun tablets (lemon lime, clearly the best flavor). I drank to thirst and finished the bottle with a few miles left; could’ve used more. I began my run well hydrated, which helped. I forgot to bring gels, but in the end I didn’t need them. On my next long run I will make it a point to bring at least 1. So far I have enjoyed seeing how I can perform with little to no calorie intake.

Mileage /Pace / Elevation Gain: 22.1 miles / 8:32/mile average pace / 630′ elevation gain. (Despite trying to add more elevation changes, I still only climbed less than half the elevation I did on my Rattling Run adventure.)

Cadence: 174 spm (average)

Gear: Altra Instinct 3.0 shoes, NB poly socks (no issues at all, even though they were brand new.) Shorts, long sleeve tech shirt over short sleeve tech shirt, knit cap, gloves. (Note no calf compression sleeves. Wondering if this would’ve helped my calf soreness).


Visualizing Paces in 3D

For a few months I’ve been developing tools to visualize my running routes in three dimensions. In my last post about running the Rattling Run Trail, I compared the topography of that run to one of my recent runs in Philly using two colored “ribbon” representations of each route. The results were enlightening (and show how few big hills there are in Philly) but I wanted a little bit more from my run data. Many sites like Map My Run and Strava generate topo maps with elevation and pace data as separate graphs below. For example, here’s the Strava output for my Rattling Run Trail run:


While useful, these graphics can be hard to interpret because they’re all separate. A flat map projection shows my course in horizontal space but there’s no easy way to see the course combined with elevation changes, nor can that all be easily related to local geography or landmarks. Quickly relating position, elevation, and pace is even trickier and requires looking at the map and graphs separately, then mentally synthesizing them.

In an effort to combine my route map with elevation and pace, I developed a tool that color codes the route ribbon based on my pace. Here’s the result:


Each vertical colored bar is centered on a GPS trackpoint then color coded based on my pace at that instant; the height of each bar represents elevation, exaggerated by a factor of 20 so the slopes are more apparent. My Garmin watch yields a lot of data for each run. For example this 20 mile route generated approximately 1600 data points, each with a time stamp, location, distance from the start point, and other data.

Unlike the Strava output above, I can see at a glance how my pace was affected by the changing terrain. From this bird’s eye view, a few things are clear: the massive uphill at the beginning was brutal; even though the ridge was flat, I was still probably recovering from the hill; and that I killed it on the slow descent in the valley. Zooming in on specific sections yields some more insights. Here’s the uphill:


The beginning of the descent into the valley also highlights some of my weaknesses:


Although I’d consider this the beta version of my tool it has already proven useful. I’m looking forward to deploying it on other routes (and races) that I’ve run to see where I can improve. Ideally, a future iteration will also include slope analysis, so I can numerically relate slope, pace, and even heart rate. I also need to tweak the color range to more easily differentiate between the mid-range (yellow) paces. What other functions would be useful?

Some technical details on the tools I used:
Software: Rhinoceros 5  and Grasshopper with gHowl XML parsing and elevation components.
GPS Watch: Garmin Forerunner 220. GPS data was exported to TCX format from Garmin Connect.



Running Rattling Run

151230_Rattling Run vs Philly_Labeled-02-01
Side by side comparison of my last Philly long run (in gold) and my 20 miler on the Rattling Run Trail. It’s safe to say I can’t find hills like this in Philly. (Note: vertical scale is exaggerated by 20x)

I often complain that it’s hard to find long trail routes with big hills in Philly, so when I was in rural central Pennsylvania this Christmas I jumped at the chance to get out into mountains. Although I’m used to trails from hiking and backpacking, I still need practice going hard on big climbs and long descents on rougher terrain. I picked a 20 mile loop in the mountains east of the Susquehanna River, just north of Harrisburg. Most of my run was on the Rattling Run Trail and the Stony Creek Rail Trail.

I set out from the parking area at Ellendale road in the Stony Creek Valley. The Rattling Run trail is a well kept gravel road and immediately climbs up to the ridge of Third Mountain to the north. The first three miles were brutal (and just what I was looking for) as the trail climbs about 1200 feet. At the ridge line, the road becomes soft grass and dirt and remains flat for about two miles before descending three miles back down to the valley. Unbeknownst to me the ridge line was cleared of trees and brush earlier this year as a fire prevention measure, so the views north and south were amazing.

Running the ridge line through partially cleared forest.

The well-traveled grassy road transitions to a much rougher unimproved “road” as it descends down the north side of Third Mountain. Wet leaves and larger loose rocks tested my concentration and footwork.The trail then curves southeast through a gap in the ridge and back to the rail trail in the Stony Creek Valley. This trail is a hard-packed gravel road closed to cars, so I made good time.

Overall the run went really well and I finished feeling great, averaging just over a 9 minute pace. The run was also a fantastic mental test. Typically I listen to music or podcasts on long runs, but I didn’t this time. Running through the quiet of the forest was not only incredibly peaceful and calming, but it also gave me a good chance to practice my self-cheerleading as I climbed up the mountain and pushed through the last few miles.

Having never run on this trail before I wasn’t sure what conditions to expect, but it was just what I was looking for. I’d definitely do it again.

Conditions: Overcast with temps in upper 40’s. Windy at the ridge line (my knit cap was clutch here). Slightly muddy trail with lots of wet leaves.

Nutrition/Hydration: 2x 22oz handhelds (1 water, 1 water with 2 Nuun tablets.) Because the temps were lower this was plenty. I brought a protein bar in case I got lost, but I didn’t need it so I ate it for recovery.

Recovery nutrition: 8oz CVS brand nutrition drink (13 g protein, 50g carbs) and Pure Protein bar (31g protein, 28g carbs) immediately after I finished. 1 liter of water on the drive home. I had a slight headache towards the end of the run (from lack of caffeine in the morning, I think) so I also bought a 20oz coke for the ride home.

Gear: New Altra Lone Peak 2.5’s, shorts, long sleeve tech tee with short sleeve tech tee, calf compression sleeves, knit cotton cap, 2x 22oz Ultraspire handhelds, and phone. Even though I only had about 5 miles on my shoes they were great; good traction, good fit, no blisters.



Revising My Long Runs

3D run route comparison, looking southwest. Elevations are exaggerated by a factor of 20.

For a while now I’ve been looking for long run routes in Philly that aren’t loops, include a good number of hills, and get me onto trails. This week I ran an 18 miler that fit the bill.

The image above shows the GPS tracks from two of my recent long runs. The green route shows the problem I often have: I start with solid hills but I end up on the flat, boring Schuylkill River Trail (SRT). The gold route shows the modification I made Sunday: I took the train to the Chestnut Hill West SEPTA station and ran down Germantown Ave and into the Wissahickon. But instead of continuing south onto the SRT, I ran back north into Manayunk and onto the Cynwyd Heritage trail. Instead of the flat SRT, I get another long climb up to Bala Cynwyd and down the other side on Belmont Avenue into West Philly. Overall it’s a much more challenging run.

To get even more hills, next time I plan to stay off Forbidden Drive in the Wissahickon Valley and instead run on the side trails.

Sweat Rate Test #3

So far my sweat test runs have been at higher temps – one at about 75° F and one at 90° F – so with an air temp of about 50°, this test should produce a result significantly lower than the first two and give me a chance to see how my body responds on colder runs. I knew I would sweat less, but how much less? For my body, is the relationship between air temperature and sweat rate linear? Now that I have more data points I can begin to find out. For this test I used the same method I used for the first two tests and ran a similar, but longer and slightly more hilly course. Here’s how it went:

Starting conditions: 49° F, 35% RH, cloudy
Finish conditions: 49° F, 35% RH, cloudy
Distance: 16.1 miles (all road, no trail)
Time (Pace): 2:19 (8:38/mile)
Net elevation gain: 453 ft
Clothing: Knit cap, long sleeve tech shirt, running shorts, running shoes, socks.

Pre-run weight
Body weight: 164.8 lbs
Water consumption: 1.43 lbs (22oz handheld with 1.5 Nuun tablets)
Total pre-run weight: 166.2 lbs

Post-run weight: 161.9 lbs

Sweat Rate: 0.85 L/hr

This sweat rate is obviously much lower than my first two runs. I sweat almost exactly half as much as I did on my hottest run. To see how my three test runs compare, I plotted temp vs sweat rate on a simple chart:


Based on my three data points a linear relationship between temperature and sweat rate is emerging, but this is a small sample size. For this experiment to be truly useful I’d like to add more data points. Now that we’re heading into the winter, I’ll also have a chance to see what happens at very low temperatures. Will the air temp even matter if I’m bundled up to stay warm?

What’s even more interesting is that in Bryon Powell’s book Relentless Forward Progress, he mentions that it’s difficult to process more than .65 – .83 L per hour while running. Only when the air temp is in the upper 40’s does my sweat rate drop low enough for me to be able to adequately rehydrate during a run!

Woodlands Gobble Wobble 5K

Gobble Wobble 2015
Celebrating my 7th place finish.

I’m just not that fast any more. I accept this, so I tend towards longer races in which all out speed doesn’t matter too much. I’ve only run one 5k in the last 8 years. So when I ran the Woodlands Gobble Wobble 5K last week my goal was to satisfy my own curiosity. Just how fast (or slow) am I now?

The race took place in Woodlands Cemetery, a rolling, wooded Victorian Cemetery in West Philly. The cemetery isn’t huge, so the course consisted of four laps around the grounds on curving paved roads. I generally don’t like looping courses, but since it was only a 5K, I viewed it like a track workout. The course has a few rolling hills, including a long, gradual uphill at the end of each lap.

My preparation in the days before the race could’ve been better. I didn’t sleep well and I had a few beers the night before, but that morning I felt good. The weather was perfect: partly cloudy skies and temps in the mid-40’s. I had nothing to lose in this race so I pushed the pace hard at the start, using the momentum of the group to propel me through the first lap. I deliberately chose not to wear my GPS watch so I’d just go for it instead of obsessing over my pace. I felt good for the first two laps but the hill at the end of each lap took its toll and my splits dropped lower over the last two laps.

It was the first annual race, so about 95 runners turned up. I finished the four laps in 21:13, about 6:50/mile and good enough for a 7th place finish overall. Deep down I was hoping for a sub-20 minute time, but I was happy with my finish, and it was was a good reminder that I could benefit from a little speed work.



Routes and Record Keeping – a Personal History

Run logging circa 2008
Run logging circa 2009

As a 16 year old, before anything like Google maps existed, I would measure out run routes by driving them in my parents’ car. With a cheap digital stopwatch I could manually calculate my pace, which I dutifully recorded on paper calendars and tallied on paper tables. Thankfully, my run tracking and logging methods have become far more accurate, provide real time feedback, and are friction free. Here’s a quick look at my methods, past and present.

In the early 2000’s my car method was replaced by online mapping tools, thankfully. For years my standby was gmap pedometer, a leaner version of feature-heavy (and ad-heavy) tools like MapMyRun. It still exists today and nothing beats it for quickly plotting out a run. But sitting down to manually click through routes takes time, especially if want accuracy but still crave the variety of new routes each day. For most of my running career this is how I planned runs.

Until about 6 years ago my main method of logging mileage was still a paper calendar. When planning for marathons I’d print out the year, consult my training plan resources, and gradually fill in target workouts. After a training run I crammed the details of each workout into the cells of the calendar, including route name, distance, pace, and lap times for speed workouts. I highlighted each workout so I could tell at a glance how active I’d been and in the margins I’d total up my weekly mileages. This process of mapping each route online, manually writing in my workout details, and manually adding everything up was time consuming and probably made me late for work some mornings, but I do miss the ritual. My training logs from 10 years ago, wrinkled and smeared from my sweat as I filled them out post-run, are among my prized possessions, given equal status with my architectural sketchbooks.

My current methods are much, much more efficient and I get route variety and accuracy without relying on mapping tools. I still plot out routes in advance to get a rough idea of distance, but I now rely on my GPS watch, a Garmin Forerunner 220. Running repeated routes drives me nuts, so GPS allows me to wander a bit more, adding or subtracting distance as I go. I knew that getting a GPS watch would make tracking distance easier and faster, but I never expected the freedom it gives me to get deliberately lost on a run and still not overshoot my target mileage. And like a lot of runners, my analytical mind is hooked on the extra data from the watch, like average pace per mile and cadence. Without a doubt the data makes me a better, more consistent runner.

Of course, my run logging is now completely paperless. My watch links via Bluetooth to my iPhone, so when the watch is within a few feet of it, the run data is automatically uploaded to the Garmin Connect app. Strava then automatically pulls the data from Garmin Connect. The only manual step in the process is taking my weekly mileage and plugging it into a spreadsheet in the cloud. While Strava is a great tool, I still like the flexibility of crunching my own mileage numbers to get custom charts and graphs and my rolling 3 week average mileage.

A few things haven’t changed over the years: For starters, I still keep a spreadsheet (now in the cloud) of every race I’ve done. It’s perfect for tracking fitness, trends, and PRs over the long term. I also still develop my training plans the same way I always have: on paper, consulting plans from different sources, and with help from fellow runners. Only after they’re set do I plug them into a spreadsheet.

As life’s other demands grow, I’m always trying to minimize the amount of time I spend logging runs and getting ready to run. Thanks to GPS, mobile apps, and devices with Bluetooth, my planning and logging time is less than ever. But I still obsess over the data just as much.

Sweat Rate Test #2

Screen Shot 2015-09-12 at 7.06.59 PMToday I took another sweat test run to help determine my sweat rates in different conditions. I chose a nice flat course along the Schuylkill River Trail, shown above. It was a much better run than my last sweat test by most measures: the air was cooler, the sun wasn’t beating down, the course was flatter, and I pushed the pace well. It was cool enough that I only needed to drink about 3/4 of the water I brought with me. So did I sweat less than last time?


Basic Stats
Starting conditions: 71° F, 86%RH, cloudy (note higher humidity)
Finishing conditions: 77° F, 66% RH, cloudy
Distance: 13.16 miles (Approx 3 miles on trail, 10 on pavement)
Time: 1:47:44 (1.80 hours)
Pace: 8:11/mile
Net elevation gain: 244 ft
Clothing: shorts, singlet, breathable running hat, NB road shoes, socks

Pre-run weigh in
Weight: 161.8 lb
Weight of water consumed during run: 2.9 lbs (2 – 22oz handhelds of water)
Total pre-run weight: 164.7 lbs

Finishing weight: 159.3 lbs.

Subtracting 159.3 from 164.7 equals a total sweat loss of 5.4 lbs (or 2.45 L of water). Dividing 2.45 L by my run time of 1.80 hours yields a sweat rate of 1.36 L/hr, a reduction of 0.41 L/hr from my first sweat test.

My reduced sweat rate on this run proves the obvious: that I sweat less when the air temperature is lower. But is the relationship of temperature to sweat rate linear? What about the role of humidity? As I get more data points I’ll start to investigate this further.

So compared to other runners how much do I sweat? Last time I found conflicting data on what sweat rate was considered average. One article cited an average of .95 L/hr, making me look like a sweating pro. Frankly, I don’t think I’m that sweaty a dude so I did some more reading. Most sources (like this one and this one) indicate a range that depends on the season and acclimatization to heat, starting from a low of .75 L/hr to a high of 2.5 L/hr. In other words, I’m pretty normal.