What does an ECEF-to-ENU transformation do?
An ECEF-to-ENU rotation expresses a displacement in local east, north and up directions at a fixed origin. Applying the same rotation to the full position covariance gives local formal uncertainty. This lesson uses synthetic, reproducible teaching inputs.
Learning objectives
- Separate an absolute ECEF position from a local offset.
- Construct an ENU rotation from geodetic latitude and longitude.
- Rotate the full covariance and interpret local formal precision.
Why horizontal is not ECEF X–Y
ECEF axes are fixed to the Earth: X meets the equator at longitude zero, Y at longitude 90° east, and Z follows the rotation axis. Local ENU axes follow the observer: east, north and the ellipsoidal normal.
At most locations ECEF Z is not local up. Rotating the position covariance gives uncertainties along the directions a receiver user cares about. All inputs below are synthetic teaching values; they are separate from the measured DD epoch.
Numerical inputs and conventions
| Input | Value | Meaning |
|---|---|---|
| Geodetic latitude φ | 45° | Ellipsoidal latitude, not geocentric latitude |
| Longitude λ | 0° | Positive east |
| Ellipsoidal height | 0 m | WGS 84 origin |
| Origin ECEF r₀ | [4517590.878849, 0, 4487348.408866] m | Rounded here; full precision in the download |
| Position ECEF r | [4517591.878849, 2, 4487351.408866] m | Origin plus [1, 2, 3] m |
| Offset Δr | [1, 2, 3] m | ECEF components relative to this origin |
Computation step 1
Subtract the local origin before rotating
Formula
Compute
Result
The three-vector is a local displacement. Rotating r itself would keep the Earth's centre as its origin.
Build the ECEF-to-ENU rotation
Substitute φ = 45°, λ = 0°
Computation step 2
Compute all three local components
Substitute
Result
The offset is 2 m east, 1.414214 m north and 2.828427 m up.
Keep off-diagonal covariance terms
Propagate the full covariance
Computation step 3
Work through a variance and a cross-covariance
Compute
Result
Dropping the X–Z covariance would incorrectly give both north and up variances as 10 m².
Inspect the complete ENU covariance
Interpret local formal precision
| Quantity | Calculation | Result |
|---|---|---|
| East σ | √9 | 3.000000 m |
| North σ | √8 | 2.828427 m |
| Up σ | √12 | 3.464102 m |
| Horizontal RMS about the mean | √(P_EE + P_NN) = √17 | 4.123106 m |
| 3D RMS about the mean | √trace(P) = √29 | 5.385165 m |
RMS, confidence regions and accuracy are different
The horizontal RMS is not automatically a 95% radius. A confidence ellipse requires a distribution assumption, a confidence level and the eigenvalues of the horizontal 2 × 2 covariance. Bias and model errors can make measured accuracy worse than formal uncertainty.
For a geometry-only matrix Q, rotate the spatial block in exactly the same way: HDOP = √(q_EE + q_NN), VDOP = √q_UU. Those geometry factors are dimensionless. The P above has units m² and yields metre uncertainties.
Download and reproduce the example
Use this in the positioning lessons
- Translate an absolute position; rotate a baseline directly.
- Use geodetic latitude and the stated ENU ordering.
- Rotate the full covariance, including correlations.
- Continue to DOP, then SPP, LAMBDA and Double Difference.
Related tutorials
Geometry and quality
DOP Calculation
A design-matrix view of dilution of precision, with formulas and a compact numerical covariance example.
Positioning algorithms
SPP from Scratch
Compute GPS single point positioning from RINEX observations: transmission time, satellite clocks, broadcast orbits, Sagnac and atmospheric corrections, iterative WLS, residuals and covariance.
Help improve this tutorial
Point out numerical ambiguity, missing prerequisites, or a step that needs a fuller derivation.