Existem três cenários prováveis que estou tentando capturar perto de distâncias para:
- Uma estação de metrô de intercâmbio, que possui 2 ou mais estações vizinhas. Ou seja, a estação em questão conecta 2 ou mais rotas principais e possui 2 ou mais estações vizinhas.
- Uma estação de metrô terminal, que possui apenas 1 estação vizinha. Esta é a estação no final da linha.
- Uma estação de metrô em linha, com exatamente 2 estações vizinhas, uma das duas abordagens.
Estou tentando calcular um valor que se poderia chamar de "distância média entre estações vizinhas"
O arcpy.GenerateNearTable_analysis()
pode lidar com duas opções: Distância ao recurso mais próximo e Distância entre todos os recursos.
Alguém tem um método inteligente para resolver esses cenários? Observe que cada estação é designada como "Intercâmbio", "Terminal" ou "Inline" na tabela de atributos no campo "StationType".
Adicionado:
Aqui está um código psuedo com base na sugestão do @ whuber nos comentários. Ainda não tenho tempo para descobrir isso, por isso, se alguém quiser dar uma facada, você será recompensado com uma marca de seleção! ;)
Dei uma olhada na biblioteca NetworkX e ela parece funcionar como eu quero.
Dado o gráfico:
A —― B ―― C ―― D
|
E
bem como os nós e links:
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