Skip to content

Geoprocesing and reference and coordinate systems

Dieses Tutorial zeigt Schritt für Schritt, wie man bestimmte Aufgaben wie das Lesen von Shapefiles, das Erstellen von Puffern, das Zusammenführen von geometrischen Objekten, das Schneiden von Objekten, das reprojizieren von Objekten und das Exportieren von Ergebnissen durchführt.

Die benötigten R-Pakete sind:

  • sf
  • terra
  • dplyr

Die benötigten Shapefiles sind:

  • bezirke_ortsteile.shp
  • protected_areas_Berlin.shp
  • strassen_berlin_haupt_utm.shp
  • Wasserschutzgebiete_Berlin.shp
  • Zufallspunkte_Berlin_1.shp
  • Zufallspunkte_Berlin_2.shp

Die benötigten Raster sind:

  • temperatur.tif

Vorbereitung

Im ersten Teil des Tutorials wird gezeigt, wie man die benötigten R-Pakete installiert und lädt. Es wird auch gezeigt, wie man das Arbeitsverzeichnis einstellt und Shapefiles und ein Raster in R einliest.

Installieren der benötigten Pakete

Falls die R-Pakete sf, terra und dplyr noch nicht installiert sind, werden diese hier installiert und bestehende Pakete auf den neuesten Stand gebracht. Bitte beachten Sie, dass dieser Vorgang etwas Zeit in Anspruch nehmen kann.

update.packages(ask = FALSE)
pkgs <- c("sf", "dplyr", "terra")
install.packages(pkgs[!pkgs %in% installed.packages()])

Die Warnung kann ignoriert werden.

Laden der benötigten Pakete

Nachdem die Pakete installiert wurden, müssen sie noch geladen werden.

library(sf)
library(terra)
library(dplyr)

Das Arbeitsverzeichnis setzen

Das Arbeitsverzeichnis wird auf den Pfad der Daten gesetzt. PFAD-ZU-DATEN muss angepasst werden.

setwd("PFAD-ZU-DATEN")

Einlesen der Shapefiles

Hier werden mehrere Shapefiles im Arbeitsverzeichnis eingelesen und als R-Objekte gespeichert.

bezirke_ortsteile <- st_read("bezirke_ortsteile.shp")
protected_areas_berlin <- st_read("protected_areas_Berlin.shp")
strassen_berlin_haupt_utm <- st_read("strassen_berlin_haupt_utm.shp")
wasserschutzgebiete_berlin <- st_read("Wasserschutzgebiete_Berlin.shp")
zufallspunkte_berlin_1 <- st_read("Zufallspunkte_Berlin_1.shp")
zufallspunkte_berlin_2 <- st_read("Zufallspunkte_Berlin_2.shp")

Einlesen des Rasters

Ein Raster im Arbeitsverzeichnis wird eingelesen und als R-Objekt gespeichert.

temperatur <- rast("temperatur.tif")

Verarbeitung

Im zweiten Teil des Tutorials werden verschiedene Verarbeitungsschritte durchgeführt. Es werden beispielsweise Puffer erstellt, geometrische Objekte zusammengeführt, Objekte geschnitten und ein Raster maskiert.

Buffer

Hier wird ein Buffer von der strassen_berlin_haupt_utm erstellt und als neues R-Objekt buffer gespeichert. Die Bufferbreite beträgt 100 Meter und wird in dist angegeben.

buffer <- st_buffer(strassen_berlin_haupt_utm, dist = 100)

Merge

Die beiden Objekte zufallspunkte_berlin_1 und zufallspunkte_berlin_2 werden zu einem Objekt zusammengeführt und als neues R-Objekt merge gespeichert.

merge <- st_union(zufallspunkte_berlin_1, zufallspunkte_berlin_2)

Die Warnung kann ignoriert werden.

Dissolve

Die Polygone im Shapefile bezirke_ortsteile werden nach BEZNAME gruppiert, dann zu einem Polygon vereinigt, als neues R-Objekt dissolve gespeichert und in das Polygonformat konvertiert.

grouped_bezirke <- group_by(bezirke_ortsteile, BEZNAME)
unionized_bezirke <- summarize(grouped_bezirke, geometry = st_union(geometry))
dissolve <- st_cast(unionized_bezirke, "POLYGON")

Die Warnung kann ignoriert werden.

Union

Die beiden Shapefiles wasserschutzgebiete_berlin und protected_areas_berlin werden zu einem Objekt zusammengeführt und als neues R-Objekt gespeichert.

union <- st_union(wasserschutzgebiete_berlin, protected_areas_berlin)

Die Warnung kann ignoriert werden.

Clip eines Shapefiles

Das Polygonobjekt dissolve wird nach dem Bezirk Steglitz-Zehlendorf gefiltert, und das Shapefile protected_areas_berlin wird dann auf das Polygonobjekt zugeschnitten und als neues R-Objekt clip gespeichert.

clip <- st_intersection(protected_areas_berlin, dissolve[dissolve$BEZNAME == "Steglitz-Zehlendorf", ])

Die Warnung kann ignoriert werden.

Clip eines Rasters

Das Raster temperatur wird auf das Polygonobjekt dissolve zugeschnitten und als neues R-Objekt clip_raster gespeichert.

clip_raster <- mask(temperatur, dissolve)

Reprojection

Gibt die ursprüngliche Projektion (Koordinatenreferenzsystem) aus. In der 5. Zeile finden Sie die aktuelle Projektion.

bezirke_ortsteile 

Reprojiziert bezirke_ortsteile. Ersetzen Sie 4326 durch den gewünschten EPSG-Code

reproj <- st_transform(bezirke_ortsteile, 4326) 

In der 5. Zeile finden Sie die neue Projektion, sie ist jetzt WGS 84, was dem Code 4326 entspricht.

reproj

Export

Im letzten Teil des Tutorials wird gezeigt, wie man die Ergebnisse in verschiedenen Formaten, wie Shapefiles oder Raster, exportieren kann.

Export der Shapefiles

Die erstellten Shapefiles werden im Arbeitsverzeichnis als neue Dateien gespeichert.

st_write(buffer, "buffer.shp", overwrite = TRUE, append = TRUE)
st_write(merge, "merge.shp", overwrite = TRUE, append = TRUE)
st_write(dissolve, "dissolve.shp", overwrite = TRUE, append = TRUE)
st_write(union, "union.shp", overwrite = TRUE, append = TRUE)
st_write(clip, "clip.shp", overwrite = TRUE, append = TRUE)
st_write(reproj, "reproj.shp", overwrite = TRUE, append = TRUE)

Export des Rasters

Das erstellte Raster clip_raster wird im Arbeitsverzeichnis als neue Datei gespeichert.

writeRaster(clip_raster, "clip_raster.tif", overwrite = TRUE)

Die Resultate der Verarbeitungsschritte werden als Shapefiles und Raster exportiert, welche anschließend in anderen Anwendungen, wie beispielsweise ArcGIS Pro, weiterverwendet werden können. Beim Raster kann es vorkommen, dass eine Zentrierung auf den Layer notwendig ist, da dieser möglicherweise keine Projektion aufweist. Eine Zentrierung auf den Layer kann durch einen Rechtsklick auf den Layer und die Auswahl der Option "Zoom to Layer" erreicht werden.