# 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 ingest - `tasks/flightradar24/docs/VM_SETUP.md` — инструкция по созданию VM в PVE - `tasks/flightradar24/docs/DEV_AGENT_HANDOFF.md` — пакет передачи Dev-агенту ## Текущий статус - FR24-прототип жив и остаётся в проекте как историческая и визуальная база - новая линия проекта — переход к локальному RTL-SDR контуру - целевая БД: PostgreSQL + PostGIS - целевое развёртывание: одна VM + Docker Compose ## Историческая часть Ниже сохранена справка по старому FR24/noisemap-прототипу. ## 📋 О проекте Проект создаёт интерактивную веб-карту Московской области, на которой отображаются: - **Траектории полётов** за выбранный период (до 12 месяцев) - **Шумовые границы** вокруг траекторий, рассчитанные на основе высоты полёта - **Интерактивные элементы**: зум, фильтры по времени, всплывающая информация о рейсах ## 🎯 Цели проекта 1. **Визуализация**: Наглядно показать распределение шумового загрязнения от авиации 2. **Анализ**: Выявить наиболее загруженные воздушные коридоры 3. **Информирование**: Предоставить данные для исследований и принятия решений 4. **Оптимизация**: Эффективное использование данных Flightradar24 API в рамках тарифа Explorer ## 🛠 Технологический стек ### Бэкенд - **Язык**: Python 3.8+ - **Фреймворк**: FastAPI (лёгкий, асинхронный) - **Библиотеки**: - `requests` - работа с Flightradar24 API - `sqlalchemy` / `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) * factor ``` где: - `base_radius` = 5.0 км (базовый радиус шума) - `min_height` = 300 м (минимальная высота для расчёта) - `factor` = 0.01 (коэффициент масштабирования) ### Параметры (config.json) ```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. Установка зависимостей ```bash pip install -r requirements.txt ``` ### 2. Настройка API ключа ```bash export FLIGHTRADAR24_API_KEY="your_api_key_here" ``` Или создайте файл `.env`: ``` FLIGHTRADAR24_API_KEY=your_api_key_here ``` ### 3. Проверка подключения ```bash python scripts/check_api.py ``` ### 4. Запуск тестового сбора данных ```bash 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. **Кэширование**: Сохранять полученные данные локально 2. **Пакетная обработка**: Собирать данные партиями 3. **Приоритизация**: Сначала ключевые маршруты и периоды 4. **Мониторинг**: Регулярно проверять остаток кредитов ## 📈 План разработки ### Этап 1: Подготовка и прототип (23-25 марта 2026) - [ ] Проверка доступности исторических данных - [ ] Создание proof-of-concept с 10-50 траекториями - [ ] Согласование визуализации с Заказчиком ### Этап 2: Разработка бэкенда (26-28 марта 2026) - [ ] Архитектура FastAPI приложения - [ ] Система сбора и обработки данных - [ ] API для фронтенда ### Этап 3: Разработка фронтенда (29-31 марта 2026) - [ ] Интерфейс карты (Leaflet) - [ ] Панель управления и фильтры - [ ] Интеграция с бэкендом ### Этап 4: Тестирование и оптимизация (1-2 апреля 2026) - [ ] Функциональное тестирование - [ ] Оптимизация производительности - [ ] Документация и развёртывание ## 🔗 Полезные ссылки - [Flightradar24 API Documentation](https://fr24api.flightradar24.com/) - [Leaflet.js Documentation](https://leafletjs.com/) - [FastAPI Documentation](https://fastapi.tiangolo.com/) - [Полное ТЗ проекта](reports/ТЗ_Карта_шумового_загрязнения_Flightradar24.md) ## 📞 Контакты - **Заказчик**: Слава - **Исполнитель**: Стрим (ИИ-ассистент) - **Канал связи**: Telegram через OpenClaw --- *Проект находится в активной разработке. Последнее обновление: 22 марта 2026.*