Статьи

Скачиваем данные Overture Map Foundation: здания и POI вашего города

Программирование Полезные ресурсы
Время прочтения: 4 минуты

💡 Сложность: подойдет для тех, кто совсем не знает Python, но нужно иметь представления о геоданных и их форматах
Когда фонд Overture Maps объявил, что предоставляет открытые данные на основе нескольких источников, в том числе миллионы точек интереса, а также здания, которых нет в OSM, это звучало перспективно. Изначально датасет был удобен только разработчикам, но недавно с ними стало удобно работать и обычным пользователям. Эта статья написана, чтобы подробнее разобраться с данными Overture Maps Foundation и показать легкий способ их скачать.

Апдейт на осень 2024 года: через некоторое время после этой статьи Overture сделали интерактивный инструмент для скачивания данных Overture Map Explorer. Он не отменяет всего, что написано в тексте ниже, но если вы ищете возможность скачать данные Overture, попробуйте и его :)

Что есть в этом тексте:

  • Что входит в данные Overture Map Foundation
  • Как скачать их с помощью overturemaps-py
  • Удобный пример с Google Colab — только подставьте координаты!
  • Неформальное сравнение открытых данных OMF с данными OpenStreetMap

Что входит в данные Overture Map Foundation

Мы уже рассказывали в отдельной статье про открытые данные Overture Map Foundation, но если вкратце, история такая: как-то несколько крупных компаний решили составить конкуренцию картографическим гигантам и собрать один большой датасет пространственных данных, чтобы не брать данные у Google или Apple для разработки своих приложений. И так как большая часть данных основана на OpenStreetMap, этот датасет должен быть открытым, чтобы не нарушать лицензию.
В получившемся наборе данных есть здания, дороги, точки интереса, административные границы и данные землепользования. Все данные делятся на отдельные датасеты по объектам, и у каждого своя лицензия и свои источники. Отчасти это OpenStreetMap, но есть и другие: Esri, Google Open Buildings, Daylight Map Distribution; ESA WorldCoverMeta*, Microsoft и другие. Подробнее про источники данных и лицензию каждого датасета читайте на этой странице документации.
Данные OMF были открыты всегда, но изначально их можно было добыть только в неудобном формате GeoParquet (то есть неудобном для всех, кто не разработчик). Но в этом году появился удобный инструмент overturemaps-py, и теперь данные можно достать в любом месте, где вы пользуетесь Python. Мы уже делали про него небольшую новость в соцсетях Картетики, но решили написать про это подробнее. Все-таки это открытые данные!

Даже если вы не умеете работать с Python, не бойтесь, к концу этого текста вы тоже сможете скачать данные Overture Maps Foundation :) Но вообще рекомендуем учить Python — он помогает не только добывать данные, но и обрабатывать их.

Как скачать данные Overture Map Foundation с overturemaps-py

Overturemaps-py помогает скачать любой датасет OMF на любой интересующий регион. Все просто: устанавливаем библиотеку, импортируем ее и пишем строку, где определяем ограничительную рамку и тип данных. Ниже пример от разработчиков, который дает скачать здания внутри определенной рамки в формате GeoJSON и сохранить их в файл "boston.geojson":
pip install overturemaps

$ overturemaps download --bbox=-71.068,42.353,-71.058,42.363 -f geojson --type=building -o boston.geojson

Параметры:

  • --bbox (необязательный) — ограничительная рамка. Если не указывать, будет загружен весь датасет, но на практике это имеет смысл только для наборов данных вроде "land_cover" и не подойдет для зданий, дорог или точек интереса.
  • -f (обязательный) — формат выхода: "geojson", "geojsonseq", "geoparquet"
  • --output/-o (необязательный) — локация выходного файла
  • --type/-t (обязательный) — тип данных, которые мы загружаем. Все возможные типы данных: 'locality', 'locality_area', 'administrative_boundary', 'building', 'building_part', 'division', 'division_area', 'place', 'segment', 'connector', 'infrastructure', 'land', 'land_cover', 'land_use', 'water'.
Пояснения про некоторые интересные типы данных:
  • building = здания
  • place = POI, то есть точки интереса (кафе, магазины, салоны и прочие заведения)
  • land_use = землепользование
  • segment = дороги
  • connector = пересечения и тупики дорожной сети
Чтобы определить нужные границы, не высчитывая координаты, разработчики предлагают использовать удобный инструмент bounding box от Klokantech. Выберите формат CSV и скопируйте их прямо в поле --bbox.
Пример рамки и координат. Если вы просто тестируете данные, чтобы оценить их, рекомендую не брать территорию больше одного города или даже одного городского района
Так, в случае не зданий Бостона, а POI Саратова, получим:
$ overturemaps download --bbox=45.949,51.505,46.101,51.567 -f geojson --type=place -o saratov.geojson

Скачиваем данные через готовый блокнот в Google Colab

Не знаю, как вы, а я люблю работать в Google Colab. Да, он бывает неудобным, но это хороший способ начать работу с Python и не бояться кода. Все уже написано — остается только скопировать к себе и запускать, меняя отдельные параметры. Курс по Python у нас тоже проходит в Colab — в таком формате удобно знакомиться с кодом, запускать его, и постепенно менять код под свои задачи.
Чтобы поделиться удобным способом скачать данные Overture Maps Foundation, я сделала простенький блокнот в Colab. Вам нужен только гугл-аккаунт, а остальное просто — скопируйте его к себе на диск и меняйте код, подставляя свои координаты и тип объектов, и скачивайте GeoJSON-файлы.
После копирования запускаем первые две строки кода: установку и импорт библиотеки. В следующей строке подставляем координаты и тип данных. Чтобы все работало быстро, рекомендую ограничиться одним городом или даже его небольшой частью.
Меняем координаты и тип данных
Выполняем. Через некоторое время зеленая галочка показывает, что код успешно выполнен, но файлы еще нужно добыть из бокового меню:

Скачиваем готовый GeoJSON в боковом меню
Все готово! Получаем файл GeoJSON с нужнми объектами.

Неформальное сравнение данных OMF и OpenStreetMap

После того, как данные скачаны, интересно посмотреть, что получилось. Добавив полученные файлы в QGIS, я пересохраняю их в формат GPKG, потому что GeoJSON — обменный формат, и лучше в нем не работать с данными.
Дисклеймер: ниже я сравниваю данные только для Уфы, потому что я здесь живу последние несколько лет и регулярно добавляю данные в OSM, а значит могу оценить полноту и свежесть данных. На научность не претендую, просто показываю аспекты, которые бросаются в глаза. Вопрос качества данных будет отличаться для каждого региона и для каждого типа задач. Если задумываетесь всерьез, использовать данные или нет, скачайте и проанализируйте их самостоятельно.

Сравниваем здания

Источники данных о зданиях в OMF: OpenStreetMap, Microsoft, Esri и Google Open Buildings. То есть к данным OSM здесь добавляются дополнительные данные, и очень заметно, что взято из OSM, а что нет. На рисунках ниже два датасета наложены друг на друга с разной прозрачностью, где OMF — синий, OSM — оранжевый, а их пересечение — бордовый.
В данных OMF зданий заметно больше. Если в районах с многоэтажками это не сильно играет роль, то рядом с частными домами есть множество построек, которых нет в OSM:
На рисунке ниже в данных OMF остались уже снесенные здания (синие), а в OSM данные поновее, снесенных зданий уже нет, и есть строящаяся многоэтажка (оранжевая). Но в целом данные обновлены.
Встречаются неверно определенные здания:
Это не здание, это часть парка. Таких галюцинаций с рваными краями хоть и немного, но они встречаются
Если вам нужно иметь как можно больше зданий, в том числе будки и хозяйственные постройки — вам к OMF. То же самое и с районами, где в OSM просто нет никаких зданий - там данные OMF заполнят пробел. Но не факт, что все эти мелкие постройки на самом деле существуют, это уже надо проверять по спутниковым снимкам. И пока что в их датасете есть неверно распознанные здания, так что готовьтесь к проверке данных. Хотя, возможно, в будущем ML-модели будут распознавать здания получше.

Сравниваем POI

Обновление информации о POI на карте — это всегда больной вопрос. Многие POI не существуют на одном месте больше года, переезжают и закрываются, а уж режим работы, сайт или другие теги у них могут меняться так часто, что не уследишь. Чтобы данные о POI в OpenStreetMap оставались актуальными, нужно регулярно гулять по городу и отмечать, на месте ли магазины и кафе. К сожалению, данные Overture Maps не решают эту проблему. Источники этого датасета: Meta* и Microsoft, и в других странах, где организации больше связаны с фейсбуком*, качество данных может быть гораздо лучше.
В Уфе на каждую десятую точку из OSM приходится одна из OMF, да и та бывает устаревшая и давно закрытая.

Центр города. Темно-синие точки - это Places из OMF, розовые - amenity и shop из OSM
Частный пример, но здесь по сравнению с 14 точками интереса в OSM, в OMF есть только две
Может, имеет смысл посчитать реальную точность датасета, но для Уфы она понятна и на глаз. Для других регионов и стран ситуация может быть и другой: разработчик Wille Marcel уже показал в мини-исследовании для района Salvador de Bahia в Бразилии, что у 63% из 308 точек датасета Places OMF была указана верная информация. Такая точность вызывает много сомнений, хотя там, где данных нет, это лучше, чем ничего.
У меня есть предположение, что даже в некоторых уголках России, где давно никто не обновлял данные OpenStreetMap, информация о точках интереса OMF может быть точнее, чем в OSM. Но не ручаюсь, это надо проверять отдельно.

Другие данные

Кроме зданий и POI для города в OMF есть такие типы данных, как "infrastructure", "land_use" и "segments" (дороги), и все они в основном повторяют OSM. Подробнее читайте о них в документации, и там же есть пояснения к атрибутам данных.

Итоги

Данные Overture Maps Foundation стало и правдо легко скачать, но их качество пока делает их пригодными для ограниченного спектра задач. Более того, открытоcть не освобождает от ответственности: у каждого датасета есть своя лицензия, которая тоже накладывает небольшие ограничения. В общем, все как обычно: скачивайте, анализируйте и решайте сами, подойдут ли эти данные для вашей задачи :)

И еще важный момент: проект постоянно меняется, его данные обновляются и инструменты для работы тоже. Будем следить за обновлениями и постараемся дополнять эту статью в случае изменений, но если тема вам тоже интересна, в первую очередь следите за свежими апдейтами разработчиков!

Дополнительные ссылки на тему открытых данных:

Данные, использованные в статье, принадлежат Overture Maps Foundation, overturemaps.org, а также OpenStreetMap.

*Деятельность Meta признана экстремистской в РФ