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

138 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Проект: 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
- https://openclaw.mva154.duckdns.org/noisemap/
### Расположение
- `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)
- [x] RTL-SDR ingest контур (capture + preprocess + api + monitoring + backup)
- [x] PostgreSQL/PostGIS схема fr24
- [x] Leaflet карта с треками и фильтром периода
- [x] Мониторинг дашборд
- [x] Батчевая запись, фильтр onground, кеш скорости с TTL
- [x] Callsign из MSG1
### 🔜 Фаза 2, Шаг 1: Внешние источники данных
- [ ] Контейнер `fr24-external` с FR24 API + Яндекс.Расписания
- [ ] Схема `fr24_ext` в PostgreSQL
- [ ] ТЗ: `docs/PHASE2_STEP1_EXTERNAL_DATA.md`
### 🔜 Фаза 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
- карта продолжает получать данные для визуализации