Обрабатывайте геоданные на Python с помощью библиотеки OSMnx и GeoPandas.

уровень: простой | язык: Python | технический стек: OSMnx, GeoPandas

Привет, мир! В этой статье мы рассмотрим работу с геоданными с помощью библиотеки OSMnx и GeoPandas. Мы будем получать данные из OpenStreetMap (позже переименованной в OSM) и рисовать красивые карты, которые вы легко сможете распечатать и повесить на стену. Или используйте черную магию и используйте их для своего проекта DS.

Во-первых, давайте выясним, что такое OSMnx. Это как networkx только для OSM с блэкджеком и данными. *фейспалм*

Согласно официальной документации OSMnx, это:

OSMnx — это пакет Python, который позволяет загружать геопространственные данные из OpenStreetMap и моделировать, проектировать, визуализировать и анализировать реальные уличные сети и любую другую геопространственную геометрию. Вы можете загружать и моделировать городские сети, в которых можно ходить, ездить или ездить на велосипеде, с помощью одной строки кода Python, а затем легко анализировать и визуализировать их. Вы можете так же легко загружать и работать с другими типами инфраструктуры, удобствами/достопримечательностями, контурами зданий, данными о высоте, азимутами/направлениями улиц и скоростью/временем в пути.

Установка

Давайте установим эту библиотеку. Установка будет немного сложной для новичков, но, следуя инструкциям, у вас все должно получиться. Я использую Windows и Anaconda для управления своей средой. Это среды, для которых будут инструкции, так как в Linux все немного проще, и просто используйте поисковую систему, чтобы найти информацию об установке.

Для начала нам понадобятся GDAL и Fiona. На сегодняшний день мне ни разу не удалось установить их через conda без ошибок, и каждый раз приходится приходить скачивать файлы WHL и устанавливать их вручную. Каждый раз я получал исходные файлы с этого сайта (смотрите сюда, если просто пытаетесь найти ссылку). Найдите подходящую версию Python для вас и вашей системы. Загрузите файлы и установите их один за другим с помощью команды:

pip install path/to/file/GDAL_file.whl
pip install path/to/file/Fiona_file.whl

Если у вас возникли проблемы с установкой Fiona после установки GDAL, а сам GDAL не обнаруживается в процессе установки, попробуйте просто перезагрузить компьютер. После этого все пути будут обновлены, и вы сможете установить Fiona.

После того, как мы с вами подготовились, установите OSMnx с помощью команды:

pip install osmnx

С использованием

Поздравляем с трудным путем самурая, вы успешно установили GDAL и установили OSMnx. Приступаем к изучению библиотеки. Попробуем попасть в любой город.

Введите название искомого региона и передайте его функции геокодера. Результатом является geopandas.DataFrame со всеми характеристиками объекта и его геометрией/координатами.

Мы можем собирать данные в пределах региона с помощью функции geometries_from_place, передавая также наше region_name, но я продемонстрирую другой вариант с ограничением по полигону, чтобы вы могли рассмотреть больше функционала библиотеки. Также мы получим дороги по графическому модулю.

Полный список тегов и категорий можно найти на веб-сайте OpenStreetMap.

Заговор

Давайте поместим все наши данные на одну карту и получим красивое изображение, которое можно распечатать и повесить в качестве плаката в вашей комнате.
Мы построим графики, используя встроенные графические инструменты в GeoPandas. Они работают так же, как и в пандах.

Заключение

В этой статье мы познакомились с очень классной библиотекой OSMnx, которая очень упрощает работу с исходниками OpenStreetMap. Для получения информации больше не требуется код пасты. Я предлагаю вам ознакомиться с полным функционалом, используя официальную документацию библиотеки, и вы увидите, что она может практически полностью заменить запросы и строковые запросы.

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

Давайте оставаться на связи. ЛинкедИн | Средний

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.