TrailCam

Guides

Why does a GPS track show negative elevation?

You walked a headland trail a few metres above the water all afternoon, and back home the elevation profile dips below zero twice. Nothing about that walk went below sea level. There are two separate reasons a GPS track can print a negative number even when the ground never was, and neither one means the file is broken.

The short answer

Elevation is the least precise number a phone's GPS produces, and near sea level that imprecision is often enough on its own to push an individual reading below zero. Separately, raw satellite altitude is measured against a mathematical model of the earth's shape rather than literal sea level, and in some parts of the world that model sits a little below where sea level actually is — which can shift a whole track down by a roughly constant amount. Either cause, or both together, can turn a walk that was genuinely a few metres up into a file with a few negative points in it.

Why elevation is the noisiest number GPS produces

A phone works out its position by timing signals from satellites spread across the sky above it. For horizontal position, those satellites surround you in every direction, which pins down east-west and north-south quite well. For height, every satellite you can see is still somewhere above the horizon, never below it — the geometry only ever brackets you from one side. That asymmetry is why vertical GPS accuracy is typically two to three times worse than horizontal accuracy, a limitation of the geometry itself rather than of any particular phone or app.

Add that margin either way to a true elevation of five metres above a shoreline, and a single point can easily land at minus two or minus three. The horizontal position of the same point can be dead accurate while the height reading wanders on its own.

The other cause: two different zeros

Ellipsoid height vs. sea level

Raw satellite altitude comes out as height above a reference ellipsoid — a smooth mathematical stand-in for the earth's shape, not the lumpy, gravity-defined surface that mean sea level actually follows. The gap between the two, called the geoid undulation, is a different number in every part of the world: in some regions the true sea-level surface sits above the reference ellipsoid, in others it sits below it. Where it sits below, an uncorrected altitude reading runs low compared with what a sea-level elevation would say, and ground that is genuinely a little above the water can come out at or under zero.

This offset does not wander the way GPS noise does — it is closer to a fixed shift for a given part of the world. Whether a device or app corrects for it before showing you a number is a separate step from the satellite fix itself, and how completely that correction is applied varies.

What it looks like inside a GPX file

Each recorded point in a GPX track carries its elevation as a plain number of metres in an <ele> tag, and nothing in the format distinguishes a genuine dip from a moment of vertical noise — a negative value is stored exactly like a positive one. Open a track from a low-lying coastal walk in a text editor and it is ordinary to see the odd small negative figure sitting among mostly small positive ones. That texture is normal for elevation data recorded close to sea level, not a sign that anything in the file is damaged.

When it is worth a second look

  • One or two points a few metres negative on a walk that stayed close to sea level — ordinary GPS vertical noise, no different from the noise that makes a raw elevation profile look jagged everywhere else. Most apps smooth this out before showing you a total.
  • The negative dips barely change your elevation gain total — gain is normally computed after filtering out small ups and downs below a threshold, so a handful of noisy points near zero rarely moves the number that matters.
  • The entire track sits tens of metres below zero throughout, not just at a couple of points — that is a constant offset rather than noise, worth checking against a known reference like a trailhead sign or a map, since it points at the ellipsoid-versus-sea-level gap rather than ordinary jitter.

Where TrailCam fits in

TrailCam draws elevation gain as a profile under the map for every recorded route, in the app and again when you replay a saved walk, and includes it in a GPX 1.1 or CSV export. A stray negative point near sea level in that profile is the ordinary texture of GPS altitude, not a fault in the recording. The app is free to download.

Questions

Does a negative elevation reading mean my GPX file is corrupted?
No. GPX stores elevation as a plain number that can be negative or positive with no separate flag for either — a negative value near sea level is almost always ordinary vertical GPS noise, not damage to the file.
Why does this mostly happen near the coast and rarely in the mountains?
The margin of error is roughly the same size wherever you are. Add it to a true elevation of five metres near a shoreline and it can go negative; add the same margin to five hundred metres on a mountainside and it just becomes a slightly wrong five hundred.
Can a whole track read low even though the walk was well above sea level?
Yes, if the gap between the reference ellipsoid GPS measures against and the true sea-level surface is negative for that part of the world — that shows up as a fairly constant offset across the whole track, rather than a couple of noisy points.

Recording your own routes

TrailCam is an iPhone app that records your route with GPS, keeps video clips, photos and voice notes pinned to the spot where you took them, and exports the result as GPX 1.1 or CSV. It is free to download.

Download on the App Store