Field notes
Getting a clean line out of a messy FIT file
GPS drift, tunnel gaps, and the smoothing we refuse to do. What actually happens between your device and a printed sheet.
Your watch or bike computer records a point roughly every second. A long ride is thirty thousand of them. A printed sheet needs about a thousand.
Everything interesting happens in that reduction.
Why not just draw every point
Because it looks worse. Thirty thousand points on a 50×70 sheet means many of them land inside the same fraction of a millimetre, and the line stops being a line and becomes a slightly furry band. Print it and the ink spreads; the fur becomes a smudge.
Reduction is not a compromise for file size. It is what makes the stroke read as a stroke.
The method is Douglas–Peucker, which is a pleasingly stubborn algorithm: keep the first and last point, find the point furthest from the straight line between them, and if it is far enough away, keep it and repeat on both halves. Points that sit almost on a line their neighbours already describe get dropped, because they were not telling you anything.
What survives is every corner that mattered and nothing that did not.
The hairpins problem
Simplification has one failure mode worth knowing about, and it is the one that would ruin exactly the routes people most want to print.
A hairpin is a very small feature. Reduce too aggressively and a switchback climb turns into a zigzag with the corners rounded off — recognisably wrong to anyone who has ridden it. Reduce too little and you are back to the furry band.
We target a point count rather than a tolerance, and search for the tolerance that hits it. That sounds like a technicality; it is the difference between a method that works on a nine kilometre alpine climb and one that works on an eight hundred kilometre tour. A fixed tolerance cannot do both.
Gaps, drift, and the tunnel
Real files are not clean. Three things go wrong often enough to be normal rather than exceptional:
Tunnels and dense cities. The signal drops, the device keeps recording time, and when it reacquires you get a straight line between two points that were never connected by a straight road. We leave those in. Smoothing them into a plausible curve would be inventing geography, and the straight segment is at least honest about the fact that something was missing.
Start and finish drift. A device acquiring a fix at the start of a ride wanders for the first thirty seconds or so. On a print this shows up as a small tangle at the beginning.
Elevation that is simply wrong. This one deserves its own section.
Altitude is the least reliable number in the file
We ran a two hundred and twenty kilometre ride, recorded on a phone, through our own pipeline. Distance came out at 222.7 km — matching the recorded activity exactly.
Elevation did not come close. Calculated from the file's own altitude series, the total climb came to over 1 200 metres. The activity's own figure was 276. Looking at the raw numbers explained why: the series ran from −91 metres to +47 metres, on a ride that never went below sea level.
That is not a bug in the file. Satellite positioning is far less precise vertically than horizontally, and barometric altimeters drift with the weather. No amount of threshold or smoothing recovers a real number from that.
The platforms that report elevation correctly do not read it from your device at all — they take your coordinates and look them up in a terrain model. We cannot do that locally, so we do not pretend to. Elevation printed on one of our sheets comes from the activity's own recorded total, never from a number we derived ourselves.
If you have ever wondered why the same ride shows different climbing on two apps, that is the whole answer.
The smoothing we refuse to do
There is a version of this craft where you make everything look better. Round the corners. Redraw the tunnel. Amplify the profile until a flat day looks like a mountain stage.
We draw a line at inventing terrain. The profile curve gets smoothed, because a curve is a drawing and the sensor noise is not part of the route. The track does not, beyond the reduction described above. And no number gets adjusted to look more impressive than the day actually was.
The whole product rests on the print being a record of something you did. The moment it starts flattering you, it stops being that, and it is not worth hanging.
YOURS, FROM A FILE, IN 90 SECONDS
One effort. One sheet of paper.
Bring the file and every choice is yours: treatment, colour, which numbers come along. Museum-grade 250 gsm matte, printed in Denmark, shipped in a tube with a nail taped inside.