Compare-to-Reference with DE-9IM

Metadata
DE-9IM
Observation
Inspect measure_type, OD metrics and DE-9IM relation strings from compare_to_reference
Author

Karel Dieussaert

Published

March 31, 2026

compare_to_reference with DE-9IM

This example uses Aligner.compare_to_reference(...) from Aligner to inspect relation metadata between one thematic geometry and multiple reference geometries.

What you learn

  1. How to read generic measure_type and reference_od.
  2. How to inspect de9im per intersecting reference feature.
  3. How mixed reference geometry types behave in observation output.
from brdr.aligner import Aligner
from brdr.loader import DictLoader
from shapely import from_wkt


if __name__ == "__main__":
    """Example: inspect generic observation metrics and DE-9IM per reference feature."""

    thematic = {"line_1": from_wkt("LINESTRING (0 0, 10 0)")}
    reference = {
        "poly_ref": from_wkt("POLYGON ((2 -1, 8 -1, 8 1, 2 1, 2 -1))"),
        "line_ref": from_wkt("LINESTRING (0 0, 10 0)"),
        "point_ref": from_wkt("POINT (5 0)"),
    }

    aligner = Aligner()
    aligner.load_thematic_data(DictLoader(thematic))
    aligner.load_reference_data(DictLoader(reference))

    observation = aligner.compare_to_reference(thematic["line_1"])

    print("measure_type:", observation["measure_type"])
    print("reference_od:", observation["reference_od"])
    print("reference features:")
    for ref_id, info in observation["reference_features"].items():
        print(
            f"- {ref_id}: "
            f"measure_type={info.get('measure_type')}, "
            f"percentage={info.get('percentage')}, "
            f"de9im={info.get('de9im')}"
        )
measure_type: length
reference_od: None
reference features:
- poly_ref: measure_type=length, percentage=60.0, de9im=101FF0212
- line_ref: measure_type=length, percentage=100, de9im=1FFF0FFF2
- point_ref: measure_type=count, percentage=100, de9im=0F1FF0FF2

<- Back to examples overview