Поддерживаемые форматы данных

Архитектура загрузки данных в 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 при необходимости → визуализационные слои

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