Ich suche nach einem Algorithmus zur Vereinfachung von Isochronen, die mit OSM-Daten generiert wurden.
Diese weisen im Allgemeinen viele kleine "Löcher" auf, hauptsächlich aufgrund fehlender OSM-Daten, aber auch häufig kleine "Inseln" aufgrund der Verwendung von Transportmitteln wie U-Bahnen. Ich habe eine Reihe von Tools dafür ausprobiert, aber alle sind zu aggressiv beim Schrumpfen des Raums - am kritischsten beim Löschen der Inseln. Die Erreichbarkeit dieser öffentlichen Verkehrsinseln ist sehr wichtig.
Anstatt mich auf Werkzeuge zu konzentrieren, wollte ich einen Schritt zurücktreten und fragen, ob bestimmte Algorithmen für eine solche Aufgabe gut oder nicht gut geeignet sind. dh aggressiv beim Entfernen von Löchern sein, aber konservativ beim Entfernen von Inseln.
Die Isochronen beginnen ihr Leben im GeoJSON-Format. Sie werden schließlich in PostGIS importiert.
Antworten:
Vielleicht fängt die Auflösung von Anfang an an?
Auf welche Weise erstellen Sie Isochronen?
Ich verwende pg_routing und es gibt eine Reihe von Kanten zurück, die in der angegebenen Zeit erreichbar sind, anstelle eines Polygons, sodass ich aus diesen Daten ein Polygon nach meinen Wünschen zeichnen kann. Ich kann st_ConvexHull, st_ConcaveHull, st_Buffer ... verwenden.
Die erste Funktion ist wie das Platzieren von etwas in einem Gummiballon, die zweite ist wie das Absaugen von Luft aus diesem Ballon, und diese Funktion könnte denken, dass Sie suchen, weil sie Geometrie zurückgibt, die eine möglicherweise konkave Geometrie darstellt, die alle Geometrien innerhalb des Sets einschließt und haben Parameter, die Löcher in der zurückgegebenen Geometrie verhindern ...
Trotzdem bin ich mir nicht sicher, ob es ein guter Weg ist - Sie erhalten eine Geometrie, die nicht wahr ist, weil Sie nicht aus dem Zug springen können, während er fährt. Vielleicht müssen Sie ST_ExteriorRing verwenden, um Löcher herauszuholen, und dann st_simplify, um die Geometrien zu vereinfachen?
Bitte fügen Sie einen Kommentar hinzu, der mich auf den richtigen Weg führt, wenn Sie der Meinung sind, dass diese Antwort nützlich sein könnte, damit ich sie erneut bearbeiten kann, um sie korrekt zu machen.
quelle