vibeproj.pipeline

Transform pipeline — chains common pre/post operations with the projection core.

The pipeline handles: 1. Axis swap (lat/lon -> lon/lat) 2. Degree/radian conversion 3. Central meridian subtraction 4. Core projection (forward/inverse) 5. Scale by semi-major axis 6. False easting/northing

This matches the cuProj operation pipeline architecture but runs on NumPy/CuPy arrays.

Attributes

Classes

TransformPipeline

Executes a coordinate transformation between two CRS.

Module Contents

vibeproj.pipeline.DEG_TO_RAD = 0.017453292519943295
vibeproj.pipeline.RAD_TO_DEG = 57.29577951308232
class vibeproj.pipeline.TransformPipeline(src_params: vibeproj.crs.ProjectionParams, dst_params: vibeproj.crs.ProjectionParams, *, helmert: vibeproj.helmert.HelmertParams | None = None)

Executes a coordinate transformation between two CRS.

Handles the full pipeline: CRS resolution, parameter setup, pre-processing (unit conversion, axis swap), projection math, and post-processing (scale, offset).

src
dst
src_north_first
dst_north_first
transform(x, y, xp, *, z=None, out_x=None, out_y=None, out_z=None, precision='auto', stream=None)

Execute the transform pipeline.

For forward (geographic -> projected):

x = latitude (degrees), y = longitude (degrees) [pyproj convention] Returns (easting, northing) in meters.

For inverse (projected -> geographic):

x = easting, y = northing Returns (latitude, longitude) in degrees.

z: optional ellipsoidal height. Transformed through Helmert when present,

passed through unchanged for projection-only transforms.

out_x, out_y: optional pre-allocated output arrays (avoids allocation). out_z: optional pre-allocated output height array. precision: “auto”, “fp32”, or “fp64” — compute precision for GPU kernels. stream: optional CUDA stream for async kernel execution.

Returns 2-tuple when z is None, 3-tuple when z is provided.