🛣️ Landing board heatmap generation
🛣️ Генерация тепловых карт летка
🎯 Назначение
Генерирует суточные визуальные тепловые карты, показывающие паттерны движения пчёл и зоны активности на летке, чтобы оптимизировать конструкцию входа и понять поток трафика.
🎭 Пользовательская история
- Как пчеловод, заинтересованный в оптимизации входа улья,
- я хочу открыть раздел Entrance Observer в деталях улья и переключиться с live view или записей на тепловые карты,
- чтобы по умолчанию сравнивать последний день и переходить к предыдущим дням при расследовании узких мест в трафике.
🚀 Ключевые преимущества
- Оптимизация трафика: выявление перегруженных зон и потенциальных улучшений
- Инсайты по конструкции входа: подход к модификации летка на основе данных
- Долгосрочный анализ поведения: понимание сезонных и суточных паттернов
- Ценность для исследований: визуальные данные для изучения поведения пчёл у входа
🔧 Технический обзор
Вычисление тепловых карт выполняется в gate-video-stream, а не на edge-устройстве entrance-observer.
entrance-observer по-прежнему детектирует пчёл и ведёт локальную суточную JSONL-историю треков для отладки. После каждого анализа он также отправляет отслеживаемые координаты в gate-video-stream с ID корпуса, временной меткой, размерами кадра и trackHistory. gate-video-stream агрегирует эти траектории в высокоразрешающую разреженную пиксельную сетку на пользователя, корпус и день, рендерит суточную PNG тепловую карту в исходном разрешении кадра, сохраняет её в том же паттерне object-storage, что и видеозаписи, и отдаёт в веб-приложение через GraphQL.
📋 Критерии приёмки
entrance-observerзагружает payload траекторий в video stream service после анализа трекингаgate-video-streamвычисляет и сохраняет одну накопительную тепловую карту на вход и день- Сохранённые тепловые карты адресуются по URL аналогично видео-активам
- В веб-приложении Hive details > Entrance Observer три вкладки: live view, записи и тепловые карты
- Вкладка тепловых карт по умолчанию показывает последний доступный день
- Элементы управления «предыдущий день», «следующий день» и «последний» позволяют навигировать по историческим картам
- Отсутствующие дни показывают пустое состояние вместо ошибки
🚫 Вне области
- 3D-визуализация или анализ глубины
- Корреляция с погодой и паттернами трафика
- Автоматические рекомендации по конструкции летка
- Замена сырых видеозаписей тепловыми картами
🏗️ Подход к реализации
- Входные данные: массивы координат track history, сгенерированные на edge, по ID трека
- Транспорт: аутентифицированная REST-загрузка из
entrance-observerвgate-video-stream - Обработка: серверное суточное накопление по пикселям с логарифмическим визуальным масштабированием, сохраняющее детали вроде задержки в углах и трафика у краёв
- Визуализация: высокоразрешающая PNG тепловая карта, генерируемая
gate-video-stream - Хранение: object storage в пространстве имён пользователя и камеры входа, плюс строка индекса MySQL для навигации по дням
- Веб-приложение: GraphQL-запрос
entranceHeatmapsпитает вкладку тепловых карт в деталях улья
📊 Метрики успеха
- Корректная обработка координат в границах кадра (0 <= x < width, 0 <= y < height)
- Суточная тепловая карта генерируется из загруженных пакетов траекторий
- Правильная нормализация и цветовое отображение для визуальной интерпретации
- Веб-приложение может открыть последнюю доступную тепловую карту без знания даты заранее
- Историческая навигация работает по дням с картами и без них
💳 Доступность
Тепловые карты летка включены в Professional plan как часть аналитики Entrance Observer.
🔗 Связанные функции
- 📈 Подсчёт пчёл на входе и выходе - на edge
- 📊 Отчётность метрик движения пчёл
- 🎥 Видеостриминг через API
- Хранилище телеметрии улья
📚 Ресурсы и ссылки
💬 Заметки
Старый локальный скрипт heatmap_generator.py остаётся полезным для офлайн-отладки и backfill. Продакшен-тепловые карты генерируются централизованно как высокоразрешающие PNG, чтобы веб-приложение могло показывать их рядом с live-стримами и сохранёнными видеозаписями без потери деталей летка.