Risposte:
Ben Reilly ha recentemente pubblicato un link su un'altra domanda nel suo pacchetto utilitynetwork Python, che utilizza i collegamenti OGR per convertire i dati in networkG DiGraphs .
A giudicare dall'elenco networkx di formati grafici e formati imponenti supportati da GDAL , dubito che una tale conversione sia possibile.
TranspoTools Will be here shortly
. C'è qualche codice nel repository di google-code? Tutto quello che potevo vedere era vuoto.
ogr2networkx
strumento di tipo.
Non hai menzionato specificamente quale tipo di analisi di rete vuoi fare, ma se sei interessato al routing, ci sono un paio di opzioni:
PgRouting http://pgrouting.postlbs.org/ lavora con i dati di PostGIS per eseguire l'analisi del routing. Supporta gli algoritmi Short Path Path Dijkstra, Shortest Path A *, Shortest Path Shooting Star e Traveling Salesperson (TSP). Fa anche calcoli della distanza di guida. Un elenco di app di esempio che utilizzano PgRouting è disponibile su http://pgrouting.postlbs.org/wiki/pgRoutingDemo
PgRouting che guida l' http://www.ridethecity.com/
app Ride the City .
Il progetto OpenRouter http://wiki.osgeo.org/wiki/OpenRouter
. Questo progetto sembra interessante, ma non particolarmente maturo a questo punto.
(Mi scuso per gli URL citati, ma non ho abbastanza credito per pubblicare> 1 URl ...)
Penso che la risposta dipenda. La maggior parte dei formati GIS non include esplicitamente informazioni di adiacenza (ad es. Non ci sono indicatori in un file .shp pieno di semplici funzioni di linea per indicare che due funzioni condividono un endpoint comune), che è un punto di rottura per leggerli direttamente in una rete.
Da una rapida occhiata al codice, sembra che il pacchetto utilitynetwork collegato da scw riscoprirà tali informazioni solo se gli endpoint sono identici bit per bit. Questo potrebbe essere abbastanza buono per la maggior parte delle esigenze, incluso il tuo! (Potrei sbagliarmi, dato che era davvero solo una sbirciatina.)
Per qualcosa di più robusto - ad esempio, potresti voler creare nuovi nodi nella rete in cui due bordi si incrociano, o ti piacerebbe gestire le perturbazioni che rendono gli endpoint sovrapposti molto leggermente diversi - dovrai cercare un approccio che ispeziona la geometria più in profondità.
Ho fatto qualcosa di simile con Boundary Generator per recuperare informazioni di adiacenza della rete dai poligoni: piattaforma sbagliata, linguaggio e primitiva geometrica per te, sfortunatamente. Tuttavia, può essere perspicace su come affrontare i problemi di robustezza.
Esiste del codice geodjango in MarineMap che potrebbe essere adattabile all'attività.
GML
, il primo si riferisceGeography Markup Language
mentre il secondo lo èGraph Modelling Language
.