vibeproj.projections.transverse_mercator¶
Transverse Mercator projection — ported from cuProj / PROJ.
Implements the Poder/Engsager exact Transverse Mercator using 6th-order series expansion. This is the projection used by UTM and many national grids.
Original C++ code: Copyright (c) 2023 NVIDIA CORPORATION (Apache 2.0) Based on PROJ tmerc.cpp by Knud Poder and Karsten Engsager (MIT).
Attributes¶
Classes¶
Base class for all map projections. |
Module Contents¶
- vibeproj.projections.transverse_mercator.ETMERC_ORDER = 6¶
- class vibeproj.projections.transverse_mercator.TransverseMercator¶
Bases:
vibeproj.projections.base.ProjectionBase class for all map projections.
Subclasses implement forward/inverse transforms that operate on arrays of coordinates. The xp parameter is the array module (numpy or cupy).
Projection math operates in radians on the ellipsoid. The pipeline handles degree/radian conversion, axis swapping, and false easting/northing.
- name = 'tmerc'¶
- setup(params: vibeproj.crs.ProjectionParams) dict¶
Compute 6th-order series coefficients from ellipsoid parameters.
- forward(lam, phi, params, computed, xp)¶
Geographic -> Transverse Mercator.
lam: longitude relative to central meridian (radians) phi: latitude (radians)
- inverse(x, y, params, computed, xp)¶
Transverse Mercator -> Geographic.
x, y: projection-native coordinates (before offset/scale removal — the pipeline handles that) Actually: x, y are already scaled/offset-removed by the pipeline.