<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <article-id pub-id-type="doi">10.31784/zvr.6.1.19</article-id>
      <title-group>
        <article-title>Information System for Air Quality Assessment and Data Processing: Design and Implementation⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Volodymyr Hnatushenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tetiana Bulana</string-name>
          <email>tatyana.bulanaya@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniil Boldyriev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dnipro University of Technology</institution>
          ,
          <addr-line>19 av. Dmytra Yavornytskoho, Dnipro, 49005</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Oles Honchar Dnipro National University</institution>
          ,
          <addr-line>35 av. Dmytra Yavornytskoho Dnipro, 49044</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>3426</volume>
      <fpage>0000</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>In recent years, the issue of air quality has become increasingly critical. This article presents a hardware and software-based solution for collecting and processing data from ground stations monitoring air quality. The system is designed to collect real-time data from monitoring stations, store the data in a central database, perform data processing, and detect anomalies. Additionally, the system offers data visualization through maps and tables. The developed solution consists of three core components: a web server, a web application, and ground stations. A key feature of the software is its ability to handle realtime data aggregation and fill data gaps using custom-built aggregators. This is achieved through realtime data parsing, managed by Celery workers and queued via RabbitMQ. All data is stored in an SQL database, with PostgreSQL and Django frameworks facilitating database management and administration. Python scripts are used to process raw data into user-friendly formats such as AQI indices and graphical representations. The system is designed for seamless deployment across multiple remote servers, ensuring high flexibility and reliability for researchers. This software architecture enables scalable, conflict-free deployment, enhancing the efficiency and accuracy of air quality assessments.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Air quality assessment</kwd>
        <kwd>information technology</kwd>
        <kwd>monitoring</kwd>
        <kwd>data processing</kwd>
        <kwd>semiconductor and electrochemical sensors 1</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>for
decision-making to
prevent negative environmental changes and compliance
with
environmental safety requirements.</p>
      <p>The main problem with the existing environmental monitoring system is the small number of
monitoring stations that can measure pollution indicators with the required accuracy. For instance,
there are only four such stations on the Dnipro River. First of all, it is due to the significant cost of
such stations.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Statement of the problem</title>
      <p>The currently existing rather large network of eco-monitoring stations created by activists cannot
measure concentrations of pollutants with the required accuracy. Still, some stations have a
relatively low cost.</p>
      <p>We have designed a system of automatic measurement of atmospheric air quality, which can
measure air pollution indicators with sufficiently high accuracy and, at the same time, is much
cheaper than existing products.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Related works</title>
      <p>
        The development and use of geographic information systems (GIS) for monitoring Earth's surface
processes, such as agromonitoring, air quality, and fire spread, have become increasingly
important. Utilizing satellite imagery, including data from Sentinel satellites, these systems provide
accurate and timely information crucial for managing and responding to environmental changes
effectively. GIS technology enables detailed analysis and visualization of spatial data, enhancing
decision-making processes in various fields [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. Nowadays, many studies have been published
about the use of outdoor devices for point assessment of air quality. In paper [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], the authors
presented an IoT (Internet of things) based design that will effectively monitor humidity,
temperature, and air quality of a given environment using NodeMCU sensors and the Blynk IoT
platform. The study in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] presents a calibration method that needs to check the existing accuracy
and improve it if needed. The proposed solution incorporates a simple compensation algorithm of
good performance that can be easily executed at any sensing node instead of
processingdemanding methods such as machine learning. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the authors attempt to cover the latest
advances and applications of electrochemical sensors in different industries. The role of
nanomaterials in electrochemical sensor research and advancements is also examined. In the paper
[6], the authors investigated the effectiveness of combining mobile technologies and sensors to
detect harmful particles in the air and address the problem of air pollution caused by traffic and
exhaust emissions. The paper presented the development of an Android smartphone-based
realtime monitoring system that utilizes an external analog sensor board to acquire and evaluate
physical measurements. Their system can detect concentration levels in the air, and the accuracy is
deployment of an IoT-based air quality monitoring system named the Environmental Monitoring
System (EnMoS). LoRa (Long-Range) wireless communication technology and innovation sensors
are used to facilitate the development of data communication networks over a large area,
improving sensing reliability, extending battery life, and reducing total system costs. In the paper
[
        <xref ref-type="bibr" rid="ref7">8</xref>
        ], the authors demonstrated the feasibility of our approach in effectively measuring and
predicting air quality using different machine learning algorithms with real-world data. Their
evaluation shows promising results for effective air quality monitoring and prediction for smart
city applications. In [
        <xref ref-type="bibr" rid="ref8">9</xref>
        ], the authors described a developed systematic mapping study defined by a
five-step methodology to identify and analyze the research status regarding IoT-based air pollution
monitoring systems for smart cities. The study includes 55 proposals, some of which have been
implemented in a real environment. They analyzed and compared proposals in terms of different
parameters defined in the mapping and highlighted some challenges for air quality monitoring
systems implementation in the smart city context. The study in [10] investigates the key issues of a
real-time pollution monitoring system, including the sensors, Internet of Things (IoT)
communication protocols, the acquisition and transmission of data through communication
security challenges within the communication channels between IoT gateways and the cloud
infrastructure where data are transmitted to.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Information system requirements and structure</title>
      <sec id="sec-4-1">
        <title>4.1. Information system requirements</title>
        <p>The air quality monitoring and processing system is designed to collect data from ground stations,
process it, and display it in an intuitive user interface.</p>
        <p>The following functional requirements were set for the system:
• the system must collect data from various ground-based air quality monitoring stations;
• the system must also support real-time data collection and storage in a database;
• the system will perform primary data processing (e.g., filtering, normalization);
• the system will detect anomalies in the data and generate appropriate alerts;
• the system can visualize data through graphs, maps, and tables.</p>
        <p>Among the non-functional requirements are the following:
• the system must gather data from various ground-based air quality monitoring stations;
• the system will have to provide fast access to and processing of data;
• the system is expected to have high availability;
• the system will use standardized protocols for data exchange.</p>
        <p>The system user can view the data from the ground station, get a quantitative and qualitative
assessment of the area, and save the data to his local machine.</p>
        <p>The hardware requirements of developed systems are:
• the sensor`s accuracy must satisfy international standards, providing monitoring of
parameters such as CO2, PM2.5, PM10, SO2, NO2, and ozone;
• the system must support communication technologies such as Wi-Fi, LTE, or LoRa for
data transmission;
• the sensors must be able to operate in an outdoor environment at different temperatures
and humidity levels;
• batteries, solar panels, etc must power the measurement system.</p>
        <p>All these requirements are shown in Figure 1.</p>
        <p>To understand the workings of the system, a sequence diagram was constructed to demonstrate
the calculation of AQI at the point shown in Figure 2.</p>
        <p>Also, the system has operational requirements such as:
• the system must provide uninterrupted monitoring 24/7 and have backup mechanisms
in case of failure;
• regular inspection, calibration and maintenance of sensors, as well as replacement of
power supplies;
• the system must satisfy security requirements to prevent unauthorized access to
information and configurations.</p>
        <p>Based on this, the system can be divided into the following parts:
•
•
•
ground-based monitoring stations;
a server that stores data from the station;
a web application that displays the data to the user.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Architecture of information system</title>
        <p>The information system's architecture is crucial to providing an efficient, reliable, and scalable air
quality monitoring and data processing system. In this section, we will take a closer look at the
structure and components of the system, describing their functions and interactions. The system
consists of several layers, each performing specific tasks and providing a certain level of data
processing. The main layers include the data collection layer, the parser layer, the server layer, and
the client layer. Each of these layers includes a variety of technologies and tools that together
create a powerful and flexible platform for real-time air quality monitoring (Figure 3).
This diagram shows the architecture of a system for monitoring and processing air quality data.</p>
        <p>The data layer collects data from various sources:
•
•</p>
        <p>Custom sensors sensors specifically designed to collect air quality data,
Open APIs Interfaces for accessing data from third-party providers,
• Government stations Monitoring stations operated by government agencies.</p>
        <p>The parsers layer processes the collected data using Celery workers workflows that receive
data from various sources and transfer it to RabbitMQ for further processing.</p>
        <p>The server layer is responsible for processing and storing data. As parts of that layer are used:
• RabbitMQ a queuing system that processes messages from Celery workers;
• PostgreSQL a relational database where the processed data is stored;
• Data Base the main data store administered by PostgreSQL;
• Data Transformation Scripts scripts that transform collected data into user-friendly
information such as an air quality index (AQI) or visual representations.</p>
        <p>The client layer provides a user interface for accessing processed data via a website or mobile
application. This allows users to easily obtain and analyze air quality data, which contributes to
raising environmental awareness and making informed decisions to protect health and the
environment.</p>
        <p>As a result, the information system architecture is a balanced and effective solution for air
quality monitoring. It combines modern technologies and approaches, ensuring reliability,
scalability, and ease of use, making it a powerful tool for environmental monitoring and data
analysis.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Math model of air quality</title>
      <p>
        The following components are most commonly monitored in determining ambient air quality:
nitrogen dioxide (NO2), ozone (O3), particulate matter up to 2.5 microns in size (PM2.5), particulate
matter up to 10 microns in size (PM10), sulfur dioxide (SO2) and carbon monoxide (CO) [
        <xref ref-type="bibr" rid="ref9">11</xref>
        ].
      </p>
      <p>The mechanism for the synthesis of sulfur dioxide was chosen as the reaction of interaction
between sodium sulfite and sulfuric acid (1):</p>
      <p>2 3 +  2 4 →  2 4 +  2 3,
formed sulfuric acid H2SO3 decomposes immediately into SO2 and H2O:
(1)
 2 3 →  2 +   2 ↑ (2)</p>
      <p>Obtained in this way (1)-(2) sulfur dioxide has some moisture and an impurity SO3 which can be
removed by passing the gas through concentrated sulfuric acid. In this case, the reaction product is
partially dried.</p>
      <p>This study's required purity of sulfur dioxide was achieved by displacing air from the reactor
using a water trap. Gas extraction was carried out in the reactor.</p>
      <p>The process of formic acid decomposition under the action of hot concentrated sulfuric (or
orthophosphoric) acid (3) was chosen as a mechanism for CO synthesis:
(3)
  2 +CO</p>
      <p>During reaction (3), water and an impurity of carbon dioxide CO2 are emitted in addition to
carbon monoxide. This study's required carbon monoxide purity was achieved by displacing air
from the reactor using a water trap. Gas extraction was made in the reactor.</p>
      <p>The admixture of CO2, partially water, and acid vapor can be removed by passing the resulting
gas through an aqueous solution of NaOH or KOH.</p>
      <p>The reaction of concentrated nitric acid on copper was chosen as the mechanism for the
synthesis:</p>
      <p>+ 4  3 →  (  3)2 + 2 2 ↑ +2 2 (4)</p>
      <p>In reaction (4), water is released in addition to nitrogen dioxide and its dimer. The required
purity of nitrogen dioxide in this research was achieved by displacing air from the reactor using a
water trap. Gas extraction was made in the reactor.</p>
      <p>Water vapor can be eliminated by passing the gas through silica gel.</p>
      <p>Ozone synthesis was based on a mechanism of ozone generation using a high-voltage discharge
in an air environment. The number of such discharges without a significant change in the oxygen
concentration should lead to a proportional increase in the ozone concentration.</p>
      <p>
        To make air quality assessments easy to understand and compare across regions, it is necessary
to use an assessment system that is accepted and understood in the international community. The
Air Quality Index (AQI) reports daily air quality, focusing on health effects that are felt within
hours or days of breathing in polluted air. The EPA calculates AQIs [
        <xref ref-type="bibr" rid="ref10">12</xref>
        ] for five major air
pollutants: ground-level ozone, PM (particulate matter), carbon monoxide, sulfur dioxide, and
nitrogen dioxide. The Ukrainian system operates with a threshold limit value (TLV) for each
pollutant set by law. TLV is not understandable for a wide audience due to the lack of color
indication and clear ranges, which could help raise citizen awareness. By implementing the US AQI
or similar systems, Ukraine can improve the efficiency of air quality monitoring and provide the
public with clear information about the state of the environment and possible health risks.
      </p>
      <p>Each pollutant is assigned an AQI range from 0 to 500, with a higher value indicating poorer air
quality. Each range represents a specific level of health risk. The colors (green, yellow, orange, red,
purple, and brown) are intuitive and help quickly assess the level of danger and take appropriate
safety measures.</p>
      <p>The calculation for each pollutant is as follows:
 =  ℎ ℎ−  ( −   ) +   , (5)</p>
      <p>ℎ ℎ− 
where I the Air Quality Index, C the pollutant concentration, Clow the concentration
breakpoint i.e. less or equal to C, Chigh the concentration breakpoint i.e. greater or equal to C, Ilow
the index breakpoint corresponding to Clow, Ihigh the index breakpoint corresponding to Chigh.</p>
      <p>Among all the calculated pollutant indexes, the highest value is selected as the final index for
the location.</p>
      <p>If some indicators are missing, they will be excluded from the calculation. The final AQI is
based on the available data and does not consider the missing indicators. If data on the pollutant
becomes available (for example, after a certain period of time), the AQI will be recalculated and
updated to reflect the most recent information.</p>
      <p>The source of information can be both ground-based and satellite data. Ground-based stations
provide a more accurate picture of the air condition. At the same time, satellite image data with a
certain error (due to cloud cover, etc.) can cover a larger area and solve the problem of terrain
coverage by stations.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Air quality monitoring ground stations</title>
      <sec id="sec-6-1">
        <title>6.1. Information system monitoring sensors</title>
        <p>Nowadays, many types of gas sensors can make it possible to determine the concentration of a
particular gas in the atmospheric air. These types include thermocatalytic, semiconductor,
electrochemical, galvanic, infrared, thermo-inductive, interferometric, photoinitial, and pyrolytic
sensors. Each type of sensor has its own advantages and disadvantages. In our work, we
investigated semiconductor and electrochemical sensors, as these sensors are the most suitable for
our objectives for implementing a low-budget atmospheric air monitoring station.</p>
        <p>During research on the gas-sensitive properties of the sensors, the necessary amount of gas was
injected into an isolated measuring chamber with a volume of 19 m3, which created the necessary
concentration in the air. If necessary, the sensor's temperature or the environment was recorded
with a miniature L-type thermocouple. There was also a ventilator in the measuring chamber,
which created an isotropic gas mixture. For semiconductor sensors, the ratio RS / R0, was recorded,
where RS is the sensor impedance in the medium, and R0 is the sensor impedance in pure air.
The output voltage was recorded for electrochemical sensors, and the digital code was recorded for
digital electrochemical sensors. The output data were processed using a microcontroller circuit and
output for further processing and storage to a personal computer.</p>
        <p>The following sensors were used in the experiment: MISC series semiconductor sensors, MQ
series semiconductor sensors, SH series semiconductor sensors, ME series electrochemical sensors,
ZE03 series electrochemical sensors, ZE12 series electrochemical sensors (Figure 4).</p>
        <p>The coincidence between the experimental data and the data in the documentation for this type
of sensor can be considered not very high. In addition, we have examined the repeatability of the
results with different sensors of the same kind placed under the same condition. Typical
characteristics for this case are shown in Figure 5.</p>
        <p>The analysis results for all types of sensors are shown in Table 1. The minimum concentration
of the admixture that the sensors could detect is also shown here.</p>
        <p>The following conclusions can be drawn from the results of the experiment:
•
•
•
•</p>
        <p>MQ-series semiconductor sensors are not interesting as they only register small emissions
concentrations.</p>
        <p>MICS series semiconductor sensors can only detect very high concentrations of emission
substances and require additional calibration.</p>
        <p>Electrochemical sensors of the ZE03 series can be used for a rough estimation of harmful
pollutants.</p>
        <p>The most interesting sensors for the atmospheric air quality monitoring system are the
electrochemical sensors of the ZE12 series, which were used to create the monitoring system.
MQ-131
MQ-7
2SH-12
MICS-6814
MICS-5524
MICS-4514
MICS-2714
ME3M-O3
ZE03
ZE12</p>
        <p>O3
CO
SO2
CO
NO2
NH3
CO
CO
NO2
NO2
O3
CO
O3
NO2
SO2
CO
O3
NO2
SO2
weak
weak
medium
weak
good
weak
good
good
good
medium
excellent
excellent
excellent
excellent
excellent
excellent
excellent
excellent
excellent</p>
        <sec id="sec-6-1-1">
          <title>Repeatability Minimum registered concen tration weak</title>
          <p>weak
weak
medium
medium
medium
medium
medium
medium
medium
good
good
good
good
good
good
good
good
good
10 ppm
20 ppm
1 ppm
1 ppm
0.5 ppm
1 ppm
1 ppm
1 ppm
0.5 ppm
0.5 ppm
0.05 ppm
1 ppm
0.05 ppm
0.1 ppm
0.1 ppm
100 ppb
10 ppb
10 ppb
10 ppb</p>
        </sec>
      </sec>
      <sec id="sec-6-2">
        <title>6.2. Air quality measurement system for data monitoring</title>
        <p>Based on the data above, we have developed a system of automatic measurement of atmospheric
air quality.</p>
        <p>Electrochemical sensors ZE-12 were used as measuring elements in the system. Temperature,
humidity, and atmospheric pressure are measured with a BME-280 sensor. The core of the
measuring system is a modern ARM STM32F103RET6 microcontroller. The microcontroller
processes data received via UART (Universal asynchronous receiver transmitter) and I2C from the
sensors. It should be noted that since the hardware resources of the microcontroller are not enough
to receive data from so many UARTs, it implemented the software UART, which allows the
processing of the data received. After receiving, the data was processed, stored on an SD card, and
transferred via WIFI or GSM (Global System for Mobile Communications) to cloud storage. The
device is controlled via Bluetooth. A 12V DC source powers the system. The entire system is
housed in an enclosure that provides IP53 protection.</p>
        <p>The developed system was tested with the help of stations of the ecological monitoring center
of Dnipropetrovsk region (Dnipro) and "Institute of Public Health by O.M. Marzeyev NAMSU"
(Kyiv). Approbation of work has shown the coincidence of the data received from our device with
the data of reference stations.</p>
        <p>Temperature, humidity, and pressure do not directly affect the AQI value but are necessary for
the sensors to work correctly and adjust the readings in changing conditions.</p>
        <p>Each pollutant's specific concentration ranges are defined and used to calculate the AQI. The
measurement capabilities of the system can cover these ranges, which confirms that the system's
measurement ranges align with the AQI limits:
There is a list of pollutants with measurement limits used for AQI calculation below:
•
•
•
•
•
•</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>7. Web application for air quality monitoring</title>
      <sec id="sec-7-1">
        <title>7.1. Data storing and processing system</title>
        <p>
          The data received from the stations are sent to the server. The server is written in Python using the
Django framework, and PostgreSQL is used as a DBMS (Database Management System). Data from
the station is sent using a POST request. The request's body contains information about the station
itself (name, location coordinates), data concerning the main pollution indicators, and
measurement time. The request also contains meteorological data (pressure, humidity,
temperature). Many studies have been conducted on methods for assessing air quality and the
factors that most influence air quality [
          <xref ref-type="bibr" rid="ref11 ref12 ref13">13-15</xref>
          ]. Many studies are trying to solve the problem of lack
of timely data.
        </p>
        <p>To receive data in a timely manner from at least one city, our sensors in this one will not be
enough. Therefore, the project also implements data collection from open APIs (Application
programming interfaces). This is implemented using parser and aggregator functions that are
triggered by time. Celery workers are responsible for them and provide data collection from more
than a thousand sensors for an hour. Parsers are run on a crone and queued, implemented using
the RabbitMQ service [16]. An API token ensures data transmission security, i.e., unique for each
station and attaches to all requests. The parser then parses the request, entering the data into the
database table fields. As the stations are mobile and send their GPS coordinates, the parser is
designed so that if the station has moved more than 50m the station is recognized as new.</p>
        <p>In addition to our stations, the server collects data from state air monitoring stations worldwide.
Data from government stations is sent to the server via APIs or other data exchange interfaces.
These can be direct connections to databases or third-party services to obtain the necessary
information. During each hour, the server collects data from all connected stations. This includes
data on the concentration of various pollutants, as well as other parameters that may affect air
quality. At the end of each hour, the average value of the indicators for each station is calculated.
This provides more stable and reliable data by eliminating short-term fluctuations. Based on the
average values, the AQI for each station is calculated. This process involves using regular formulas
and methods developed to assess air quality and its impact on health. The calculated AQI values
are stored in a database and displayed in a web application, allowing users to obtain up-to-date
information on air quality in different regions. The information can be presented through
interactive maps, graphs, and tables.</p>
        <p>
          Using the GDAL library, a Tiff file is generated, and the AQI values from the monitoring
stations are recorded and interpolated. This file represents the air quality index's spatial
distribution, allowing you to visually represent the air quality over a large area [
          <xref ref-type="bibr" rid="ref14">17</xref>
          ]. The stages of
processing with GDAL are described below. At first, the GDAL library is used to create a Tiff file in
which the AQI values are stored. The AQI values from the monitoring stations are interpolated to
create a continuous surface representing the air quality. After that, fragments corresponding to
country domains are removed from the PNG image. This allows for creating regional air quality
maps for each country individually. From these fragments, tiles are generated images for
different zoom levels of the website. Tiles allow you to efficiently display data on interactive maps,
providing fast loading and zooming. After tiles are generated, a folder corresponds to the current
hour for a specific AQI value. This allows you to organize data storage by time and provides access
to historical data. After creating the folder, it is uploaded to Amazon Simple Storage Service (S3).
This ensures that the data is stored securely and is available to users via a web application.
        </p>
        <p>The created REST API provides a structured and regular way to access the data. Users can query
the API to obtain various air quality information, including data from individual stations, averages,
and historical data. All generated files, such as Tiff and PNG images, are available for download
and further processing. These files can be used for detailed data analysis, report generation, or
integration with other systems. Standard file formats ensure compatibility with a wide range of
data processing and analysis tools such as QGIS or ArcGIS. The data described above is also
displayed in a web application with a user-friendly interface for visualizing air quality data. Users
can view interactive maps, graphs, and other visual representations of the data, allowing them to
assess the air quality in different regions quickly.</p>
      </sec>
      <sec id="sec-7-2">
        <title>7.2. Client part of information system</title>
        <p>
          The client part of the system [
          <xref ref-type="bibr" rid="ref15">18</xref>
          ] migrates to component-based architecture, which allows the
division of each layer into modules ordered by function. That solution breaks the facade service
paradigm and makes us able to communicate with each other by exposing not only controllers.
Modules are blocks of code that can be enabled and disabled as needed. This approach makes it
possible to reuse modules in different project parts. To ensure shared responsibility, all
asynchronous services (services) and data management have been separated into their own
modules [
          <xref ref-type="bibr" rid="ref16">19</xref>
          ]. The Dependency Injection pattern has been used in the project to create alternative
implementations of the services and embed them into the system.
        </p>
        <p>The advantages of component architecture include the following:</p>
        <p>Flexibility component-based architecture makes it easy to add new features and modules to
the system without disrupting the existing structure,
Scalability the modularity of the system makes it easy to scale, ensuring efficient operation
even with a significant increase in the amount of data or the number of users,
Maintainability the division into modules simplifies system maintenance and upgrades, as
changes can be made to individual parts without affecting the rest,
High performance due to the separation of asynchronous services and data management
into separate modules, the system provides high performance and efficient use of resources.</p>
        <p>The web application was developed using the Reactive programming approach [20]. The
approach is based on working with asynchronous data streams (sequences of events ordered by
time). Listening to the stream is called subscribing. The functions that we declare are called
observers. A stream is an observable object. The threads are asynchronous HTTP requests to the
system and global repository, which act as an intermediary between the presentation part
(hierarchy of web components) and data from the server. The listeners are the top-level
components (smart) of the presentational layer, which display the data or pass them on through
the component hierarchy (Figure 6). Therefore, using reactive programming in a web application
ensures efficient asynchronous data management and contributes to creating a flexible, scalable,
and easily maintained system.
reducing server load and improving overall system performance. This provides faster response
times and a smoother user experience for end users. In combination, these technological solutions
create an efficient and stable air quality monitoring system capable of processing large amounts of
data and providing users convenient access to up-to-date information. Raster tiles ensure optimal
memory usage, clustering improves rendering speed, and a thick client architecture increases
overall performance and data processing efficiency. This allows the system to function successfully
in conditions of intensive use and many users.</p>
        <p>The result of the development is a system for monitoring changes in air quality over time,
reflecting the received and processed data from ground sensors [21], meteorological data, and
satellite data in the form of Figure 7:
•
•
•
•
•
•
interactive maps by air quality index;
wind direction maps;
information on specific points in the world (current air condition);
information on the ground monitoring station (pollutant indicators for the past day/week in
the form of a graph);
interactive slider of pollution based on satellite images;
color scheme with a scale that explains the gradation chosen by the user.</p>
        <p>In summary, implementing component-oriented architecture has increased the flexibility and
modularity of the system, which contributes to more efficient code management and simplifies the
addition of new features. Reactive programming has become the basis for processing asynchronous
data streams, which ensures the automatic updating of information in real time and improves the
application's overall performance. Integration with the global storage and the creation of
asynchronous HTTP requests ensured the efficient collection and processing of large amounts of
data and their timely display for end users. So, the client part of the information system for
monitoring and processing air quality data is highly efficient, flexible, and scalable.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusions</title>
      <p>The main design stages are covered, starting with the system requirements, hardware and sensors
selection, and software development for data collection, transmission, and analysis. The
implemented system ensures high accuracy and reliability of data, which allows for a prompt
response to changes in air quality.</p>
      <p>Our custom sensors can analyze data on pollution concentration in the air. The results from
these sensors are sent to our server and stored in a database. To fill in data gaps, the system
implements real-time data parsing. All the information is parsed using Celery workers and fed into
the RabbitMQ queue. The data is stored in an SQL database using the PostgreSQL and Django
frameworks. The data is processed using Python scripts, transforming into user-friendly
information, such as the Air Quality Index (AQI) or images. The processed information can be used
in various user interfaces like websites or mobile applications. The advanced functionality of the
sensors includes the ability to detect a variety of pollutants, such as fine dust (PM2.5 and PM10),
you get a detailed picture of air quality in different regions. The system also can send alerts to
users when high pollution levels are detected, which helps respond to potential health hazards in a
timely manner. The architecture's flexibility allows for easy integration of additional sensors and
modules to expand functionality and improve measurement accuracy. Therefore, the developed
system provides an integrated approach to air quality monitoring, storing data in real-time,
processing it, and presenting it in a clear form for end users. This helps to improve environmental
awareness and make informed decisions to protect the environment and public health.</p>
    </sec>
    <sec id="sec-9">
      <title>Declaration on Generative AI</title>
      <sec id="sec-9-1">
        <title>The authors have not employed any Generative AI tools.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>I.</given-names>
            <surname>Garkusha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Hnatushenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Vasyliev</surname>
          </string-name>
          ,
          <article-title>Using Sentinel-1 data for monitoring of soil moisture</article-title>
          .
          <source>IEEE International Geoscience and Remote Sensing Symposium (IGARSS)</source>
          ,
          <year>2017</year>
          , doi:10.1109/igarss.
          <year>2017</year>
          .
          <volume>8127291</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V.</given-names>
            <surname>Hnatushenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Sierikova</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Sierikov</surname>
          </string-name>
          ,
          <article-title>Development of a Cloud-Based Web Geospatial Information System for Agricultural Monitoring Using Sentinel-2 Data</article-title>
          .
          <source>IEEE 13th International Scientific and Technical Conference on Computer Sciences and Information Technologies (CSIT)</source>
          ,
          <year>2018</year>
          , doi:10.1109/stc-csit.
          <year>2018</year>
          .
          <volume>8526717</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>I.</given-names>
            <surname>Ukadike</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Okpako</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Isitor</surname>
          </string-name>
          .
          <article-title>Development of an iot-based humidity, temperature, and air quality monitoring system Scientia Africana</article-title>
          ,
          <year>2024</year>
          ,
          <volume>23</volume>
          .
          <fpage>131</fpage>
          -
          <lpage>142</lpage>
          . doi:
          <volume>10</volume>
          .4314/sa.v23i1.
          <fpage>11</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kandris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Christakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Tsakiridis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. Stavrakas. Air</given-names>
            <surname>Pollution</surname>
          </string-name>
          <article-title>Monitoring via Wireless Sensor Networks: The Investigation and Correction of the Aging Behavior of Electrochemical Gaseous Pollutant Sensors Electronics</article-title>
          ,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .3390/electronics12081842.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Baranwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Barse</surname>
          </string-name>
          , G. Gatto,
          <string-name>
            <given-names>G.</given-names>
            <surname>Broncová</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kumar</surname>
          </string-name>
          .
          <article-title>Electrochemical Sensor and their applications</article-title>
          .
          <source>Chemosensors</source>
          ,
          <year>2022</year>
          ,
          <volume>10</volume>
          , doi:10.3390/chemosensors10090363.
          <article-title>Mobile-Based Air Pollution Detection: From Literature Review to Practical Implementation</article-title>
          .
          <source>Journal of Sensors</source>
          ,
          <year>2024</year>
          ,
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          , doi:10.1155/
          <year>2024</year>
          /4895068.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Truong</surname>
          </string-name>
          .
          <article-title>Design and Deployment of an IoT-Based Air Quality Monitoring System</article-title>
          .
          <source>International Journal of Environmental Science and Development</source>
          ,
          <volume>12</volume>
          ,
          <fpage>139</fpage>
          -
          <lpage>145</lpage>
          ,
          <year>2021</year>
          doi:10.18178/ijesd.
          <year>2021</year>
          .
          <volume>12</volume>
          .5.1331.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Woo</surname>
          </string-name>
          .
          <article-title>Real Time Localized Air Quality Monitoring and Prediction Through Mobile and Fixed IoT Sensing Network</article-title>
          .
          <source>IEEE Access</source>
          ,
          <year>2020</year>
          , doi:10.1109/ACCESS.
          <year>2020</year>
          .
          <volume>2993547</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D.</given-names>
            <surname>Múnera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Diana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Aguirre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gaviria</surname>
          </string-name>
          .
          <article-title>IoT-based air quality monitoring systems for smart cities: A systematic mapping study</article-title>
          .
          <source>International Journal of Electrical and Computer Engineering</source>
          ,
          <volume>11</volume>
          ,
          <fpage>3470</fpage>
          -
          <lpage>3482</lpage>
          ,
          <year>2021</year>
          , doi:10.11591/ijece.v11i4.
          <fpage>pp3470</fpage>
          -
          <lpage>3482</lpage>
          .
          <article-title>Monitoring and the Security Challenges</article-title>
          . Sensors,
          <volume>19</volume>
          ,
          <year>2019</year>
          , doi:3401.
          <fpage>10</fpage>
          .3390/s19153401.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Jamei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Malik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Karbasi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Sharma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. M.</given-names>
            <surname>Yaseen</surname>
          </string-name>
          ,
          <article-title>Air quality monitoring based on chemical and meteorological drivers: Application of a novel data filtering-based hybridized deep learning model</article-title>
          .
          <source>Journal of Cleaner Production</source>
          ,
          <year>2022</year>
          , doi:10.1016/j.jclepro.
          <year>2022</year>
          .
          <volume>134011</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Air</given-names>
            <surname>Quality</surname>
          </string-name>
          Communication Workshop San Salvador,
          <source>El Salvador April 16-17</source>
          ,
          <year>2012</year>
          . Retrieved from https://www.epa.gov/sites/default/files/2014-05/documents/zell-aqi.pdf
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <article-title>Urban Air Quality Assessment by Fusing Spatial and Temporal Data from Multiple Study Sources Using Refined Estimation Methods</article-title>
          .
          <source>ISPRS Int. J. Geo-Inf</source>
          .
          <year>2022</year>
          ,
          <volume>11</volume>
          , 330. doi:
          <volume>10</volume>
          .3390/ijgi11060330.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Han</surname>
          </string-name>
          ,
          <string-name>
            <surname>W</surname>
          </string-name>
          . Kundhikanjana,
          <string-name>
            <given-names>P.</given-names>
            <surname>Towashiraporn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Stratoulias</surname>
          </string-name>
          ,
          <article-title>Interpolation-Based Fusion of Sentinel-5P,</article-title>
          <string-name>
            <surname>SRTM</surname>
          </string-name>
          , and
          <article-title>Regulatory-Grade Ground Stations Data for Producing Spatially Continuous Maps of PM2.5 Concentrations Nationwide over Thailand</article-title>
          .
          <source>Atmosphere</source>
          <year>2022</year>
          ,
          <volume>13</volume>
          , 161. doi:
          <volume>10</volume>
          .3390/atmos13020161.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gitahi</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Hahn, High-resolution urban air quality monitoring using Sentinel satellite images and low-cost ground-based sensor networks</article-title>
          .
          <source>E3S Web of Conferences</source>
          ,
          <volume>171</volume>
          ,
          <year>02002</year>
          . doi:
          <volume>10</volume>
          .1051/e3sconf/202017102002. Science, Engineering and Technology,
          <year>2022</year>
          ,
          <volume>2</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>30</fpage>
          <lpage>37</lpage>
          . doi:
          <volume>10</volume>
          .54327/set2022/v2.
          <year>i1</year>
          .
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P.</given-names>
            <surname>Lemenkova</surname>
          </string-name>
          ,
          <article-title>Okinawa Trough Geophysical and Topographic Modeling by GDAL Utilities and</article-title>
          GRASS GIS,
          <string-name>
            <surname>Podzemni</surname>
            <given-names>Radovi</given-names>
          </string-name>
          ,
          <volume>38</volume>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>100</lpage>
          ,
          <year>2021</year>
          , doi: 10.5281/zenodo.5109998.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Zoltán</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Vilmos</surname>
          </string-name>
          ,
          <article-title>The Impact of the Web Data Access Object (WebDAO) Design Pattern on Productivity</article-title>
          .
          <source>Computers. Computers</source>
          <year>2023</year>
          ,
          <volume>12</volume>
          (
          <issue>8</issue>
          ), 149; doi:10.3390/computers12080149.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>B.</given-names>
            <surname>Molodets</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Hnatushenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Boldyriev</surname>
          </string-name>
          , T. Bulana,
          <source>Information System of Air Quality 4th International Workshop on Intelligent Information Technologies and Systems of Information Security, March</source>
          <volume>22</volume>
          24,
          <year>2023</year>
          , Khmelnytskyi, Ukraine, pp.
          <fpage>195</fpage>
          -
          <lpage>205</lpage>
          . https://ceurws.org/Vol-
          <volume>3373</volume>
          /paper9.pdf.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>