Der Kohlendioxidgehalt in Hessen Teil I

Der Boden als Kohlenstoffspeicher ist keine Konstante, sondern reagiert äußerst dynamisch auf veränderte Konzentrationen von Treibhausgasen in der Atmosphäre. Darum ist es wichtig den Kohlendioxidgehalt zu verfolgen.

Das Hessisches Landesamt für Naturschutz, Umwelt und Geologie, liefert aktuelle Messwerte der Kohlendioxid-Konzentrationen von zwei Stationen in Hessen. Diese befinden sich in Linden und Wasserkuppe.1

Stand: 22.05.2020

Im ersten Teil, bearbeiten wir den Datensatz.

Nachfolgend analysieren wir die Messdaten mit Python. Diese Daten befinden sich noch im Rohzustand, damit wir damit arbeiten können, müssen sie in bestimmte Formate umgewandelt werden.


#Aufgaben Teil 1:
#1. Den Datentyp umwandeln von Objekt in Zahlen.
#2. Die Datumspalte und Zeitspalte in Datum umwandeln
# im Format: ("%d-%m-%y %H:%M").

#Dazu wird die pandas Bibliothek geladen und mit 
#pd abgekürzt
import pandas as pd


#Europäisches Datenformat, trennt mit ';'' 
#anstatt ',' und Dezimaltrennzeichen ist ',' statt '.'

#Die Messdaten einlesen und die Zellen mit ';' 
#trennen. Dezimaltrennzeichen ','. 


df= pd.read_csv('messwerteb.txt', sep=';' ,decimal=',')

#Dezimaltrennzeichen ',' mit '.' tauschen und 
#eine neue Spalte erstellen

df['Temperatur'] = [x.replace(',', '.') for x in df['Temperatur[°C]']]

#Datenreihe Luftdruck[hPa] von object zu float umwandeln, 
#neue Spalte namens Luftdruck erstellen
#WICHTIG: errors='coerce' wandelt '-' 
#und alle weiteren Zeichen zu NaN um.

df['Luftdruck'] = pd.to_numeric(df['Luftdruck[hPa]'], errors='coerce')
#""
df['Temperatur'] = pd.to_numeric(df['Temperatur'], errors='coerce')
#""
df['Kohlendioxid'] = pd.to_numeric(df['Kohlendioxid (CO2)[mg/m³]'], errors='coerce')

#Addiere zur Spalte 'Zeit' :00 und füge eine neue Spalte 
#'period' hinzu, 
#ohne Sekundenformat gibt es eine Fehlermeldung, z.B. 
#FP Prophet benötigt dieses Datumsformat.

df['period'] = df['Zeit'] + ':00'


#Dieser Weg verursachte einen Fehler: 
#Monat und Tag zu Beginn richtig aber zum Schluß falsch
#df['Datum2']=pd.to_datetime(df.Datum) + pd.to_timedelta(df.period)


#Richtig
df['Datum2']=pd.to_datetime(df.Datum)


#df["Date"] = df["Datum2"].apply(lambda x: datetime.combine(x, datetime.min.time()))
#df["Date"] = df["Datum"].dt.strftime("%d-%m-%y %H:%M")
df["Date"] = df["Datum2"].dt.strftime("%d-%m-%y")


#Wandelt Spalte period in 0 days 01:00:00 
#(zählt nur Stunden bis 24 und beginnt bei 0 Tage)
df['Datum3']=pd.to_timedelta(df.period)

#Addiere Date + Datum3 = 2019-12-01 01:00:00
df['Datum4']=pd.to_datetime(df.Date) + pd.to_timedelta(df.Datum3)

#Wandel das Datumsformat um in 01-12-2019 01:00
df["Date1"] = df["Datum4"].dt.strftime("%d-%m-%y %H:%M")

#Lösche die folgenden Spalten
df=df.drop(columns=['Datum', 'Zeit','period','Kohlendioxid (CO2)[mg/m³]','Temperatur[°C]','Luftdruck[hPa]','Datum2','Datum3','Date','Datum4'])

#Nenne Spalte Date1 in Datum um
df=df.rename(columns={'Date1': 'Datum'})

#Setze Spalte Date 1 als Index
df=df.set_index('Datum')

df


#Ergebnis: Das Datum ist als nutzbares 
#Datumsformat umgewandelt. 
#Die Temperatur, Luftdruck und Kohlendioxid 
#sind im Zahlenformat + NaN Werte für fehlende Daten.

Die Rohdaten.

 

Das Ergebnis.
  1. https://www.hlnug.de/themen/luft/luftschadstoffe/kohlendioxid