Survey-grade coordinate transformation, in production Python.
Production-grade Python for cadastral coordinate transformations, grid shifts, projection math, and survey-grade validation — bridging rigorous geodetic theory with deployable, audit-ready code.
🌐 www.coordinatetransformation.org
coordinatetransformation.org is an open, deeply cross-linked reference for engineers who move coordinates between reference frames and have to prove the result. Every guide pairs the underlying geodesy — ISO 19111 coordinate-operation metadata, EPSG parameters, NTv2 and NADCON grid shifts, Helmert transformations, map projections — with complete, type-hinted Python you can drop straight into a transformation pipeline.
Nothing here is pseudo-code. Each page is built the way a practitioner writes an audit-ready
pipeline: the specification or math first, then a runnable implementation with explicit float64
precision and deterministic rounding, then validation against control points, then the failure
modes that quietly corrupt a cadastral deliverable. Code blocks are checked, diagrams are
hand-authored, and residuals are pinned to survey-grade tolerances.
Surveyors, GIS analysts, Python developers, and government or agency technical teams who need transformations that are reproducible, defensible, and millimetre-honest — not a black-box call whose accuracy nobody can certify.
The library is organised into three deep, interlinked reference areas:
-
Fundamentals & Standards — the CRS resolution, grid-shift files, datum selection, and ISO 19111 compliance that govern legally defensible transformations. Includes byte-level NTv2
.gsbparsing, NADCON vs NTv2 selection, Helmert 7-parameter transformations, and EPSG / WKT2 CRS definitions. -
Math & Workflows — the deterministic solvers behind the standards: ellipsoid-to-Cartesian conversion, least-squares control-network adjustment, polynomial and affine regional shifts, map projection forward and inverse, geoid and vertical datum handling, and error-distribution modelling.
-
Batch & Automation — running those workflows across millions of coordinates with reproducible, audit-ready output: concurrent pyproj pipelines, NumPy and Dask vectorisation, compliance-report generation for agency submission, and choosing between PROJ, pyproj, and manual grids.
- Runnable, not illustrative — every code block is valid, type-hinted Python 3.10+ with explicit imports; the precision and rounding decisions are spelled out because they change the answer.
- Audit-first — control-point residuals, RMSE gates, audit hashes, and ISO 19111 metadata export are treated as first-class steps, not afterthoughts.
- Honest about failure — missing or corrupt grids, out-of-extent points, axis-order surprises, and silent precision loss each get named with a deterministic mitigation.
- Deeply linked — concepts connect to the exact page that develops them, so you can move from a one-line fix to the full reference in a click.
This repository holds the source for the site: content in Markdown, an
Eleventy build, hand-authored inline SVG diagrams, and structured data.
The published site is generated from content/ and the templates at the repository root.
npm install
npm run build # generate the static site into _site/
npm run dev # local previewGeodesy is unforgiving and errata matter. If you spot an inaccuracy in a formula, a parameter, or a code path — or a transformation that fails a control check — please open an issue. Precise, reproducible reports are especially welcome.
- Website: https://www.coordinatetransformation.org
- Source & profile: https://github.com/coordinatetransformation
© coordinatetransformation.org. Content and code are provided for reference and production use; verify every transformation against certified control before relying on it for a legal deliverable.