Розробка AI-системи моніторингу якості повітря

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка AI-системи моніторингу якості повітря
Середній
~1-2 тижні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1197
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Розробка 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
└── Оцінка впливу на здоров'я

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

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

Станцій завжди менше, ніж потрібно. Для карти якості повітря на рівні 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)

Розрахунок АКІ за ПМР:

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 (спостереження = джерела × внески)
# 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 місяців.