[Editar: esto ha sido reemplazado por nx_spatial que está disponible desde pypi (easy_install nx_spatial). Importar archivos de forma ahora es estándar en networkx 1.4 ]
Me ha decepcionado un poco la falta de herramientas de red geométricas en la API Python GP de ESRI, así que escribí algo que carga Shapefiles y Clases de entidades en gráficos direccionales de red (DiGraphs).
Todavía es un trabajo en progreso, pero podría ser un buen punto de partida para algo que pueda ayudarlo con su problema.
http://bitbucket.org/gallipoli/utilitynetwork/
Muestras:
from utilitynetwork import Network
net = Network()
#load single file, method reqs OGR
net.loadshp("/shapefiles/test.shp")
#load directory full of shapefiles
net.loadshp("/shapefiles")
#load a feature class, req ESRI gp object, should work with shps as well
import arcgisscripting
gp = arcgisscripting.create(9.3)
net.loadfc("C:\somedb.gdb\featureclass", gp)
#Accessing node/edge data is done by the key value (the geometry as a tuple).
#access node data at x=4, y=2
nodekey = (4, 2)
net.node[nodekey]
La red se hereda de networkx.DiGraph, por lo que toda esa funcionalidad está disponible.
.shp
a networkx? Podría construir uno yo mismo en Python, pero me Rathe rnot reinventar la rueda ...