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¶
Reusable device intermediates owned and synchronized by Transformer. |
|
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.TransformScratch¶
Reusable device intermediates owned and synchronized by Transformer.
- first_x: Any¶
- first_y: Any¶
- second_x: Any¶
- second_y: Any¶
- pair(index: int, size: int)¶
- class vibeproj.pipeline.TransformPipeline(src_params: vibeproj.crs.ProjectionParams, dst_params: vibeproj.crs.ProjectionParams, *, helmert: vibeproj.helmert.HelmertParams | None = None, svd_correction: vibeproj._datum_corrections.DatumCorrectionData | None = None, svd_negate: bool = False)¶
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).
- property is_identity: bool¶
Whether this pipeline only copies geographic coordinates.
- property needs_scratch: bool¶
Whether zero-allocation fused execution needs intermediate buffers.
- build_execution_context(*, precision: str, transcendentals: str, device, workload_size: int | None, _normalized: bool = False)¶
Resolve every implementation once at the public-call boundary.
- 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', transcendentals='auto', scratch: TransformScratch | None = None, execution_context=None, 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.