Antworten:
Ben Reilly hat kürzlich einen Link zu einer anderen Frage zu seinem Python-Paket Utilitynetwork gepostet , das die OGR-Bindungen verwendet, um Daten in networkx DiGraphs zu konvertieren .
Nach der Networkx-Liste der von GDAL unterstützten importierbaren Grafikformate und -formate zu urteilen , bezweifle ich, dass eine solche Konvertierung möglich ist.
TranspoTools Will be here shortly
. Gibt es Code im Google-Code-Repository? Alles was ich sehen konnte war leer.
ogr2networkx
Typ-Tool zusammenarbeiten.
Sie haben nicht speziell erwähnt, welche Art von Netzwerkanalyse Sie durchführen möchten, aber wenn Sie am Routing interessiert sind, gibt es mehrere Optionen:
PgRouting http://pgrouting.postlbs.org/ arbeitet mit Daten in PostGIS, um Routing-Analysen durchzuführen. Es unterstützt die Algorithmen Shortest Path Dijkstra, Shortest Path A *, Shortest Path Shooting Star und Travelling Salesperson (TSP). Es werden auch Fahrstreckenberechnungen durchgeführt. Eine Liste von Beispiel-Apps, die PgRouting verwenden, finden Sie unter http://pgrouting.postlbs.org/wiki/pgRoutingDemo
PgRouting steuert die http://www.ridethecity.com/
App Ride the City .
Das OpenRouter-Projekt http://wiki.osgeo.org/wiki/OpenRouter
. Dieses Projekt sieht interessant aus, ist aber zu diesem Zeitpunkt noch nicht besonders ausgereift.
(Entschuldigung für die angegebenen URLs, aber ich habe nicht genug Credits, um> 1 URl zu posten ...)
Ich denke, die Antwort hängt davon ab. Die meisten GIS-Formate enthalten keine expliziten Adjazenzinformationen (z. B. gibt es in einem .shp keine Indikatoren mit einfachen Linienfunktionen, die darauf hinweisen, dass zwei Funktionen einen gemeinsamen Endpunkt haben). Dies ist ein Deal-Breaker, um sie direkt in ein Netzwerk einzulesen.
Bei einem flüchtigen Blick auf den Code sieht es so aus, als würde das von scw verknüpfte Utilitynetwork-Paket diese Informationen nur dann wiederfinden, wenn die Endpunkte Bit für Bit identisch sind. Dies könnte für die meisten Bedürfnisse gut genug sein, auch für Ihre! (Ich könnte mich irren, da es in der Tat nur ein flüchtiger Blick war.)
Für etwas Robusteres - zum Beispiel möchten Sie möglicherweise neue Knoten im Netzwerk erstellen, an denen sich zwei Kanten kreuzen, oder Sie möchten Störungen behandeln, die überlappende Endpunkte geringfügig voneinander unterscheiden - müssen Sie nach einem Ansatz suchen das untersucht die Geometrie tiefer.
Ich habe mit Boundary Generator etwas Ähnliches getan , um Informationen zur Netzwerkadjazenz aus Polygonen wiederherzustellen: leider falsche Plattform, Sprache und geometrisches Grundelement für Sie. Es kann jedoch aufschlussreich sein, wie Robustheitsprobleme angegangen werden sollen.
In MarineMap gibt es einen Geodjango-Code , der möglicherweise an die Aufgabe angepasst werden kann.
GML
,Geography Markup Language
während sich Ersteres auf Letzteres beziehtGraph Modelling Language
.