Более эффективный способ поиска через 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 тыс. Объектов, и теперь обработка занимает больше суток. Я нашел похожую тему, но, похоже, не имеет никакого эффекта в моем случае
Буду признателен за любые идеи о том, как сделать этот процесс более элегантным и эффективным!