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¶
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.