Обрабатывайте геоданные на 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.