Есть 3 вероятных сценария, для которых я пытаюсь запечатлеть близкие расстояния:
- Станция метро обмена, которая имеет 2 или более соседних станций. То есть рассматриваемая станция соединяет 2 или более основных маршрутов и имеет 2 или более соседних станций.
- Терминальная станция метро, которая имеет только 1 соседнюю станцию. Это станция в конце линии.
- Линейная станция метро, которая имеет ровно 2 соседние станции, одна из которых подходит.
Я пытаюсь вычислить значение, которое можно назвать «средним расстоянием между соседними станциями».
arcpy.GenerateNearTable_analysis()
Может обрабатывать два варианта: Расстояние до ближайшего элемента, и расстояние между всеми функциями.
У кого-нибудь есть умный метод решения этих сценариев? Обратите внимание, что каждая станция обозначена как «Interchange», «Terminal» или «Inline» в таблице атрибутов под полем «StationType».
Добавлено:
Вот некоторый код psuedo, основанный на предложении @ whuber в комментариях. У меня пока нет времени, чтобы это выяснить, поэтому, если кто-то захочет нанести удар, вы будете вознаграждены галочкой! ;)
Я взглянул на библиотеку NetworkX, и она, кажется, работает так, как я хочу.
Учитывая график:
A —― B ―― C ―― D
|
E
а также узлы и ссылки:
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