Sitzung 2: Big Data Zensus 2011
Geodaten sind prinzipiell wie gewöhnliche Daten zu betrachten. Allerdings sind die Aspekte der Skala, der Zonierung (aggregierte Flächeneinheiten), der Topologie (der Lage im Verhältnis zu anderen Entitäten) der Geometrie (Entfernung zueinander) eine Ableitung aus der Grundeigenschaft dass Geodaten eine Position im Raum besitzen.
Im Rahmen der räumlichen Statistik wirft das Fragen der räumlichen Autokorrelation bzw. Inhomogenität auf. Also letztlich Fragen welche Raumkonstruktion auf welcher Skala einen Einfluss auf meine Fragestellung hat.
Die klassischen Bereiche der räumlichen Statistik sind Punktmusteranalyse, Regression und Inferenz mit räumlichen Daten, dann die Geostatistik (Interpolation z.B. mit Kriging) sowie Methoden zur lokalen und globalen Regression und Klassifikation mit räumlichen Daten.
Nahezu alle dieser Bereiche basieren auf Daten die als Vektordatenmodell vorliegen. Das heisst es handelt sich um diskrete Geoobjekte die Null-, Ein- bzw. Zwei-dimensional Raumeigenschaften aufweisen.
Lernziele
Die Handhabung aktueller und in der Regel großer Datenmengen ist in der quantitativen Auswertung von räumlichen Prozessen von erheblicher Bedeutung. Dabei gilt es gleich mehrere Probleme zu lösen:
- Was sind angemessene und aktuelle Daten für meine Fragestellung?
- Was sind offizielle Daten?
- Woher bekomme ich diese Daten?
- Wie bringe ich diese Daten in eine geeignete Form um sie statistisch auswerten zu können?
Die Lernziele der zweiten Übung sind:
- Recherche geeigneter offizieller räumlicher Daten zu soziökonomischen Parametern
- Manipulation und Handhabung umfangreicher Datensätze (» 10 Mio.) am Beispiel der Zensus Daten 2011
- Speicherung, Verschneidung und räumliche Operationen auf großen Daten
- Visualisierung der Daten
Dieser Teil ist umfangreich und sehr technisch. Leider ist die Datenmanipulation wirklich großer Datensätze einigermaßen herausfordernd für Maschinen und Analysten. Die Problematik liegt vorrangig in der ineffizienten Speichermethode von vektorbasierten Flächendaten in z.T. sehr alten Dateiformaten. Die Speicherung in räumlich organisierten Datenbanken, die auch mit großen Datenmengen gut umgehen können ist jedoch aufwendig und komplex und bedarf eines deutlich vertieftes Wissens. Diese Problematik wird noch deutlicher wenn Daten räumlich inhomogen verteilt vorliegen - also nicht als rasterbasierte Flächendaten sondern mit Punktdaten , die durchaus Flächen repräsentieren können mit verschiedenen MErkmalsausprägungen vorliegen haben.
Ein sehr gutes Beispiel für die letzte Variante sind die Zensus-Daten aus dem Jahr 2011. Diese Daten sind nach einem aufwendigen Verfahren erhoben und formal auf ein “Raster” von 100*100 Metern abgebildet worden. Also für jede dieser virtuellen Zellen gibt es eine Mittelpunktskoordinate an der vielfältige Daten angehangen sind. Die Kodierung für den Demographie-Datensatz sieht wie folgt aus:
Statistisches Bundesamt, Zensus 2011 | |||
---|---|---|---|
Version 1; 13.02.2018 | |||
Merkmale und Merkmalsausprägungen | |||
Bevölkerung je Hektar | |||
Ergebnisse des Zensus am 9. Mai 2011 in Gitterzellen | |||
Hier werden die Ausprägungen der einzelnen Merkmale aufgelistet. | |||
Ausführliche Merkmalsdefinitionen sind auf dem Tabellenblatt “Merkmalsdefinitionen” zu finden. | |||
Merkmal | Code | Text | Erläuterungen |
INSGESAMT | Gesamtzahl der Einheiten in der Gitterzelle Kann aufgrund der Geheimhaltung von der Summe über alle Ausprägungen der anderen Merkmale abweichen |
||
0 | Einheiten insgesamt | ||
ALTER_10JG | Alter (10er-Jahresgruppen) | ||
1 | Unter 10 | ||
2 | 10 - 19 | ||
3 | 20 - 29 | ||
4 | 30 - 39 | ||
5 | 40 - 49 | ||
6 | 50 - 59 | ||
7 | 60 - 69 | ||
8 | 70 - 79 | ||
9 | 80 und älter | ||
ALTER_KURZ | Alter (5 Altersklassen) | ||
1 | Unter 18 | ||
2 | 18 - 29 | ||
3 | 30 - 49 | ||
4 | 50 - 64 | ||
5 | 65 und älter | ||
FAMSTND_AUSF | Familienstand (ausführlich) | ||
1 | Ledig | ||
2 | Verheiratet | ||
3 | Verwitwet | ||
4 | Geschieden | ||
5 | Eingetr. Lebenspartnerschaft | ||
6 | Eingetr. Lebensparter/-in verstorben | ||
7 | Eingetr. Lebenspartnerschaft aufgehoben | ||
8 | Ohne Angabe | ||
GEBURTLAND_GRP | Geburtsland (Gruppen) | ||
1 | Deutschland | ||
21 | EU27-Land | ||
22 | Sonstiges Europa | ||
23 | Sonstige Welt | ||
24 | Sonstige | ||
GESCHLECHT | Geschlecht | ||
1 | Männlich | ||
2 | Weiblich | ||
RELIGION_KURZ | Religion | ||
1 | Römisch-katholische Kirche (öffentlich-rechtlich) | ||
2 | Evangelische Kirche (öffentlich-rechtlich) | ||
3 | Sonstige, keine, ohne Angabe | ||
STAATSANGE_GRP | Staatsangehörigkeitsgruppen | ||
1 | Deutschland | ||
21 | EU27-Land | ||
22 | Sonstiges Europa | ||
23 | Sonstige Welt | ||
24 | Sonstiges | ||
STAATSANGE_HLND | Staatsangehörigkeit nach ausgewählten Ländern | ||
1 | Deutschland | ||
2 | Bosnien und Herzegowina | ||
3 | Griechenland | ||
4 | Italien | ||
5 | Kasachstan | ||
6 | Kroatien | ||
7 | Niederlande | ||
8 | Österreich | ||
9 | Polen | ||
10 | Rumänien | ||
11 | Russ. Föderation | ||
12 | Türkei | ||
13 | Ukraine | ||
14 | Sonstige | ||
STAATSANGE_KURZ | Staatsangehörigkeit | ||
1 | Deutschland | ||
2 | Ausland | ||
STAATZHL | Zahl der Staatsangehörigkeiten | ||
1 | Eine Staatsangehörigkeit | ||
2 | Mehrere, deutsch und ausländisch | ||
3 | Mehrere, nur ausländisch | ||
4 | Nicht bekannt |
Quelle: www.zensus2011.de/.
In dieser Datei sind > 66 Mio Datensätze im Textformat gespeichert. Wie kann damit sinnvoll umgegangen werden? Die Zensusdaten können von Bürger_innen durch ein Zensus 2011 Webinterface abgerufen werden. Hierzu sind vorgefertigte Rasterdateien für ausgewählte Datensätze verfügbar gemacht worden. Die nachfolgende Druckversion der Karte zeigt ein Merkmal der oben stehenden Tabelle für den Raum Marburg-Biedenkopf.
Quelle: https://atlas.zensus2011.de/
Einrichten der Umgebung
Zunächst wird eine sinnvolle Arbeitsumgebung eingerichtet. Hier werden Die Pfade zum Arbeitsverzeichnis und alle benötigten Pakete geladen. Hier und in allen weiteren Programmbeispielen sind ausführliche Kommentare, die erläutern was warum gemacht wird. Es ist sehr ratsam diese zu Lesen und nach Möglichkeit nachzuvollziehen.
# 0 - Umgebung einrichten,
# Pakete und Funktionen laden
# Variablen definieren
#---------------------
# rootDIR enthält nur den Dateipfad,
# die Tilde ~ steht dabei für das Nutzer-Home-Verzeichnis unter Windows
# üblicherweise Nutzer/Dokumente
# path.expand() erweitert den relativen Dateipfad
# !dir.exists() überprüft ob der Pfad bereits existiert damit er falls nein angelegt werden kann
rootDIR=path.expand("~/Desktop/lehre/MHG_2021/sitzung2/")
if (!dir.exists(rootDIR)) dir.create(path.expand(rootDIR))
setwd(rootDIR)
#-- Laden der benötigten libraries (Pakete) Dies sollte IMMER zu Beginn und nicht
# irgendwo im Skriptes erfolgen, da sonst Funktionen und Abhängigkeiten nicht kontrollierbar sind
# 1) Definition der Liste mit den Paketnamen
# 2) Check ob installiert falls nicht wird es installiert ist
# utils::installed.packages()
libs= c("sf","mapview","tmap","RColorBrewer","usedist","downloader","tidyverse","DBI","RSQLite","readr","readxl","openxlsx","listviewer")
for (lib in libs){
if(!lib %in% utils::installed.packages()){
utils::install.packages(lib)}
}
# Laden aller Pakete mit lapply() (= "integrierte for Schleife" für Listen)
# Übergabe des Paketnamen als Text an die Funktion library(), invisible() verbirgt output
invisible(lapply(libs, library, character.only = TRUE))
Datenaquise
Um zu reproduzierbaren, vergleichbaren und amtlich “gültigen” Ergebnissen zu kommen sollten die Daten von den jeweiligen offiziellen Datenprovidern bezogen werden. Dies geschieht in der Regel durch einen direkten Download der betreffenden Datensätze. Hierzu ist es nötig die korrekt Datenquellen zu identifizieren. Die zugehörigen Download-Adressn (URLs) werden dann im Teil 1 (Daten) unserer Projektskripte abgespeichert. EinStudium der Handbücher und Datenbeschreibungen (Metadaten) ist meistens zwingend. Nachfolgender Code-Schnipsel besorgt dies für die Zensus Daten.
# ---- Zensus Daten
# Download URLs der Zensusdaten https://www.zensus2011.de/
# Exemplarisch wird nur mit den Kategorien Bevoelkerung und Demographie gearbeitet
# Die csv_Bevoelkerung_100m_Gitter.zip Datei enthält die Geokoordinaten
# als x y Spalten in der Refrenzierung ETRS89-extended / LAEA Europe 3035
# Bei Bedarf können die auskommentierten URLs aktiviert werden
url=list()
url$demo_grund_2011="https://www.zensus2011.de/SharedDocs/Downloads/DE/Pressemitteilung/DemografischeGrunddaten/csv_Bevoelkerung_100m_Gitter.zip?__blob=publicationFile&v=3"
url$demographie_2011="https://www.zensus2011.de/SharedDocs/Downloads/DE/Pressemitteilung/DemografischeGrunddaten/csv_Demographie_100m_Gitter.zip?__blob=publicationFile&v=2"
#url$familien_2011="https://www.zensus2011.de/SharedDocs/Downloads/DE/Pressemitteilung/DemografischeGrunddaten/csv_Familien_100m_Gitter.zip?__blob=publicationFile&v=2"
#url$haushalte_2011="https://www.zensus2011.de/SharedDocs/Downloads/DE/Pressemitteilung/DemografischeGrunddaten/csv_Haushalte_100m_Gitter.zip?__blob=publicationFile&v=2"
#url$haueser_2011="https://www.zensus2011.de/SharedDocs/Downloads/DE/Pressemitteilung/DemografischeGrunddaten/csv_Gebaeude_100m_Gitter.zip?__blob=publicationFile&v=2"
#url$wohnungen_2011="https://www.zensus2011.de/SharedDocs/Downloads/DE/Pressemitteilung/DemografischeGrunddaten/csv_Wohnungen_100m_Gitter.zip?__blob=publicationFile&v=5"
# Download und Entpacken der Zensus 2011 Daten. Geht natürlich auch manuell
for (mzu in url){
# Download hierzu wird die URL aus der Liste einzeln in der Variable mzu verwendet der Ausgabedateiname wird durch paste0(...) erzeugt
if (!file.exists( paste0(rootDIR,strsplit(basename(mzu),".",fixed=TRUE)[[1]][1],".zip")))
res = curl::curl_download(mzu, paste0(rootDIR,strsplit(basename(mzu),".",fixed=TRUE)[[1]][1],".zip"), quiet = FALSE)
# Das Entpacken muss evtl. manuell durchgeführt werden hier wird mit 7zip gearbeitet, das auf dem OS installiert sein muss
print("Das Entpacken muss evtl. von Hand durchgeführt werden, \nda je nach Betriebssystem > 4GB Darteien von R nicht korrekt entpackt werden können\nund daher 7zip installiert sein muss")
# Entzippen hier mit einem sogenannten Kommandozeilen-Aufruf über die Funktion system()
# Der zusammengesetzte Textstring paste(...) ist ein Befehlsaufruf der in der Shell die externe Software 7zip startet
system(paste0("7z e -o.", " ", paste0(rootDIR,strsplit(basename(mzu),".",fixed=TRUE)[[1]][1],".zip")),
intern = FALSE,
ignore.stdout = FALSE,
ignore.stderr = TRUE,
wait = FALSE)
}
# Erstellen einer Dateiliste (inkl. Pfad) die AUSSCHLIESSLICH die Zensus csv Dateien enthält.
# Zum Filtern werden sog. regex Ausdrücke verwendet
# Liste im aktuellen Arbeitsverzeichnis und darunter liegenden Verzeichnissen ALLE Daten die auf "100?.csv" enden
# Das "?" ist notwendig da die Dateien mal 100m und mal 100M enthalten
fn = list.files(pattern = "100.[.]csv$", path = getwd(), full.names = TRUE,recursive = TRUE)
Der nächste Schritt ist das schnelle Einlesen der Daten. Es handelt sich um CSV Text Dateien. Die mit Abstand aufwändigste Art große Datenmengen abzuspeichern. In R ist derzeit das PAket data.table
die effizienteste Wahl um derartige Dateien schnell und unkompliziert einzulesen.
# Die Dateien sind z.T. > 5 GB daher ist ein extrem schnelles Einlesen der Daten mit data.table zwingend
# erste Variable Grid-Kodierung + Gesamtbevölkerung
# erste Datei aus der fn-Liste Demographie
grid_bevoelkerung_2011 = as_tibble(data.table::fread(paste0(rootDIR,"Zensus_Bevoelkerung_100m-Gitter.csv")))
mz_demografie_2011 = as_tibble(data.table::fread(fn[1]))
# kann angepasst werden
# mz_familie_2011 = as_tibble(data.table::fread(fn[2]))
# mz_haushalte_2011 = as_tibble(data.table::fread(fn[3]))
Mit head(mz_demografie_2011)
können Sie sich die ersten Zeilen und die Dateistruktur anschauen.
Soweit so gut und auch nicht wirklich aufwendig (unter 10 Zeilen aktiver Code).
Grundsätzliche Vorgehensweise der Datenvorprozessierung skiziieren
Trotz dem einfachen Anfangs-Erfolg gibt es nun mehr offene Fragen als beantwortete. Betrachten wir die Header-Daten (und schauen ins Handbuch) so sehen wir die räumliche Kodierung liegt als Datenbankschlüssel vor. In der Datei Zensus_Bevoelkerung_100m-Gitter.csv gibt es zusätzliche Koordinatenwerte mit der Bezeichnung x_mp_100m, y_mp_100m
die jedoch nicht in den übrigen Dateien zu finden sind. Das Studium der Metadaten ergibt zusätzlich, dass die Daten in der Referenzierung ETRS89-extended / LAEA Europe 3035
vorliegen. Eine Menge Informationen die eingeordnet werden müssen.
Andererseits liegen keine Informationen über Landkreise Gemeinden oder Ortsnamen vor. Wir benötigen also zur Bearbeitung der unten stehenden Aufgabenstellung zumindest Gemeinde/Landkreisdaten und müssen diese mit den Zensusdaten verknüpfen. Es wird also Zeit eine Aufgabenliste zu erstellen:
- Lesen der Handbücher und Datensatzbescheibungen (auszugsweise)
- Recherche und Beschaffung von Gemeindegeometriedaten für 2011
- (Optional) Recherche und Beschaffung von Landkreisgeometriedaten für 2011
- Verknüpfung von Zensustabellen untereinander
- Verknüpfung von Zensusdaten mit Gemeindegeometrien 5 Visualisierung
Flächendaten (Verwaltungsgeometrien)
In einem föderalen System sind für offizielle Datensätze in der Regel sehr unterschiedliche Stellen zuständig. Gute Anlaufstellen sind das Statistische Bundesamt (destatis), die europäische Statistikbehörde (eurostat) und die das Bundesamt für Geodäsie und Kartographie. Darüber gibt es natürlich noch Landesämter und Einrichtungen des öffentlichen Rechts die hoheitliche Aufgaben übernehmen und schließlich gibt es noch Stiftungen etc.. Die Suche ist mühsam und es gibt keine zentralen Zusammenstellungen von Zuständigkeiten.
Die folgende Liste soll ein wenig unterstützen:
- Die offiziellen Statisik-Verwaltungsgrenzen auf europäischer Ebene (NUTS) werden von der Eurostat vorgehalten.
- Offizielle Zuweisungstabellen für Lokale Verwaltungseinheiten (LAU) = > NUTS3 Konversion (eurostat)
- Offizielle Geometriedaten der Gemeindeflächen (Bundesamt für Geodäsie und Kartographie)
- Offizielle Gemeindeverzeichnisse (Statistische Bundeamt destatis). Die Gemeindeliste wird benötigt um die jeweils gültigen Gemeindenamen mit anderen Datenquellen zu verküpfen
- Aktuelle Gemeindedaten für Statistiken vorzuhalten ist in Deutschland kommunale Hoheit. Die Bertelsmannstiftung sammelt solche Daten bereitet sie auf und stellt sie zur Verfügung
- Kommunale Daten Bertelsmann-Stiftung
Nun gilt es diese Daten zu beschaffen, ihre Struktur zu sichten und für unsere Aufgaben vorzubereiten.
# ---- Offizielle NUTS Geometriedaten (also die GI Daten für die NUTS3 Kreise)
# Die offiziellen Verwaltungsgrenzen für Deutschland werden von der Eurostat vorgehalten.
# https://ec.europa.eu/eurostat/de/web/gisco/geodata/reference-data/administrative-units-statistical-units
# In diesem Falle als sogenanntes GeoJson Format (GDAL kompatibel)
if (!file.exists(paste0(rootDIR,"ref-nuts-2016-01m.geojson.zip")))
download(url = "https://ec.europa.eu/eurostat/cache/GISCO/distribution/v2/nuts/download/ref-nuts-2016-01m.geojson.zip",
destfile = paste0(rootDIR,"ref-nuts-2016-01m.geojson.zip"))
# Entpacken des Archivs
# ACHTUNG die korrekte Archiv-Datei "ref-nuts-2016-01m.geojson.zip" wurde
# anhand der Datenbeschreibung manuell identifiziert
unzip(zipfile = paste0(rootDIR,"ref-nuts-2016-01m.geojson.zip"),
exdir = rootDIR,
overwrite = TRUE)
# mit dem Paket sf und der Funktion sf_read lesen wir sie in eine Variable
nuts3 = st_read(paste0(rootDIR,"NUTS_RG_01M_2016_3857_LEVL_3.geojson"))
# Deutschland-Kreise durch data frame Filterung auf Wert "DE" in Spalte CNTR_CODE
nuts3_de = nuts3[nuts3$CNTR_CODE=="DE",]
# Projektion der Geometriedaten von Pseudo-Merkator 3857 in ETRS89-extended / LAEA Europe 3035
nuts3_3035 = st_transform(nuts3_de, 3035)
# ---- Offizielle Zuweisungstabellen für Lokale Verwaltungseinheiten (LAU) = > NUTS3 Konversion (eurostat)
# https://ec.europa.eu/eurostat/de/web/nuts/local-administrative-units
if (!file.exists(paste0(rootDIR,"EU-28-LAU-2019-NUTS-2016.xlsx")))
download(url = "https://ec.europa.eu/eurostat/documents/345175/501971/EU-28-LAU-2019-NUTS-2016.xlsx",
destfile =paste0(rootDIR,"EU-28-LAU-2019-NUTS-2016.xlsx"))
# Einlesen der xlsx Exceldatei (Daten für Deutschland sind im Datenblatt (=sheet) "DE")
conv_lau_nuts3 = readxl::read_xlsx(path.expand(paste0(rootDIR,"EU-28-LAU-2019-NUTS-2016.xlsx")),
sheet = "DE")
# ---- Offizielle Geometriedaten der Gemeindeflächen (Bundesamt für Geodäsie und Kartographie)
# https://gdz.bkg.bund.de/index.php/default/open-data/verwaltungsgebiete-1-250-000-mit-einwohnerzahlen-ebenen-stand-31-12-vg250-ew-ebenen-31-12.html
if (!file.exists(paste0(rootDIR,"gemeinden.zip")))
download(url ="https://daten.gdz.bkg.bund.de/produkte/vg/vg250-ew_ebenen_1231/aktuell/vg250-ew_12-31.tm32.shape.ebenen.zip",
destfile = paste0(rootDIR,"gemeinden.zip"))
# Entpackt werden nur die benötigten Dateien (da es das SHP-Format handelt sind es mindestens 3 + Projektion also diese vier)
unzip(zipfile = paste0(rootDIR,"gemeinden.zip"),
files = c("vg250-ew_12-31.tm32.shape.ebenen/vg250-ew_ebenen_1231/VG250_GEM.shp",
"vg250-ew_12-31.tm32.shape.ebenen/vg250-ew_ebenen_1231/VG250_GEM.dbf",
"vg250-ew_12-31.tm32.shape.ebenen/vg250-ew_ebenen_1231/VG250_GEM.shx",
"vg250-ew_12-31.tm32.shape.ebenen/vg250-ew_ebenen_1231/VG250_GEM.prj"),
exdir = "gemeinden/",
junkpaths = TRUE)
# Einlesen mit sf::sf_read
gemeinden_sf = st_read("gemeinden/VG250_GEM.shp")
# Projektion der Geometriedaten von ETRS89 / UTM zone 32N (N-E) 3044 in ETRS89-extended / LAEA Europe 3035
gemeinden_sf_3035 = st_transform(gemeinden_sf, 3035)
# ---- Offizielle Gemeindeverzeichnisse (Statistische Bundeamt destatis)
# Die Gemeindeliste wird benötigt um die jeweils gültigen Gemeindenamen mit anderen Datenquellen zu verküpfen
# Dafür sind teils umfangreiche Säuberungsmaßnahmen notwendig
# https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/_inhalt.html
# https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/Administrativ/beschreibung-gebietseinheiten.pdf?__blob=publicationFile
# Laden der korrekten Gemeindeliste (Gemeinden > 5000 Einwohner ist kompatibel zu den Bertelsmann Daten)
# ACHTUNG Durch kontinuierliche Gebietreformen existieren zu unterschiedlichen Stichjahren unterschiedliche Gemeinden/Kreise etc.
# Einlesen erfolgt diesmal mit openxlsx::read.xlsx() zur einfacheren Steuerung der einzulesenden Matrix
gemeinde_liste_raw = openxlsx::read.xlsx("https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/Administrativ/Archiv/Standardtabellen/07_GemeindenVorjahr.xlsx?__blob=publicationFile",
sheet = "Gemeinden ab 5 000 Einwohnern",
startRow = 8,
colNames = FALSE,
rowNames = FALSE,
cols = c(2:7))
#- Einlesen und allgemeine Listen
# Erzeugen des LAU2 Codes aus den einzelnen Schlüsseln (siehe Datensatzbeschreibung)
gemeinde_liste_LAU=paste0(gemeinde_liste_raw$X1,gemeinde_liste_raw$X2,gemeinde_liste_raw$X3,gemeinde_liste_raw$X4,gemeinde_liste_raw$X5)
# Einlesen der Namensliste
gemeinde_liste_NAMES= stringr::str_split(gemeinde_liste_raw[1:nrow(gemeinde_liste_raw),6], ",",simplify = TRUE)[,1]
# LAU2 + "normale" Namensliste für späteren Gebrauch
gemeindeliste_combi=cbind(gemeinde_liste_LAU,gemeinde_liste_NAMES)
Damit liegen alle Daten vor.
Aufgabenstellung
Nun sollte alles für die Bearbeitung der Aufgabenstellung bereit sein.
Bitte bearbeiten Sie folgende Aufgabenstellung:
- Extrahieren Sie für einen Landkreis/Bundesland Ihrer Wahl alle Zensusdaten.
- Erzeugen Sie ein sf Objekt das die gewählte Geometrie und diese Daten enthält
- Visualisieren Sie diese Daten mit mapview
Was ist sonst noch zu tun?
Sobald wir unsere Tabellendaten als Geotabellendaten vorliegen haben (z.B. Gemeindeflächendaten als sf Objekt) können wir auf mächtige Pakete zur Visualisieurng und on-the-fly Analyse zurückgreifen. Beispielhaft sollen tmap
und mapview
gezeigt werden.
- versuchen sie sich an der verlinkten Hilfe auf der Geocomuptation with R Ressource. Sie sollen Sie zum aktiven Umgang mit
R
ermuntern. - spielen Sie mit den Einstellungen, lesen Sie Hilfen und lernen Sie schrittweise die Handhabung von R kennen.
- stellen Sie Fragen im Forum, im Kurs oder per email mit dem Betreff [gisma-courses/r-spatial-econometry-basics]
Wo gibt’s mehr Informationen?
Für mehr Informationen kann unter den folgenden Ressourcen nachgeschaut werden:
- Geocomputation with R von Robin Lovelace, Jakub Nowosad und Jannes Muenchow ist die herausragende Referenz für alles rund um raumzeitliche Datenanalyse und -verarbeitung mit R.
- Making Maps with R bietet eine sehr gelungen Einstieg in das Thema.
Download Skripte
Die Skripte für die Bearbeitung dieser Aufgabe können unter folgenden Links herunter geladen werden:
- skript_sitzung_2_0.R Basisskript für Downloads und Datensäuberung
- skript_sitzung_2_1.R Analyse und Visualisierung für Zensus und Gemeindedaten
- skript_sitzung_2_2.R Einfache Analyse und Visualisierung von Bertelsmann Gemeindedaten
Download Daten
Die Daten der Beispiele (ACHTUNG > 10 GB) finden sie auch unter Datendownload von einem Uni-Server laden. (Unsichere Verbindung bestätigen).