From e199074d68aa4a3490dba259c1d1608a47a62b6f Mon Sep 17 00:00:00 2001 From: Mayer <gpmayer2@gast.hft-stuttgart.de> Date: Fri, 20 Sep 2024 15:25:28 +0000 Subject: [PATCH] Add new file --- .../Tree_inventory_classification | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 python_scripts/DLM_Tree_Classification/Tree_inventory_classification diff --git a/python_scripts/DLM_Tree_Classification/Tree_inventory_classification b/python_scripts/DLM_Tree_Classification/Tree_inventory_classification new file mode 100644 index 0000000..73d7cfb --- /dev/null +++ b/python_scripts/DLM_Tree_Classification/Tree_inventory_classification @@ -0,0 +1,77 @@ +# Import & Anzeige Dataframe + +import pandas as pd + +# CSV-Datei einlesen +city_name = 'konstanz' +df = pd.read_csv('baumkataster_stadt_' + city_name + '.csv', sep=';') + +# Tabelle anzeigen +df + + + + +# Hinzufügen neuer Spalte 'ID' +# 'ID'-Spalte hinzufügen +df.insert(0, 'ID', range(1, len(df) + 1)) + +# Tabelle anzeigen +df + + + + + +# Berechnung durchschnittlicher Höhen von Laub- / Nadelbaum aller Bäume +#Datensatz welcher ALLE Bäume der verschiedenen Städte enthält importieren: +# CSV-Datei einlesen +city_name2 = 'TOTAL' +df2 = pd.read_csv('baumkataster_' + city_name2 + '.csv', sep=';') + +# Tabelle anzeigen +df2 + +# Durchschnittswerte der Baumhöhe für Laub- und Nadelbäume berechnen +avg_height_laubbäume = round(df2[df2['Baumtyp'] == 'Laubbaum']['Baumhöhe'].mean(), 2) +avg_height_nadelbäume = round(df2[df2['Baumtyp'] == 'Nadelbaum']['Baumhöhe'].mean(), 2) + +print(f'Durchschnittliche Höhe der Laubbäume: {avg_height_laubbäume}') +print(f'Durchschnittliche Höhe der Nadelbäume: {avg_height_nadelbäume}') + + + + +# Bestimmung der Klassenzugehörigkeit +# Funktion zur Bestimmung der Klasse +def classify_tree(row): + if row['Baumart deutsch'] == 'Gehölzfläche': + if row['Baumtyp'] == 'Laubbaum': + return 'Busch/Hecke (Laub/Hartlaub)' + else: + return 'Busch/Hecke (Nadel)' + elif row['Baumart deutsch'] == 'Unbekannt': + return 'Unbekannt' + elif row['Baumtyp'] == 'Laubbaum': + if row['Baumhöhe'] >= avg_height_laubbäume: + return 'Großer Laubbaum' + else: + return 'Kleiner Laubbaum' + elif row['Baumtyp'] == 'Nadelbaum': + if row['Baumhöhe'] >= avg_height_nadelbäume: + return 'Großer Nadelbaum' + else: + return 'Kleiner Nadelbaum' + return 'Unbekannt' + +# 'Klasse'-Spalte hinzufügen +df['Klasse'] = df.apply(classify_tree, axis=1) + +# Tabelle anzeigen +df + + + + +# Export des Baumkatasters +df.to_csv('baumkataster_classified_' + city_name + '.csv', index=False) -- GitLab