Использование большого файла OSM с OSMnx

#python #geolocation #openstreetmap #osmnx

#python #геолокация #openstreetmap #osmnx

Вопрос:

В настоящее время я работаю с большим набором данных, содержащим координаты, и я хочу проверить качество данных.

df содержит координаты со всей Европы. Для проверки качества я хочу рассчитать отклонение до ближайшей дороги, поскольку данные отправляются с транспортных средств.

Что я сделал до сих пор, так это загрузил файл europe.osm и очистил его, чтобы содержать только дороги. Отфильтрованный файл osm составляет около 2 ГБ. (используется osmfilter)

Затем я хочу использовать osmnx для создания графика из файла:

 import osmnx
import os

G = osmnx.graph.graph_from_xml('../europe-roads.osm', simplify=True, retain_all=False)
  

Здесь начинается моя первая проблема. Похоже, что osmnx не может обработать файл такого размера. Он работает только с файлами меньшего размера (городами).

В итоге я хочу использовать функцию get_nearest_edge() для вычисления расстояния до ближайшего ребра.

 orig_edge = osmnx.distance.get_nearest_edge(G, (52.393214, 13.133295),return_geom=False, return_dist=True)
  

Теперь моя идея состояла в том, чтобы удалить все узлы в файле osm, что уменьшило бы его примерно до половины размера (поскольку мне нужны только ребра). Однако я не могу создать график из файла osm с удалением узлов.

Есть идеи о том, как решить эту проблему?

В конце концов, важно то, что у меня есть решение для измерения расстояния до ближайшей дороги по координатам по всей Европе.

Комментарии:

1. Как насчет разделения данных, например, по одному файлу на геохеш? Затем ваш код может проверить, какие геохеши находятся ближе всего к местоположению, загрузить эти графики, запустить функцию ближайшего края, а затем позволить вам выбрать лучшее. Если геохеши достаточно малы, файлы будут загружаться довольно быстро..

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

3. Я понял это. Большое спасибо!