DieussaertGeometryProcessor

processor.DieussaertGeometryProcessor(config, feedback=None)

Processor implementing the Dieussaert area-based alignment algorithm.

Unlike vertex snapping, this processor evaluates the overlap between thematic geometries and reference polygons. It decides per reference feature whether to include it fully, partially, or exclude it based on area-based thresholds.

Attributes

Name Type Description
processor_id ProcessorID The unique identifier for this processor (ProcessorID.DIEUSSAERT).

Methods

Name Description
process Coordinates the alignment process for single or multi-geometries.

process

processor.DieussaertGeometryProcessor.process(
    input_geometry,
    reference_data,
    relevant_distance,
    mitre_limit,
    correction_distance,
    **kwargs,
)

Coordinates the alignment process for single or multi-geometries.

If multi_as_single_modus is disabled, MultiPolygons are processed piecewise and merged afterward to ensure stability.

Parameters

Name Type Description Default
input_geometry BaseGeometry The thematic geometry to align. required
reference_data AlignerFeatureCollection The reference (target) dataset. required
relevant_distance float The distance threshold for alignment decisions. required
mitre_limit float Mitre limit for buffering operations. required
correction_distance float Distance used for noise and sliver removal. required
**kwargs Any Additional processor arguments. {}

Returns

Name Type Description
ProcessResult The merged or single result of the alignment process.

Notes

The algorithm optimizes performance by splitting the input into an ‘inner’ and ‘outer’ zone. Only the ‘outer’ zone (near the boundaries) is evaluated against reference data.

graph TD
    Start[Input Geometry] --> Split[Split: Inner vs Outer]
    Split --> Query[Spatial Query Reference Data]
    Query --> OD[Process Open Domain]
    Query --> Ref[Process Intersecting Refs]
    OD --> Combine[Combine Results]
    Ref --> Combine
    Combine --> Post[Post-processing]
    Post --> End[ProcessResult]