Sie suchen nach Verallgemeinerungsstrategien für die Erstellung von Umrissen in PostGIS?

22

Ich habe einen Datensatz mit Gebäudefußabdrücken, die aus einem Raster-Dataset vektorisiert wurden. Das Dataset ist derzeit nur eine Vektordarstellung der Rasterdaten. Ich hätte gerne ein Polygon-Dataset, das nur Eckpunkte an den Ecken des Gebäudes hat. Ich habe versucht, den Befehl Vereinfachen in PostGIS mit begrenztem Erfolg zu verwenden.

Gibt es einen besseren Weg?

Matthew Snape
quelle

Antworten:

17

Es gibt viele Algorithmen zur Vereinfachung von Gebäuden. Sie können sich auf dieser Website einen Überblick verschaffen. Siehe auch diese Frage . Du könntest benutzen:

  • Vereinfachung der Gebäudeumrisse: Es besteht darin, zu kurze Kanten der Umrisse rekursiv zu löschen und die Nachbarkanten zu verlängern. Beispiel:

Alt-Text

  • Algorithmus für das kleinste umgebende Rechteck: Ersetzt die Gebäudegeometrie durch das kleinste umgebende Rechteck. Dieses Rechteck kann auch auf den Anfangsbereich des Gebäudes skaliert werden. Beispiel:

Alt-Text

  • Quadrierungsalgorithmus: Es besteht darin, Kanten leicht zu drehen, um die Ecken perfekt zu quadrieren. Beispiel:

Alt-Text

Diese Transformationen können für Ihren Bedarf ausreichen. Es kann interessant sein, sie zu kombinieren.

Ich bin fast zu 100% sicher, dass keiner dieser Algorithmen in PostGIS implementiert ist. Einige sind in der Opencarto Java-Bibliothek implementiert, die ich gerade entwickle. Lass es mich wissen, wenn du es testen willst!

julien
quelle
1
Können Sie kurz erläutern, auf welche Algorithmen Sie sich in Opencarto für die erwähnte "Gebäudevereinfachung" beziehen? Ich konnte keine direkten Informationen im Wiki oder Code in Opencarto finden.
Benjamin
Es ist "ShortEdgesDeletion". Sie finden es dort auf github: github.com/jgaffuri/OpenCarto/blob/master/src/main/java/org/…
julien
4
geometry ST_SimplifyPreserveTopology(geometry geomA, float tolerance);

Das Erstellen ungültiger abgeleiteter Geometrien (insbesondere Polygone) wird vermieden. Http://www.postgis.org/documentation/manual-1.5SVN/ST_SimplifyPreserveTopology.html

sollte eine bessere Ausgabe als Simplify sein

Überprüfen Sie zuerst Ihre Geometrie und anschließend mit ST_IsSimple(geometry geomA);

Mapperz
quelle
3

So etwas könnte den Trick machen:

"Wenn wir um einen großen Betrag puffern und dann den Puffer um den gleichen Betrag umkehren, erhalten wir etwas, das eine ähnliche Form wie das Original hat, jedoch ohne die zerknitterten Teile."

http://blog.opengeo.org/2010/11/22/removing-complexities/

LR1234567
quelle
Das ist ein interessanter Ansatz und scheint relativ effektiv zu sein. Vielen Dank für den Zeiger, den ich verwenden kann. Ihre Antwort wäre besser, wenn sie einen einfachen Satz enthalten würde, der die Kernidee enthält, auf die verwiesen wird, und nicht nur einen Link.
Matt Wilkie