В городах с плотной застройкой точечные датчики дают разрозненные показания. Управленцам нужна карта концентраций с шагом 100 м и точный прогноз на двое суток. Детерминированные модели рассеивания требуют десятки параметров и часто ошибаются на 50–70% в условиях переменного ветра. ML-модели, обученные на исторических данных, снижают ошибку до 15–20%. За 5 лет выполнили 20+ проектов по AI-мониторингу в городах с разным климатом и плотностью застройки.
Архитектура системы
Данные → Обработка → Хранение → Аналитика → Визуализация Данные: ├── Государственные посты (Росгидромет, ФБУ ЦЛМ) ├── IoT-сенсоры (собственные/партнёрские) ├── Спутник (Sentinel-5P, MODIS) ├── Мобильные станции (автомобили, велосипеды) └── NWP метеопрогнозы (Росгидромет API, Open-Meteo) Обработка: ├── Калибровка LCS (low-cost sensors) ├── Контроль качества (QA/QC) ├── Пространственная интерполяция └── Прогноз качества воздуха Хранение: └── TimescaleDB (temporal) + PostGIS (spatial) Аналитика: ├── AQI расчёт ├── Trend analysis ├── Source attribution └── Health impact estimation Визуализация: └── Веб-портал + мобильное приложение | Компонент | Технология | Назначение |
|---|---|---|
| Сбор данных | MQTT, LoRaWAN | Приём данных с датчиков и API |
| Хранение | TimescaleDB + PostGIS | Временные ряды + пространственные данные |
| ML-модели | XGBoost, LSTM, U-Net | Интерполяция, прогноз, source attribution |
| Визуализация | Leaflet, React Native | Карта города и мобильное приложение |
Как работает ML-интерполяция?
Станций всегда меньше, чем нужно. Для карты качества воздуха на уровне 100 м нужна интерполяция. Kriging уступает ML-интерполяции на 30% по точности, особенно в районах с локальными источниками (заводы, дороги). Мы используем XGBoost с пространственными ковариатами: расстояние до трасс, NDVI, плотность застройки.
| Метод | Точность (RMSE) | Разрешение | Требования к данным |
|---|---|---|---|
| Kriging | 25–30 мкг/м³ | Зависит от сети | Только станции |
| XGBoost | 10–15 мкг/м³ | 100 м | Станции + ковариаты |
| U-Net | 8–12 мкг/м³ | 30–100 м | Спутник + станции |
def spatial_air_quality_model(station_readings, spatial_covariates): """ Обучаем на station_readings Предсказываем для всей городской сетки 100×100 м """ X = pd.merge(station_readings, spatial_covariates, on=['lat', 'lon']) # Spatial features X['distance_to_highway'] = ... X['distance_to_industry'] = ... X['ndvi'] = ... # озеленение X['building_density'] = ... # плотность застройки model = XGBRegressor().fit(X, X['pm25']) return model # Предсказание для всей сетки города grid = create_city_grid(city_boundary, resolution=100) grid['predicted_pm25'] = model.predict(grid[feature_cols]) Deep Learning для spatial mapping: U-Net с мультиспектральными спутниковыми снимками + station readings → карта PM2.5 разрешением 30-100 м. Обучение на одновременных данных станций и спутниковых снимков. Экономия на обслуживании датчиков — до 40%.
Почему LSTM лучше традиционных моделей?
Основные факторы прогноза:
- Метеорология: ветер (скорость и направление определяют перенос), стабильность атмосферы (mixing height), осадки (вымывание PM)
- Источники: промышленные выбросы, транспорт, отопление
- Фотохимия: образование O3 и вторичных частиц (PM2.5)
LSTM + Weather Attention модель:
class AirQualityForecastModel(nn.Module): def __init__(self): self.pollutant_encoder = LSTM(n_pollutants, 64) self.weather_encoder = LSTM(n_weather_vars, 64) self.cross_attention = CrossAttention(64, 64) self.decoder = nn.Linear(128, n_pollutants * forecast_hours) Горизонт: 24/48/72 часа. MAPE достижимая: < 15% для 48-часового прогноза PM2.5.
Индекс качества воздуха (АКИ/AQI)
Расчёт АКИ по стандарту «Методика расчета индекса загрязнения атмосферы» (РД 52.04.667):
def calculate_aki(concentrations: dict) -> float: """ АКИ = Σ (C_i / PDK_i_ss) для i загрязнителей При АКИ < 5 — нормативное качество воздуха """ aki = 0 for pollutant, conc in concentrations.items(): pdk = PDK_MEAN_DAILY[pollutant] aki += conc / pdk return aki Цветовая кодировка:
- Зелёный: АКИ < 5 (норма)
- Жёлтый: 5-7 (незначительное загрязнение)
- Оранжевый: 7-14 (умеренное)
- Красный: > 14 (высокое, опасно для здоровья)
Подробнее о Индексе качества воздуха.
Мобильное приложение для горожан
Функции:
- Текущий AQI в точке геолокации
- Карта качества воздуха города
- Прогноз AQI на 24/48 часов
- Рекомендации: безопасно ли гулять/заниматься спортом
- Уведомления при превышении порогов
Персонализированные рекомендации:
- Астматики / аллергики: более строгий порог уведомлений
- Велосипедисты: оптимальное время/маршрут с учётом AQI
- Родители с детьми: playground quality index
Атрибуция источников
Positive Matrix Factorization (PMF) разлагает спектр химического состава PM2.5 на источники: промышленность, транспорт, бытовое отопление, природные (морская соль, пыль). Используем EPA PMF 5.0 — официальный инструмент для receptor modeling.
from scipy.optimize import nnls # G = F × C (observations = sources × contributions) # PMF минимизирует взвешенную сумму квадратов остатков # при неотрицательности F и C Результат: «30% PM2.5 в городе от выбросов металлургии, 40% от транспорта, 20% от бытового отопления». Это база для регуляторных решений.
Как оценить ROI от системы мониторинга?
Прямая экономия: сокращение штрафов за превышение нормативов (до $18k–26k в год в промышленных зонах), снижение затрат на лабораторные замеры (заменяются ML-интерполяцией), оптимизация работы очистных фильтров по фактической нагрузке. Косвенный эффект — рост доверия жителей и инвестиционная привлекательность города.
Пример калибровки low-cost сенсоров
Используем градиентный бустинг для коррекции дрифта: модель обучается на парах показаний дешёвого датчика и референсного поста, учитывая температуру и влажность. Это снижает погрешность с 50% до 10%.Что входит в работу
- Аудит данных: оценка качества и полноты имеющихся измерений, выбор оптимального стека.
- Проектирование архитектуры: схема потоков данных, выбор моделей, прототипирование.
- Калибровка сенсоров: настройка low-cost датчиков по референсным станциям.
- Разработка ML-моделей: интерполяция, прогноз, source attribution.
- Создание веб-портала и мобильного приложения: карта, AQI, алерты.
- Тестирование и валидация: сравнение с независимыми станциями, MAPE < 15%.
- Документация и обучение: передача кода, API, инструкции для экологов.
- Сопровождение 3 месяца: мониторинг, дообучение моделей, обновление.
Сроки: базовая IoT-сеть + AQI расчёт + карта + мобильное приложение — 8-10 недель. Система с ML-прогнозом, source attribution и regulatory API — 4-5 месяцев.
Этапы работы:
- Аудит данных — 1 неделя
- Проектирование — 1-2 недели
- Калибровка сенсоров — 2-3 недели
- Разработка ML-моделей — 3-4 недели
- Разработка интерфейсов — 3-4 недели
- Тестирование — 2-3 недели
- Документация и обучение — 1-2 недели
Свяжитесь — проанализируем ваши данные за 2 дня. Получите консультацию по подбору стека и оценке объёма работ. Оценим ваш проект за 2 рабочих дня. Гарантируем качество благодаря сертифицированным инженерам и 5+ годам опыта в AI-мониторинге.







