Работа со странами или регионами часто встречается в реальных 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 и простой интерфейс.
2. Pygal
Если вам нужна только карта мира и небольшая интерактивность, обратите внимание на Pygal. Карты можно просматривать в браузере как HTML-страницу либо скачать в формате SVG (для PNG придётся загружать дополнительные пакеты). Pygal обладает простым интерфейсом — от пользователя требуется знать только названия стран и континентов, список которых также доступен в документации [3].
В случае если вам нужны конкретные страны, то стоит подумать об использовании других библиотек.
3. OSMnx
Если нужна детализация вплоть до улиц, то OSMnx станет надежным Python-инструментом для разработчика Big Data и Data Scientist’а. OSMnx позволяет загружать пространственные модели и геометрию, проектировать, визуализировать и анализировать реальные уличные сети из API Open Street Map [4].
Open Street Map — свободный и бесплатный веб-картографический проект, который даёт возможность работать с подробными географическими картами мира. И Python-библиотека OSMnx предоставляет интерфейс взаимодействия с этими картами. С помощью этой библиотеки можно загружать и моделировать пешеходные, автомобильные или велосипедные городские сети за несколько строк кода на Python. Можно также воспроизводить:
- достопримечательности,
- контуры зданий,
- данные о высотах точек рельефа местности,
- улицы,
- скорость и время в пути.
Недостатками библиотеки является сложность установки зависимостей. Если вы хотите этого избежать, воспользуйтесь Docker-образом, который можно изолированно развернуть у себя.
4. Bokeh
Помимо обычной отрисовки карт, в Bokeh создаются интерактивные карты, по которым можно перемещаться, увеличивать или уменьшать. Bokeh предоставляет два API: Google Map и Open Street Map. Если используется первый вариант, то нужно будет получить Google API Key [5]. Для построения точек геокоординат применяется GeoJSON, который обращается к данным в формате JSON.
5. Plotly
Plotly — самая богатая на инструменты интерактивная библиотека для Python. В качестве карт здесь используется MapBox [6]. В MapBox есть ограничения по бесплатному пользованию, которые зависят от количества загрузок карт. Тем не менее, в Plotly есть фоновые и тепловые карты, а также карты плотности точек. На самих картах можно строить графы, наносить линии, прямоугольники и пузыри. Как и Bokeh, Plotly для чтения геокоординат использует GeoJSON.
Подробнее о том, как работать с геокоординатами и строить карты в Python на реальных примерах Data Science, вы узнаете на нашем специализированном курсе «VIP: Визуализация данных на языке Python» в лицензированном учебном центре обучения и повышения квалификации IT-специалистов в Москве.
- https://github.com/andrea-cuttone/geoplotlib
- http://pyglet.org/
- http://www.pygal.org/en/stable/documentation/types/maps/pygal_maps_world.html
- https://osmnx.readthedocs.io/en/stable/
- https://developers.google.com/maps/documentation/javascript/get-api-key
- https://plotly.com/python/maps/
- https://www.mapbox.com