У містах із щільною забудовою точкові датчики дають розрізнені показання. Управлінцям потрібна карта концентрацій з кроком 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%.Що входить у роботу
- Аудит даних: оцінка якості та повноти наявних вимірювань, вибір оптимального стеку.
- Проектування архітектури: схема потоків даних, вибір моделей, прототипування.
- Калібрування сенсорів: налаштування 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-моніторингу.







