Bellevue is a hilly place. It's perched (roughly) between two large bodies of fresh water. Lake Washington, to the west, is something around 10 or 15' above sea level, and Lake Sammamish, to the east, is about 40' about sea level.

What that means for me is that if I'm going riding, I'm going to be riding up and down some hills. Some are steep hills, of the "I'd really like to stop now, but if I do I fear I will merely fall across the road and lie there until some vehicle approaches" variety. Others are less steep. As I was suffering going up one of these hills, I thought it might be fun to know exactly how steep it is (cyclists have weird senses of humor, and love/hate relationships with hills). A few web searches led me to this inclinometer, but being the techie that I am, it didn't seem cool enough, so I did a bit more research.

Hills are measured in terms of gradient, which is merely the rise of the hill over the run. If you're going up 2 feet for every 100 feet you travel, you're on a 2% hill. As an aside, it turns out that humans are great at overestimating the steepness of hills. It's easy to think that some streets are nearly 45 degrees (100% gradient), but it turns out that the steepest streets around Seattle (and we have some steep ones) are a 21% gradient, a mere 11 degrees. Take out a piece of graph paper, and draw a triangle that's 10 units long and 2 units high. Take a look at that, and then try to reconcile it with the streets you've been on. Doesn't make much sense.

Anyway, what I was looking for was a way to measure the gradient of the streets I was on. To do that, I needed a way to set a reference point, move forward, and then figure out the delta in distance and altitude. If you're thinking GPS, you're right on the button. This finally gave me an excuse to order a data cable for my Garmin Etrex, and yesterday afternoon I did a little drive on some hills with the GPS on, came home, and used a gps utility program to download the data, extracted it to a text file, imported to excel, it did some graphing.

The result was fairly good, actually, except for the fact that the Etrex only saves data every once in a while (to save memory space), so in a car, the samples are too far apart to get a good reading. This wouldn't be a problem climbing on the bike, but might be when descending. I can get around that by taking the laptop with me and saving the location every second, which should give me more than enough resolution to get some good data. GPS isn't great on absolute position, and is even less good on absolute altitude, but it's quite good on relative measurements of both of those.

I'll have to write a C# utility to run on the laptop, of course, so that I don't have to do all the ugly massaging and export. I might eventually buy a GPS for my pocket PC, as there are some small ones that fit in the compact flash slot.