10 KiB
10 KiB
FR24 / noisemap
Проект шумовой карты авиации для Московской области и локального ADS-B ingest-контура на RTL-SDR.
Что внутри
- noisemap / FR24-прототип — визуализация и расчёт шумовой плотности на базе исторических данных Flightradar24
- RTL-SDR ingest-контур — локальный приём ADS-B, хранение в PostgreSQL/PostGIS и recovery после сбоев
Куда смотреть
tasks/flightradar24/PROJECT.md— общий статус проектаtasks/flightradar24/docs/INDEX.md— карта документацииtasks/flightradar24/docs/ARCHITECTURE.md— контейнерная архитектура ingest-контураtasks/flightradar24/docs/RTL-SDR_TZ.md— ТЗ на RTL-SDR ingesttasks/flightradar24/docs/VM_SETUP.md— инструкция по созданию VM в PVEtasks/flightradar24/docs/DEV_AGENT_HANDOFF.md— пакет передачи Dev-агенту
Текущий статус
- FR24-прототип жив и остаётся в проекте как историческая и визуальная база
- новая линия проекта — переход к локальному RTL-SDR контуру
- целевая БД: PostgreSQL + PostGIS
- целевое развёртывание: одна VM + Docker Compose
Историческая часть
Ниже сохранена справка по старому FR24/noisemap-прототипу.
📋 О проекте
Проект создаёт интерактивную веб-карту Московской области, на которой отображаются:
- Траектории полётов за выбранный период (до 12 месяцев)
- Шумовые границы вокруг траекторий, рассчитанные на основе высоты полёта
- Интерактивные элементы: зум, фильтры по времени, всплывающая информация о рейсах
🎯 Цели проекта
- Визуализация: Наглядно показать распределение шумового загрязнения от авиации
- Анализ: Выявить наиболее загруженные воздушные коридоры
- Информирование: Предоставить данные для исследований и принятия решений
- Оптимизация: Эффективное использование данных Flightradar24 API в рамках тарифа Explorer
🛠 Технологический стек
Бэкенд
- Язык: Python 3.8+
- Фреймворк: FastAPI (лёгкий, асинхронный)
- Библиотеки:
requests- работа с Flightradar24 APIsqlalchemy/sqlite3- работа с базой данныхpandas/numpy- обработка данныхpython-dotenv- управление конфигурацией
Фронтенд
- Карты: Leaflet.js с OpenStreetMap
- Интерфейс: Bootstrap 5 + чистый JavaScript
- Визуализация: встроенные возможности Leaflet + D3.js (опционально)
Хранение данных
- База данных: SQLite (разработка) / PostgreSQL (production)
- Кэш: файловая система (JSON/CSV)
- Конфигурация:
.envфайл +config.json
📊 Модель шумового воздействия (v1.0)
Основные допущения
- Фактор: только высота полёта
- Зависимость: уровень шума обратно пропорционален высоте
- Формула:
где:
noise_radius_km = base_radius * (min_height / actual_height) * factorbase_radius= 5.0 км (базовый радиус шума)min_height= 300 м (минимальная высота для расчёта)factor= 0.01 (коэффициент масштабирования)
Параметры (config.json)
"noise_model": {
"base_noise_radius_km": 5.0,
"height_factor": 0.01,
"min_height_m": 300,
"max_height_m": 12000,
"min_radius_km": 0.5,
"max_radius_km": 10.0
}
Бэклог для v2.0
- Учёт типа воздушного судна
- Учёт времени суток (ночные полёты)
- Учёт направления и скорости ветра
- Привязка к санитарным нормам
🚀 Быстрый старт
1. Установка зависимостей
pip install -r requirements.txt
2. Настройка API ключа
export FLIGHTRADAR24_API_KEY="your_api_key_here"
Или создайте файл .env:
FLIGHTRADAR24_API_KEY=your_api_key_here
3. Проверка подключения
python scripts/check_api.py
4. Запуск тестового сбора данных
python scripts/flightradar24_explorer.py
📁 Структура проекта
flightradar24/
├── README.md # Эта документация
├── requirements.txt # Зависимости Python
├── config.json # Конфигурация проекта
├── scripts/ # Вспомогательные скрипты
│ ├── check_api.py # Проверка API ключа
│ └── flightradar24_explorer.py # Базовый клиент API
├── reports/ # Отчёты и документация
│ └── ТЗ_Карта_шумового_загрязнения_Flightradar24.md
├── data/ # Данные (будет создано)
│ ├── cache/ # Кэшированные данные API
│ ├── processed/ # Обработанные данные
│ └── exports/ # Экспортированные файлы
├── backend/ # Бэкенд приложения (будет создано)
├── frontend/ # Фронтенд приложения (будет создано)
└── docs/ # Документация (будет создано)
🔧 Конфигурация
Основные параметры настройки в config.json:
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
geography.region |
Регион исследования | Московская область |
geography.bounds |
Границы региона | 54.5-56.5°N, 35.5-39.5°E |
data_collection.target_period_months |
Целевой период данных | 12 месяцев |
data_collection.initial_period_days |
Начальный период для тестирования | 30 дней |
visualization.default_center |
Центр карты | [55.7558, 37.6173] (Москва) |
visualization.default_zoom |
Увеличение карты | 9 |
💳 Использование кредитов Flightradar24 API
Тариф Explorer
- Базовый лимит: 60,000 кредитов/месяц
- Промо-период: до 120,000 кредитов/месяц (до 31.05.2026)
- Обновление: раз в неделю/месяц в зависимости от лимитов
Примерная стоимость запросов
| Endpoint | Кредитов/запрос | Примерное использование |
|---|---|---|
flight/list (live) |
5 | 100 запросов = 500 кредитов |
flight/{id}/history |
20 | 50 рейсов = 1,000 кредитов |
flight/{id}/playback |
30 | 30 треков = 900 кредитов |
Стратегия оптимизации
- Кэширование: Сохранять полученные данные локально
- Пакетная обработка: Собирать данные партиями
- Приоритизация: Сначала ключевые маршруты и периоды
- Мониторинг: Регулярно проверять остаток кредитов
📈 План разработки
Этап 1: Подготовка и прототип (23-25 марта 2026)
- Проверка доступности исторических данных
- Создание proof-of-concept с 10-50 траекториями
- Согласование визуализации с Заказчиком
Этап 2: Разработка бэкенда (26-28 марта 2026)
- Архитектура FastAPI приложения
- Система сбора и обработки данных
- API для фронтенда
Этап 3: Разработка фронтенда (29-31 марта 2026)
- Интерфейс карты (Leaflet)
- Панель управления и фильтры
- Интеграция с бэкендом
Этап 4: Тестирование и оптимизация (1-2 апреля 2026)
- Функциональное тестирование
- Оптимизация производительности
- Документация и развёртывание
🔗 Полезные ссылки
📞 Контакты
- Заказчик: Слава
- Исполнитель: Стрим (ИИ-ассистент)
- Канал связи: Telegram через OpenClaw
Проект находится в активной разработке. Последнее обновление: 22 марта 2026.