Архитектура загрузки данных в Kepler.gl основана на унификации
источников через слой парсеров, предоставляемых экосистемой loaders.gl.
Любой входной набор данных приводится к внутренней структуре: таблица
(rows/columns) + географические поля (latitude/longitude или геометрия
GeoJSON). Это позволяет использовать разнородные форматы без изменения
логики визуализации слоёв.
Ключевой принцип обработки данных — нормализация:
- табличные данные преобразуются в массив объектов
- геометрические данные приводятся к GeoJSON FeatureCollection
- типы полей определяются автоматически или задаются явно
CSV как основной табличный
формат
CSV — наиболее часто используемый формат в Kepler.gl благодаря
простоте и совместимости с аналитическими системами.
Структура данных
CSV интерпретируется как таблица, где:
- каждая строка — наблюдение
- каждый столбец — атрибут
- координаты обычно представлены как
lat /
lng или альтернативные названия
Пример логической структуры:
latitude, longitude
timestamp
category
value
Особенности обработки
При загрузке CSV происходит:
- автоматическое определение числовых и строковых типов
- попытка выявления географических полей
- парсинг временных значений (ISO 8601 и Unix timestamp)
Ограничения
- отсутствует поддержка вложенных структур
- геометрия ограничена точками (без линий и полигонов)
- требуется нормализация сложных схем до плоской таблицы
CSV используется как базовый формат для быстрых визуализаций потоков
данных и событийных наборов.
GeoJSON как
основной геопространственный формат
GeoJSON является ключевым стандартом для работы с геометрией в
Kepler.gl.
Поддерживаемая структура
Формат основан на объектах:
- FeatureCollection
- Feature
- Geometry (Point, LineString, Polygon и мульти-версии)
Пример логики:
- geometry содержит координаты
- properties содержит атрибуты
Обработка в Kepler.gl
При загрузке GeoJSON:
- каждая Feature превращается в строку таблицы
- geometry сохраняется как геометрическое поле
- properties становятся столбцами
Поддерживаемые типы
геометрии
- Point — точки на карте
- LineString — маршруты и траектории
- Polygon — области и зоны
- MultiPoint / MultiLineString / MultiPolygon — сложные структуры
Особенности
- полная поддержка многослойной визуализации
- возможность объединения с табличными источниками
- оптимизированная отрисовка через WebGL
GeoJSON является основным форматом для пространственного анализа.
JSON (произвольные структуры
данных)
JSON используется как универсальный контейнер, но требует
нормализации.
Типовые сценарии
- массив объектов
- вложенные структуры API
- лог-файлы событий
Преобразование
Kepler.gl ожидает плоскую структуру, поэтому:
- вложенные поля разворачиваются (flattening)
- массивы приводятся к строкам или отдельным таблицам
- координаты извлекаются в отдельные поля
Пример структуры
data[].location.lat
data[].location.lng
data[].metrics.value
Особенности
- высокая гибкость
- необходимость предобработки при сложных схемах
- поддержка через loaders.gl JSON parser
Shapefile и классические
ГИС-форматы
Shapefile остаётся стандартом в геоинформационных системах и
поддерживается через трансформацию.
Состав формата
Shapefile включает набор файлов:
.shp — геометрия
.dbf — атрибуты
.shx — индекс
Обработка
При загрузке:
- геометрия конвертируется в GeoJSON
- атрибуты связываются по индексу
- формируется FeatureCollection
Ограничения
- ограничение на имена полей (10 символов в классическом формате)
- отсутствие поддержки современных типов данных
- необходимость конвертации в браузере
Применение
- административные границы
- кадастровые данные
- исторические ГИС-архивы
TopoJSON как
оптимизированная геометрия
TopoJSON представляет собой топологически оптимизированный
GeoJSON.
Отличия от GeoJSON
- общие границы объектов не дублируются
- используется сжатие координат
- хранится структура арок (arcs)
В Kepler.gl
- преобразуется обратно в GeoJSON
- затем нормализуется как FeatureCollection
- используется для больших административных карт
Преимущества
- меньший размер файла
- ускоренная загрузка больших наборов границ
- эффективная работа с полигонами
KML и GPX как форматы
трекинга
KML (Keyhole Markup Language)
Используется для:
- маршрутов
- точек интереса
- полигональных зон
При обработке:
- XML парсится в геометрические структуры
- стили игнорируются или упрощаются
- данные преобразуются в GeoJSON
GPX
Специализированный формат GPS-треков:
- точки трека (trkpt)
- маршруты (routes)
- точки интереса (waypoints)
Применение
- анализ перемещений
- спортивные треки
- транспортные данные
Apache Parquet и колоночные
форматы
Kepler.gl поддерживает Parquet через loaders.gl как высокоэффективный
аналитический формат.
Особенности Parquet
- колоночное хранение
- сжатие данных
- типизация на уровне схемы
Обработка
- читается потоково
- преобразуется в табличный массив
- геополя выделяются отдельно
Преимущества
- высокая производительность на больших данных
- минимальный сетевой трафик
- поддержка аналитических пайплайнов
Apache Arrow (in-memory
аналитика)
Arrow используется как формат для эффективной передачи данных в
памяти.
Характеристики
- бинарное представление таблиц
- zero-copy доступ
- строгая схема типов
В Kepler.gl
- используется для ускоренной загрузки
- минимизирует сериализацию
- интегрируется через loaders.gl
Excel (XLSX)
XLSX поддерживается через преобразование в табличную модель.
Процесс обработки
- чтение листов как таблиц
- выбор активного листа или всех листов
- нормализация строк
Ограничения
- отсутствие геометрии как структуры
- необходимость явного указания координатных колонок
Потоковые и API-форматы
Kepler.gl часто используется с данными из API.
Типовые источники
- REST JSON endpoints
- WebSocket потоки
- streaming telemetry
Обработка
- данные приводятся к массивам объектов
- применяется incremental update модели
- поддерживается добавление новых точек без полной перезагрузки
Геометрические
поля и автоопределение координат
Механизм автоопределения является критическим компонентом унификации
форматов.
Алгоритм определения
- поиск
lat/lon, latitude/longitude
- проверка диапазонов значений
- анализ строковых паттернов
Поддерживаемые альтернативы
x / y координаты
- UTM-проекции (после конвертации)
- пользовательские имена полей
Нормализация и
внутренняя модель данных
После импорта любого формата данные приводятся к единой
структуре:
Табличная модель
- массив объектов
- ключи — названия полей
- значения — примитивы или геометрия
Геометрическая модель
- GeoJSON Feature
- координаты в WGS84
- поддержка вложенных объектов geometry
Метаданные
- тип поля (число, строка, дата)
- статистика значений
- индексируемые колонки
Смешанные наборы данных
Kepler.gl поддерживает комбинирование источников.
Примеры объединений
- CSV + GeoJSON
- API + Shapefile
- Parquet + streaming JSON
Механизм
- join по ключевым полям
- пространственные соединения (spatial join)
- агрегация по географическим зонам
Ограничения
форматов и универсальные преобразования
Несмотря на широкую поддержку, все форматы приводятся к единой
модели, что накладывает ограничения:
- сложные вложенные структуры теряются без предобработки
- многомерные данные требуют flattening
- временные ряды нормализуются в числовые или ISO-строки
- 3D-геометрия частично игнорируется или упрощается
Роль loaders.gl в
поддержке форматов
loaders.gl обеспечивает базовый уровень парсинга.
Функции слоя загрузчиков
- чтение бинарных и текстовых форматов
- унификация схем
- потоковая обработка больших файлов
- преобразование в JavaScript-структуры
Итоговая модель
совместимости
Совместимость форматов в Kepler.gl строится на принципе:
- любой формат → парсер loaders.gl → нормализованная таблица → GeoJSON
при необходимости → визуализационные слои
Эта архитектура обеспечивает независимость от источника данных и
позволяет интегрировать геопространственные, табличные и потоковые
данные в единую систему визуализации без изменения логики
отображения.