5 библиотек Python для работы с картами

автор рубрика ,
5 библиотек Python для работы с картами

Работа со странами или регионами часто встречается в реальных Data Science проектах, поэтому на практике часто приходится сталкиваться с географическими координатами и картами. Читайте в нашей статье о 5 популярных библиотеках Python для работы с картами: Geoplotlib, Pygal, OSMnx, Bokeh, Plotly.

1. Geoplotlib

Geoplotlib предоставляет набор инструментов для создания карт и построения географических данных [1]. Эту Python-библиотеку можно использовать для создания различных типов карт и графов:

  • фоновые карты (choropleths),
  • тепловые карты (heatmaps),
  • карты плотности точек (dot density maps),
  • пространственные графы,
  • диаграммы Вороного (Voronoi diagram).

Для использования Geoplotlib у вас должен быть установлен Pyglet – объектно-ориентированный программный интерфейс [2]. Достоинством данной библиотеки является интеграция с Pandas и простой интерфейс.

Geoplotlib Python
Пример карты в Geoplotlib

2. Pygal

Если вам нужна только карта мира и небольшая интерактивность, обратите внимание на Pygal. Карты можно просматривать в браузере как HTML-страницу либо скачать в формате SVG (для PNG придётся загружать дополнительные пакеты). Pygal обладает простым интерфейсом – от пользователя требуется знать только названия стран и континентов, список которых также доступен в документации [3].

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

Geoplotlib Python
Пример карты мира в Pygal

3. OSMnx

Если нужна детализация вплоть до улиц, то OSMnx станет надежным Python-инструментом для разработчика Big Data и Data Scientist’а. OSMnx позволяет загружать пространственные модели и геометрию, проектировать, визуализировать и анализировать реальные уличные сети из API Open Street Map [4].

OSMnx Python
Пример карты Модены (Италия) в OSMnx

Open Street Map — свободный и бесплатный веб-картографический проект, который даёт возможность работать с подробными географическими картами мира. И Python-библиотека OSMnx предоставляет интерфейс взаимодействия с этими картами. С помощью этой библиотеки можно загружать и моделировать пешеходные, автомобильные или велосипедные городские сети за несколько строк кода на Python. Можно также воспроизводить:

  • достопримечательности,
  • контуры зданий,
  • данные о высотах точек рельефа местности,
  • улицы,
  • скорость и время в пути.

Недостатками библиотеки является сложность установки зависимостей. Если вы хотите этого избежать, воспользуйтесь Docker-образом, который можно изолированно развернуть у себя.

4. Bokeh

Помимо обычной отрисовки карт, в Bokeh создаются интерактивные карты, по которым можно перемещаться, увеличивать или уменьшать. Bokeh предоставляет два API: Google Map и Open Street Map. Если используется первый вариант, то нужно будет получить Google API Key [5]. Для построения точек геокоординат применяется GeoJSON, который обращается к данным в формате JSON.

Bokeh Python
Пример карты в Bokeh

5. Plotly

Plotly — самая богатая на инструменты интерактивная библиотека для Python. В качестве карт здесь используется MapBox [6]. В MapBox есть ограничения по бесплатному пользованию, которые зависят от количества загрузок карт. Тем не менее, в Plotly есть фоновые и тепловые карты, а также карты плотности точек. На самих картах можно строить графы, наносить линии, прямоугольники и пузыри. Как и Bokeh, Plotly для чтения геокоординат использует GeoJSON.

Plotly Python
Пример карты в Plotly

 

Подробнее о том, как работать с геокоординатами и строить карты в Python на реальных примерах Data Science, вы узнаете на нашем специализированном курсе «VIP: Визуализация данных на языке Python» в лицензированном учебном центре обучения и повышения квалификации IT-специалистов в Москве.

Источники
  1. https://github.com/andrea-cuttone/geoplotlib
  2. http://pyglet.org/
  3. http://www.pygal.org/en/stable/documentation/types/maps/pygal_maps_world.html
  4. https://osmnx.readthedocs.io/en/stable/
  5. https://developers.google.com/maps/documentation/javascript/get-api-key
  6. https://plotly.com/python/maps/
  7. https://www.mapbox.com
Комментировать

Ваш адрес email не будет опубликован. Обязательные поля помечены *