Geodesy¶
geodetic_engine.geodesy transforms coordinates. It is a layer over
pyproj’s Transformer: PROJ does the computation, and this module checks the
result can be trusted before returning it.
Use it when you need coordinates in another CRS and have to be able to say which operation produced them, with what accuracy, from which database.
Use plain pyproj instead when you want PROJ to pick an operation for you and an unstated accuracy is acceptable, for example drawing a map. This module refuses to do that. See Design guarantees.
The API in one table¶
You want to |
Use |
|---|---|
Transform points once |
|
Transform many batches with one operation |
|
See every operation PROJ offers between two CRSs |
|
Inspect a CRS’s axes, units, dimension, dynamism |
|
Read coordinates and provenance from a result |
|
Compose or collapse Helmert transformations |
Rules this module enforces¶
A datum change must name its operation, as an EPSG code, a candidate from
available_operations, a stated OSDU payload, or through a bound CRS. Otherwise:AmbiguousOperationError.The operation you name is the operation applied. If PROJ builds something else:
OperationNotAvailableError.No ballpark results:
BallparkTransformationError.No silent fallback when a grid is missing:
MissingGridError.A time-dependent operation needs a coordinate epoch:
MissingCoordinateEpochError.Values are
xyin and out: longitude before latitude, easting before northing, then height, whatever axis order the CRS declares.