Статьи

Leafmap – интерактивные карты в две строчки кода

ГИС Программирование
Время прочтения: 3 минуты
null
Логотип Leafmap
Leafmap – это пакет Python с открытым исходным кодом для создания интерактивных карт и геопространственного анализа. Он позволяет анализировать и визуализировать геоданные за несколько строчек кода в среде Jupyter (Google Colab, Jupyter Notebook и JupyterLab).
Leafmap построен на основе нескольких пакетов с открытым исходным кодом: folium и ipyleaflet для создания интерактивных карт, WhiteboxTools и whiteboxgui для анализа геоданных и ipywidgets для разработки интерактивного интерфейса. Инструменты Leafmap позволяют пользователям легко загружать векторные и растровые данные на карту и использовать мощный аналитический бэкэнд (WhiteboxTools) для выполнения геопространственного анализа непосредственно в пользовательском интерфейсе, не написав ни строчки кода.
Сейчас библиотека WhiteboxTools содержит 500+ инструментов для расширенного анализа, таких как ГИС-анализ, геоморфометрический анализ, гидрологический анализ, математический и статистический анализ и анализ данных LiDAR.
null
Графический интерфейс WhiteboxTools, интегрированный в Leafmap. Источник – Qiusheng Wu
Leafmap предназначен для всех, кто хочет интерактивно анализировать и визуализировать геопространственные данные в среде Jupyter. Он особенно подходит для пользователей с начальными навыками программирования, но и для продвинутых программистов Leafmap может помочь при создании интерактивных веб-приложений.

Зачем нужен Leafmap, если и пакетов Python и так много

Не секрет, что есть множество пакетов Python для геопространственного анализа, таких как geopandas для векторных данных и xarray для растров. Есть и множество вариантов визуализации, начиная от специальных библиотек для создания карт (ipyleaflet и kepler.gl), и заканчивая общими инструментами, которые вдобавок поддерживают геоданные (hvPlot, GeoViews и plotly). У этих инструментов большие возможности, но отобразить и проанализировать геоданные из файлов различных форматов на интерактивной карте – сложная задача для начинающих пользователей. Многие инструменты также работают в одностороннем режиме, то есть они могут генерировать карты в браузере, но не поддерживают интерактивность и изменение элементов на карте.
Leafmap построен на двусторонней связи между фронтэндом (браузером) и бэкэндом (Python) и предоставляет множество удобных функций для загрузки и визуализации наборов данных с помощью одной строки кода.
Лучший вариант посмотреть на пакет Leafmap в работе – запустить учебник с интерактивными блокнотами в Google Colab. Первый же пример в Colab покажет, как создать интерактивную карту в пару строк кода:
!pip install leafmap

import leafmap

m = leafmap.Map(center=(50, 70), zoom=4)

m
null
Пример интерактивной карты в Leafmap. Через встроенные инструменты на ней уже можно менять оформление и добавлять фигуры или метки

Что можно делать с Leafmap

  • создавать полноценные интерактивные карты с помощью пары строк кода;
  • выбирать карты-подложки в интерактивном режиме без кода;
  • преобразовывать CSV в точки и отображать их в виде кластеров;
  • добавлять на карту свои векторные и растровые данные (шейп-файлы, GeoJSON, KML, GeoTIFF);
  • загружать и отображать данные OpenStreetMap с помощью одной строки кода;
  • добавлять на карту данные из базы данных PostGIS;
  • добавлять на карту легенду;
  • проводить геопространственный анализ с WhiteboxTools и whiteboxgui.
Подробные блокноты, анимации и видеоуроки смотрите на странице примеров.

Примеры использования Leafmap

Пример интерактивного изменения карты-подложки:
Пример сплит-панелей на картах:
null
Подробнее о Leafmap почитайте на GitHub или странице проекта, ознакомьтесь с туториалами и посмотрите обучающие ролики на YouTube.
Автор: Юлия Федорова