Более эффективный способ поиска через geoJson в двойном цикле Python

Какой самый эффективный (или Pythonic способ) поиск в двойном цикле по файлу geoJson?

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

Вы можете увидеть мой код ниже:

for j, feature2 in enumerate(nav['features']):
    if feature2['properties']['gp'] in ('RTE', 'RTB', 'RTA'):
        for i, feature in enumerate(tra['features']):                
            segment = LineString(
                [Point(feature['geometry']["coordinates"][0]), Point(feature['geometry']["coordinates"][1])])
            if Point(poi) != Point(segment.coords[0]) and Point(poi) != Point(segment.coords[1]):
                continue

после этого я делаю некоторые вычисления с этими точками и выкидываю их в новый файл.

Мой файл точек содержит ~ 10 тыс. И файл строки ~ 90 тыс. Объектов, и теперь обработка занимает больше суток. Я нашел похожую тему, но, похоже, не имеет никакого эффекта в моем случае

Буду признателен за любые идеи о том, как сделать этот процесс более элегантным и эффективным!

0 ответов

Другие вопросы по тегам