Files
wiki/tasks/flightradar24/PROJECT.md
2026-04-20 17:20:01 +03:00

6.4 KiB
Raw Blame History

Проект: FR24 / noisemap + RTL-SDR ingest

1. Назначение

Проект строит карту шумового загрязнения авиации для Московской области и развивает её в сторону локального ADS-B контура на RTL-SDR.

Сейчас проект состоит из двух связанных частей:

  • noisemap / FR24-прототип — визуализация и расчёт шумовой плотности на базе исторических данных Flightradar24
  • RTL-SDR ingest-контур — приём ADS-B с локального приёмника, хранение в PostgreSQL/PostGIS и восстановление данных после сбоев

2. Статус

  • Старт проекта: 22 марта 2026
  • Текущий статус: активен
  • Текущий фокус: переход от FR24-only к локальному RTL-SDR контуру с PostgreSQL/PostGIS
  • Последнее обновление: 20 апреля 2026

3. Текущая часть: noisemap / FR24-прототип

URL

Расположение

  • tasks/flightradar24/prototype/

Стек

  • Flask
  • OpenLayers 10
  • Turf.js
  • Canvas2D
  • flask-compress

Что уже реализовано

  • слой "Плотность пролётов"
  • метрика рейсов/час
  • радиусы влияния по высоте
  • кэш плотности
  • слайдер по дням
  • легенда и попап по рейсам
  • /api/dates и /api/density
  • загрузка табло через Яндекс.Расписания

Ограничения текущей части

  • FR24 кредиты закончились
  • охват данных неполный
  • ночные рейсы и часть траекторий не покрываются

4. Новая часть: RTL-SDR ingest-контур

Цель

Построить локальный контур приёма ADS-B с RTL-SDR, который:

  • принимает поток в real time
  • сохраняет сырьё с retention 3 дня
  • догоняет пропуски после сбоя
  • хранит данные в PostgreSQL/PostGIS
  • отдаёт данные для визуализации на карте

Архитектурные рамки

  • 1 VM в PVE
  • USB RTL-SDR пробрасывается в VM
  • Docker Compose
  • отдельные контейнеры для компонентов
  • PostgreSQL + PostGIS
  • сырьё и core-данные в одной БД, но логически разделены

Согласованные ограничения VM

  • CPU: до 6 vCPU
  • RAM: 1012 GB
  • SSD: 80100 GB max

Режимы работы

  • live
  • recovery
  • overlap recovery

Базовые сущности хранения

  • captures
  • raw_packets
  • aircraft
  • flights
  • track_points
  • tracks
  • processing_state
  • noise_results

5. Данные и источники

FR24

  • исторические данные использовались для прототипа noisemap
  • FR24 API ключ хранится в ~/.openclaw/.env
  • ключи и секреты не хранятся в проектных файлах

ADS-B / RTL-SDR

  • локальный источник для ingest-контура
  • основной переходной источник после исчерпания FR24-only подхода

6. Бэклог

Выполнено (апрель 2026)

  • RTL-SDR ingest контур (capture + preprocess + api + monitoring + backup)
  • PostgreSQL/PostGIS схема fr24
  • Leaflet карта с треками и фильтром периода
  • Мониторинг дашборд
  • Батчевая запись, фильтр onground, кеш скорости с TTL
  • Callsign из MSG1

Фаза 2, Шаг 1: Внешние источники данных (выполнено 20.04.2026)

  • Контейнер fr24-schedule запущен
  • Схема fr24_ext (таблицы schedule, load_state)
  • Яндекс.Расписания API: SVO, DME, VKO, ZIA
  • Backfill 01.0419.04.2026: 28 690 рейсов
  • Cron T-1 в 02:00 UTC
  • UI табло: http://192.168.2.67:8080/schedule
  • Экспорт CSV
  • OpenSky отключён (исторические данные платные)

🔜 Фаза 2, Шаг 2: Витрина данных

  • Объединение RTL-SDR + FR24 API + табло в схему fr24_mart
  • Шумовая сетка noise_grid
  • Метрики покрытия источников
  • ТЗ: docs/PHASE2_STEP2_DATA_MART.md

🔜 Фаза 2, Шаг 3: Перенос noisemap на VM-FR24

  • Адаптация прототипа под fr24_mart
  • Live режим из RTL-SDR
  • Фильтр по источнику данных
  • ТЗ: docs/PHASE2_STEP3_NOISEMAP_MIGRATION.md

7. Документация

  • tasks/flightradar24/README.md — обзор проекта
  • tasks/flightradar24/docs/ARCHITECTURE.md — контейнерная архитектура ingest-контура
  • tasks/flightradar24/docs/RTL-SDR_TZ.mdТЗ на ingest-контур
  • tasks/flightradar24/docs/VM_SETUP.md — инструкция по созданию VM в PVE
  • tasks/flightradar24/docs/TEST_PLAN.md — тестовый контракт и acceptance checks
  • tasks/flightradar24/docs/DEV_AGENT_HANDOFF.md — пакет передачи Dev-агенту
  • tasks/flightradar24/prototype/docs/ARCHITECTURE.md — архитектура прототипа
  • tasks/flightradar24/prototype/docs/NOISE_MODEL.md — модель шума
  • tasks/flightradar24/prototype/docs/DATA_LOADING.md — загрузка данных
  • tasks/flightradar24/prototype/docs/UI.md — UI

8. Критерий направления

Проект считается развивающимся правильно, если:

  • noisemap остаётся рабочим и полезным
  • ingest-контур получает данные без дырок
  • recovery умеет догонять сырьё автоматически
  • БД не раздувается сверх лимитов VM
  • карта продолжает получать данные для визуализации