Числовые фильтры в Kepler.gl представляют собой механизм динамического ограничения набора данных на основе количественных значений атрибутов. Они используются для работы с непрерывными и дискретными числовыми полями, позволяя выделять подмножества объектов без изменения исходного датасета.
Ключевая особенность числовых фильтров заключается в том, что они применяются на уровне визуализации, а не на уровне подготовки данных. Это обеспечивает интерактивность анализа и возможность мгновенной проверки гипотез.
Каждый числовой фильтр в Kepler.gl описывается как объект, связанный с конкретным слоем данных. Он включает:
Фильтр всегда привязан к слою, но может влиять на несколько визуальных представлений, если они используют один и тот же источник данных.
Числовые фильтры работают с несколькими типами данных:
Используются для измерений:
Фильтрация происходит по диапазону:
[minValue ... maxValue]
Используются для категорий, закодированных числами:
В этом случае фильтр может вести себя как набор точечных значений или интервалов.
Диапазонный фильтр является основным типом числового фильтра. Он задаёт нижнюю и верхнюю границы включения объектов в визуализацию.
Логика применения:
if (value >= filterMin && value <= filterMax) {
feature.visible = true;
} else {
feature.visible = false;
}
На уровне визуализации это приводит к перерасчёту отображаемых объектов без изменения исходного слоя данных.
Каждый слой в Kepler.gl может содержать несколько фильтров. При этом числовой фильтр работает только с указанным полем.
Типичная структура слоя:
Числовой фильтр применяется после загрузки данных, но до рендеринга геометрии.
Порядок обработки:
Интерфейс Kepler.gl предоставляет несколько способов управления числовыми фильтрами:
Основной элемент управления — двойной слайдер:
Изменение значений мгновенно обновляет слой.
Дополнительный способ задания границ вручную:
При удержании клавиш или использовании колесика мыши возможно пошаговое изменение значения, определяемое параметром step.
Фильтрация в Kepler.gl оптимизирована для работы с большими наборами данных. Основные механизмы:
Результаты фильтрации могут кэшироваться для предотвращения повторных вычислений при одинаковых параметрах.
Массивы значений обрабатываются пакетно, что снижает нагрузку на CPU.
Фильтрация часто переносится на уровень рендеринга, где GPU отбрасывает невидимые объекты.
При наличии нескольких фильтров на одном слое применяется логика AND:
visible = filter1(value) AND filter2(value) AND filter3(value)
Каждый дополнительный фильтр сужает выборку.
Если фильтры применяются к разным полям, они работают независимо, но объединяются в итоговой проверке видимости объекта.
Числовые фильтры часто используются совместно с временными полями. В этом случае:
Это позволяет реализовывать динамическое воспроизведение данных.
Каждое изменение фильтра вызывает пересборку состояния слоя:
При большом количестве слоёв важно учитывать стоимость пересчёта.
Если min > max, слой становится полностью невидимым.
Значения за пределами domain автоматически ограничиваются.
Отсутствующие значения:
Если поле не числовое, фильтр не применяется и может игнорироваться системой.
В некоторых случаях числовые фильтры применяются к нормализованным значениям:
Это позволяет делать сравнимыми данные разных масштабов.
Числовые фильтры тесно связаны с визуальными параметрами слоя:
Фильтрация изменяет не только состав объектов, но и восприятие распределения данных.
Система числовых фильтров предполагает:
Такая модель обеспечивает воспроизводимость анализа и стабильность интерфейса при работе с большими массивами данных.