Агрегация данных

Агрегация данных представляет собой процесс объединения большого количества объектов в укрупнённые группы для анализа пространственных закономерностей. При работе с наборами, содержащими десятки тысяч или миллионы точек, отображение каждого объекта отдельно приводит к визуальному шуму и снижению производительности. Агрегированные представления позволяют выявлять плотность распределения данных, зоны концентрации событий и пространственные кластеры.

В экосистеме Kepler.gl агрегация реализована через специализированные типы слоёв, которые выполняют вычисления непосредственно на стороне браузера с использованием возможностей WebGL. Благодаря этому даже большие объёмы геоданных могут визуализироваться интерактивно без существенных задержек.

Основными инструментами агрегации являются:

  • Hexagon Layer;
  • Grid Layer;
  • H3 Layer;
  • Cluster Layer;
  • Heatmap Layer.

Каждый из них предназначен для решения различных аналитических задач.


Причины использования агрегации

При визуализации большого количества объектов возникают следующие проблемы:

Перекрытие объектов

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

Например:

  • GPS-треки автомобилей;
  • геолокации пользователей;
  • точки продаж;
  • события телеметрии.

При наличии сотен тысяч записей карта становится практически нечитаемой.

Снижение производительности

Каждый объект требует вычислений:

  • координатного преобразования;
  • рендеринга;
  • обработки взаимодействий;
  • обновления при изменении масштаба.

Агрегированные слои уменьшают количество отображаемых элементов и ускоряют работу приложения.

Выявление закономерностей

Вместо анализа отдельных точек часто требуется определить:

  • наиболее активные районы;
  • области повышенного спроса;
  • зоны высокой плотности населения;
  • концентрации происшествий.

Агрегация позволяет перейти от просмотра отдельных объектов к анализу структуры данных.


Hexagon Layer

Hexagon Layer является одним из наиболее популярных инструментов пространственной агрегации в Kepler.gl.

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

Принцип работы

Алгоритм выполняет следующие действия:

  1. Создаёт сетку шестиугольников.
  2. Определяет принадлежность каждой точки к ячейке.
  3. Вычисляет агрегированные показатели.
  4. Отображает результат цветом и высотой.

Схематически процесс выглядит следующим образом:

Точки → Шестиугольная сетка → Подсчёт → Визуализация

Преимущества шестиугольников

Шестиугольная сетка обладает рядом преимуществ по сравнению с квадратной:

  • одинаковое расстояние до соседей;
  • отсутствие выраженного направления;
  • более естественное отображение плотности;
  • меньшие геометрические искажения.

По этой причине гексагональная агрегация широко применяется в геоаналитике.

Основные параметры

Radius

Определяет размер шестиугольника.

Малый радиус:

  • высокая детализация;
  • большое количество ячеек;
  • повышенная вычислительная нагрузка.

Большой радиус:

  • более обобщённая картина;
  • меньшее число ячеек;
  • высокая производительность.

Coverage

Управляет заполнением площади шестиугольника.

Значения:

0.0  → минимальное заполнение
1.0  → полное заполнение

Elevation Scale

Регулирует высоту трёхмерных столбцов.

Большие значения делают различия между агрегатами визуально более заметными.


Агрегируемые показатели

Для каждой ячейки могут вычисляться различные метрики.

Count

Подсчёт количества объектов.

Пример:

Ячейка A → 124 точки
Ячейка B → 567 точек
Ячейка C → 15 точек

Наиболее распространённый вариант анализа плотности.

Sum

Суммирование значений поля.

Например:

{
  "sales": 150
}

Для группы объектов:

150 + 200 + 450 + 300 = 1100

Используется для анализа:

  • продаж;
  • прибыли;
  • объёмов перевозок;
  • финансовых операций.

Average

Расчёт среднего значения.

Пример:

(10 + 20 + 30 + 40) / 4 = 25

Подходит для отображения:

  • средней температуры;
  • среднего чека;
  • средней скорости;
  • средней загрузки.

Maximum

Поиск максимального значения внутри группы.

Пример:

5, 12, 20, 8, 17

Результат:

20

Minimum

Определение минимального значения среди объектов.

Применяется при анализе:

  • цен;
  • времени ожидания;
  • расстояний;
  • температур.

Цветовая агрегация

После вычисления статистики Kepler.gl отображает результаты через цветовые шкалы.

Последовательные шкалы

Используются для непрерывных данных.

Пример:

Светлый цвет → низкое значение
Тёмный цвет → высокое значение

Подходят для:

  • плотности населения;
  • объёмов продаж;
  • количества заказов.

Дивергентные шкалы

Используются для данных с центральной точкой.

Пример:

Ниже нормы → синий
Норма → белый
Выше нормы → красный

Позволяют анализировать отклонения от среднего.

Категориальные шкалы

Применяются для дискретных категорий.

Пример:

Транспорт
Недвижимость
Торговля
Медицина

Каждая категория получает собственный цвет.


Grid Layer

Grid Layer реализует агрегацию на основе квадратной сетки.

Особенности

Территория разбивается на равные квадраты.

Для каждой ячейки вычисляются:

  • количество объектов;
  • сумма показателей;
  • средние значения;
  • экстремумы.

Отличия от Hexagon Layer

Характеристика Grid Layer Hexagon Layer
Геометрия Квадраты Шестиугольники
Скорость вычислений Выше Немного ниже
Визуальная плавность Ниже Выше
Простота интерпретации Высокая Высокая

Когда использовать Grid Layer

Подходит для:

  • статистических отчётов;
  • аналитических панелей;
  • мониторинга городской инфраструктуры;
  • отображения телеметрии.

H3 Layer

H3 Layer основан на геопространственной системе индексации, разработанной компанией Uber Technologies.

Суть H3

Вместо генерации сетки непосредственно на карте используется заранее определённая глобальная система шестиугольников.

Каждая область имеет уникальный идентификатор:

8928308280fffff

Такой подход обеспечивает:

  • стабильную пространственную индексацию;
  • возможность хранения агрегатов в базе данных;
  • одинаковую структуру ячеек для разных приложений.

Уровни разрешения

Система поддерживает множество уровней детализации.

Пример:

Resolution 1  → очень крупные ячейки
Resolution 5  → города
Resolution 8  → районы
Resolution 12 → улицы

Повышение разрешения увеличивает детализацию анализа.

Преимущества H3

  • глобальная адресация пространственных данных;
  • совместимость с аналитическими платформами;
  • удобство предвычисленных агрегатов;
  • высокая скорость визуализации.

Cluster Layer

Cluster Layer группирует близко расположенные точки в кластеры.

В отличие от Hexagon и Grid Layer здесь отсутствует фиксированная сетка.

Механизм кластеризации

Алгоритм:

  1. Анализирует расстояния между объектами.
  2. Объединяет соседние точки.
  3. Формирует единый маркер.
  4. Показывает количество объектов внутри группы.

Пример:

● 324

Число показывает количество точек внутри кластера.

Поведение при масштабировании

При увеличении масштаба:

1 кластер
↓
5 кластеров
↓
20 кластеров
↓
Отдельные точки

Такой подход обеспечивает удобную навигацию по данным.

Практические сценарии

Cluster Layer часто применяется для:

  • объектов недвижимости;
  • пользователей мобильного приложения;
  • магазинов;
  • банкоматов;
  • транспортных средств.

Heatmap Layer

Heatmap Layer строит тепловую карту распределения объектов.

Вместо геометрических ячеек используется непрерывное поле интенсивности.

Формирование тепловой карты

Каждая точка оказывает влияние на окружающую область.

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

Условный пример:

Синий   → низкая плотность
Жёлтый  → средняя плотность
Красный → высокая плотность

Radius

Один из ключевых параметров тепловой карты.

Определяет радиус влияния точки.

Малые значения:

  • подчёркивают локальные скопления;
  • показывают детальные различия.

Большие значения:

  • создают плавную поверхность;
  • выявляют глобальные тенденции.

Weight

Вес точки может определяться отдельным полем.

Пример данных:

{
  "lat": 51.12,
  "lng": 71.43,
  "orders": 250
}

Поле:

orders

Будет определять силу влияния объекта на итоговую карту.


Трёхмерная агрегация

Kepler.gl поддерживает отображение агрегированных данных в трёхмерном виде.

Экструзия

Экструзия преобразует агрегированные области в объёмные столбцы.

Высота может зависеть от:

  • количества объектов;
  • суммы значений;
  • среднего показателя;
  • пользовательской метрики.

Преимущества 3D-представления

Позволяет быстро выявлять:

  • центры активности;
  • аномально высокие значения;
  • пространственные пики.

Особенно эффективно работает для городской аналитики.

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

Используются параметры:

Elevation Scale
Elevation Range
Height Based On

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


Фильтрация перед агрегацией

Агрегация в Kepler.gl тесно связана с системой фильтров.

Перед вычислением статистики данные могут быть отфильтрованы по:

  • времени;
  • категории;
  • диапазону значений;
  • географической области.

Временная фильтрация

Пример:

Январь 2025
Февраль 2025
Март 2025

После изменения периода агрегаты пересчитываются автоматически.

Это позволяет строить динамическую аналитику и исследовать изменения во времени.

Категориальная фильтрация

Пример:

Тип транспорта = Автобус

Все остальные объекты исключаются из расчётов.


Производительность агрегации

При работе с крупными наборами данных важно учитывать особенности вычислений.

Размер набора данных

Количество записей напрямую влияет на:

  • время агрегации;
  • потребление памяти;
  • скорость обновления карты.

Практически комфортно обрабатываются сотни тысяч и даже миллионы точек при грамотной настройке слоёв.

Выбор размера ячеек

Слишком маленькие ячейки приводят к:

  • большому числу агрегатов;
  • росту нагрузки на GPU;
  • увеличению времени рендеринга.

Слишком крупные ячейки:

  • скрывают детали;
  • уменьшают аналитическую ценность.

Размер сетки должен соответствовать масштабу исследуемой территории.

Использование предварительной агрегации

Для очень больших объёмов данных часто применяется предвычисление агрегатов на сервере.

Сценарий:

База данных
    ↓
SQL-агрегация
    ↓
GeoJSON/H3
    ↓
Kepler.gl

Такой подход существенно уменьшает объём передаваемой информации.


Типичные сценарии применения

Анализ транспортных потоков

Агрегация позволяет определять:

  • перегруженные дороги;
  • популярные маршруты;
  • районы концентрации транспорта.

Наиболее часто используются:

  • Hexagon Layer;
  • H3 Layer;
  • Heatmap Layer.

Анализ продаж

Агрегирование по регионам помогает выявлять:

  • лидирующие территории;
  • слабые рынки;
  • географические тренды.

Обычно применяются:

  • Grid Layer;
  • Hexagon Layer.

Анализ мобильных пользователей

Позволяет исследовать:

  • зоны активности;
  • миграцию пользователей;
  • популярные места посещения.

Наиболее удобны:

  • Cluster Layer;
  • Heatmap Layer.

Мониторинг городских событий

Примеры:

  • аварии;
  • вызовы экстренных служб;
  • дорожные инциденты;
  • обращения граждан.

Агрегация позволяет оперативно выявлять очаги повышенной активности и анализировать пространственное распределение событий в реальном времени.