Αρχή

Τροποσφαιρικό Όζον Ελευσίνας 2021-2024

eleusis_ozon

Τροποσφαιρικό Όζον

Ενώ το στρατοσφαιρικό όζον αποτελεί ευεργετικό στοιχείο, καθώς μας προστατεύει από την επιβλαβή υπεριώδη (UV) ακτινοβολία, το τροποσφαιρικό όζον είναι ρύπος που μπορεί να επηρεάσει τον άνθρωπο και το περιβάλλον του (Vallero, 2008, p. 30–33). Ο ίδιος συγγραφέας αναφέρει ότι το όζον είναι ο κύριος παράγοντας της αστικής ρύπανσης (p. 78), αποτελεί σημαντικό συστατικό του φωτοχημικού νέφους στις πόλεις (p. 26) και προκύπτει από αντιδράσεις μεταξύ άλλων ρυπογόνων παραγόντων, οι οποίες καταλύονται από την ηλιακή υπεριώδη ακτινοβολία (p. 78). Το όζον είναι επιβλαβές για την υγεία, προκαλώντας μια σειρά από παθήσεις του αναπνευστικού συστήματος (Piracha, 2022).

Σύμφωνα με τις οδηγίες της Ευρωπαϊκής Επιτροπής, για το όζον (O₃) η τιμή στόχος είναι 120 µg/m³ ως μέγιστη ημερήσια μέση τιμή 8 ωρών, με επιτρεπτό όριο υπερβάσεων 25 ημερών κατά μέσο όρο ανά 3 έτη, με εφαρμογή από 1 Ιανουαρίου 2010.

Μέθοδος

Τα δεδομένα πάρθηκαν από τον ιστότοπο του υπουργείου περιβάλλοντος και ενέργειας (https://ypen.gov.gr/perivallon/poiotita-tis-atmosfairas/dedomena-metriseon-atmosfairikis-rypansis/), όπου υπάρχει ελεύθερη διάθεση των ιστορικών δεδομένων από τους σταθμούς του επίγειου δικτύου μέτρησης.

Για τον σκοπό δημιουργήθηκε ένα πρόγραμμα python, το οποίο εκτελέστηκε στο Spyder. Το παρακάτω πρόγραμμα διαβάζει τα ωριαία δεδομένα O₃ από το αρχείο dat, καθαρίζει τυχόν ελλιπή ή λανθασμένα δεδομένα, υπολογίζει τη μέγιστη ημερήσια 8ωρη μέση συγκέντρωση O₃ για κάθε ημέρα και καταμετρά τις ημέρες που ξεπερνούν το όριο των 120 µg/m³. Στη συνέχεια, ομαδοποιεί τις υπερβάσεις ανά έτος και εμφανίζει τα αποτελέσματα.


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime

# ===============================
# USER INPUT
# ===============================
pollutant = "O3"
station = "ELE"
start_year = 2021
end_year = 2024

EU_LIMIT = 120
MAX_EXCEED_DAYS = 25

filename = f"{pollutant}#{station}{start_year}-{end_year}.dat"

# ===============================
# READ + CLEAN DATA
# ===============================
data = []

with open(filename, 'r') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue

        parts = line.split(',')
        if len(parts) < 25:
            continue

        date_str = parts[0].replace('"', '').strip()
        if not date_str:
            continue

        try:
            date = datetime.strptime(date_str, "%d-%m-%Y")
        except:
            continue

        if not (start_year <= date.year <= end_year):
            continue

        for hour in range(1, 25):
            try:
                value = float(parts[hour])
            except:
                value = np.nan

            if value in [-9999, -999, -99, 9999]:
                value = np.nan

            if not np.isnan(value) and value < 0:
                value = np.nan

            data.append({
                "datetime": date + pd.Timedelta(hours=hour-1),
                "O3": value
            })

df = pd.DataFrame(data)
df.set_index("datetime", inplace=True)

# ===============================
# MAX DAILY 8-HOUR MEAN
# ===============================
rolling_8h = df["O3"].rolling(window=8, min_periods=6).mean()
daily_max_8h = rolling_8h.resample("D").max()

# ===============================
# EXCEEDANCE CALCULATION
# ===============================
exceed_days = daily_max_8h > EU_LIMIT
exceed_per_year = exceed_days.groupby(exceed_days.index.year).sum()

print("\nOZONE TARGET VALUE ASSESSMENT")
print("--------------------------------------")
print("Metric: Maximum Daily 8-hour Mean > 120 µg/m³")
print("Allowed: 25 days per year (averaged over 3 years)\n")

for year, count in exceed_per_year.items():
    print(f"{year}: {int(count)} exceedance days")

# 3-year rolling average
if len(exceed_per_year) >= 3:
    rolling_3yr = exceed_per_year.rolling(3).mean()

    print("\n3-Year Rolling Average:")
    for year, value in rolling_3yr.dropna().items():
        status = "OK" if value <= MAX_EXCEED_DAYS else "NOT OK "
        print(f"{year-2}-{year}: {value:.1f} days → {status}")
else:
    rolling_3yr = None
    print("\nNot enough years for 3-year compliance check.")

# ===============================
# PLOT (EXCEEDANCE + 3-YEAR AVG)
# ===============================

plt.figure(figsize=(11,6))

years = exceed_per_year.index
values = exceed_per_year.values

# Color bars based on compliance
colors = ["crimson" if v > 25 else "steelblue" for v in values]

bars = plt.bar(years, values, color=colors)

# Annotate values
for bar in bars:
    height = bar.get_height()
    plt.text(bar.get_x() + bar.get_width()/2,
             height + 1,
             f"{int(height)}",
             ha='center', va='bottom', fontsize=9)

# EU limit line
plt.axhline(25, linestyle='--', linewidth=2, label="EU Target (25 days)")

# 3-year rolling average line
if rolling_3yr is not None:
    plt.plot(rolling_3yr.index,
             rolling_3yr.values,
             marker='o',
             linewidth=2,
             label="3-Year Rolling Average")

plt.title(f"O₃ Target Value Assessment\nStation {station} ({start_year}-{end_year})")
plt.xlabel("Year")
plt.ylabel("Exceedance Days\n(Max Daily 8h Mean > 120 µg/m³)")
plt.xticks(years)
plt.grid(axis='y', alpha=0.3)
plt.legend()

plt.tight_layout()
plt.show()

Μετρήσεις Ελευσίνας 2021-2024

Exceedance Days per Year

YearExceedance Days
202163
202260
202324
202418

3-Year Rolling Average

PeriodAverage Exceedance DaysStatus
2021-202349.0NOT OK
2022-202434.0NOT OK

Τα αποτελέσματα δείχνουν ότι για τα έτη 2021-2024, οι μέγιστες ημερήσιες 8ωρες συγκεντρώσεις O₃ ξεπερνούν σημαντικά το επιτρεπόμενο όριο των 120 µg/m³, που ορίζει η Ευρωπαϊκή Ένωση για την προστασία της ανθρώπινης υγείας. Συγκεκριμένα, οι υπερβάσεις ήταν 63 ημέρες το 2021 και 60 ημέρες το 2022, ενώ το 2023 και 2024 οι ημέρες υπέρβασης μειώθηκαν στις 24 και 18 αντίστοιχα.

Σύμφωνα με την Οδηγία 2008/50/ΕΚ, το όριο των 120 µg/m³ δεν πρέπει να ξεπερνιέται περισσότερες από 25 ημέρες ανά έτος κατά μέσο όρο τριετίας. Ο 3ετής κυλιόμενος μέσος όρος των ημερών υπέρβασης (49 για 2021-2023 και 34 για 2022-2024) υπερβαίνει σαφώς αυτό το όριο, γεγονός που καταδεικνύει μη συμμόρφωση με την ευρωπαϊκή νομοθεσία.

Αυτό αποτελεί σαφή ένδειξη ότι η περιοχή αντιμετωπίζει υψηλά επίπεδα όζοντος. Η αντιμετώπιση της ρύπανσης του όζοντος δεν είναι απλό θέμα, καθώς το όζον είναι αλληλοεξαρτώμενο με τα NOx.

Βιβλιογραφία

European Commission. (n.d.). EU air quality standards. European Commission – Environment. https://environment.ec.europa.eu/topics/air/air-quality/eu-air-quality-standards_en

Piracha, A., & Chaudhary, M. T. (2022). Urban air pollution, urban heat island, and human health: A review of the literature. Sustainability, 14(15), 9234. https://doi.org/10.3390/su14159234

Vallero, D. A. (2008). Fundamentals of air pollution (4th ed.). Academic Press. https://doi.org/10.1016/B978-0 12-373615-4.X5000-6