Ci sono 3 probabili scenari che sto cercando di catturare a distanza per:
- Una stazione della metropolitana di interscambio, che ha 2 o più stazioni vicine. Cioè, la stazione in questione collega 2 o più rotte principali e ha 2 o più stazioni vicine.
- Una stazione della metropolitana terminale, che ha solo 1 stazione vicina. Questa è la stazione alla fine della linea.
- Una stazione della metropolitana in linea, che ha esattamente 2 stazioni vicine, una di entrambi gli approcci.
Sto tentando di calcolare un valore che si potrebbe chiamare "distanza media tra stazioni vicine"
È arcpy.GenerateNearTable_analysis()
possibile gestire due opzioni: Distanza dalla funzione più vicina e Distanza tra tutte le funzioni.
Qualcuno ha un metodo intelligente per risolvere questi scenari? Si noti che ogni stazione è designata come "Interscambio", "Terminale" o "In linea" nella tabella degli attributi sotto il campo "TipoTipo".
Inserito il:
Ecco qualche codice psuedo basato sul suggerimento di @ whuber nei commenti. Non ho ancora tempo per capirlo, quindi se qualcuno vuole accoltellarlo, verrai ricompensato con un segno di spunta! ;)
Ho dato un'occhiata alla libreria NetworkX e sembra funzionare come voglio.
Dato il grafico:
A —― B ―― C ―― D
|
E
così come i nodi e i collegamenti:
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