我通过OSMNX生成了一个图,现在我有一个边的列表和一个节点的列表,都是CSV格式。
nodes.csv包含 "id"、"x_coordinate "和 "y_coordinate "列。 edges.csv包含'u'、'v'和'length'列;其中'u'和'v'是指连接的节点
现在我试图用igraph来计算每个节点的效率(节点效率)和全局效率。
这是我到目前为止所尝试的,但结果与我的预期不同。
import numpy as np
import igraph
import pandas as pd
np.seterr(divide='ignore')
edgefields = ['u','v','length']
edgelist = pd.read_csv('edges.csv', skipinitialspace=True, usecols=edgefields)
g = igraph.Graph.DataFrame(edgelist)
weight = edgelist["length"][:]
def nodal_eff(g):
weights = weight
sp = (1.0 / np.array(g.shortest_paths_dijkstra(weights=weights)))
np.fill_diagonal(sp,0)
N=sp.shape[0]
ne= (1.0/(N-1)) * np.apply_along_axis(sum,0,sp)
return ne