Kniffeliges Problem mit direkt aneinander grenzenden Polygonen

Ein Polygonlayer mit vielen Polygonen bildet Grundstücke ab.
In den Sachdaten ist der Eigentümername eingetragen.

Nun sollen die Grundstücke eines jeden Eigentümers zusammengefasst werden, die direkt aneinander stoßen.

Hat jemand eine Lösungs-Idee???

Hallo!

Du könntest über st_collect eine Geometrycollection aller Grundstücke eines Besitzers erstellen. Das könnte man in einem Subselect mit st_touches noch verfeinern, um nur die zu separieren, die aneindergrenzen. Allerdings bekommt man da Probleme, wenn mehrere Grundstücke in einer Reihe liegen, was in einem Kataster ja eher die Regel ist. Da könnte man mit einer rekursiven Funktion arbeiten oder mit einer Iteration durchgehen um die zusammenhängenden herauszufinden und zusammenzuhängen.
Das sind jetzt mal so die Ideen, die mir ohne Kaffee kommen, vielleicht fällt mir noch was ein. Wenn ich dazu komm, mach ich mir mal einen Testdatensatz und probier das aus.

Grüssle Uwe

Hm, ich habs eher so verstanden, dass die Polygone verschmolzen werden sollen, die zusammen liegen. Also die Grenzen dazwischen aufgelöst werden sollen.

Dafür wäre der richtige Befehl st_union mit einem group by über die Eigentümernamen.

Das Ergebnis ist dann ein Datensatz mit Multipolygonen (falls Gruppen von Grundstücken getrennt liegen, also mehrere Blöcke)

Die kann man dann mit einem st_dump wieder auseinanderdröseln.

Falls Du nur zusammenfassen willst (alle Polygone zu einem Multipolygon zusammenfassen), dann ist st_collect wirklich der richtige Befehl. Aber viel gewonnen ist damit dann nichts.

Vorsicht beim Union: Die aktuelle Version ist verdammt langsam, weil sie sequentiell arbeitet. In der kommenden 1.4 ist das Problem durch ein cascaded_union viel besser gelöst. Laufzeitprobleme gibt’s immer dann, wenn sehr viele Polygone verschmolzen werden müssen (viele im Sinne von mehreren 100 und darüber), was bei Grundstücken und Eigentümern nur in Einzelfällen vorkommt.

Hoffe das hilft.

Viele Grüße
Andreas

Ja!!! Westwind. Genau das meinte ich.
So sollte es funktionieren. Werde es schnellstmöglich ausprobieren.
Vielen Dank!

Hab nochmal genauer darüber nachgedacht. Geht leider doch nicht, da so alle Grundstücke eines Eigentümers zusammengefasst werden (unabhängig davon, ob sie direkt aneinandergrenzen oder nicht). Schade.

Du kannst die entstehenden Multipolygone/Collections ja wieder in die Einzelteile zerlegen.

Grüssle Uwe