-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path05_0_datenimport-exkurs-geo.Rmd
83 lines (66 loc) · 4.25 KB
/
05_0_datenimport-exkurs-geo.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
---
title: "Geo(-referenzierte) Daten (Exkurs)"
author: CorrelAid e.V.
date: "`r Sys.Date()`"
authors:
- David Schweizer
output:
html_document:
toc: true
toc_depth: 2
toc_float: true
theme: flatly
css: www/style.css
includes:
after_body: ./www/favicon.html
language: de
runtime: shiny_prerendered
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
library(learnr)
library(gradethis)
source("R/setup/gradethis-setup.R")
source("R/setup/tutorial-setup.R")
# Read app parameters
params <- yaml::yaml.load_file("www/app_parameters.yml")
# Benötigte Daten laden
source("R/setup/functions.R")
polygons_welt <- get_poly_welt()
```
```{r results='asis'}
cat(get_license_note(rmarkdown::metadata$title, rmarkdown::metadata$authors))
```
# **Daten für Karten**
Um Karten zu erstellen, nutzen wir verschiedene geometrische Typen. Somit müssen wir unsere Datensätze um unterschiedliche geographische Daten ergänzen (**sog. Geocodierung**). Bei der Darstellung von Punkten auf der Karte benötigen wir **Längen- und Breitengrad** der Orte, die wir visualisieren möchten. Für eindimensionale Linien (z.B. Straßen) benötigen wir eine **Reihe an Punkten** mit den jeweiligen Längen- und Breitengraden. Zweidimensionale Kartenbereiche werden mit Polygonen geocodiert. **Polygone** stellen kartographische Informationen dar - beispielsweise die Form und Lage von Deutschland auf einer Weltkarte.
# **Geodaten in R**
Diese Daten lesen wir mit dem Package **`sf`** und der Funktion **`st_read()`** ein. Das **`sf`**-Package ("sf = simple features") bietet uns viele Möglichkeiten zur Verarbeitung und Analyse räumlicher Daten. Mithilfe dieses Packages können wir Geodaten eigenständig erstellen, diese manipulieren, visualisieren, uvm. - außerdem lässt sich das `sf` mit anderen Packages wie dem `dplyr` kombinieren. Weitere Infos zum Package findet Ihr [hier](https://cran.r-project.org/web/packages/sf/sf.pdf){target="_blank"}.
*Achtung: Damit der Import funktioniert müsst Ihr die gesamte ZIP-Datei, die Ihr laden wollt, in einem Ordner mit der hier gewünschten .shp-Datei ablegen - also auch alle Dateien mit anderen Endungen.*
```{r polygons_world, exercise = TRUE}
# install.packages("sf")
# Einlesen des globalen Shapefiles (geometrischen Datensatzes, erkennbar an .shp) über sf::st_read()
polygons_welt <- sf::st_read(here::here("daten/geospatial/ne_50m_admin_0_countries.shp"))
```
Unser Datensatz enthält zahlreiche Spalten mit zusätzlichen Informationen zu den Ländern der Welt, wobei wir uns vor allem für die Spalte "`geometry`" interessieren, die die kartographischen Informationen enthält.
```{r polygon_welt_exercise, exercise = TRUE}
# Betrachtung der Daten
head(polygons_welt$geometry)
```
Zur Veranschaulichung können wir nun die Polygone des Datensatzes `polygons_welt` betrachten. Wir nutzen hier die `baseR`-Funktion `plot()`. Wie wir mit kartographischen Daten schönere und insb. interaktive Karten gestalten, schauen wir uns in der Session zur Datenvisualisierung noch einmal genauer an!
```{r polygon_welt__plot_exercise, exercise = TRUE}
# Erstellung eines einfachen Kartenplots
plot(polygons_welt$geometry)
```
Auch für Deutschland gibt es ähnliche Shapefiles:
```{r polygon_de_exercise, exercise = TRUE}
# Einlesen der Deutschlandkarte mit Bundesländern
polygons_deutschland <- sf::st_read(here::here("daten/geospatial/1000_NUTS1.shp"))
plot(polygons_deutschland$geometry)
```
Hier noch einmal eine Checkliste für den Import geographischer Daten:
1. Welche **geographische Ebene** soll visualisiert werden (Punkte, Striche oder Polygone)?
2. Wo kann ich zugehörige **Shapefiles** finden? <br>
*Tipp: [Hier](http://www.naturalearthdata.com/features/){target="_blank"} findet Ihr globale und beim [Bundesamt für Kartographie](https://gdz.bkg.bund.de/index.php/default/nuts-gebiete-1-1-000-000-stand-31-12-nuts1000-31-12.html){target="_blank"} deutsche Shapefiles. Einige können auch über Packages und Links geladen werden.*
3. Über welche **Schlüsselvariable** füge ich meinen Datensatz und die geographischen Daten zusammen? Gibt es (sprachliche) Hürden (Deutschland != Germany != DEU)?
<br>
<a class="btn btn-primary btn-back-to-main" href=`r params$links$end_session`>Session beenden</a>