Найти все цепочки последовательных отрезков из графика/таблицы

У меня есть таблица с отрезками (около 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' никакой последовательности отрезков построить не получается.

Хотелось было получить все возможные цепочки из отрезков.


Ответы (0 шт):