Mehr

PgRouting: Ziel-Scheitelpunktfehler

PgRouting: Ziel-Scheitelpunktfehler


Ich versuche, eine Matrix zu erstellen, die die Kosten von einem Knoten zu den restlichen Knoten in einem Netzwerk anzeigt.

Das Endergebnis, das ich suche, sind nicht die Kosten, sondern nur, ob ein Auto jeden Scheitelpunkt erreichen kann oder nicht.

Ich habe einen Test in einem kleinen Bereich meines Netzwerks durchgeführt und er scheint perfekt zu funktionieren. Ich erhalte die Kosten von einem Knoten zum Rest, und wenn ich sie nicht erreichen kann, belasse ich nur den Wert alsNULL, dann kann ich diesen Wert auf false setzen.

Das Problem ist, dass ich versuche, diese Methodik auf den Rest des Netzwerks auszudehnenZielknoten wurde nicht gefunden.

Warum sagt pgRouting das, wenn ich dieselbe Analyse durchführe?

Die Schritte, die ich befolgt habe, sind:

--Erstellen der Topologie ALTER TABLE "3prueba" ADD COLUMN "source" integer; ALTER TABLE "3prueba" ADD COLUMN "Ziel" Ganzzahl; SELECT pgr_createTopology('3prueba', 0.00001, 'geom', 'id'); --(Ich habe bereits das Kostenfeld) --indexes CREATE INDEX vials3_source_indx ON calles("source"); CREATE INDEX vials3_target_indx ON calles("target"); --und erstelle die Tabelle "3catchment82" als select id, the_geom, (select sum(cost) from ( SELECT * FROM pgr_dijkstra(' SELECT id AS id, source::int4 AS source, target::int4 AS target, coste:: float8 AS cost FROM "3prueba" wobei mostrar = 1 ', --<-- nur Straßen 82 anzeigen, --<-- Node id::int4, false, false)) als foo ) als Kosten von "3prueba_vertices_pgr" angeben

Dies sind die Schritte, die ich befolgt habe.

Die Hauptidee ist, die Kosten nur für die Straßen mit dem Feld "mostrar=1" zu erhalten, wie ich im Bild zeige. Wenn die Straße gesperrt ist (mostrar=0), kann sie den Knoten nicht erreichen. Also, die rote Straße ist gesperrt und kann die Knoten 58, 59, 5 nicht erreichen… Danach werde ich die Straßen ändern. So kann ich eine Matrix erhalten, wenn einige Straßen gesperrt sind, eine andere Matrix, wenn andere Straßen gesperrt sind usw. Wenn ich diese Analyse auf den Rest des Netzwerks anwende, erhalte ich den Fehler.

Habt ihr eine Idee was ich falsch mache oder wie ich das richtig machen könnte?


Nach @underdark Ratschlägen scheint es zu funktionieren.

Ich habe das Modell mit hohen Kosten für die "gesperrten" Straßen ausgeführt und scheint in Ordnung zu sein.

Ich habe gesehen, dass es 3 Arten von Ausgaben gibt:

  • Grün: Knoten, die die Quelle erreicht.

  • In Rot: Knoten, die von der Quelle nicht erreicht werden.

  • In Orange: Knoten getrennt. Die Werte waren NULL.

Ich denke also, das Problem lag bei dieser Art von Knoten.


Ich gehe davon aus, dass es Probleme gibt, wenn Sie versuchen, von einem Teil im Netzwerk zu einem anderen Teil zu routen, der aufgrund einer Schließung getrennt ist (z. B. wenn Link 58-47 entfernt wird). Anstatt diese Links zu entfernen, versuchen Sie, ihre Kosten wirklich hoch anzusetzen. Auf diese Weise können Sie diejenigen Links identifizieren, die aufgrund ihrer hohen Kostensummen getrennt werden.


Schau das Video: QGeek 004 - NETWORK ANALYSIS IN QGIS - POSTGISPGROUTINGOSM2PGROUTING