FA-70339 / Map projection transforms / Member archive
Seven-parameter Helmert datum shift: translation scaling · case 04
Z coordinates are off by the scale times the translation.
Case contract
Input [X, Y, Z, tx, ty, tz, rx, ry, rz, s, convention] with metres, rotations in arc-seconds and scale in ppm. Rotations are converted to radians; for "coordinate_frame" they are negated, for "position_vector" used as is. m = 1 + s*1e-6. X' = tx + m(X - rz Y + ry Z); Y' = ty + m(rz X + Y - rx Z); Z' = tz + m(-ry X + rx Y + Z). Return [X', Y', Z'] rounded to 3 decimals.
Why this case matters
Datum transformations between national and global frames use these seven parameters; convention and unit slips cause metre-level offsets that pass casual inspection.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control #3 | [-189556.8, 3352227.961, -2404422.459] | [-189556.8, 3352227.961, -2404422.458] | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗