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

У містах із щільною забудовою точкові датчики дають розрізнені показання. Управлінцям потрібна карта концентрацій з кроком 100 м і точний прогноз на дві доби. Детерміновані моделі розсіювання потребують десятки параметрів і часто помиляються на 50–70% в умовах змінного вітру. ML-моделі, навчені на і

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

Часті запитання

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

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

У містах із щільною забудовою точкові датчики дають розрізнені показання. Управлінцям потрібна карта концентрацій з кроком 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)

Розрахунок АКІ за стандартом:

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 від системи моніторингу?

Пряма економія: скорочення штрафів за перевищення нормативів, зниження витрат на лабораторні вимірювання (замінюються ML-інтерполяцією), оптимізація роботи очисних фільтрів за фактичним навантаженням. Непрямий ефект — зростання довіри мешканців та інвестиційна привабливість міста.

Приклад калібрування low-cost сенсорів Використовуємо градієнтний бустинг для корекції дрифту: модель навчається на парах показань дешевого датчика та референсного поста, враховуючи температуру і вологість. Це знижує похибку з 50% до 10%.

Що входить у роботу

  1. Аудит даних: оцінка якості та повноти наявних вимірювань, вибір оптимального стеку.
  2. Проектування архітектури: схема потоків даних, вибір моделей, прототипування.
  3. Калібрування сенсорів: налаштування low-cost датчиків за референсними станціями.
  4. Розробка ML-моделей: інтерполяція, прогноз, source attribution.
  5. Створення веб-порталу та мобільного застосунку: карта, AQI, алепти.
  6. Тестування та валідація: порівняння з незалежними станціями, MAPE < 15%.
  7. Документація та навчання: передача коду, API, інструкції для екологів.
  8. Супровід 3 місяці: моніторинг, донавчання моделей, оновлення.

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

Етапи роботи:

  1. Аудит даних — 1 тиждень
  2. Проектування — 1-2 тижні
  3. Калібрування сенсорів — 2-3 тижні
  4. Розробка ML-моделей — 3-4 тижні
  5. Розробка інтерфейсів — 3-4 тижні
  6. Тестування — 2-3 тижні
  7. Документація та навчання — 1-2 тижні

Зв'яжіться — проаналізуємо ваші дані за 2 дні. Отримайте консультацію з підбору стеку та оцінки обсягу робіт. Оцінимо ваш проект за 2 робочі дні. Гарантуємо якість завдяки сертифікованим інженерам та 5+ рокам досвіду в AI-моніторингу.