Знакомство с вашими данными является ключом к созданию и развертыванию надежной системы искусственного интеллекта / машинного обучения в производственной среде. Поэтому крайне важно заранее выполнить хороший исследовательский анализ данных (EDA), прежде чем формулировать решение AI / ML. Однако выполнение EDA для набора геопространственных данных может показаться сложной, а зачастую и сложной задачей, особенно если вам нужно перемещаться по обширным областям и многим уровням данных для анализа. Не волнуйтесь, с достаточной практикой вы научитесь этому, и этот пост, надеюсь, поможет вам начать в этом направлении!

Оглавление:

  1. Установка
  2. Введение в виджет
  3. Создание простой карты
  4. Настройка вашей карты
  5. Введение в слои, растр и вектор
  6. Добавление слоя

Установка

В этом руководстве по интерактивной визуализации геопространственных данных в Jupyter Notebook мы собираемся установить библиотеку ipyleaflet.

conda install -c conda-forge ipyleaflet

Что такое ipyleaflet?

Leaflet - одна из самых популярных библиотек JavaScript для визуализации геопространственных данных. Он широко используется крупными организациями, такими как OpenStreetMap и MapBox.

Если вы ищете альтернативу ipyleaflet, вы можете рассмотреть пакет Python folium, который поможет вам в визуализации интерактивной карты листовок.

Введение в виджет

Теперь, когда мы рассмотрели этап настройки, давайте углубимся в тему этого сообщения.

Что вы имеете в виду под интерактивной визуализацией в Jupyter? Как этого добиться с помощью виджета? Самое главное, что такое виджет?

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

Интерактивная визуализация? это просто означает возможность взаимодействовать с вашей визуализацией в режиме реального времени. Возьмем, к примеру, следующий GIF. Вы можете взаимодействовать с ползунком с помощью визуального средства.

Виджет Jupyter? они называются «специальными объектами», которые можно инициализировать и отображать в записной книжке. Они также являются двунаправленными, что означает, что виджет не просто отображается, но может принимать вводимые пользователем данные, которые впоследствии запускают новые вычисления. Самое главное, что они расширяемы. Виджет Jupyter позволяет другим библиотекам создавать дополнительные функции поверх своей функциональности, например наш ipyleaflet.

Создание простой карты

Теперь мы готовы обрабатывать ipyleaflet. Для начала покажем основную карту мира.

Сначала нам нужно импортировать библиотеку ipyleaflet и ее объект Map.

from ipyleaflet import Map

Затем мы создаем и визуализируем объект Map с учетом координат центральной точки и уровней масштабирования.

Map(center = (60, -2.2), zoom = 2, min_zoom = 1, max_zoom = 20)

В приведенном выше GIF-изображении вы можете взаимодействовать с вновь созданной картой путем прокрутки и панорамирования выходных визуальных элементов. Отлично сделано!

Настройка вашей карты

Мы также можем настроить нашу карту, например, стилизовав базовую карту.

Сначала мы импортируем другой объект, называемый базовыми картами.

from ipyleaflet import Map, basemaps

Затем мы добавляем визуализацию к нашему объекту Map следующим образом.

map = Map(center=(60,-2.2), zoom=2, basemap=basemaps.Stamen.Terrain)

Карта становится красивее с настраиваемыми базовыми картами местности.

Доступно множество настроек. Ознакомьтесь с их Справочником по API для более подробного объяснения.

Введение в слои, растр и вектор

Теперь именно здесь будет проходить большая часть вашего EDA. Я собираюсь продемонстрировать, как добавлять слои и как ими управлять.

Но обо всем по порядку.

Что такое слои? Слои используются для отображения наборов географических данных. Их цель - разделить различную географическую информацию, которая может коррелировать или не коррелировать друг с другом. Например, чтобы продемонстрировать карту города, вы можете отобразить слой базовой карты (выделенный ранее), дорожную сеть в городе, жилые дома, уровень высоты, а также наличие водоемов и зон отдыха. .

Что такое растр или вектор? Растровые данные хранятся в виде сетки значений (представьте изображение с пикселями), в то время как векторные данные представляют собой конкретную функцию, например точка, линия или многоугольник.

На рисунке ниже представлена ​​удобная иллюстрация, чтобы узнать, что такое слои, и разницу между растровыми / векторными данными.

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



Добавление слоя

И последнее, но не менее важное: интерактивная геопространственная карта неполна без возможности добавлять свои собственные слои.

Давайте сначала добавим растровый слой, вызвав метод add_layer ().

from ipyleaflet import basemap_to_tiles as btt, basemaps, Map

raster = btt(basemaps.NASAGIBS.ModisTerraTrueColorCR, "2019-06-24")
map.add_layer(raster)
map

Если вы решите удалить этот слой, вы можете просто вызвать метод remove_layer ().

map.remove_layer(raster)
map

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

from ipyleaflet import LayersControl
map.add_control(LayersControl())

Теперь у вас есть больше возможностей для управления вашим слоем на самой карте!

Заключение

Это введение в интерактивную геопространственную визуализацию в Jupyter Notebook. Вскоре я создам вторую часть, чтобы обсудить более продвинутые методы, такие как разделение карты, добавление данных из GeoJSON и других файловых форматов и т. Д. Следите за обновлениями!

Подпишитесь на мою информационную рассылку по электронной почте: https://tinyurl.com/2npw2fnz , где я регулярно резюмирую исследовательские работы по ИИ на простом английском языке и в красивой визуализации.