Разработка AI-системы мониторинга качества воздуха

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка AI-системы мониторинга качества воздуха
Средняя
~1-2 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    854
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Разработка AI-системы мониторинга качества воздуха

Мониторинг качества воздуха — это не только размещение датчиков. Это задача интеграции данных из разных источников, интерполяции в пространстве, прогнозирования и доставки информации до горожан в понятном формате. ML решает задачи, с которыми детерминированные модели справляются плохо: пространственная интерполяция, обнаружение источников, краткосрочный прогноз.

Архитектура системы

Данные → Обработка → Хранение → Аналитика → Визуализация

Данные:
├── Государственные посты (Росгидромет, ФБУ ЦЛМ)
├── 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

Визуализация:
└── Веб-портал + мобильное приложение

Пространственная интерполяция

Станций всегда меньше, чем нужно. Для карты качества воздуха на уровне 100 м нужна интерполяция:

Обычная интерполяция (Kriging): Хорошо работает при гомогенном загрязнении. Плохо — при локальных источниках (предприятие, дорога).

ML-интерполяция:

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 м. Обучение на одновременных данных станций и спутниковых снимков.

Прогнозирование качества воздуха

Основные факторы:

  • Метеорология: ветер (скорость и направление определяют перенос), стабильность атмосферы (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)

Расчёт АКИ по ПМР (Приложение к МУ 2.1.6.1982-05):

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 на источники: промышленность, транспорт, бытовое отопление, природные (морская соль, пыль).

from scipy.optimize import nnls
# G = F × C (observations = sources × contributions)
# PMF минимизирует взвешенную сумму квадратов остатков
# при неотрицательности F и C

EPA PMF 5.0 — официальный инструмент для receptor modeling.

Результат: "30% PM2.5 в данном городе от выбросов металлургии, 40% от транспорта, 20% от бытового отопления". Это база для регуляторных решений.

Сроки: базовая IoT-сеть + AQI расчёт + карта + мобильное приложение — 8-10 недель. Система с ML-прогнозом, source attribution и regulatory API — 4-5 месяцев.