The Best Dollar I Ever Spent

Now that I’ve moved to Denver, I’ve grown quite fond of tracking my outdoor activities to keep track of just how awesome my life has become. Consider it the natural product of being a geogeek who spent the first thirty-plus years of his life in areas that didn’t allow for constant outdoor fun. Let’s face it, Missouri and Oklahoma don’t offer much in the way of palatable outdoor activity in the winter, and summers can be a bit — how you say — unbearably hot.

What originally spurred my interest in Denver was how much it felt like home due to all of my family’s Christmas ski trips to Summit County while I was growing up. My first visit here — which was also my first Christmas — was at the age of four months. While everyone else correlates Christmas with family, gifts, and egg nog, I have always associated it with the mountains. They’ve always felt like home. Every Christmas from 4 months until I left for college, spent in Summit County. Since breaking that holiday tradition in the late 1990s, I’d been sure to take a break from the plains at least once a year, with the last ten years of ski trips dubbed, “Pickles Family Reunion,” as I brought all of my closest friends along for the ride. You can see what I’m getting at here: clearly, this move to Denver was strictly unrelated to skiing.

As I’ve grown older and nerdier, I’ve tried to capture my ski days for posterity. I need data to reflect upon to say, “hey, yeah, that was a good time.” Something to help pass the time at the office while I daydream about the best times ever. Perhaps I should step away from the PC a bit more but, alas, I am what I am. As any of my Facebook friends can attest, for the past two seasons Vail’s EpicMix has served well for this stat-tracking purpose (as shown here). For being provided to me free of additional cost, it is fairly robust, albeit limited. The RFID-driven system follows your lift pass as you board the ski lifts around any of Vail’s resorts and keeps track of the vertical feet traversed during your day. Granted, you can only see which lifts you have taken. To capture individual runs would be a monumental task, one which would most definitely take EpicMix out of the free price point. This is the major limitation of the system, but again, for a free system you cannot complain. In addition to the raw vertical foot tracker, there’s a social aspect of EpicMix and the whole thing is very heavily influenced by online gaming networks, with pins awarded for certain milestones and events. I’ve definitely been an achievement-whore more than a few times. Again, apologies for the EpicMix spam in your newsfeed, guys. You’re troopers.

It’s been a good run, EpicMix, but it’s time for me to move on. It’s not you. Heck, it’s not even me. It’s someone else. Her name is Ski Tracks for iPhone

Numbers confuse me

Not quite the prettiest UI to look at, but she has intangibles

Ski Tracks is an iOS GPS tracking app, one of hundreds in the App Store. But this one gets (almost) everything right, including the price: $0.99. Simply put, it combines my love of skiing with my love of quantitative, nerdy, map stuff. Zen, I has it.

• Battery Friendly with Battery Monitor – Records up to 14 hours.
• Tracks without the need for a cellular data or phone signal.
• Take/receive calls and text while tracking.
• Run by Run Ski Analysis.
• Comprehensive Ski Stats and Profile Graphs.
• Animated Preview in Maps and 3D Google Earth.
• Maps with Standard and Satellite modes.
• Add photographs to track.
• Share tracks in Facebook or Google Earth .
• Metric and Imperial units.

Specs! The three things that jumped out to me after reading the app description were the claim that it could constantly run GPS in the background for 14 hours, it could do run-by-run analysis, and it had the ability to export to Google Earth. Oh, and I forgot: ONE DOLLAR! I figured for that cost, the least I could do would be to run it until the battery dies, export the KMZ, reformat the KMZ to a geodatabase, and play around with the data in the GIS tool of my choice. After one weekend running the app, I’m amazed.

What do I have against the left side of Silver Spoon?

Accurate enough to differentiate which side of the run I like best (hint: the right)

I haven’t had a ski day long enough to test the 14-hour claim, but I can report that after a solid 6-hour day on the slopes my battery level was only hovering around 50%. Not too shabby. That’s long enough for most ski days, though if I stayed long enough for night skiing I would have probably needed to recharge during a pit stop. For the record, my settings were: wi-fi off, Bluetooth off, 3G on, no other apps running, proximity sensor off, and screen locked. As far as run-by-run analysis goes, check this out…

How did I do this before I wore a helmet? Chalk one up for being younger and dumber.


Pretty impressive. Obviously this is all elevation driven, much like EpicMix before, but it’s all done via the phone’s GPS referencing your realtime location rather than via an RFID sensor at the lift  referencing some data table of vertical footage for that particular machine. Whenever the app perceives a change from elevation climbing to leveling off or descending, it inserts a placemark in the track and starts a new run. Pretty genius, I must say, and something I wish I had thought of myself. With these placemarks, Ski Tracks can then have start times, end times, and locations for your run and can thus calculate your speed, slope, and tax bracket.

Funny, it didn't look that smooth while I was skiing it

I'm clearly in the 47.45% bracket

And this is only the stuff that you can easily access on your iPhone. The real beauty of this app is the output options. KMZ, GPX, and screenshots to Facebook.

Why are all breadcrumbs red?

The most basic output option

The easiest option, the one 99% of the population will use, is to export photos of your ski tracks to a topo map and post these photos to Facebook. Really, I can’t complain about this option. It’s quick, it’s easy, and at least it looks better than a red bread-crumb trail on a blurry aerial image from Google. Of course, as a GIS geek this option is quite limiting to me. Let me have access to the data and I’ll make something absolutely beautiful and flawless, as 1s and 0s go. What’s this? You have KMZ, you say? Now we’re talking.

I don’t know why Core Coders hid KMZ and GPX export in an email sharing dialog, but it’s the second best feature of this app, behind only how it distinguishes between the various runs you make. Here is my raw KMZ from last Saturday, in case you wanted to see it in action.

I really did trail a red paintbrush behind me on the slopes

It's almost like you were there... if trees were indeed only 2D

The default KMZ output looks great when you view it in Google Earth. There’s just something a bit uncanny about the view. I can’t put my finger on it…

The points, they float in space!

Hello there, points in space!

Oh yeah! It’s that the tracks are just draped over a low resolution DEM, rather than using the elevation data from the GPS. When I run KMZ-to-geodatabase tools so I can play with the data, the output claims to be a Polyline-Z format, but it’s most definitely not. In the ArcScene image above, the KMZ output is the flat red line at the bottom and the GPX output is the series of floating points. Obviously the elevation data comes from the GPS rather than a DEM, so why have two separate methods of showing elevation for your output formats?

Further, why is the day’s track only shown as one long bread-crumb? As we saw earlier, the app can distinguish between various runs and lifts throughout the day. Use those placemarks to color code the runs and lifts of the day. Maybe even add the stats as an attribute table so you click on a run to see the speed, slope, time, distance, etc.. You don’t even have to pay me for that quick suggestion, Core Coders, but please include it in your next update.

Perhaps I’m being too harsh on the KMZ export. Its primary purpose is to shock and awe those who don’t work with this kind of stuff for a living. In that, it succeeds. Heck, even at first glance, I’m impressed. It’s a nice, quick way to share your experience.

Looks familiar, no?

We return to the days where the Earth was flat

For geogeeks, the GPX export is worth the price of admission, alone. After looking at the attributes, I’m impressed that an app that refreshes GPS data every second while the unit is moving can keep a battery charge for so long. I mean, look at the timestamp data in the above image. 1-2 seconds per data refresh, and it still lasts for an entire day of skiing. But also note the data that is included in GPX: X, Y, Z, time, track name, and ski area description (automatically populated with the ski area’s name via the GPS coordinates, another nice touch). Of note is what’s missing: run number, speed, and slope calculations, AKA the juiciest data!

All three figures can be calculated with the data available, but it’s frustrating to add this step to a workflow when the app already did it in near realtime way back when the user was recording a track. (Coincidentally, if anyone has a script for computing speed and slope programmatically, please let me know. Major brain fart here.) As it stands, I’m just going to piggyback off of GPS Visualizer’s conversion tool, though I don’t trust the slope calculation presented there, and manually input Run IDs based upon elevation peaks and low values over a set timespan of 20 minutes or so. Again, Core Coders, please consider adding Run IDs in the GPX exports, perhaps using something as simple as appending the run number to the end of the Name field (for instance, in my GPX, the name would be more like 12-15-2012_Run_01 after the append). You already have the run and lift placemarks squirreled away in the app. Share the magic. This would, in turn, make speed and slope calculation a lot easier for the end-user.

One final suggestion that I would have for the app is to have it take into account the maximum slope and the average slope in order to rate the run against either some mountain-specific rating system or a universal standard and then color code the output KMZ line green, blue, or black accordingly. If it’s mountain specific, it’s the same idea as the current run color coding system. If you base it upon a universal grading, things get a bit more interesting in rating the varying difficulties of different ski areas, but maybe that’s something that’s long overdue. Anyway, that’s completely unnecessary in the grand scheme of things, but it would be an interesting way to improve the quick KMZ export and view. If you don’t do it, I will. Though, I have to be honest, I’ll probably create a polygon file per ski area and spatially join the GPX points to respective runs on the trail map in order to grab the color code. Look, I can be lazy, too!


What started with EpicMix has been expanded by Ski Tracks. I have new ways to annoy my Facebook friends by oversharing way more ski tracking data and visualizations than before. I am always hesitant to spend money on apps, but I haven’t regretted this purchase. It’s a slick package that provides plenty of eye candy for the novice, while the output options open a realm of possibilities to keep a geogeek like myself occupied for a long time. I’m already thinking of how I want to play with all of my future ski data. This is an app that makes me want to ski more; it reignites my passion for playing around with geospatial data. In short, it is the best dollar I have ever spent.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>