Я пытаюсь подсчитать количество пересечений на расстоянии х от каждого края графика, чтобы затем отобразить его с использованием цветовой шкалы, однако разделенные дороги отображаются как несколько пересечений, а не как одно.
Скрипт ниже показывает мою текущую работу с использованием osmnx для создания графа, а затем networkx кратчайший путь для поиска путей по всем узлам.Возвращает счетчик, который находится в пределах расстояния x, а затем среднее значение узлов для ребер.
Я знаю, что у osmnx есть функция чистого пересечения, но она не интегрируется с существующим графиком.
import osmnx as ox
import networkx as nx
location = 'location'
distance = x
net_type = 'drive'
G = ox.graph_from_place(location, buffer_dist=distance, network_type=net_type)
G = ox.project_graph(G)
shortest = nx.shortest_path_length(G, weight='length')
count_list = []
for node in list(shortest):
int_count = 0
for key in node[1]:
if node[1].get(key) <= 400:
int_count += 1
else:
break
count_list.append(int_count)
intersections = dict(zip(G.nodes, count_list))
nx.set_node_attributes(G, intersections, 'int400')
nodes = list(G.nodes)
data_nodes = list(G.nodes(data=True))
for edge in G.edges(data=True):
node_from = data_nodes[nodes.index(edge[0])][1]['int']
node_to = data_nodes[nodes.index(edge[1])][1]['int']
average = round(((node_from + node_to) / 2))
edge[2]['int'] = average
Мне бы хотелось, чтобы он учитывал только одно пересечение, где пересекаются дорогиразделенные дороги.
Я совершенно новичок в их использовании, поэтому некоторые из приведенного выше кода могут быть выполнены по-другому.Но мое основное внимание уделяется получению точного количества пересечений для каждого узла / ребра в графике.
Есть ли способ использовать функцию чистых пересечений osmnx и интегрировать ее с существующим графиком, настраивая параметры from / to?атрибуты ребер для новых узлов?
Я думал, что вы могли бы определить, какие узлы удалены, а затем заменить любой экземпляр этого идентификатора новым идентификатором узла, который заменил его, но я незнать, возможно ли это.
Благодарим за помощь.