User-centric technology stack for weather and air pollution forecasting
This paper proposes the multi-stage process of delivering the forecast data to end-user mobile device. The initial task here is to collect the historical weather and air pollution data. After that, the following steps should allow to build the forecasting infrastructure: the input-output model shoul...
Gespeichert in:
Datum: | 2025 |
---|---|
Hauptverfasser: | , , , |
Format: | Artikel |
Sprache: | Ukrainian |
Veröffentlicht: |
Інститут програмних систем НАН України
2025
|
Schlagworte: | |
Online Zugang: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/672 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Problems in programming |
Institution
Problems in programmingid |
pp_isofts_kiev_ua-article-672 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/5f/7ecb75cc3e98138443f4695030784f5f.pdf |
spelling |
pp_isofts_kiev_ua-article-6722025-04-16T13:57:48Z User-centric technology stack for weather and air pollution forecasting Клієнто – центричний технологічний стек для прогнозу погоди та якості повітря Doroshenko, A.Yu. Haidukevych, Y.O. Haidukevych, V.O. Zhyrenkov, O.S. regression task; machine learning; forecasting; docker container; web service; mobile application; Google Flutter; Bentoml; Mlops; microservices UDC 658.26, 004.421, 004.89 задача регресії; машинне навчання; прогнозування; контейнер; веб-сервіс; мобільний застосунок; Google Flutter; Bentoml; Mlops; мікросервісна архітектура УДК 658.26, 004.421, 004.89 This paper proposes the multi-stage process of delivering the forecast data to end-user mobile device. The initial task here is to collect the historical weather and air pollution data. After that, the following steps should allow to build the forecasting infrastructure: the input-output model should be defined for regression task, the machine learning algorithm should be trained and its hyperparameters should be optimized, this forecasting model should be serialized to file and it should be used to create the publicly available web-service, the mobile device should have the application installed that would be querying the forecast data from the service and would be displaying the multi-parameter chart on the screen.The proposed concept of user-centric distributed application covers the following three pillars of this architecture: machine learning model, containerized web-service and user interface application on mobile device. The Python-based libraries Numpy and Pandas were used to prepare the dataset, the Scikit-learn library and Histogram gradient boosting algorithm were leveraged to build the machine learning model. Here are the technologies employed to build the web-service: Docker, Kubernetes, FastAPI and BentoML. The Google Flutter platform was used to build the application for mobile devices.Prombles in programming 2024; 4: 34-42 У роботі запропоновано багатоетапний процес доставки прогнозних даних на мобільний пристрій кінцевого користувача при метеорологічному прогнозуванні. Початковим завданням є збір історичних даних про погоду та забруднення повітря. Після цього наступні кроки повинні дозволити побудувати інфраструктуру прогнозування: модель вхідних та вихідних параметрів повинна бути визначена для задачі регресії, алгоритм машинного навчання має бути визначений та його гіперпараметри мають бути оптимізовані. Така модель прогнозування має бути збережена у файлі і використана для створення загальнодоступного веб-сервісу, а на мобільному пристрої має бути встановлений додаток, який би запитував прогнозні дані у сервісу та виводив би їх на екран у вигляді багатопараметричного графіка.Запропонована концепція розподіленого програмного рішення охоплює наступні три головні аспекти цієї архітектури: модель машинного навчання, контейнеризований веб-сервіс та додаток інтерфейсу користувача на мобільному пристрої. Бібліотеки Numpy та Pandas мови Python були використані для підготовки набору даних, бібліотека Scikit-learn і алгоритм Histogram gradient boosting були застосовані для створення регресійної моделі. Наступні технології були використані для побудови веб-сервісу: Docker, Kubernetes, FastAPI та BentoML. Для створення мобільної програми використовувалася платформа GoogleFlutter.Prombles in programming 2024; 4: 34-42 Інститут програмних систем НАН України 2025-04-16 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/672 10.15407/pp2024.04.034 PROBLEMS IN PROGRAMMING; No 4 (2024); 34-42 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2024); 34-42 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2024); 34-42 1727-4907 10.15407/pp2024.04 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/672/724 Copyright (c) 2025 PROBLEMS IN PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2025-04-16T13:57:48Z |
collection |
OJS |
language |
Ukrainian |
topic |
regression task machine learning forecasting docker container web service mobile application Google Flutter Bentoml Mlops microservices UDC 658.26 004.421 004.89 |
spellingShingle |
regression task machine learning forecasting docker container web service mobile application Google Flutter Bentoml Mlops microservices UDC 658.26 004.421 004.89 Doroshenko, A.Yu. Haidukevych, Y.O. Haidukevych, V.O. Zhyrenkov, O.S. User-centric technology stack for weather and air pollution forecasting |
topic_facet |
regression task machine learning forecasting docker container web service mobile application Google Flutter Bentoml Mlops microservices UDC 658.26 004.421 004.89 задача регресії машинне навчання прогнозування контейнер веб-сервіс мобільний застосунок Google Flutter Bentoml Mlops мікросервісна архітектура УДК 658.26 004.421 004.89 |
format |
Article |
author |
Doroshenko, A.Yu. Haidukevych, Y.O. Haidukevych, V.O. Zhyrenkov, O.S. |
author_facet |
Doroshenko, A.Yu. Haidukevych, Y.O. Haidukevych, V.O. Zhyrenkov, O.S. |
author_sort |
Doroshenko, A.Yu. |
title |
User-centric technology stack for weather and air pollution forecasting |
title_short |
User-centric technology stack for weather and air pollution forecasting |
title_full |
User-centric technology stack for weather and air pollution forecasting |
title_fullStr |
User-centric technology stack for weather and air pollution forecasting |
title_full_unstemmed |
User-centric technology stack for weather and air pollution forecasting |
title_sort |
user-centric technology stack for weather and air pollution forecasting |
title_alt |
Клієнто – центричний технологічний стек для прогнозу погоди та якості повітря |
description |
This paper proposes the multi-stage process of delivering the forecast data to end-user mobile device. The initial task here is to collect the historical weather and air pollution data. After that, the following steps should allow to build the forecasting infrastructure: the input-output model should be defined for regression task, the machine learning algorithm should be trained and its hyperparameters should be optimized, this forecasting model should be serialized to file and it should be used to create the publicly available web-service, the mobile device should have the application installed that would be querying the forecast data from the service and would be displaying the multi-parameter chart on the screen.The proposed concept of user-centric distributed application covers the following three pillars of this architecture: machine learning model, containerized web-service and user interface application on mobile device. The Python-based libraries Numpy and Pandas were used to prepare the dataset, the Scikit-learn library and Histogram gradient boosting algorithm were leveraged to build the machine learning model. Here are the technologies employed to build the web-service: Docker, Kubernetes, FastAPI and BentoML. The Google Flutter platform was used to build the application for mobile devices.Prombles in programming 2024; 4: 34-42 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2025 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/672 |
work_keys_str_mv |
AT doroshenkoayu usercentrictechnologystackforweatherandairpollutionforecasting AT haidukevychyo usercentrictechnologystackforweatherandairpollutionforecasting AT haidukevychvo usercentrictechnologystackforweatherandairpollutionforecasting AT zhyrenkovos usercentrictechnologystackforweatherandairpollutionforecasting AT doroshenkoayu klíêntocentričnijtehnologíčnijstekdlâprognozupogoditaâkostípovítrâ AT haidukevychyo klíêntocentričnijtehnologíčnijstekdlâprognozupogoditaâkostípovítrâ AT haidukevychvo klíêntocentričnijtehnologíčnijstekdlâprognozupogoditaâkostípovítrâ AT zhyrenkovos klíêntocentričnijtehnologíčnijstekdlâprognozupogoditaâkostípovítrâ |
first_indexed |
2025-07-17T09:57:58Z |
last_indexed |
2025-07-17T09:57:58Z |
_version_ |
1838410091277058048 |
fulltext |
Прикладне програмне забезпечення та інформаційні системи
34
© А.Ю. Дорошенко, Я.О. Гайдукевич, В.О. Гайдукевич, О.C. Жиренков, 2024
ISSN 1727-4907. Проблеми програмування. 2024. №4
УДК 658.26, 004.421, 004.89 http://doi.org/10.15407/pp2024.04.034
А.Ю. Дорошенко, Я.О. Гайдукевич, В.О. Гайдукевич, О.С. Жиренков
КЛІЄНТО-ЦЕНТРИЧНИЙ ТЕХНОЛОГІЧНИЙ СТЕК ДЛЯ
ПРОГНОЗУ ПОГОДИ ТА ЯКОСТІ ПОВІТРЯ
У роботі запропоновано багатоетапний процес доставки прогнозних даних на мобільний пристрій кінце-
вого користувача при метеорологічному прогнозуванні. Початковим завданням є збір історичних даних
про погоду та забруднення повітря. Після цього наступні кроки повинні дозволити побудувати інфра-
структуру прогнозування: модель вхідних та вихідних параметрів повинна бути визначена для задачі
регресії, алгоритм машинного навчання має бути визначений та його гіперпараметри мають бути опти-
мізовані. Така модель прогнозування має бути збережена у файлі і використана для створення загально-
доступного веб-сервісу, а на мобільному пристрої має бути встановлений додаток, який би запитував
прогнозні дані у сервісу та виводив би їх на екран у вигляді багатопараметричного графіка. Запропоно-
вана концепція розподіленого програмного рішення охоплює наступні три головні аспекти цієї архітек-
тури: модель машинного навчання, контейнеризований веб-сервіс та додаток інтерфейсу користувача на
мобільному пристрої. Бібліотеки Numpy та Pandas мови Python були використані для підготовки набору
даних, бібліотека Scikit-learn і алгоритм Histogram gradient boosting були застосовані для створення ре-
гресійної моделі. Наступні технології були використані для побудови веб-сервісу: Docker, Kubernetes,
FastAPI та BentoML. Для створення мобільної програми використовувалася платформа Google Flutter.
Ключові слова: задача регресії, машинне навчання, прогнозування, контейнер, веб-сервіс, мобільний
застосунок, Google Flutter, Bentoml, Mlops, мікросервісна архітектура.
A.Yu. Doroshenko, Y.O. Haidukevych, V.O. Haidukevych, O.S. Zhyrenkov
USER-CENTRIC TECHNOLOGY STACK FOR WEATHER AND
AIR POLLUTION FORECASTING
This paper proposes the multi-stage process of delivering the forecast data to end-user mobile device. The initial
task here is to collect the historical weather and air pollution data. After that, the following steps should allow to
build the forecasting infrastructure: the input-output model should be defined for regression task, the machine
learning algorithm should be trained and its hyperparameters should be optimized, this forecasting model should
be serialized to file and it should be used to create the publicly available web-service, the mobile device should
have the application installed that would be querying the forecast data from the service and would be displaying
the multi-parameter chart on the screen.
The proposed concept of user-centric distributed application covers the following three pillars of this architec-
ture: machine learning model, containerized web-service and user interface application on mobile device. The
Python-based libraries Numpy and Pandas were used to prepare the dataset, the Scikit-learn library and Histo-
gram gradient boosting algorithm were leveraged to build the machine learning model. Here are the technologies
employed to build the web-service: Docker, Kubernetes, FastAPI and BentoML. The Google Flutter platform
was used to build the application for mobile devices.
Key words: regression task, machine learning, forecasting, docker container, web service, mobile application,
Google Flutter, Bentoml, Mlops, microservices.
Вступ
Задача прогнозування погоди була
актуальною у всі часи. Однак у 21-му сто-
літті екологічна складова стала особливо
важливою через зміни клімату та військові
ризики. Усі погодні характеристики та па-
раметри забруднення повітря взаємо-
пов’язані та впливають один на одного. Як
відомо, збільшення парникових газів приз-
водить до глобального потепління. Отже,
ефективний підхід до прогнозування пови-
нен враховувати всі доступні параметри в
одній моделі. Саме це і створює додаткові
труднощі, оскільки більша кількість вхід-
них параметрів ускладнює модель, і не всі
параметри однаково корисні для цілей про-
гнозування.
У даній роботі запропоновано бага-
тоетапний процес доставки прогнозних да-
Прикладне програмне забезпечення та інформаційні системи
35
них на мобільний пристрій кінцевого кори-
стувача. Початковим завданням є збір істо-
ричних даних про погоду та забруднення
повітря, після чого будується інфраструк-
тура прогнозування: модель вхідних та ви-
хідних параметрів повинна бути визначена
для задачі регресії, алгоритм машинного
навчання має бути визначений та його гіпе-
рпараметри мають бути оптимізовані. Така
модель прогнозування зберігається у файлі
і використовується для створення загально-
доступного веб-сервісу, а на мобільному
пристрої встановлюється додаток, який ви-
конує запит прогнозних даних до цього веб-
сервісу та виводить їх на екран у вигляді ба-
гатопараметричного графіка.
Набір даних для навчання
Як погодні дані, так і показники за-
бруднення повітря для міста Київ були
отримані із сайту openweathermap.org. Зок-
рема, цей сервіс дозволяє отримати багато
атмосферних характеристик для довільних
GPS координат. Основні колонки цього на-
бору даних показані на рис. 1. Дана таблиця
містить погодинні дані та 33’863 записи в
цілому, від 25-11-2020 до 05-10-2024.
Для реєстрації напрямку вітру зазви-
чай використовуються градуси. Але цей
формат не є добрим для алгоритмів машин-
ного навчання [1] через розривність пред-
ставлення між 359° та 0°. Одним із популя-
рних методів вирішення цієї проблеми є ви-
користання сінусу та косінусу відповідного
кута [2]. Ці колонки були розраховані з ви-
користанням алгоритму написаного на Py-
thon.
Забруднення повітря для всіх показ-
ників вимірюється у мікрограмах на кубіч-
ний метр (µg/m3). Найбільшим забруднюва-
чем є чадний газ через високу концентра-
цію. Параметри LevelPM2 та LevelPM10
позначають пилове забруднення частин-
ками до 2.5 та до 10 мікрометрів відповідно.
Крім того, значення PM10 включає рівень
PM2.5. Частинки PM2.5 шкідливі тим, що
потрапляють безпосередньо в кров людини.
Частинки більше ніж PM10 зазвичай відфі-
льтровуються в дихальних шляхах та не по-
трапляють в легені.
Якість прогнозу можна суттєво пок-
ращити з використанням циклічних пара-
метрів [2]. Очевидно, добові та річні цикли
безпосередньо впливають на температуру
повітря. Тижневі цикли пов’язані із забруд-
ненням повітря, тому що багато підпри-
ємств не працюють на вихідних. Ці вісім
параметрів також були згенеровані з вико-
ристанням алгоритму, реалізованого на Py-
thon. Робота з фреймами даних була спро-
щена бібліотеками pandas та numpy.
Етап машинного навчання
Для навчання регресійної моделі
були обрані наступні набори вхідних та ви-
хідних параметрів:
input_columns = \
['SineDay', 'CosineDay',
'SineWeek', 'CosineWeek',
'SineMonth', 'CosineMonth',
'SineYear', 'CosineYear',
'Temperature', 'DewPoint',
'Pressure', 'Humidity',
'WindSpeed', 'WindSine',
'WindCosine', 'CloudLevel',
'LevelCO', 'LevelNO',
'LevelNO2', 'LevelO3',
'LevelSO2', 'LevelNH3',
'LevelPM2', 'LevelPM10',
'Temperature-M1', 'DewPoint-M1',
'Pressure-M1', 'Humidity-M1',
'WindSpeed-M1', 'WindSine-M1',
Рис. 1. Погодинна інформація про погодні умови та забруднення повітря, м. Київ.
Прикладне програмне забезпечення та інформаційні системи
36
'WindCosine-M1', 'CloudLevel-M1',
'LevelCO-M1', 'LevelNO-M1',
'LevelNO2-M1', 'LevelO3-M1',
'LevelSO2-M1','LevelNH3-M1',
'LevelPM2-M1', 'LevelPM10-M1']
output_columns = \
['Temperature-P1', 'DewPoint-P1',
'Pressure-P1', 'Humidity-P1',
'WindSpeed-P1', 'WindSine-P1',
'WindCosine-P1', 'CloudLevel-P1',
'LevelCO-P1', 'LevelNO-P1',
'LevelNO2-P1', 'LevelO3-P1',
'LevelSO2-P1', 'LevelNH3-P1',
'LevelPM2-P1', 'LevelPM10-P1']
Тут суфікс M1 позначає значення
показника годину тому, а суфікс P1 – через
годину. В подальшому модель даних може
бути покращена, і глибина історії прогнозу-
вання може бути збільшена. Але дана мо-
дель вже дозволяє ітеративне прогнозу-
вання на довільний час наперед.
Набір даних був розділений на на-
вчальну та тестову вибірку у пропорції 80%
до 20% за допомогою бібліотечної функції
train_test_split. Алгоримом регресії було об-
рано Histogram Gradient Boosting, що є пе-
реможцем багатьох комерційних змагань.
Слід відзначити швидкість цього алгори-
тму, що досягається за рахунок квантизації
векторів навчальної вибірки. Наприклад,
фаза тренування на поточному наборі да-
них потребувала лише 45 секунд. Натрено-
вана модель була збережена у файл у фор-
матах ONNX та Pickle [3–5] для подаль-
шого використання. Точність прогнозу-
вання на годину наперед наведена в табл. 1.
Таблиця 1
Точність прогнозування на годину наперед
Параметр R2 Score MAE
Temperature-P1 0.995264 0.436919
DewPoint-P1 0.981279 0.590434
Pressure-P1 0.995751 0.340160
Humidity-P1 0.935305 2.676903
WindSpeed-P1 0.146426 0.915481
WindSine-P1 0.491392 0.299113
WindCosine-P1 0.683517 0.234346
CloudLevel-P1 0.871486 7.293946
LevelCO-P1 0.977555 3.846348
LevelNO-P1 0.858722 0.444098
LevelNO2-P1 0.006143 2.336877
LevelO3-P1 0.974631 2.397414
LevelSO2-P1 0.931484 0.511058
LevelNH3-P1 0.926684 0.151170
LevelPM2-P1 0.969548 0.425212
LevelPM10-P1 0.946920 0.537251
Мікросервісний підхід до архітек-
тури програмного забезпечення
У сучасний період розвитку штучного
інтелекту (AI) та машинного навчання (ML)
важливим є гарантування швидкої розро-
бки та розгортання програмного забезпе-
чення, яке інтегрує розроблені моделі та до-
водить їх до кінцевого споживача. Мікро-
сервісна архітектура є важливим підходом,
що спрощує цей процес завдяки декомпози-
ції систем на незалежні компоненти. Цей
підхід дозволяє командам розробників пра-
цювати над різними частинами системи па-
ралельно, що значно прискорює цикл роз-
робки та впровадження нових функцій [6].
Мікросервісна архітектура базується
на принципі декомпозиції системи на слабо
пов’язані між собою компоненти, кожен з
яких виконує окрему функцію. Це дозволяє
забезпечувати:
• Масштабованість (Scalability):
можливість незалежного горизонтального
масштабування компонентів.
• Гнучкість (Adaptability): підви-
щення адаптивності системи, швидкості
внесення змін як реакції на зміну бізнес-ви-
мог.
• Ремонтопридатність (Maintain
ability): простота оновлення або заміни ок-
ремих сервісів.
MLOps підходи
MLOps – це практичний підхід, який
поєднує машинне навчання (ML) та опера-
ційні процеси (Ops), спрямований на авто-
матизацію та оптимізацію життєвого циклу
моделей машинного навчання. Цей підхід
дозволяє командам швидше впроваджувати
нові алгоритми та моделі, забезпечуючи
безперервну інтеграцію і доставку (CI/CD)
для проєктів машинного навчання [7].
Прикладне програмне забезпечення та інформаційні системи
37
У свою чергу це сприяє підвищенню
якості моделей та зменшенню часу виходу
на ринок нових продуктів, що є критично
важливим у сучасному конкурентному се-
редовищі [8].
На рис. 2 наведено діаграму Ейлера-
Венна, яка описує логічне місце MLOps
практик у комплексі задач, повʼязаних із
машинним навчанням.
Рис. 2. Місце MLOps серед задач машин-
ного навчання та інженерії програмного
забезпечення
Прикладами MLOps фреймворків, які
надають подібний інструментарій є:
• MLFlow – платформа з відкритим
вихідним кодом, яка полегшує управління
робочими процесами машинного навчання
за допомогою експериментів відстеження,
упаковки коду у відтворювані запуски та
спільного використання моделей у середо-
вищі співпраці;
• KubeFlow – платформа, що спро-
щує розгортання та управління робочими
процесами машинного навчання на
Kubernetes, забезпечуючи масштабованість
і гнучкість для різноманітних проєктів.
• BentoML – платформа, яка дозво-
ляє легко упаковувати та розгортати моделі
машинного навчання у вигляді веб-сервісів,
що спрощує інтеграцію з існуючими додат-
ками та системами.
Також існує велика кількість комер-
ційних MLOps систем, як-от AWS
SageMaker, Microsoft Azure Machine
Learning та інші, які не є предметом даного
дослідження, але про які необхідно згадати.
У контексті MLOps мікросервіси
сприяють:
• Розподілу завдань: команди мо-
жуть самостійно розробляти, тестувати та
розгортати моделі.
• Контейнеризації: використання
Docker для ізоляції моделей та їх залежнос-
тей. Контейнеризація спрощує процес роз-
гортання та повторного використання мо-
делей. Вона також підвищує ефективність
управління залежностями, полегшуючи об-
слуговування.
• Оркестрації: автоматизація ко-
ординації мікросервісів через інструменти,
як Apache Airflow [9], Temporal [10],
Dagster [11] та інші інструмента оркестрації
роботи з даними засновані на формування
циклу роботи з даними у вигляді спрямова-
них ациклічних графів (DAG – Direct
Acyclic Graphs).
Запропонована архітектура
Для вирішення задачі побудови кліє-
нто-центричного додатку прогнозування
погодних умов з використанням моделей
машинного навчання було використано
підхід, що передбачає наступні структурні
компоненти:
• Сервіс машинного навчання.
Використано технологію BentoML –
MLOps програмне забезпечення для розго-
ртання масштабованих додатків та розмі-
щення моделей будь-якого типу.
• Серверна частина (Backend):
FastAPI – фреймворк, призначений для
створення швидких та ефективних веб-до-
датків, які забезпечують REST API, гаран-
туючи водночас високу продуктивність та
простоту інтеграції з іншими сервісами.
• Оркестратор: для експерименту
було використано короткий python-скрипт,
який забезпечує наповнення даних щодо
прогнозованих значень погоди. У випадку
подальшого розвитку проєкту за рахунок
винесення оркестратора в окремий компо-
нент його дуже легко замінити на більш ма-
сштабовані системи по оркестрації потоків
роботи з даними.
Рис. 3 демонструє структуру компо-
нентів системи, що забезпечують інтегра-
Прикладне програмне забезпечення та інформаційні системи
38
цію між різними частинами сервісу прогно-
зування погоди.
У результаті було отримано набір
точок доступу (рис. 4), які дозволяють здій-
снювати весь комплекс необхідних дій для
забезпечення бізнес-логіки.
Рис. 4. Набір точок доступу до серверної
логіки
Flutter та кросплатформність у
створенні інтерактивного екологі-
чного додатку
В основі розробки інтерактивного
додатку для моніторингу погоди та якості
повітря лежить Flutter — сучасний кро-
сплатформний фреймворк, створений ком-
панією Google. Завдяки своїм технічним
можливостям Flutter дозволяє створювати
додатки з єдиним кодовим базисом, які пра-
цюють на Android, iOS, Web та Desktop. Це
забезпечує значну економію часу та ресур-
сів, що є критично важливим у наукових
проєктах і стартапах.
Основні переваги Flutter для кро-
сплатформних проєктів:
1. Єдиний код для всіх платформ:
Flutter дозволяє використовувати
одну кодову базу для створення до-
датку на різних операційних систе-
мах, що спрощує його підтримку та
оновлення.
2. Гнучка система компонентів: За-
вдяки розгалуженій бібліотеці ком-
понентів (віджетів), включно з уні-
кальними елементами UI, такими
як графіки, картографічні компоне-
нти та елементи взаємодії, можна
швидко створювати складні інтер-
фейси.
3. Швидкість розробки: Функція "Hot
Reload" дає змогу миттєво побачити
зміни в інтерфейсі після редагування
коду, що суттєво пришвидшує про-
цес розробки.
4. Продуктивність: Flutter використо-
вує власне обчислення зображення
(без посередників на зразок
JavaScript), що забезпечує високу
швидкість і плавність роботи дода-
тку навіть на пристроях із низькою
продуктивністю.
5. Широка екосистема бібліотек: У
проєкті використовується ряд поту-
Рис. 3. Запропонована архітектура логіки серверної частини та роботи з моделлю
машинного навчання.
Прикладне програмне забезпечення та інформаційні системи
39
жних бібліотек, які допомагають ре-
алізувати інтерактивність, обробку
даних та адаптивний інтерфейс. На-
приклад:
I. Syncfusion Flutter Charts
для візуалізації даних.
II. fl_chart та chart_sparkline
для створення графіків і лі-
нійних графіків (sparkline).
III. flutter_map і latlong2 для ін-
теграції картографії.
Практичне застосування Flutter у
проєкті:
В проєкті Flutter для створення інте-
рактивної екосистеми використовується
компоненти, які дозволяють:
1. Відображати погодні параметри та
індекс якості повітря (AQI) на карті
України в реальному часі.
2. Інтегрувати графіки та візуалізації
для аналізу змін у параметрах до-
вкілля.
3. Забезпечити доступність додатка як
на мобільних пристроях, так і у веб-
браузерах.
Створення інтерактивної системи
моніторингу погоди та якості
повітря
Інтеграція сучасних технологій у
сферу моніторингу стану довкілля є важли-
вим етапом розвитку екологічної свідомо-
сті суспільства. Інтерактивні додатки, що
поєднують дані про погоду та якість пові-
тря, не лише забезпечують зручний доступ
до інформації, а й сприяють глибшому ро-
зумінню впливу екологічних факторів на
здоров’я людини. Одним із таких рішень є
додаток, розроблений на базі Flutter, який
дозволяє в реальному часі оцінювати еко-
логічний стан ключових регіонів України.
Головна мета розробки такого дода-
тку полягає в тому, щоб забезпечити інте-
рактивний доступ до екологічної інформа-
ції через карту, яка відображає погодні
умови (температура, вологість, швидкість
вітру тощо) та рівень забруднення повітря у
вигляді індексу якості повітря (AQI). Візуа-
льна складова, а саме кольорові маркери на
карті, є важливим елементом дизайну, що
сприяє швидкому сприйняттю інформації.
Для кожного з індексів AQI визначено ко-
лір, який символізує рівень якості повітря:
зелений означає "добре", жовтий — "задо-
вільно", помаранчевий — "помірно", черво-
ний — "погано", а темно-коричневий —
"дуже погано". Перевага такого підходу по-
лягає в тому, що кольори дозволяють кори-
стувачеві миттєво оцінити ситуацію.
Дані для відображення отримуються
з API OpenWeatherMap та власним API, в
основі якої лежить модель машинного нав-
чання для прогнозу метеорологічних даних.
Сервіс надає вичерпну інформацію про по-
году та стан атмосфери у форматі JSON.
Приклад показників для міста Київ може
включати такі параметри: температура —
18°C, тиск — 1015 гПа, вологість — 60%,
швидкість вітру — 5 м/с, а також індекс
AQI. Усі ці дані проходять обробку та візу-
алізацію в реальному часі.
Особливістю додатку є його інтера-
ктивність. Наприклад, натискання на мар-
кер міста відкриває вікно з детальною інфо-
рмацією, де зазначаються погодні параме-
три та пояснення щодо рівня AQI. Це дозво-
ляє користувачам не лише сприймати сухі
цифри, а й отримувати пояснення щодо їх
впливу. Окрім того, вбудовані графіки да-
ють змогу аналізувати зміни певних пара-
метрів протягом доби чи тижня.
Розробка таких додатків має знач-
ний потенціал для суспільного блага. З од-
ного боку, вони підвищують екологічну
обізнаність населення, а з іншого — можуть
бути корисними для спеціалістів: екологів,
метеорологів, міських планувальників. На-
приклад, дані про якість повітря в конкрет-
ному регіоні можуть бути використані для
визначення впливу промислових викидів
або транспортного навантаження.
Отож, інтерактивний додаток для
моніторингу погоди та якості повітря є су-
часним інструментом, який сприяє зруч-
ному доступу до важливої екологічної ін-
формації. Завдяки об’єднанню актуальних
даних, інтерактивних візуалізацій і приваб-
ливого дизайну проєкт робить внесок у по-
будову свідомого ставлення до екології та
здоров’я населення.
Прикладне програмне забезпечення та інформаційні системи
40
Візуалізація даних за допомогою
інтерактивних графіків
Одним із ключових елементів інте-
рактивного додатку є графічне представ-
лення прогнозів, яке дозволяє користува-
чам не лише отримувати поточні дані, а й
аналізувати їхні зміни у часі (див. рис. 5).
Завдяки інтеграції з API OpenWeatherMap
та іншими метеорологічними сервісами,
додаток пропонує прогнозування важливих
параметрів, таких як температура, воло-
гість, швидкість вітру, атмосферний тиск та
рівень забруднення повітря (AQI) на кілька
днів наперед.
Особливу увагу приділено візуаліза-
ції графіків, які дають змогу чітко просте-
жити динаміку зміни погодних умов та рі-
вня забруднення повітря протягом доби, ти-
жня чи навіть місяця. Графічне подання цих
даних не лише робить їх легшими для
сприйняття, а й допомагає користувачам
передбачати можливі зміни в екологічній
ситуації. Наприклад, на графіках можна по-
бачити, як змінюється температура та рі-
вень забруднення повітря в певному регіоні
залежно від часу доби або тижня, що дозво-
ляє оцінити ймовірність виникнення шкід-
ливих екологічних умов, таких як високий
рівень AQI в певні періоди часу.
Рис. 5. Візуалізація показників AQI та ме-
теорологічних даних у реальному часі
Графіки прогнозів можуть бути
представлені як лінійні діаграми (рис. 6),
що з'єднують значення певних параметрів
на різних часових інтервалах, так і як гісто-
грами, що дозволяють більш наочно відо-
бражати порівняння між різними парамет-
рами, як-от, рівнем забруднення на різних
локаціях. Це дає змогу швидко зрозуміти,
де саме і коли рівень забруднення може
бути найбільш небезпечним для здоров'я
людей.
Завдяки інтерактивним графікам,
користувач може взаємодіяти з даними,
обираючи різні періоди часу для аналізу та
отримуючи відображення зміни погодних
умов чи AQI за вибраний інтервал. Це до-
зволяє не тільки спостерігати за поточною
ситуацією, а й робити прогнози на майбу-
тнє, враховуючи сезонні чи погодні тенден-
ції. Важливою перевагою є також можли-
вість адаптувати графіки під різні типи да-
них, що робить додаток корисним як для
простих користувачів, так і для професіона-
лів, таких як екологи та метеорологи, які
можуть детальніше аналізувати прогнози
для конкретних регіонів.
Таким чином, графічні прогнози у
додатку не тільки сприяють кращому розу-
мінню екологічної ситуації, а й допомага-
ють в ухваленні обґрунтованих рішень
щодо захисту здоров'я та навколишнього
середовища.
Рис. 6. Графічний прогноз метеорологіч-
них даних на основі машинного навчання
Бібліотека Syncfusion Flutter
Charts є потужним інструментом для візу-
алізації великої кількості даних у вигляді
графіків, що допомагає здійснювати гли-
бокий аналіз й ухвалювати обґрунтовані
Прикладне програмне забезпечення та інформаційні системи
41
рішення. Вона дозволяє інтегруватися з рі-
зноманітними джерелами даних, зокрема,
через API, що робить її ідеальним вибором
для прогнозування і моніторингу таких па-
раметрів, як погодні умови, рівень забруд-
нення повітря, чи навіть для аналізу еконо-
мічних показників.
Такі інструменти використовуються
в дослідженнях, де необхідно інтерактивно
демонструвати дані з часом, виявляти тре-
нди та аномалії, що є важливими у плану-
ванні міської екологічної політики, прогно-
зуванні погоди та багатьох інших галузях
науки та технологій.
У представленому коді (рис. 7), ви-
користовується компонент
SfCartesianChart для створення лінійного
графіку, який відображає дані про зміну пе-
вного параметра, наприклад, температури
чи рівня забруднення повітря. Графік інте-
рактивний і дає можливість користувачу
взаємодіяти з даними для кращого розу-
міння та прогнозування.
Це здійснюється за допомогою та-
ких параметрів:
• tooltipBehavior: дозволяє показу-
вати підказки, які з'являються при наве-
денні на точку графіка, що покращує взає-
модію з даними;
• primaryXAxis та primaryYAxis:
визначають осі графіка. Ось X використо-
вує категоріальну шкалу для часу, де кожна
мітка є датою та часом. За допомогою
AxisLabelFormatter можна налаштувати
відображення дат у зручному форматі (dd
MMM HH:mm), що полегшує читання гра-
фіка;
• LineSeries: це основний тип ряду
для лінійних графіків, який приймає дані
про час та значення параметрів (наприклад,
температура чи AQI). Важливим є те, що
параметри даних вказуються як
Map<String, dynamic>, що дає гнучкість у
роботі з різними типами даних.
У цьому випадку дані про час і зна-
чення параметрів зберігаються у форматі
словника (chartData), де для кожної точки
графіка визначено, коли було отримано зна-
чення і яке саме значення параметра для
цього часу.
Рис. 7. Прогнозування погодних умов за допомогою бібліотеки Syncfusion Flutter Charts
Прикладне програмне забезпечення та інформаційні системи
42
Висновки
В роботі розроблена концепція роз-
поділеного програмного рішення, орієнто-
ваного на користувача, що охоплює насту-
пні три головні аспекти запропонованої ар-
хітектури: модель машинного навчання, ко-
нтейнеризований веб-сервіс та додаток ін-
терфейсу користувача на мобільному при-
строї. Бібліотеки Numpy та Pandas мови Py-
thon були використані для підготовки на-
бору даних, а бібліотека Scikit-learn і алго-
ритм Histogram gradient boosting були за-
стосовані для створення регресійної моделі.
Для побудови веб-сервісу були використані
технології: Docker, Kubernetes, FastAPI та
BentoML. Для створення мобільної про-
грами використовувалася платформа
Google Flutter.
References
1. C. M. Bishop, Pattern recognition and machine
learning, Springer, 2006. [cited
04.03.2024]. https://www.microsoft.com/
en-us/research/uploads/prod/2006/01/Bishop-
Pattern-Recognition-and-Machine-Learning-
2006.pdf
2. A. Van Wyk, Encoding Cyclical Features for
Deep Learning. [cited 04.03.2024].
https://www.kaggle.com/code/avanwyk/en-
coding-cyclical-features-for-deep-learning
3. Scikit-learn: Machine Learning in Python. [ac-
cessed 04.03.2024]. https://scikit-
learn.org/stable/
4. Feature selection with scikit-learn library.
[cited 04.03.2024]. https://scikit-learn.org/
stable/modules/feature_selection.html
5. X. Dupre, O. Grisel, Accelerate and simplify
Scikit-learn model inference with ONNX
Runtime. [cited 04.03.2024]. https://cloud-
blogs.microsoft.com/open-
source/2020/12/17/accelerate-simplify-scikit-
learn-model-inference-onnx-runtime/
6. Ribeiro, J. L., et al. “A Microservice Based
Architecture Topology for Machine Learning
Deployment.”IEEE International Smart Cities
Conference, Oct. 2019,
https://doi.org/10.1109/ISC246665.2019.9071
708.
7. Kreuzberger, Dominik, et al.Machine Learn-
ing Operations MLOps Overview Definition
and Architecture.
8. Kim, Chorwon, et al.A Microservice-Based
MLOps Platform for Efficient Development
of AI Services in an Edge-Cloud Environ-
ment. Oct. 2023,
https://doi.org/10.1109/ictc58733.2023.10392
296.
9. Apache Airflow use cases [cited 20.11.2024]
https://airflow.apache.org/use-cases/
10. Temporal IO use cases [cited 20.11.2024]
https://temporal.io/in-use
11. Dagster use cases [cited 20.11.2024]
https://docs.dagster.io/getting-started
Одержано: 29.11.2024
Внутрішня рецензія отримана: 04.12.2024
Зовнішня рецензія отримана: 06.12.2024
Про авторів:
1,2Дорошенко Анатолій Юхимович,
доктор фізико-математичних наук,
професор, завідувач відділу
http://orcid.org/0000-0002-8435-1451.
1Гайдукевич Ярослав Олегович,
аспірант.
http://orcid.org/0000-0002-6300-1778.
1Гайдукевич Владислав Олегович,
аспірант.
http://orcid.org/0000-0002-0614-6778.
1Жиренков Олексій Сергійович,
аспірант.
http://orcid.org/0009-0007-3124-1359.
Місце роботи авторів:
1 Інститут програмних систем
НАН України,
тел. +38-044-526-60-33
E-mail: a-y-doroshenko@ukr.net,
yarmcfly@gmail.com,
gaidukevichvlad@gmail.com,
ozhyrenkov@gmail.com
2 НТУ України «Київський політехнічний
інститут імені Ігоря Сікорського»,
факультет iнформатики та
обчислювальної технiки,
тел. +38-044-204-86-10.
|