Istnieją 3 prawdopodobne scenariusze, które próbuję uchwycić w bliskiej odległości dla:
- Stacja metra wymiany, która ma 2 lub więcej stacji sąsiednich. Oznacza to, że dana stacja łączy 2 lub więcej głównych tras i ma 2 lub więcej stacji sąsiednich.
- Terminalowa stacja metra, która ma tylko 1 stację sąsiednią. To jest stacja na końcu linii.
- Inline stacja metra, która ma dokładnie 2 sąsiednie stacje, jedno z obu podejść.
Próbuję obliczyć wartość, którą można nazwać „średnią odległością między sąsiednimi stacjami”
arcpy.GenerateNearTable_analysis()
Może obsługiwać dwie opcje: odległość do najbliższego obiektu i odległość między wszystkimi funkcjami.
Czy ktoś ma sprytną metodę rozwiązania tych scenariuszy? Zauważ, że każda stacja jest oznaczona jako „Interchange”, „Terminal” lub „Inline” w tabeli atrybutów pod polem „StationType”.
Dodany:
Oto kod psuedo oparty na sugestii @ whuber w komentarzach. Nie mam jeszcze czasu, aby to rozgryźć, więc jeśli ktoś zechce go dźgnąć, zostaniesz nagrodzony znacznikiem wyboru! ;)
Brałem spojrzeć na NetworkX biblioteki i wydaje się działać tak jak chcemy.
Biorąc pod uwagę wykres:
A —― B ―― C ―― D
|
E
a także węzły i linki:
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