Hay 3 escenarios probables para los que estoy tratando de capturar distancias cercanas:
- Una estación de metro de intercambio, que tiene 2 o más estaciones vecinas. Es decir, la estación en cuestión conecta 2 o más rutas principales y tiene 2 o más estaciones vecinas.
- Una estación de metro terminal, que tiene solo 1 estación vecina. Esta es la estación al final de la línea.
- Una estación de metro en línea, que tiene exactamente 2 estaciones vecinas, una de cada aproximación.
Estoy tratando de calcular un valor que se podría llamar "distancia promedio entre estaciones vecinas"
El arcpy.GenerateNearTable_analysis()
puede manejar dos opciones: Distancia a la entidad más cercana, y la distancia entre todas las funciones.
¿Alguien tiene un método inteligente para resolver estos escenarios? Tenga en cuenta que cada estación se designa como "Intercambio", "Terminal" o "En línea" en la tabla de atributos bajo el campo "Tipo de estación".
Adicional:
Aquí hay un código psuedo basado en la sugerencia de @ whuber en los comentarios. Todavía no tengo tiempo para resolver esto, así que si alguien quiere apuñalarlo, ¡se lo recompensará con una marca de verificación! ;)
He echado un vistazo a la biblioteca NetworkX y parece funcionar como quiero.
Dado el gráfico:
A —― B ―― C ―― D
|
E
así como los nodos y enlaces:
Nodes = ["A", "B", "C", "D", "E"]
Links = [("A", "B"), ("B", "C"), ("C", "D"), ("B", "E")]
def myFunction(node):
identify the links that node belongs to
count the number of links
calculate the total link lengths
divide the total link lengths by the number of links
return someValue