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

5.6 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
  • Последнее обновление: 18 апреля 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. Бэклог

Для FR24 / noisemap части

  • Пополнить кредиты FR24, если потребуется добор исторических дней
  • Улучшить модель шума v2
  • Ночной штраф Lden
  • Оптимизировать расчёт плотности
  • Экспорт зон в GeoJSON/KML

Для RTL-SDR ingest-контура

  • Описать схему БД и индексы
  • Описать контейнеры и compose-файл
  • Описать мониторинг и healthchecks
  • Описать backup/restore
  • Определить контракт между ingest и noisemap UI

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
  • карта продолжает получать данные для визуализации