python-igraph: найти пересекающиеся ребра в графе на основе расположения вершин - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь определить ребра графа, которые пересекаются, основываясь на некоторых ограничениях.Мой код выглядит следующим образом:

#getCellPinPts returns coordinates of the vertex
# I am using igraph and shapely packages 
linestrings = [LineString((getCellPinPts(G.es[edge]["startCell"],cellMid[G.es[edge]["nameIdx"]],
                                G.es[edge]["pin"], G["stepSize"]), 
                                getCellPinPts(G.es[edge]["endCell"],cellMid[G.es[edge]["endNameIdx"]],
                                G.es[edge]["endPin"], G["stepSize"]))) for edge in range(len(G.es))]
intersect = [ 1 for idx1,x in enumerate(linestrings) for idx2,y in enumerate(linestrings) if idx1<idx2 
     and x.intersects(y) 
     and not(G.es[idx1]["family"] == G.es[idx2]["family"]) 
    ]
totalIntersections = np.sum(intersect)

Проблемы связаны с тем, что для вычисления пересечений требуется много времени.Есть ли способ сделать пересекающийся код быстрее?

...