Мелисса Филлипс и Джанна Маниачи

Поначалу может показаться ошеломляющим переход к новому программному обеспечению для визуализации данных, особенно при работе с геопространственными данными в первый раз. Геопространственные данные связывают объекты в вашем наборе данных с местоположениями на Земле либо путем включения координат долготы/широты, либо путем использования адреса или другой контрольной точки для определения местоположения ваших данных. Мы рассмотрели ArcGis, Tableau, Folium, GeoPandas и Bokeh и создали краткий обзор каждого программного обеспечения, чтобы помочь пользователям при создании этих геопространственных визуализаций в первый раз.

Данные, используемые в этой статье, представляют собой набор данных Tree Inventory Point, найденный на веб-сайте Charlottesville Open Data. Он был собран, чтобы предоставить информацию обо всех деревьях, существующих на государственной территории в городе Шарлоттсвилль в течение 2008 года. Этот проект был инициирован Charlottesville Parks & Recreation и записывает координаты, а также некоторые другие атрибуты отдельных деревьев. Если вы хотите получить доступ к этим данным самостоятельно, не стесняйтесь перейти по ссылке ниже.



АркГис

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

Карты в ArcGis состоят из базовых карт, на которые добавляются слои, включающие данные. Для начала набор данных необходимо добавить как «размещенный слой», поскольку он слишком велик, чтобы добавлять его непосредственно на карту. На главной странице вам нужно перейти на вкладку «Содержимое» и выбрать «Добавить элемент с компьютера». Загрузите файл .csv (вы должны присвоить ему тег), а затем откройте его во вьюере карт.

Это первоначальный результат. Обратите внимание на детализированную местность на базовой карте и автоматическое окрашивание 10 верхних точек данных по видам. В ArcGis есть много базовых карт на выбор.

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

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

Таблица

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

Один из многих вариантов, которые Tableau предоставляет для визуализации данных, — это карты. Очевидно, что это полезно только для геопространственных данных на карте. Процесс несложный, хотя есть важный шаг, чтобы подготовить геопространственные данные к использованию. Вы начинаете с открытия новой книги и подключения к CSV-файлу в качестве источника данных. Набор данных Tree Inventory был импортирован со столбцами x и y, которые представляли долготу и широту. Прежде чем вы сможете использовать эти данные, необходимо изменить тип данных, чтобы Tableau распознал их как геопространственные. Для этого нужно щелкнуть правой кнопкой мыши столбцы x и y и выбрать в раскрывающемся меню, чтобы дать каждому «географическую роль» в виде долготы и широты. Важно проверить исходный файл .csv, чтобы убедиться, что вы правильно определили эти столбцы, иначе точки могут оказаться в неправильном месте. После этого данные готовы к использованию.

На первом листе строки были определены как широта, а столбцы — как долгота, а следующая карта расположения основных деревьев выглядела следующим образом:

Отсюда открывается множество возможностей для включения большего количества слоев данных. Мы могли бы использовать цвет, чтобы различать виды, размер точек, чтобы отразить размер кроны, и, возможно, даже изменить базовую карту, чтобы включить демографические данные, такие как доход домохозяйства. На карте ниже показаны все эти изменения:

Tableau предоставляет возможность исследовать данные разными способами, просто перетаскивая заголовки функций на активный рабочий лист. Возможности безграничны!

Фолиум

Folium — это пакет на Python, созданный, чтобы помочь пользователям создавать геопространственные визуализации. Его легко использовать, если у пользователя есть координаты долготы и широты каждой точки данных. Каждая созданная карта фолиума является интерактивной, что означает, что пользователь может увеличивать или уменьшать масштаб и перемещаться в любом месте.

Набор данных точек инвентаризации деревьев было легко использовать в фолиуме, потому что он уже был в структуре координат. Это упростило нанесение на карту. Однако, к сожалению, фолиум может отображать данные только в формате цикла for. Это прискорбно, потому что это привело к значительному отставанию jupyterhub при попытке построить набор данных инвентаризации деревьев. Для справки, этот набор данных содержит около 8000 точек. Было почти невозможно даже получить изображение, чтобы поместить в эту статью все точки. Лучшим способом борьбы с этим было создание нескольких циклов for и отображение разных частей набора данных по одной за раз. Этот метод позволял сделать снимок до того, как jupyterhub слишком сильно отставал, но, честно говоря, это было слишком много данных для запуска folium. На карте ниже показано исходное изображение, созданное при построении сразу всех точек:

Это, очевидно, не дает большого понимания данных, которые нам предоставили, и, к сожалению, было невозможно использовать интерактивную функцию folium для увеличения и получения более качественной картины, потому что циклы for вызывали слишком много отставаний на jupyterhub.

Затем было важно протестировать различные операции по дополнению данных. Folium может добавлять на карту несколько слоев с помощью файла geojson. Поскольку у нас не было файла geojson с соответствующими данными по Шарлоттсвиллю, пример не был добавлен в эту статью, но это классная функция в фолиуме.

Ниже показана более сложная карта, на которой показано агентство, установившее каждое дерево. Кажется, что добавить легенду к картам-фолиумам не так-то просто. Поскольку система является интерактивной, легко добавлять всплывающие окна, предоставляющие дополнительную информацию о данных. Обычную легенду можно добавить с помощью html или легко добавить, если это картограмма, но в противном случае лучший способ добавить легенду — использовать функцию всплывающего окна.

Folium также имеет множество других функций увеличения данных, таких как наслоение, которое можно выполнить с помощью файлов geojson. Существует множество вариантов использования folium, достаточно немного изучить, и вы быстро станете экспертом.

Геопанды

GeoPandas — это проект с открытым исходным кодом, созданный для работы с геопространственными данными в python. Он был создан для объединения картирования с ранее существовавшей библиотекой Python, pandas, которая уже широко используется для анализа и визуализации данных. Это работает, разрешая пространственные операции над геометрическими типами. Цель GeoPandas заключалась в том, чтобы позволить пользователю создавать карты на Python, для чего в противном случае потребовалась бы пространственная база данных.

К сожалению, поскольку GeoPandas не является пространственной базой данных, она требует небольшой дополнительной работы со стороны пользователя. Чтобы на самом деле создать карту, человек должен использовать GeoDataFrame. Это pandas.DataFrame со столбцом с геометрией. Пользователь должен построить эти геометрические данные, чтобы получить карту, а затем нанести свои фактические точки, чтобы визуализировать свои данные. Единственные карты, к которым вы можете получить доступ без создания собственного шейп-файла, — это карта мира и карта районов Нью-Йорка.

По ссылке ниже показано, откуда были получены данные для базовой карты:



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

Конечно, вы можете настроить визуализацию для отображения различных атрибутов данных, но визуализация довольно проста. Он не интерактивен и в значительной степени зависит от описательной базовой карты, которую бывает трудно найти. GeoPandas предлагает способ создания простых карт, но не создает больших деталей в каждой визуализации. Это немного сбивает с толку, чтобы начать работу, и потребовалось некоторое время, чтобы найти необходимую базовую карту.

Боке

Bokeh — это программная библиотека, которая позволяет пользователям создавать интерактивные веб-визуализации. Его можно установить на компьютер и получить к нему доступ с помощью python. Bokeh имеет множество инструментов для отображения данных, и набор инструментов для картографирования геопространственных данных — лишь малая их часть. Таким образом, все еще ведется работа, чтобы сделать его более удобным и актуальным.

Чтобы создать карту, сначала необходимо импортировать библиотеки построения из Bokeh и тайлы от поставщика тайлов. Плитки формируют основу визуализации, поэтому в этом примере плитка STAMEN_TERRAIN будет формировать базовую карту. В то время как большинство программного обеспечения для геопространственной картографии использует веб-проекцию Меркатора для отображения сферических координат на линейной сетке (т. е. отображение круглой земли в плоской двухмерной версии), даже не осознавая этого, Боке требует от пользователя настройки долготы и широты. преобразовать данные в единицы Меркатора, чтобы отобразить местоположения на плитке. Установив оси на меркатор, отметки на осях будут переведены обратно в обычные координаты долготы/широты. Для этой задачи мы позаимствовали следующий код у Colin Patrick Reid и адаптировали наши данные, чтобы они соответствовали форме ввода:

После правильного форматирования данных карту Боке можно настроить с помощью следующего кода, адаптированного из ответа Переполнение стека:

Bokeh предоставляет множество параметров форматирования для вывода и инструментов для облегчения навигации. Пользователи могут настроить инструменты, чтобы выбрать, какие параметры «масштабирования» и «панорамирования» им нужны, а также если им нужна кнопка «сброс». Вот базовый график данных Tree Inventory с параметрами навигации «pan», «wheel_zoom», «box_zoom» и «reset»:

Когда дело доходит до добавления большей глубины визуализации, например, изменения размера точек или изменения цвета в зависимости от некоторых характеристик данных, есть много путей вперед, но они не всегда просты. Числа в столбце навеса варьируются от 1 до 3, поэтому их можно использовать для изменения размера точек, но их необходимо увеличить в несколько раз, чтобы сделать их видимыми. Попытка изменить цвет в зависимости от типа вида более сложна. Здесь к данным был добавлен столбец «цвет», и он был нанесен на график с каждой точкой, включив ее в p.circle().

Вот более выразительная карта:

Есть способы добавить дополнительные функции и создать легенду, но они потребуют больше времени и внимания к деталям.

Боке предоставляет множество методов для полной настройки конечного результата, а полученная визуализация полностью интерактивна и визуально приятна. Из-за огромного количества опций и несколько абстрактного кода для получения результатов кривая обучения крутая. Специалист по визуализации данных, который ищет новый инструмент для создания интерактивной визуализации, может преуспеть в Bokeh, хотя новичок, который хочет получить быстрый результат с минимальным вводом данных, может выбрать один из более удобных вариантов программного обеспечения.

Мы надеемся, что эта информация послужила полезным руководством при выборе программного обеспечения для геопространственной визуализации, которое лучше всего подходит для каждого проекта. Желаем вам удачи в ваших картографических начинаниях. Развлекайся!