Coordinate Frames
The three honest answers to "where are you?"
Why it matters
Satellites broadcast their positions in ECEF, humans think in geodetic angles, and local applications reason in East-North-Up. Every GNSS solution is a chain of frame conversions, and a single confused frame is a classic source of large, silent errors.
Three people, three "correct" answers
Ask three specialists where you're standing and brace yourself for an argument.
The cartographer says: "You're at 40.7 degrees north, 74 degrees west, 10 meters up." The satellite engineer says: "Nonsense — you're at X = 1,334 km, Y = −4,654 km, Z = 4,138 km from the center of the Earth." The surveyor on site says: "You're both overcomplicating it. You're 20 meters east and 5 meters north of that bench."
Here's the punchline: all three are exactly right. They are describing the same point, in the same universe, at the same instant — just in three different languages. The only way to be wrong is to speak one language while thinking you're speaking another. That mistake has flown aircraft to the wrong runway, so it's worth getting straight.
The idea, before any mathematics
A coordinate frame is nothing more than an agreed-upon origin (where zero is) and a set of axes (which way the numbers grow). Change either, and the numbers change even though the point does not. GNSS leans on three frames because each is convenient for a different job:
- Geodetic — latitude, longitude, and height. These are angles on a smooth model of the Earth (the WGS-84 ellipsoid) plus a height above it. Perfect for maps and humans.
- ECEF (Earth-Centered, Earth-Fixed) — plain Cartesian meters measured from the planet's center, with axes bolted to the Earth so they spin along with it. This is where satellites report their positions and where the geometry actually gets solved.
- ENU (East-North-Up) — a local frame pinned to wherever you're standing: East is East, Up is straight up. Ideal for "how far and which way from here?"
The first two describe the global point; the third describes it relative to a place. Translating between them is the everyday work of a receiver.
Seeing it
The trick that makes frames click is seeing two of them in the same picture: the global ECEF axes, fixed and unmoving through the Earth's center, and a local ENU triad that clings to a point on the surface and tips over as that point moves. Watch what happens to "Up" as you walk from the equator to the pole — it swings through a full 90 degrees, even though it always just means "away from the ground beneath your feet."
Try it yourself
Below is a rotatable globe. The red/green/blue arrows are the fixed ECEF axes (X/Y/Z). The green dot is your observer, placed with the latitude, longitude, and height sliders. The cyan/orange/violet triad is the local ENU frame at the reference point. The panel shows the observer's position in all three languages at once.
Drag the globe to look around. Then sweep the latitude slider from south to north and keep your eye on the ENU triad: its "Up" arrow rolls all the way over. Press Set reference to observer, then move the observer a little — the ENU read-out now tells you exactly how far East, North, and Up you've traveled from that reference.
Drag the globe to rotate the view. Move the observer with the sliders and watch the same point described in all three frames at once.
- ECEF
- (1266.3, -4726.0, 4078.0) km
- ENU
- E 0.0, N 0.0, U 0.0 km
- Reference
- 40.0°, -75.0°
E/N/U is the local frame at the reference; X/Y/Z is the global ECEF frame fixed to the Earth. Notice how the local triad tips over as the observer travels — that is the whole reason two frames exist.
Play until the core truth lands: the dot never leaves the planet, but its description changes completely depending on which frame is doing the describing.
Now the mathematics
Start with geodetic latitude , longitude , and height on the WGS-84 ellipsoid (semi-major axis , first eccentricity squared ). The one auxiliary quantity you need is the prime-vertical radius of curvature — how sharply the ellipsoid curves in the east–west direction at that latitude:
With it, the geodetic-to-ECEF conversion is a direct evaluation:
That factor on is the ellipsoid gently squashing the poles — set and you'd get a perfect sphere. Going the other way (ECEF back to geodetic) has no clean one-liner for latitude, so in practice we use a closed-form approximation (Bowring's method) rather than iterating.
To reach the local ENU frame, subtract the reference point's ECEF position to get a difference vector, then rotate it by the reference latitude and longitude:
Because that matrix is a pure rotation, its inverse is simply its transpose — so ENU back to ECEF costs you nothing new.
How this appears in engineering
A working receiver rides this chain constantly. Satellite positions arrive in ECEF (computed from broadcast orbital elements), the pseudorange geometry is solved in ECEF, and the resulting position is converted to geodetic to show you a latitude and longitude — or to ENU to drive a local application like "guide the tractor 3 cm east." The Earth-fixed nature of ECEF matters here: because the axes rotate with the planet, a stationary building keeps constant ECEF coordinates, which is exactly what you want. Frame discipline is not academic tidiness; a swapped axis or a forgotten datum is a favorite way to be precisely, confidently wrong.
Check your understanding
- Your ECEF coordinates don't change all night while you sleep, yet you've been hurled thousands of kilometers through space by Earth's rotation. Why is that not a contradiction?
- Starting at the equator, you travel to the north pole. By how many degrees does your local "Up" direction rotate in ECEF, and why?
- In the interactive, why does adding height change all three ECEF numbers at the equator but only move the observer straight "Up" in ENU?
- Why can't latitude, longitude, and height be treated as ordinary Cartesian x, y, z?
Where to go next
Coordinate frames are the stage on which every other GNSS idea performs. With them in hand, revisit trilateration and pseudorange and notice something you may have skated past the first time: those "known station positions" and "satellite positions" were ECEF coordinates all along, quietly waiting for you to know which language they were spoken in.
Common misconceptions
- Latitude, longitude, and height are Cartesian x, y, z. They are not: geodetic coordinates are angles on a curved ellipsoid, not distances along straight axes.
- ECEF axes point at the satellites or the sun. ECEF is Earth-fixed: it rotates WITH the planet, so the axes always pierce the equator at the prime meridian and the poles.
- A frame conversion is just relabeling. It is a real geometric transform; mixing frames (say, treating an ECEF vector as ENU) produces confidently wrong positions.
Key takeaways
- The same physical point has geodetic, ECEF, and ENU descriptions — all correct.
- Geodetic uses angles on the WGS-84 ellipsoid; ECEF uses meters from Earth's center.
- ENU is a local frame whose axes reorient depending on where you stand.
- GNSS positioning is, in practice, a disciplined chain of frame conversions.