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 = ".")

Geben Sie hier die Bildbeschreibung ein

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")


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow