Zoeken…


Maak ruimtelijke punten van XY-gegevensset

Als het gaat om geografische gegevens, blijkt R een krachtig hulpmiddel voor gegevensverwerking, analyse en visualisatie.

Vaak zijn ruimtelijke gegevens beschikbaar als een XY-coördinaatgegevensset in tabelvorm. Dit voorbeeld laat zien hoe u een ruimtelijke gegevensset maakt van een XY-gegevensset.

De pakketten rgdal en sp bieden krachtige functies. Ruimtelijke gegevens in R worden opgeslagen als Spatial*DataFrame (waar * kan Points , Lines of Polygons ).

Dit voorbeeld maakt gebruik van gegevens die kunnen worden gedownload bij OpenGeocode .

Eerst moet de werkmap worden ingesteld op de map van de gedownloade CSV-gegevensset. Verder moet het pakket rgdal worden geladen.

setwd("D:/GeocodeExample/")
library(rgdal)

Daarna wordt het CSV-bestand met steden en hun geografische coördinaten in R geladen als een data.frame

xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)

Vaak is het handig om een glimp op te vangen van de gegevens en de structuur ervan (bijvoorbeeld kolomnamen, gegevenstypen, enz.).

head(xy)
str(xy)

Dit laat zien dat de lengte- en breedtegraadkolommen worden geïnterpreteerd als tekenwaarden, omdat deze items bevatten zoals "-33.532". Toch vereist de later gebruikte functie SpatialPointsDataFrame() die de verzameling ruimtelijke gegevens maakt, dat de coördinaatwaarden van het gegevenstype numeric . De twee kolommen moeten dus worden geconverteerd.

xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)

Weinig van de waarden kunnen niet worden omgezet in numerieke gegevens en dus worden NA waarden gecreëerd. Ze moeten worden verwijderd.

xy <- xy[!is.na(xy$longitude),]

Ten slotte kan de XY-gegevensset worden omgezet in een ruimtelijke gegevensset. Dit vereist de coördinaten en de specificatie van het coördinatenreferentiesysteem (CRS) waarin de coördinaten zijn opgeslagen.

xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)

De basisplotfunctie kan eenvoudig worden gebruikt om de geproduceerde ruimtelijke punten te piekeren.

plot(xySPoints, pch = ".")

voer hier de afbeeldingsbeschrijving in

Een vormbestand (.shp) importeren

rgdal

ESRI-vormbestanden kunnen eenvoudig in R worden geïmporteerd met behulp van de functie readOGR() uit het rgdal pakket.

library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")

Het is belangrijk om te weten, dat de dsn niet mag eindigen met / en dat de layer het bestand niet laat eindigen (bijv. .shp )

raster

Een andere mogelijke manier om shapefiles te importeren is via de raster en de shapefile functie:

library(raster)
shp <- shapefile("path/to/your/file.shp")

Merk op hoe de paddefinitie verschilt van de importinstructie van rgdal.

TMap

tmap pakket biedt een leuke wrapper voor de functie rgdal::readORG .

library(tmap)    
sph <- read_shape("path/to/your/file.shp")


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow