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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2025
Hauptverfasser: Doroshenko, A.Yu., Haidukevych, Y.O., Haidukevych, V.O., Zhyrenkov, O.S.
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 programming
id 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.