Analyse der Luftqualität in Leipzig#

Wir analysieren die Luftqualität in Leipzig basierend auf den Daten des Geoportals Leipzig

Python Grundlagen:

  • Listen

  • if-Bedingungen

  • For-Schleifen.

Luftqualitätsmonitor in Leipzig

Hintergrund PM10#

Atmosphärische Partikel (PM) sind mikroskopische feste oder flüssige Materie, die in der Luft suspendiert sind. […] Von größter Bedeutung für die Bevölkerungsgesundheit sind die Partikel, die klein genug sind, um in die tiefsten Teile der Lunge eingeatmet zu werden. Diese Partikel haben einen Durchmesser von weniger als 10 Mikrometer (ungefähr 1/7 der Dicke eines menschlichen Haares) und sind als PM10 definiert. PM10 ist eine Mischung aus Materialien wie Rauch, Ruß, Staub, Salz, Säuren und Metallen. […] PM10 wird häufig als Nebel wahrgenommen, den man auch als Smog bezeichnet. PM10 gehört zu den schädlichsten aller Luftschadstoffe, da

  • PM10 kann die Anzahl und den Schweregrad von Asthmaanfällen erhöhen

  • PM10 verursacht oder verschlimmert Bronchitis und andere Lungenerkrankungen

  • PM10 reduziert die Fähigkeit des Körpers, Infektionen zu bekämpfen

Quelle: https://www.meteoblue.com/de/wetter/outdoorsports/airquality/leipzig_deutschland_2879139

PM10 Daten#

# Feinstaub PM10 in Mikrometer / Kubikmeter
pm10 = [15, 15, 16, 19, 23, 23, 40, 37, 38, 29, 16]
print(pm10)
print(type(pm10))
[15, 15, 16, 19, 23, 23, 40, 37, 38, 29, 16]
<class 'list'>

Luftqualität Leipzig - Erste Analyse#

  • Wie viele Messungen sind vorhanden?

  • Was ist der maximale Feinstaubwert? Welcher der minimale? Wie ist die Temperatur im Durchschnitt?

# Anzahl an Messungen entspricht der Länge der List
len(pm10)
11

Grundlegende Statistik

# Maximum
max(pm10)
40
# Minimum
min(pm10)
15
# Durchschnitt
sum(pm10) / len(pm10)
24.636363636363637
# Feinstaub PM10
pm10 = [15, 15, 16, 19, 23, 23, 40, 37, 38, 29, 16]

# Wie häufig sind die Min / Max Messwerte?
print('Häufigkeit Min Wert:')
print(pm10.count(min(pm10)))

print('Häufigkeit Max Wert:')
print(pm10.count(max(pm10)))
Häufigkeit Min Wert:
2
Häufigkeit Max Wert:
1
# An welchem Tag (nach Beginn der Messung) wurde der maximale Wert erreicht?
print(pm10.index(40) + 1)
7
# Liste sortieren
pm10.sort()
print(pm10)

pm10.sort(reverse=True)
print(pm10)
[15, 15, 16, 16, 19, 23, 23, 29, 37, 38, 40]
[40, 38, 37, 29, 23, 23, 19, 16, 16, 15, 15]

Warnsystem#

Ziel: Ein Warnsystem falls die Luftqualität in den gelben Bereich abrutscht.

Warnsystem

pm10 = [15, 15, 16, 19, 23, 23, 40, 37, 38, 29, 16]
# 1. Schritt: Gib jeden Messwert aus
for messwert in pm10:
    print(messwert)
15
15
16
19
23
23
40
37
38
29
16
# 2. Schritt: Falls die Schwelle von 36 Mikrogramm PM10 erreicht werden gib eine Warnung aus
for messwert in pm10:
    print(messwert)
    if messwert >= 36:
        print('Achtung: Die Luftqualität ist mäßig')
15
15
16
19
23
23
40
Achtung: Die Luftqualität ist mäßig
37
Achtung: Die Luftqualität ist mäßig
38
Achtung: Die Luftqualität ist mäßig
29
16

Aufgaben:#

Angenommen:

(1) Die Stadt Leipzig verkündet, dasss die Messstation falsch geeicht wurden und alle Werte zum 1,3 µg/m³ zu niedrig sind. Erstelle eine neue Liste mit den angepassten Messwerten

(2) Werte über 36 µg/m³ sind gesundheitsschädlich. Wie oft wurden diese Grenze überschritten?

(3) Wie weit liegen die Messwerte über oder unter der Grenze von 36 µg/m³

# (1) Korrektur der Messwerte
pm10_korrekt = []
for messwert in pm10:
    pm10_korrekt.append(messwert + 1.3)
    
print(pm10_korrekt)
[16.3, 16.3, 17.3, 20.3, 24.3, 24.3, 41.3, 38.3, 39.3, 30.3, 17.3]
# (2) Gesundheitsschädliche Werte
count = 0
for messwert in pm10_korrekt:
    if messwert > 36:
        count = count + 1
print(count)
3
# (3) Differenz zur Grenze
diff = []
for messwert in pm10_korrekt:
    differenz = round(messwert - 36, 2)
    diff.append(differenz)

print(diff)
[-19.7, -19.7, -18.7, -15.7, -11.7, -11.7, 5.3, 2.3, 3.3, -5.7, -18.7]