Найти все цепочки последовательных отрезков из графика/таблицы
У меня есть таблица с отрезками (около 11к отрезков), у каждого отрезка определены начальная и конечная координата, эти отрезки находятся внутри географического полигона.таблица
Мне нужно составить цепочки из последовательных отрезков или объединить их в единую сеть без замкнутых полигонов. последовательные отрезки = отрезки соединяются в начале или конце.
что я попробовал в силу своих начальных знаний python:
Имеющиеся координаты X1 (6 цифр), Y1 (7 цифр), X2 (6 цифр), Y2 (7 цифр) переделал в тип str, перевел в tolist и получил лист из 26-значных цифр.
Пытался пойти по пути названий стран и переписал код, чтобы пересечение со следующим отрезком происходило по 13 последним числам.
acc_V_in_R = pd.read_excel('try.xlsx')
poi1 = acc_V_in_R[['X_x', 'Y_x']]
poi1 = poi1['X_x'].astype ( str ) + poi1['Y_x'].astype ( str )
poi2 = acc_V_in_R[['X_y', 'Y_y']]
poi2 = poi2['X_y'].astype ( str ) + poi2['Y_y'].astype ( str )
poi1_poi2 = poi1 + poi2
poi1_poi2 = poi1_poi2.tolist()
def cha(point, poi1_poi2):
remaining = list(poi1_poi2)
del remaining[remaining.index(point)]
possibles = [x for x in remaining if x[:13] == point[-13:]]
maxchain = []
for c in possibles:
l = cha(c, remaining)
if len(l) > len(maxchain):
maxchain = l
return [point] + maxchain
print(cha('31750247849113176614783977', poi1_poi2))
в результате получается почти бесконечный код из непонятного текста и Restarting kernel...
даже по одному из отрезков для примера '31750247849113176614783977' никакой последовательности отрезков построить не получается.
Хотелось было получить все возможные цепочки из отрезков.