Ziel dieses 12 Stunden Mikro-Forschungsprojektes, im Rahmen des HACK AND HARVEST 2021, war die Berechnung der elementaren CO2-Bilanz für Konstanz, die Differenz von CO2-Erzeugung von Konstanzer:innen durch Atmung auf der einen und der CO2-Aufnahme der konstanzer Vegetation auf der anderen Seite. Beschränkt habe ich mich hier, aufgrund der Datenlage, auf erwachsene Konstanzer einerseits und Bäume der Stadt Konstanz andererseits.
Sys.setlocale("LC_ALL","de_DE")
## [1] "de_DE/de_DE/de_DE/C/de_DE/en_US.UTF-8"
rm(list=ls())
library(forcats)
library(ggplot2)
library(ggmap)
library(dplyr)
library(kableExtra)
library(osmdata)
library(tidyr)
raw <- read.csv('data/KN_Baumkataster_2020.csv', strip.white=TRUE) %>%
rename(x = X.X) %>%
rename(y = Y) %>%
rename(hoehe = hoeheM) %>%
rename(kronendurchmesser = kronendurchmesserM) %>%
rename(stammumfang = stammumfangCM) %>%
rename(name_de = Name_dt) %>%
rename(name_la = Name_lat) %>%
rename(standort = location)
Das Baumkataster der Stadt Konstanzer enthält in Summe 15711 Bäume.
Das Baumkataster der Stadt Konstanz enthält 68 verschiedene Gattungen, 131 Einträge haben hier keinen gültigen Wert.
N <- 50
data <- kataster %>%
filter(!is.na(gattung)) %>%
group_by(gattung) %>%
summarize(n = n()) %>%
filter(n > N) %>%
arrange(desc(n))
ggplot(data) +
geom_bar(aes(x=reorder(gattung, -n), y=n), stat = "identity") +
labs(title=paste0('Bäume der Stadt Konstanz (Gattungen), Anzahl > ', N), x='Gattung', y='Anzahl Bäume') +
theme_bw() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
Abbildung: Verteilung der Bäume der Stadt Konstanz für Gattungen mit mehr als 50 Bäumen.
N <- 10
#bb <- c(9.08, 47.65, 9.22, 47.75)
#map <- get_stamenmap(bb, maptype="terrain", zoom=14)
bb <- c(9.12, 47.65, 9.22, 47.70)
map <- get_stamenmap(bb, maptype="terrain", zoom=15)
df <- kataster %>%
filter(!is.na(gattung)) %>%
filter(x >= bb[1] & x <= bb[3]) %>%
filter(y >= bb[2] & y <= bb[4]) %>%
group_by(gattung) %>%
summarize(n=n()) %>%
arrange(desc(n)) %>%
top_n(N)
data <- kataster %>%
filter(gattung %in% df$gattung) %>%
filter(x >= bb[1] & x <= bb[3]) %>%
filter(y >= bb[2] & y <= bb[4])
ggmap(map) +
geom_point(data=data, aes(x=x, y=y, color=gattung), size=0.5, alpha=0.25) +
labs(title=paste0('Bäume der Stadt Konstanz (Gattungen, Top ', N, ')')) +
theme_void() +
theme(legend.position="bottom") +
scale_color_discrete(name='Gattung') +
guides(color=guide_legend(override.aes=list(alpha=1, size=1)))
Abbildung: Verteilung der Bäume der Stadt Konstanz über das Stadtgebiet für Gattungen mit mehr als 10 Bäumen.
df <- kataster %>% filter(!is.na(stammumfang)) %>% filter(!is.na(hoehe))
V <- (df$stammumfang / 100)**2 / (4*pi) * df$hoehe # m^3
m <- V * 600 # kg
C <- m / 2
sum(C)/1000
## [1] 12509.73
Das Baumkataster der Stadt Konstanz enthält 289 verschiedene Arten, 0 Einträge haben hier keinen gültigen Wert.
N <- 100
data <- kataster %>%
filter(!is.na(name_de)) %>%
group_by(name_de) %>%
summarize(n = n()) %>%
filter(n > N) %>%
arrange(desc(n))
ggplot(data) +
geom_bar(aes(x=reorder(name_de, -n), y=n), stat = "identity") +
labs(title=paste0('Bäume der Stadt Konstanz (Arten), Anzahl > ', N), x='Art', y='Anzahl Bäume') +
theme_bw() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
Abbildung: Verteilung der Bäume der Stadt Konstanz für Arten mit mehr als 100 Bäumen.
N <- 10
#bb <- c(9.08, 47.65, 9.22, 47.75)
#map <- get_stamenmap(bb, maptype="terrain", zoom=14)
bb <- c(9.12, 47.65, 9.22, 47.70)
map <- get_stamenmap(bb, maptype="terrain", zoom=15)
df <- kataster %>%
filter(!is.na(gattung)) %>%
filter(x >= bb[1] & x <= bb[3]) %>%
filter(y >= bb[2] & y <= bb[4]) %>%
group_by(name_de) %>%
summarize(n=n()) %>%
arrange(desc(n)) %>%
top_n(N)
data <- kataster %>%
filter(name_de %in% df$name_de) %>%
filter(x >= bb[1] & x <= bb[3]) %>%
filter(y >= bb[2] & y <= bb[4])
ggmap(map) +
geom_point(data=data, aes(x=x, y=y, color=name_de), size=0.5, alpha=0.25) +
labs(title=paste0('Bäume der Stadt Konstanz (Art, Top ', N, ')')) +
theme_void() +
theme(legend.position="bottom") +
scale_color_discrete(name='Art') +
guides(color=guide_legend(override.aes=list(alpha=1, size=1)))
Abbildung: Verteilung der Bäume der Stadt Konstanz für Arten mit mehr als 10 Bäumen.
Das Baumkataster der Stadt Konstanz enthält 7 Bäume ohne einen gültigen Wert für den Stammumfang.
ggplot(kataster %>% filter(!is.na(stammumfang))) +
geom_histogram(aes(x=stammumfang), binwidth=25) +
labs(title='Bäume der Stadt Konstanz (Stammumfang)', x='Stammumfang [cm]', y='Anzahl Bäume') +
theme_bw()
Abbildung: Verteilung des Stammumfangs der Bäume der Stadt Konstanz.
bb <- c(9.12, 47.65, 9.22, 47.70)
map <- get_stamenmap(bb, maptype="terrain", zoom=15)
data <- kataster %>%
filter(!is.na(stammumfang)) %>%
filter(x >= bb[1] & x <= bb[3]) %>%
filter(y >= bb[2] & y <= bb[4]) %>%
arrange(stammumfang)
size <- data$stammumfang / 250
ggmap(map) +
geom_point(data=data, aes(x=x, y=y, color=stammumfang), size=size, alpha=0.5) +
labs(title='Bäume der Stadt Konstanz (Stammumfang)') +
theme_void() +
theme(legend.position="bottom") +
scale_color_continuous(name='Stammumfang in Zentimeter')