Центри Уваги

Всі підрозділи
Всього полігонів
✈ Крило
🚁 Коптер
Діапазон дат
📐 Полігони зон польотів
🔥 Теплова карта
⬡ Гексагональна щільність

📊 Спостереження в часі

🏷️ Найбільше полігонів за підрозділами

    🛩️ Крило / Коптер

    👥 Щільність нальотів

    👥 Найбільше нальотів за підрозділами

      500m
      15x
      80%
      100%
      🏔️ 3D Гексагони
      70°
      Період А: Період Б:
      📐 Період А
      📐 Період Б
      🏷️ Підрозділ А
      🏷️ Підрозділ Б
      ⏱️ Хронологія — полігони до обраної дати
      📡 Щільність
      6
      3 мало12 багато
      800м
      районивулиці
      40px
      точкиплавно
      1.5x
      рівнорізко
      🔍 Просторовий запит Намалюйте прямокутник на карті, щоб побачити всі спостереження в цьому районі
      🔍 Оберіть район на карті
      🖱️ Натисніть та тягніть, щоб намалювати прямокутник

      📖 Інструкція користувача

      Як працювати з дашбордом — фільтри, карти, порівняння, аналітика.

      📊 Огляд

      Головна вкладка з основною інформацією про спостереження БПЛА.

      • KPI картки — кількість полігонів, розподіл Крило/Коптер, діапазон дат
      • Карта полігонів — всі зафіксовані зони польотів. Клік по полігону → деталі
      • Теплова карта — щільність спостережень (яскравіше = більше польотів)
      • Гексагональна щільність — агреговані дані по шестикутниках
      • Графіки — динаміка в часі, топ підрозділів, Крило/Коптер
      💡 Кнопка ⛶ у кутку карти → повноекранний режим з панеллю фільтрів зліва.

      🔍 Фільтри

      Верхня панель. Впливають на всі вкладки (крім Порівняння — там свої).

      • Період — пресети (12/24 год, сьогодні, вчора, 7/30 днів), місяць, або довільні дати
      • Підрозділ — мультивибір. За замовчуванням — всі
      • Платформа — ✈ Крило та/або 🚁 Коптер
      💡 Фільтри застосовуються автоматично. «Скинути» → перезавантаження.

      👥 Нальоти

      Щільність нальотів на карті. Кожен полігон має поле «нальоти» (з колонки «Додаткова інформація» CSV).

      • Карта кластерів — кола на карті показують сумарну кількість нальотів в районі
      • Колір — жовтий = мало, червоний = багато
      • Зум — далеко → великі кластери, близько → окремі точки
      • Клік по колу → кількість нальотів та список підрозділів

      ⚖️ Порівняння

      Дві під-вкладки. Глобальний фільтр Період тут НЕ діє.

      • За періодом — пресети (Сьогодні vs Вчора, 7 днів vs попер. тощо) або довільні дати. Синій = А, Червоний = Б
      • За підрозділом — оберіть кілька підрозділів у Групу А та Групу Б. Мультивибір з пошуком

      Карти синхронізовані — зум/пан однієї рухає іншу.

      ⏱️ Хронологія

      Анімація спостережень у часі.

      • ▶ Play — автоматичне відтворення
      • Повзунок — ручне переміщення по датах
      • Режим — «Накопичувальний» (всі до дати) або «По днях» (конкретний день)
      • Швидкість — повільно / нормально / швидко

      🏔️ 3D

      Тривимірні гексагони — висота = кількість спостережень.

      • Радіус — розмір гексагонів (50–2000 м)
      • Висота / Покриття / Прозорість — повзунки для налаштування вигляду
      • 🧭 Компас — обертання 3D виду (або Ctrl + мишка)

      📡 Щільність

      Де БПЛА літають найчастіше — дві карти, одні дані.

      • Контури — ізолінії як на топографічній карті. 3 режими: Огляд (4 зони, 2км), Оптимальний (6 зон, 800м), Детальний (10 зон, 300м)
      • Теплова — кольорове поле. 3 режими: М'який, Оптимальний, Різкий
      💡 Під кнопками є повзунки для точного ручного налаштування.

      🔀 Fusion

      Мульти-джерельна карта точок злету та напрямків БПЛА.

      • 3 джерела — ТИША (жовтий), РЕБ (фіолетовий), OSINT (бірюзовий)
      • Чекбокси — ввімкніть/вимкніть кожне джерело окремо
      • Точки — кольорові маркери місць злету
      • Напрямки — стрілки від старту до цілі/напрямку
      • Фільтр дат — власний для Fusion (не залежить від глобальних фільтрів)

      Дані

      • data/tysha_points.csv — точки ТИША (одна координата)
      • data/tysha_directions.csv — напрямки ТИША (дві координати)
      • data/osint_points.csv — точки OSINT (формат = ТИША)
      • data/ew_data.csv — РЕБ CSV або зовнішня БД (EW_PGHOST…)
      💡 Кнопка «🔄 Оновити Fusion» перезавантажує дані з файлів без перезапуску.

      🔍 Район

      Просторовий запит — намалюйте прямокутник, побачите все, що літало в цьому районі.

      • Тягніть мишкою по карті → система знайде всі полігони в межах
      • Результати: статистика + таблиця з підрозділами, часом, нальотами
      • Глобальні фільтри працюють разом з просторовим запитом

      🔧 Технічна документація

      Архітектура, розгортання, оновлення даних. Для адміністраторів та розробників.

      🏗️ Архітектура

      • Backend: PostGIS (PostgreSQL + просторові розширення), Flask REST API
      • Frontend: Один HTML файл, Leaflet.js, deck.gl (WebGL), Chart.js
      • Інфраструктура: Docker Compose, Nginx reverse proxy
      • Тайли карт: OpenStreetMap CDN (потребує інтернет)

      📁 Джерела даних

      • copter.csv ← «Карпати: зони спостереження (звіт 12 годин)»
      • wing.csv ← «Карпати: райони особливої уваги крил рОВ»

      Потік даних

      Зовнішня система → CSV експорт → папка data/load_data.py → PostGIS → Flask API → Дашборд

      Поля CSV

      • Координати — колонка з WKT-подібними координатами полігону
      • Назва — підрозділ
      • Дата — час спостереження
      • Додаткова інформація — число нальотів (парситься автоматично)

      🚀 Розгортання

      Перший запуск

      docker compose up -d --build

      docker exec geo_api python /app/load_data.py

      Оновлення даних

      Покладіть нові CSV у data/ → натисніть «🔄 Оновити дані» у верхній панелі, або:

      docker exec geo_api python /app/load_data.py

      Повне перезавантаження (зміна схеми БД)

      docker compose down -v

      docker compose up -d --build

      docker exec geo_api python /app/load_data.py

      ⚠️ Прапор -v видаляє том бази даних. Використовуйте тільки коли змінилась структура таблиць.

      🔌 API ендпоінти

      • /api/polygons — GeoJSON полігонів (фільтри: name, platform_type, date_from, date_to, preset)
      • /api/centroids — центроїди полігонів (lat, lng, weight)
      • /api/points — всі точки з деталями
      • /api/stats — агреговані метрики
      • /api/timeline — дані для часового графіку
      • /api/top_names — топ підрозділів за кількістю полігонів
      • /api/top_unit_counts — топ підрозділів за нальотами
      • /api/spatial_query — пошук в прямокутнику (bbox)
      • /api/fusion/points — точки злету Fusion (source, date_from, date_to)
      • /api/fusion/directions — напрямки Fusion
      • /api/fusion/stats — статистика Fusion
      • /api/fusion/reload — перезавантаження Fusion даних (POST)