VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

The Gold Standard of Geodesy | Helmert Rotation Conventions, Scale Units and Inverse-Transformation Checks

The same seven numbers can mean different transformations

A coordinate transformation arrives with three translations, three rotations and a scale. Copying those seven numbers into another programme is not enough to establish the same result. Rotation convention, angular units, scale definition, transformation direction and input coordinate representation all belong to the mathematical instruction.

This guide develops that instruction from a simple Cartesian map. Original examples show why a rotation-sign error can hide at a convenient test point, why the exact inverse is not generally obtained by negating every parameter, and why combining transformations requires an order. A covariance example then separates numerical consistency from independent positioning accuracy.

All coordinates and transformation parameters below are fictional teaching fixtures. None is presented as an actual transformation between named terrestrial reference frames. Use documented authority parameters and validated software for real work; the aim is to understand what must remain attached to them during transfer.

Geodesy subject guide · Learning that transfers into life · How X Works hub

Choose your reading route

Route 1 · Chapters 1–2: Define the transformation

Begin with Cartesian quantities and a direction

Route 2 · Chapters 3–5: Check conventions and units

Declare an explicit rotation convention

Route 3 · Chapters 6–8: Reverse and combine maps

Compare a true rotation with its linear approximation

Route 4 · Chapters 9–10: Carry uncertainty and time

Transform covariance with the same coordinate map

Route 5 · Chapters 11–12: Transfer and report

Restore epochs only when the model contains them

Full chapter index · Independent worked case · Questions and practical checks

CHAPTER 1 OF 12 · Define the transformation

1. Begin with Cartesian quantities and a direction

A three-dimensional Helmert transformation relates Cartesian coordinates in a specified source frame to coordinates in a target frame through translation, rotation and a uniform scale. It is not merely a change of a coordinate-system label. Nor is it a map projection or a conversion from latitude/longitude into Cartesian coordinates, although those operations may appear elsewhere in a complete processing chain.

The PROJ documentation describes Helmert transformations in Cartesian space and distinguishes static and kinematic forms. Its conventions and unit definitions are important interfaces. This article uses an explicitly declared three-dimensional form for original calculations, rather than assuming that every operation called Helmert has identical parameter units or input representation.

Write the direction as source A to target B. A parameter list without that direction is incomplete. A transformation from B to A must invert the map; it cannot be inferred solely from the order in which two frame names appear in a filename. Retain the parameter source and the applicable coordinate and time definitions.

Also identify what point is represented. Transforming an antenna reference point does not supply a missing height offset to a monument, and transforming a coordinate at one epoch does not automatically propagate the physical point to another epoch. The existing coordinate-epoch and antenna-reference guides develop those separate interfaces.

Contents · Next chapter

CHAPTER 2 OF 12 · Define the transformation

2. Build the translation, rotation and scale map

Use the exact mathematical form y = T+kRx. Here x is the source Cartesian vector, y the target vector, T the translation expressed in target coordinates, R an orthogonal rotation matrix and k a dimensionless scale multiplier. A transformation is invertible when k is nonzero and R is a valid rotation.

For the three-dimensional ppm representation discussed here, define k = 1+s×10⁻⁶, where s is the scale difference in parts per million. Thus s = 1 gives k = 1.000001, not k = 1. A zero scale difference gives unit multiplier, not a collapsed coordinate vector.

Translation adds the same vector to each point, while rotation and scale operate on the source vector before that addition under this declared expression. Those operations affect baselines differently. Translation cancels from a difference of two consistently transformed points; rotation changes its direction and uniform scale changes its length.

This distinction provides practical checks. If a claimed translation-only map changes a baseline vector, inspect the implementation. If a pure rotation changes baseline length beyond the chosen numerical tolerance, inspect orthogonality and approximation. Passing these checks establishes mathematical consistency for the stated map, not that the chosen authority parameters represent the intended real frames.

Contents · Previous chapter · Next chapter

CHAPTER 3 OF 12 · Check conventions and units

3. Declare an explicit rotation convention

For a right-handed positive rotation about z in our teaching definition, use Rz(α) with x′ = x cosα−y sinα, y′ = x sinα+y cosα and z′ = z. A positive small α rotates a point initially on positive x towards positive y. This directional test fixes the interpretation more clearly than an isolated phrase such as clockwise.

PROJ distinguishes position-vector and coordinate-frame conventions for the rotational terms. Translating between the corresponding parameter conventions requires changing the signs of the rotational parameters consistently. It does not require reversing translations or scale merely because the rotation convention changed.

The geometric statement must also specify from which direction an axis is viewed before a visual clockwise description becomes unambiguous. A formula and a known test vector are useful companions to the convention name. Two sources can describe related passive and active interpretations using words that appear contradictory when their viewpoints are omitted.

For a sign test, rotate x = (100,0,0) metres by a declared +90 degrees about z, without translation or scale change. The result is (0,100,0). Under the opposite signed matrix it becomes (0,−100,0). These large angles are synthetic tests of the matrix definition, not representative terrestrial-frame parameters.

Contents · Previous chapter · Next chapter

CHAPTER 4 OF 12 · Check conventions and units

4. Translate angular and scale units independently

One arcsecond is π/(180×3,600) radians, approximately 4.848136811×10⁻⁶. One milliarcsecond is one thousandth of that. A small-angle matrix uses the radian value in its dimensionless off-diagonal entries. Inserting an arcsecond number directly as though it were radians changes the rotation scale dramatically.

Scale has a separate conversion. A one-ppm difference contributes a first-order length change of one metre to a one-million-metre vector aligned with the relevant axis. A one-part-per-billion difference contributes one millimetre over that same length. Neither conversion supplies the meaning of the rotation parameters.

PROJ documents a unitless scale multiplier for its two-dimensional Helmert form but a ppm scale difference for the three-dimensional form discussed here. Reusing one form’s scale value in the other without translating the definition can therefore create a serious mismatch. A common operation name does not guarantee a common parameter interface.

A useful import test includes a translation-only case, a scale-only case and a rotation-only case. Testing a mixed transformation first can allow one wrong contribution to partly compensate another. Separate cases identify which interface failed before a combined example checks whether their assembly order and coordinate representation are consistent.

Contents · Previous chapter · Next chapter

CHAPTER 5 OF 12 · Check conventions and units

5. Work a small-angle three-dimensional example

Choose fictional x = (1,000,000,2,000,000,3,000,000) metres, T = (0.1,−0.2,0.3) metres, scale difference ε = 10⁻⁶ and rotation vector r = (0,0,10⁻⁶) radians. For a first-order illustration, omit products of the small scale and rotation terms and use y−x ≈ T+εx+r×x.

The scale contribution is (1,2,3) metres. The rotational cross product is (−2,1,0) metres. Adding the translation gives the first-order difference (−0.9,2.8,3.3). The predicted target is therefore approximately (999,999.1,2,000,002.8,3,000,003.3) metres under this explicitly linearised exercise.

Reconstruct each contribution separately before summing. Reversing the rotation sign changes the cross product to (2,−1,0), giving first-order difference (3.1,0.8,3.3). The same translations and scale remain in place. This is a convention mismatch, not an alternative estimate of a physical station movement.

The first-order target is not claimed to equal the exact y = T+kRx to every displayed digit. Higher-order rotation terms and the scale–rotation product were omitted deliberately. The next chapter examines that difference so the rounded teaching result is not mistaken for an exact numerical reference case.

Contents · Previous chapter · Next chapter

CHAPTER 6 OF 12 · Reverse and combine maps

6. Compare a true rotation with its linear approximation

For a z rotation by α, the exact matrix contains cosα and sinα. Its first-order matrix replaces cosα by one and sinα by α. That linear matrix is useful for small perturbations, but it is not exactly orthogonal. Its xy-plane length multiplier is √(1+α²), so it can introduce a second-order length difference.

Use an exaggerated synthetic α = 0.01 radian and x = (100,0,0) metres with no scale or translation. The linearised result is (100,1,0), with length √10,001, approximately 100.0049999 metres. The exact rotated result has length exactly one hundred under ideal arithmetic.

The approximately five-millimetre length difference is not a real frame-transformation accuracy claim. It follows from the chosen large test angle and radius. Reducing α reduces the discrepancy approximately quadratically in this norm check. The useful criterion is whether the approximation error is acceptable for the target quantity and intended calculation.

For real transformations, use the documented implementation and its exact or linearised definitions consistently. Comparing an exact output with a linearised reference without allowing for the difference can produce a false software-failure claim. Conversely, a small-angle label should not be used to dismiss approximation effects without checking their size at the actual coordinate scale.

Contents · Previous chapter · Next chapter

CHAPTER 7 OF 12 · Reverse and combine maps

7. Invert the complete map rather than negating every field

From y = T+kRx, the exact inverse is x = Rᵀ(y−T)/k. In affine form its inverse matrix is Rᵀ/k and inverse translation is −RᵀT/k. The inverse translation is not generally just −T because the subtraction is followed by inverse rotation and scale.

Work an independent two-axis illustration embedded in three dimensions. Let R rotate +90 degrees about z, k = 2, T = (10,0,0) and x = (1,2,0). Rotation gives (−2,1,0), scaling gives (−4,2,0), and translation gives y = (6,2,0). All quantities are synthetic and use consistent length units.

The exact inverse subtracts T to obtain (−4,2,0), divides by two to obtain (−2,1,0), then rotates minus ninety degrees to recover (1,2,0). Equivalently, inverse translation is (0,5,0), not (−10,0,0). Reconstructing the complete round trip tests the inverse’s assembly.

Negating a small ppm scale difference is only a first-order approximation to the exact inverse scale relationship. The reciprocal multiplier is 1/(1+ε), not exactly 1−ε. With large synthetic parameters, the difference is obvious; with real small parameters, its relevance still follows the intended model and tolerance, not an unsupported universal rule.

Contents · Previous chapter · Next chapter

CHAPTER 8 OF 12 · Reverse and combine maps

8. Compose transformations in the stated order

Let a first map be y = T1+M1x and a second be z = T2+M2y, where each M is its scale–rotation matrix. Substitution gives z = (T2+M2T1)+(M2M1)x. The first translation is transformed by the second matrix. Adding translations directly is generally insufficient.

For a synthetic example, first translate by (1,0,0), then rotate +90 degrees about z. A source at the origin becomes (1,0,0) and then (0,1,0). Reverse the order: rotating the origin leaves it unchanged, then translation gives (1,0,0). The two operation orders produce different targets.

The example uses large simple operations to expose noncommutativity. It does not imply that every ordering difference in a real small-parameter chain is large. Compute the actual effect under the documented definitions before deciding whether an approximation is acceptable. An exact algebraic distinction and a practical tolerance assessment are related but separate tasks.

A complete coordinate pipeline may include projection inverses, geodetic-to-Cartesian conversion, epoch propagation and local endpoint offsets as well as Helmert maps. Each operation needs an input and output contract. A successful internal round trip through one map cannot validate the meaning or ordering of every surrounding step.

Contents · Previous chapter · Next chapter

CHAPTER 9 OF 12 · Carry uncertainty and time

9. Transform covariance with the same coordinate map

If M = kR is treated as exact and the source coordinate covariance is Cx, then the transformed coordinate covariance is Cy = MCxMᵀ. Translation does not contribute uncertainty under that restricted assumption. If transformation parameters are uncertain, their propagated contribution and any dependence on source coordinates must also be included.

Use a two-dimensional teaching covariance Cx = diag(1,4) square millimetres, a +90-degree rotation and unit scale. The transformed covariance is diag(4,1): the uncertainty ellipse rotates with the coordinates. Reporting the old diagonal values under the new axis labels would misrepresent the directional uncertainties.

Now use scale k = 2. The variances become four times larger, giving diag(16,4), while standard uncertainties double. Confusing variance with standard uncertainty can cause a second scaling mistake even when the coordinate transformation is correct. Preserve units of length squared for covariance entries.

For a simple parameter example, an uncertain common translation shifts every transformed station with a shared contribution. It does not behave like independent noise added separately to each baseline endpoint. The covariance of a derived station difference must retain that shared uncertainty, which can cancel under the appropriate combination.

Contents · Previous chapter · Next chapter

CHAPTER 10 OF 12 · Carry uncertainty and time

10. Separate parameter uncertainty from evidence about the frames

Suppose two transformed coordinate estimates each have a common translation uncertainty with variance nine square millimetres plus independent variance one. Each marginal variance is ten, but their covariance is nine. Their difference variance is 10+10−2×9 = two, not twenty. The shared frame contribution cancels in the difference under this declared model.

That cancellation does not make absolute coordinates independently accurate to the difference uncertainty. The common translation remains in each absolute estimate. A short baseline can be well determined while the entire network has an uncertain origin. State whether the reported uncertainty concerns an absolute coordinate, a relative vector or a fitted transformation parameter.

A forward/inverse round trip also does not establish the real-world correctness of the chosen frame transformation. Two consistently wrong maps can invert each other perfectly. Use independent control information tied to the intended frame, physical endpoint and epoch when the claim concerns actual positional accuracy rather than internal mathematical consistency.

A useful validation record therefore has two layers: convention and numerical checks that test implementation, and independent comparisons that test the applicability of the adopted parameters. Keep both. Neither a familiar authority label nor a tiny round-trip residual supplies every piece of evidence required by the other layer.

Contents · Previous chapter · Next chapter

CHAPTER 11 OF 12 · Transfer and report

11. Restore epochs only when the model contains them

A static transformation describes its stated relationship without transformation-parameter rates. A kinematic transformation also requires an observation epoch and a parameter reference epoch. Evaluating parameter rates at the wrong time can change the frame mapping even when the source coordinate itself has been propagated correctly.

For an original scalar illustration, let a translation parameter be 0.010 metres at epoch 2020.0 with rate +0.002 metres per year. At 2025.0, its stipulated value is 0.020 metres. Using the 2020 value at the later event omits ten millimetres in that parameter contribution. These are fictional values, not a named frame’s coefficients.

The physical point’s velocity is another input. Propagating a station coordinate to 2025 does not itself update a transformation parameter whose reference is 2020, and updating the parameter does not propagate the station. The existing coordinate-epoch guide develops why those time operations need separate definitions and compatible models.

Do not silently extend a static teaching example into an operational fourteen-parameter transformation by adding a date label. Establish the rate units, epoch convention, direction, model validity and covariance. More parameter fields can describe a richer model, but only when their inputs and relationships are actually known.

Contents · Previous chapter · Next chapter

CHAPTER 12 OF 12 · Transfer and report

12. Report enough information to reproduce the map

A useful report names source and target frames, coordinate representation, physical endpoint, observation epoch, transformation reference epoch where applicable, parameter source, units, rotation convention, scale definition and numerical implementation. It separates exact or linearised equations from the independent evidence supporting their application.

For the small-angle fictional example, the first-order coordinate difference is (−0.9,2.8,3.3) metres under a declared positive-z position-vector-style equation with higher-order terms omitted. That statement is reproducible because it retains the input vector and assumptions. It is not a certified conversion between two actual reference-frame realisations.

When another interface changes units, convention or transformation direction, identify the required translation explicitly. Reversing rotations between conventions is different from inverting the complete affine map. Updating an epoch is different from changing a coordinate label. These distinctions prevent a successful calculation from being interpreted as the wrong operation.

The transferable lesson is that a transformation is an instruction with a contract, not merely a row of numbers. Direction, convention, units and order determine its meaning. Preserving them makes both a disagreement and a successful comparison easier to explain, while independent control evidence remains responsible for the stronger claim of real-world accuracy.

Contents · Previous chapter · Return to Geodesy

Independent worked case and evidence checks

Build a fresh exact map with x = (3,−1,2) metres, a +90-degree rotation about z, scale multiplier k = 0.5 and T = (2,4,−1) metres. Rotation gives (1,3,2), scaling gives (0.5,1.5,1), and translation gives y = (2.5,5.5,0). Keep this deliberately exaggerated map separate from real terrestrial-frame coefficients.

Invert it from the target. Subtract T to obtain (0.5,1.5,1), divide by 0.5 to obtain (1,3,2), and rotate minus ninety degrees to recover (3,−1,2). Reconstructing the source checks the order of subtraction, scaling and rotation; merely reversing the last axis label would not perform the inverse.

Write the inverse translation as −RᵀT/k. Here RᵀT = (4,−2,−1), so inverse translation is (−8,4,2). Applying this affine inverse to y gives the same source. Compare it with simply using −T = (−2,−4,1): the two vectors are not equivalent under the map.

Next transform a second source point x2 = (5,−1,2). Its target is (2.5,6.5,0). The source baseline x2−x is (2,0,0), and the target baseline is (0,1,0). Translation cancels, rotation changes its direction and scale halves its length. This provides an independent geometric check in addition to the single-point round trip.

For a convention test, use the opposite signed rotation matrix but change the supplied rotation parameter sign at the same time. The two sign changes should restore the same physical map. Changing only the matrix interpretation or only the parameter sign should not. Test with a point away from the rotation axis, where the competing results differ.

A point on the z axis is a weak test of a z-rotation sign because it remains unchanged under either sign. This is a model-specific example of a general validation principle: use inputs that activate the behaviour being checked. A test can be calculated correctly and still fail to discriminate the mistake of interest.

For an uncertainty exercise, give source x/y covariance diag(9,1) square millimetres. Under the fresh +90-degree rotation and scale 0.5, target covariance becomes diag(0.25,2.25). The target standard uncertainties are 0.5 and1.5 millimetres. Explain why the diagonal order changed and why the variance scale factor was one quarter rather than one half.

Now add an independent translation uncertainty of variance four square millimetres on target x. The target x variance becomes 4.25. If that same uncertain translation is shared with another station, its contribution to their x-coordinate covariance is also four. A difference of those coordinates can cancel it; independently adding the translation variance to both endpoints without covariance would miss that cancellation.

Finally suppose a source file actually contains longitude, latitude and height rather than Cartesian XYZ. Feeding its three numbers into the exact affine example can still produce three output numbers and an internally invertible round trip. Neither fact makes them valid transformed geodetic coordinates. The representation check must occur before the arithmetic.

Write an independent handover note containing the source representation, target representation, map direction, units, rotation definition, scale multiplier and known test pair. Another reader should be able to reconstruct the map without guessing what a column called s means. That is the practical standard for transferring a transformation safely between tools.

A further uncertainty case distinguishes a shared scale from a shared translation. In a one-dimensional synthetic model y = T+kx, let source positions be x1 = 1,000 and x2 = 4,000 metres. Treat the coordinates as exact for this exercise and give k standard uncertainty 10⁻⁶. The scale contribution to each target standard uncertainty is one and four millimetres respectively.

Those two contributions are perfectly dependent because the same uncertain k produced both. Their covariance is four square millimetres. The target difference has variance 1+16−2×4 = nine square millimetres, giving standard uncertainty three millimetres. This agrees with applying the same uncertain scale directly to the three-thousand-metre source baseline.

Now add a common translation uncertainty of ten millimetres, independent of the scale. Each absolute coordinate variance increases by one hundred square millimetres, and their covariance also increases by one hundred. The baseline variance remains nine. A shared translation cancels from this difference; a shared scale does not, because it multiplies the nonzero baseline.

The distinction matters when an uncertainty table contains only separate station standard deviations. Without their shared parameter covariance, an analyst cannot reconstruct the correct difference uncertainty. The example also provides a practical independent check: propagate the difference directly, then propagate the two endpoints with covariance. Agreement tests the bookkeeping under the stated model, not the empirical accuracy of a real transformation parameter.

Finish with an identity test: set translation to zero, the scale multiplier to one and every rotation to zero. The output must equal the source. This checks the default assembly, but it cannot replace nonzero tests that distinguish competing conventions.

Worked comparison

OperationCorrect relationship in this guideCommon false shortcut
Forward mapy=T+kRxTreat parameters as self-describing
Exact inversex=Rᵀ(y−T)/kNegate every parameter without checking the full map
CompositionTcombined=T2+M2T1Add translations independently of rotation and scale
Covariance propagationCy=MCxMᵀ for exact MRelabel old standard uncertainties as new axes
Independent validationUse compatible external controlTreat a round trip as proof of physical accuracy
The identities apply to the declared Cartesian map; actual products still need compatible conventions and provenance.

Questions and practical checks

Is a Helmert transformation the same as a map projection?

No. This guide concerns Cartesian frame mapping; projection and geodetic-coordinate conversions are separate operations.

Can I copy rotation values without the convention name?

Not defensibly. The rotational interpretation and units must accompany the numbers.

Is the inverse translation always minus the forward translation?

No. The exact affine inverse includes inverse rotation and scale acting on the translation.

Does a perfect round trip prove that the correct frames were used?

No. It checks internal consistency, not the real-world applicability of the adopted parameters.

Do coordinate and transformation epochs mean the same thing?

No. Station propagation and parameter-rate evaluation are different time-dependent operations.

Continue with the connected subjects

Establish coordinate meaning before transforming

Separate coordinate epochs, frame epochs and motion models

Preserve the antenna and monument endpoint definitions

Carry geometry and shared uncertainty

Transform vectors and covariance before projecting an observation

Compare shared-model uncertainty in derived height differences

Sources and scope

PROJ official documentation: Helmert maps, rotation conventions, parameter units and kinematic definitions

The numerical cases in this guide are original fictional teaching examples, not measurements from a real site. This is an educational explanation, not a field safety instruction, engineering approval or an official certification. For a real project, use qualified practitioners, current product documentation and site-specific evidence. Sources were checked on 31 October 2026.

Back to contents

Connected guides: rotation, reference choices and dynamic loads

Pole-tide deformation: polar-motion inputs, component signs and secular-pole conventions Use this when a changing rotation axis and a chosen reference pole become station-deformation inputs.

Non-tidal ocean loading: bottom pressure, inverted-barometer departures and combined-load accounting Follow this route when a changing ocean mass field must be reconciled with atmospheric loading without double counting.

Euler-pole plate motion: relative reference rotations, rigid velocities and residuals Follow this route when plate motion must be predicted relative to a stated reference rotation, then compared with measured velocities.