R Language
räumliche Analyse
Suche…
Erstellen Sie räumliche Punkte aus dem XY-Datensatz
Wenn es um geographische Daten geht, ist R ein leistungsfähiges Werkzeug für Datenhandhabung, -analyse und -visualisierung.
Oft sind räumliche Daten als XY-Koordinatendatensatz in Tabellenform verfügbar. Dieses Beispiel zeigt, wie Sie einen Geodatensatz aus einem XY-Datensatz erstellen.
Die Pakete rgdal
und sp
bieten leistungsstarke Funktionen. Räumliche Daten in R können als Spatial*DataFrame
gespeichert werden (wobei *
Points
, Lines
oder Polygons
).
In diesem Beispiel werden Daten verwendet, die bei OpenGeocode heruntergeladen werden können .
Zunächst muss das Arbeitsverzeichnis auf den Ordner der heruntergeladenen CSV-Datei eingestellt werden. Außerdem muss das Paket rgdal
geladen werden.
setwd("D:/GeocodeExample/")
library(rgdal)
Anschließend wird die CSV-Datei, in der Städte und ihre geographischen Koordinaten data.frame
als data.frame
in R data.frame
xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)
Häufig ist es hilfreich, einen Blick auf die Daten und ihre Struktur (z. B. Spaltennamen, Datentypen usw.) zu erhalten.
head(xy)
str(xy)
Dies zeigt, dass die Breiten- und Längengradspalten als Zeichenwerte interpretiert werden, da sie Einträge wie "-33.532" enthalten. Für die später verwendete Funktion SpatialPointsDataFrame()
die den Geodatensatz erstellt, müssen die Koordinatenwerte jedoch vom Datentyp numeric
. Daher müssen die beiden Spalten konvertiert werden.
xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)
Einige der Werte können nicht in numerische Daten konvertiert werden. Daher werden NA
Werte erstellt. Sie müssen entfernt werden.
xy <- xy[!is.na(xy$longitude),]
Schließlich kann der XY-Datensatz in einen räumlichen Datensatz umgewandelt werden. Dies erfordert die Koordinaten und die Spezifikation des Koordinaten-Auffrischungssystems (CRS), in dem die Koordinaten gespeichert sind.
xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)
Mit der Basis-Plot-Funktion können Sie die erzeugten Raumpunkte spitzen.
plot(xySPoints, pch = ".")
Importieren einer Formdatei (.shp)
rgdal
ESRI-Shape-Dateien können einfach mit der Funktion readOGR()
aus dem rgdal
Paket in R importiert werden.
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
Es ist wichtig zu wissen, dass die dsn
nicht enden muss /
und die layer
erlaubt nicht die Datei mit der Endung (zB .shp
)
Raster
Eine andere Möglichkeit, Shapefiles zu importieren, ist über die raster
Bibliothek und die shapefile
Funktion:
library(raster)
shp <- shapefile("path/to/your/file.shp")
Beachten Sie, wie sich die Pfaddefinition von der Importanweisung rgdal unterscheidet.
tmap
tmap
Paket bietet einen schönen Wrapper für die Funktion rgdal::readORG
.
library(tmap)
sph <- read_shape("path/to/your/file.shp")