Réponses:
Ben Reilly a récemment publié un lien sur une autre question vers son package Python UtilityNetwork , qui utilise les liaisons OGR pour convertir les données en Networkx DiGraphs .
À en juger par la liste networkx des formats de graphiques importables et des formats pris en charge par GDAL , je doute qu'une telle conversion soit possible.
TranspoTools Will be here shortly
. Y a-t-il du code dans le référentiel de codes Google? Tout ce que je pouvais voir était vide.
ogr2networkx
outil de type.
Vous n'avez pas mentionné spécifiquement le type d'analyse de réseau que vous souhaitez faire, mais si vous êtes intéressé par le routage, il existe deux options:
PgRouting http://pgrouting.postlbs.org/ fonctionne avec les données de PostGIS pour effectuer une analyse de routage. Il prend en charge les algorithmes Shortest Path Dijkstra, Shortest Path A *, Shortest Path Shooting Star et Traveling Salesperson (TSP). Il effectue également des calculs de distance de conduite. Une liste d'exemples d'applications utilisant PgRouting peut être trouvée sur http://pgrouting.postlbs.org/wiki/pgRoutingDemo
PgRouting conduit l'application Ride the City http://www.ridethecity.com/
.
Le projet OpenRouter http://wiki.osgeo.org/wiki/OpenRouter
. Ce projet semble intéressant, mais pas particulièrement mature à ce stade.
(Toutes mes excuses pour les URL citées, mais je n'ai pas assez de crédit pour poster> 1 URl ...)
Je pense que la réponse dépend. La plupart des formats SIG n'incluent pas explicitement les informations de contiguïté (par exemple, il n'y a pas d'indicateurs dans un fichier .shp plein de fonctionnalités de ligne simples pour indiquer que deux fonctionnalités partagent un point de terminaison commun), ce qui est un facteur décisif pour les lire directement dans un réseau.
D'un coup d'œil rapide au code, il semble que le package UtilityNetwork lié par scw ne redécouvre ces informations que si les points de terminaison sont bit à bit identiques. Cela pourrait être suffisant pour la plupart des besoins, y compris le vôtre! (Je peux me tromper à ce sujet, car il ne s'agissait en fait que d'un coup d'œil rapide.)
Pour quelque chose de plus robuste - par exemple, vous souhaiterez peut-être créer de nouveaux nœuds dans le réseau où deux bords se croisent, ou vous souhaitez gérer les perturbations qui rendent les points d'extrémité qui se chevauchent très légèrement différents - vous devrez chercher une approche qui inspecte la géométrie plus en profondeur.
J'ai fait quelque chose de similaire avec Boundary Generator pour récupérer les informations de contiguïté du réseau à partir des polygones: plate-forme, langage et primitive géométrique incorrects pour vous, malheureusement. Cependant, il peut être utile de savoir comment aborder les problèmes de robustesse.
Il y a du code geodjango dans MarineMap qui pourrait être adaptable pour la tâche.
GML
, le premier fait référenceGeography Markup Language
tandis que le second l'estGraph Modelling Language
.