Время прочтения: 7 минут
Слои с большим количеством точек могут быть обманчивы. То, что кажется всего несколькими точками на небольшой площади, на самом деле может быть несколькими тысячами.
Рассмотрим пять техник визуализации точечных данных с высокой плотностью на примере карт дорожно-транспортных происшествий в Нью-Йорке: (1) прозрачность; (2) тепловая карта; (3) кластеризация; (4) биннинг или сеточное картирование и (5) свечение.
Оригинальный текст написан для демонстрации возможностей ArcGIS Maps SDK, но эти советы подходят для визуализации большого количества точечных данных независимо от инструмента.
(1) Прозрачность
Любой слой с перекрывающимися элементами можно показать эффективнее, если установить у символов высокую прозрачность. Чем выше плотность, тем более высокий порог прозрачности подойдет для объектов (в примере с сотней тысяч точек ДТП лучше всего работает прозрачность от 95% до 99%).
Прозрачность в мелком масштабе
Когда точки накладываются друг на друга, прозрачность каждого объекта имеет эффект наложения, то есть области с большей плотностью точек выделяются на карте ярче, чем области с меньшей плотностью, где символы становятся почти прозрачными. Отдельные точки при этом различаются с трудом, зато хорошо видны области с высокой плотностью перекрывающихся точек.
Прозрачность в крупном масштабе
На следующем изображении показано, как это выглядит, если увеличить масштаб.
Для интерактивных карт в этом случае можно установить визуальную переменную, чтобы при изменении масштаба менялся и размер точек. Без этого точки с фиксированным размером в мелком масштабе начнут накладываться друг на друга, и в результате получится сгусток точек, как на изображении в начале статьи.
Когда использовать этот стиль: на картах мелкого масштаба.
Эта техника хорошо работает на картах мелкого масштаба, когда расположение отдельных точек не так важно, как визуализация общей плотности. Чуть хуже она работает на крупномасштабных картах, когда пользователя, например, больше интересует местоположение отдельных аварий: при значении прозрачности 97,5% ему будет сложно увидеть отдельные точки.
(2) Тепловая карта
Тепловая карта отображает особенности точек в виде непрерывной поверхности, цветом выделяя области с более высокой плотностью точек. Можно также оценить районы тепловой карты, где точек нет, так как каждый пиксель окрашивается на основе интерполированного значения между областями с высокой и низкой плотностью.
Тепловая карта в мелком масштабе
Тепловая карта в крупном масштабе
Тепловую карту эффективно использовать и для крупномасштабных карт, но значения рендера должны быть обновлены, чтобы визуализация более соответствовала масштабу.
Если не обновить стиль, то интерполированная поверхность распространяется на такие области, как здания и парки, где аварии произойти не могут.
Например, свойство referenceScale рендера HeatmapRenderer позволяет привязать визуализацию к определенному масштабу. Это делает тепловую карту статичной, поэтому вид плотности остается неизменным при увеличении и уменьшении масштаба.
Когда использовать этот стиль: для визуализации непрерывных данных.
Эта техника хорошо работает в любом масштабе, где точки накладываются друг на друга. В зависимости от данных, может быть более целесообразно визуализировать отдельные точки с помощью отдельных символов-маркеров в более крупных масштабах, когда точки не перекрываются. Сохранение тепловой карты в крупных масштабах целесообразно, когда точки представляют собой отдельные наблюдения для непрерывных данных, таких как загрязнение воздуха.
(3) Кластеризация
Кластеризация – это метод представления точек в виде совокупностей на основе их близости друг к другу в пространстве. Как правило, кластеры имеют пропорциональный размер, основанный на количестве точек в каждом кластере.
Кластеры автоматически подстраиваются под масштаб, что делает этот метод хорошим способом просмотра пространственных моделей плотности в разных разрешениях. В отличие от непрозрачности или тепловых карт, кластеризация более гибкая, и на ее основе можно создавать многомерные визуализации.
Кластеры точек в мелком масштабе
Кластеры точек в крупном масштабе
Когда использовать этот стиль: для уменьшения визуального беспорядка и просмотра разномасштабных деталей.
Эта техника хорошо работает на всех масштабах. Она лучше всего подходит для визуализации отдельных точек, в отличие от методов с интерполяцией (таких как тепловая карта). При визуализации данных, связанных с линейной сетью, например, автомобильных аварий на дорогах, использование меньшего радиуса кластера приведет к понятному отображению кластеров на дорогах и перекрестках.
Кластеризация также позволяет отображать дополнительную информацию в дополнение к плотности, например, преобладающую категорию точек в кластере, свойства точек внутри кластера (в виде круговой диаграммы) или другие данные о точках.
(4) Биннинг
Биннинг (или сеточное картирование) объединяет данные в заранее определенные географические ячейки, эффективно представляя точечные данные в виде слоя полигонов с сеткой. Для визуализации бинов используется цветовая шкала, которая может отображать количество точек в ячейке или их свойства. Для группировки ячеек также можно использовать любой стиль, подходящий для полигональных слоев. JavaScript Maps API использует для создания бинов систему геокодирования geohash.
Выбор подходящего размера ячеек сетки зависит от масштаба просмотра и необходимого разрешения данных.
Биннинг в мелком масштабе
Ниже показаны автомобильные аварии, отсортированные по фиксированному уровню (fixedBinLevel), равному 6.
Биннинг в крупном масштабе
Как и при выборе соответствующего радиуса для кластеризации или тепловой карты, размер каждого бина должен быть определен с учетом предполагаемого масштаба. На следующем изображении показаны автомобильные аварии, разбитые на бины при фиксированном уровне бина 7. Такой размер более уместен при увеличении масштаба, поскольку он показывает более точное распределение плотности аварий вдоль дорог.
Когда использовать этот стиль: для визуализации плотности на основе географической сетки.
В отличие от кластеризации, которая агрегирует данные в пространстве экрана, биннинг всегда визуализирует плотность на основе географических границ, что делает визуализацию одинаковой в различных масштабах. Поскольку кластеры по умолчанию не показывают географическое положение отдельных объектов, неясно, где именно находятся точки. Ячейки дают немного больше точности.
Биннинг также подойдет, когда требуется отобразить на карте дополнительную информацию, например, указать преобладающую категорию точек, добавить круговые диаграммы или другую информацию.
(5) Свечение
Свечение (bloom) – это визуальный эффект, который делает символы ярче в зависимости от их плотности. Свечение имеет добавочный эффект, поэтому области, где перекрывается больше объектов, будут светиться ярче и интенсивнее. Особенно хорошо это заметно на темном фоне.
Свечение в крупном масштабе
На крупномасштабных картах области с более высокой плотностью мест дорожно-транспортных происшествий выглядят ярче. Однако, поскольку различия в плотности малозаметны, вариации на этой карте не столь очевидны, как при других методах, например, при кластеризации.
Свечение в мелком масштабе
Несмотря на то, что свечение визуально привлекает внимание, бывает очень трудно заставить его “работать” в нескольких масштабах. Например, при уменьшении масштаба трудно увидеть перекрестки с более высокой плотностью аварий.
Когда использовать этот стиль: для ярких различий в плотности при ограниченном диапазоне масштабов.
Свечение воспринимается легче, когда есть яркие различия в плотности. Если плотность более детализирована, различия в яркости трудно интерпретировать.
Кстати, в статье про режимы смешивания мы подробно рассказали, как сделать неоновое свечение точек в QGIS.
Заключение
При выборе способа визуализации плотности точек всегда задавайте себе вопросы:
- В каком масштабе или диапазоне масштабов целесообразно показать плотность?
- В каком масштабе или диапазоне визуализация плотности важна для конечного пользователя?
- Есть ли масштаб, при котором просмотр отдельных мест становится важным?
- Точки показывают непрерывное или дискретное явление? Если непрерывное, то диапазон значений мал или велик?
- Нужно ли наносить на карту другую атрибутивную информацию кроме плотности?
Выбор метода зависит от личных предпочтений картографа. У каждой техники найдутся преимущества и ограничения, поэтому следует обдуманно выбирать, чем можно пренебречь, а что оставить на карте.
Оригинал: Five ways to visualize point density using the same dataset – Kristian Ekenes – ArcGIS Blog – 03/01/2023.
Материал подготовила Ксения Михайлова