vibespatial.constructive.simplify

GPU-accelerated geometry simplification (Visvalingam-Whyatt).

Visvalingam-Whyatt is more GPU-friendly than Douglas-Peucker because it avoids recursion. Per-coordinate effective area computation, iterative elimination of vertices below the tolerance.

For LineString/MultiLineString: simplify coordinate sequences. For Polygon/MultiPolygon: simplify each ring, preserving closure. Points/MultiPoints pass through unchanged.

ADR-0033: Tier 1 NVRTC for per-coordinate area computation. ADR-0002: COARSE class — simplification tolerance is user-specified.

Attributes

Functions

simplify_owned(...)

Simplify geometries using Visvalingam-Whyatt algorithm.

Module Contents

vibespatial.constructive.simplify.cp = None
vibespatial.constructive.simplify.logger
vibespatial.constructive.simplify.simplify_owned(owned: vibespatial.geometry.owned.OwnedGeometryArray, tolerance: float, *, preserve_topology: bool = True, dispatch_mode: vibespatial.runtime.ExecutionMode | str = ExecutionMode.AUTO, precision: vibespatial.runtime.precision.PrecisionMode | str = PrecisionMode.AUTO) vibespatial.geometry.owned.OwnedGeometryArray

Simplify geometries using Visvalingam-Whyatt algorithm.

Parameters

tolerancefloat

Simplification tolerance. Vertices with effective area below tolerance^2 are removed.

preserve_topologybool

If True, ensures simplified geometries remain valid.

dispatch_modeExecutionMode

Execution mode selection (AUTO / CPU / GPU).

precisionPrecisionMode

Precision mode selection (AUTO / FP32 / FP64).

Returns

OwnedGeometryArray

New geometry array with simplified coordinates.