Geeignete Algorithmen zur Vereinfachung von Isochronenpolygonen

8

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.

rgareth4
quelle
Für die Berechnung einfacherer Isochronen könnten Sie an api.oalley.fr interessiert sein . Der Algorithmus erzeugt Isochronenbereiche ohne Löcher. Es kann als Vorteil oder als Fehler angesehen werden, aber wenn Sie einfachere Zonen benötigen, könnten Sie interessiert sein. Hinweis: Ich bin einer der Entwickler, bisher müssen die Berechnungen verbessert werden, und dieses Ding ist meistens ein Experiment, aber wir lassen alle kostenlos damit spielen.
Overdrivr

Antworten:

2

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.

Jendrusk
quelle
Ich benutze OpenTripPlanner, um Isochronen zu erzeugen. pgRouting scheint keine ordnungsgemäße Unterstützung für GTFS- / öffentliche Verkehrspläne zu haben, deshalb habe ich mich für OTP entschieden. Meine Idee ist es, OTP mit hoher Präzision generieren zu lassen. Sie wenden meine eigene benutzerdefinierte Glättung darauf an. Ich bin damit einverstanden, dass das "Abspringen von einem Zug während der Fahrt" ein fatales Problem für die Isochronen darstellt - daher müssen die Inseln dort sein.
Rgareth4