Sunday, February 19, 2012

Funny How Things Work Out

Morning weigh-in (Friday): 186.5# (oops!)
Morning weigh-in (Sunday): 186#
So Thursday night I had an itch to scratch, and ended up playing with the computer instead of riding. Oh well, but at least I managed to get some results, as well as managing to break Topofusion...
Our Story So Far: What I want to do is take a GPS track and create an elevation profile of it, sort of what you see here or here or here. For the geekier cyclist, it's now normal to ride with GPS and upload the ride's data to some website, where you can see the data analyzed (ie graphs of elevation, heart rate, speed, etc), maybe even compare it -- read: compete -- against the rides of others. That's all good in its way, but what if you want to create your own standalone graph, maybe for use in some other project, and screen captures just won't do?

There are a few options. One of the best programs around, for playing with maps and cycling data, is a thing called TopoFusion. It can read ride data from a variety of formats, draw routes, and analyze either one in terms of elevation, distance etc. Unfortunately, it's a Windows program, and though I got it to work on my Linux laptop, recent upgrades caused it to become pretty flaky -- and then my attempts to fix the problem caused TopoFusion to stop working altogether.

(There is another problem with TopoFusion: GPS tracks consist of a bunch of individual points, and TF finds the elevation for each of those points and then makes a "staircase" graph of those individual data samples. When there are enough data points, like the GPS track of an actual ride, it's not noticeable, but with only a few data points the profile looks like a staircase. Worse, if you define a track by two points, say miles apart, with a mountain and valley between them, you will not get any of that profile, just the elevation at the first and second points.)

My next plan was to use an open-source program called Quantum GIS, which is supposed to be pretty good, with all sorts of functionality that can be added via plug-in modules. Unfortunately, it had no direct way to generate a profile, and the plug-ins I could find to make profiles refused to run without more added software, usually versions of stuff not easily available to my Ubuntu distribution -- for a variety of reasons I am deliberately behind the times with my upgrades, and this is one of the few times it worked against me.
Anyway, I finally punted, and went with the thing I initially had a lot of resistance to: GRASS. It took me a long time to get the hang of GRASS, and I still think that the interface is a pain, but it's big, and flexible, and programmable, and though it never "just works," when you do things right it can be very powerful.

I did some Googling and found some people dealing with similar problems, and I eventually found a way to do what I needed. It involved some indirect steps (convert the track into a series of points, adding extra points to fill in the spacing as needed when my original points were too far apart, then interpolate Shuttle Radar elevation data to convert the 2d points to 3d points), then I had to dump the results of that into something else for the actual graphing -- the example I followed used the statistical program R, which worked fine but wasn't very pretty, so I eventually switched to a spreadsheet. It was exactly, or almost exactly, what I need, though I may use GNU Plot to do any final graphing. It was strange to me that the clunky workhorse that I'd tried to avoid was just the thing that got my job done. Another life lesson I suppose...

Anyway, that took up a chunk of Thursday night, and the other half was taken up with a trip to Brew Works. Anne had gone up there to see Deb and Donna, first time in while that the old crew was together, and it was raining out, and I hadn't seen Deb in a while either... and there you have Friday morning's weight.

Friday night I hopped on the bike as soon as I got home, and did a moderately long towpath ride, then we went down to Black & Blue for dinner with Donna again, plus a few friends from out of town. Turns out it was Kelly-Jo's birthday, and they had cake and cupcakes, and we sang, and it was good. Yesterday I got up early, did some chores and hit the towpath again, this time doing about 34 miles of mixed towpath (Lehigh and some Delaware, though it was in bad shape) and bike path.

Right now I'm tending the bread oven's fire ( I just put some more wood on, and I can see the fire from the living room window), and debating what ride to do today. My choices revolve around doing more towpath (blech, but probably the smartest and best choice), a road ride (meh) or a real MTB ride, maybe at the relatively bomb-prof Trex. Tomorrow starts my first rest week, and I'm stuck between going out with a bang, or going out with more of what I'm supposed to be doing.

No comments: