Sök…


Skapa rumsliga punkter från XY-datauppsättningen

När det gäller geografiska data visar R vara ett kraftfullt verktyg för datahantering, analys och visualisering.

Ofta är rumsliga data tillgängliga som en XY-koordinatdatauppsättning i tabellform. Detta exempel visar hur man skapar en rumslig datauppsättning från en XY-datauppsättning.

Paketen rgdal och sp ger kraftfulla funktioner. Spatial data i R kan lagras som Spatial*DataFrame (där * kan vara Points , Lines eller Polygons ).

I det här exemplet används data som kan laddas ner på OpenGeocode .

Först måste arbetskatalogen ställas in till mappen för den nedladdade CSV-datauppsättningen. Dessutom rgdal paketet rgdal laddas.

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

Efteråt laddas CSV-filen som lagrar städer och deras geografiska koordinater i R som en data.frame

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

Ofta är det användbart att få en glimt av uppgifterna och dess struktur (t.ex. kolumnnamn, datatyper etc.).

head(xy)
str(xy)

Detta visar att bredd- och longitudkolumnerna tolkas som teckenvärden, eftersom de har poster som "-33.532". Ändå kräver den senare använda funktionen SpatialPointsDataFrame() som skapar den rumsliga SpatialPointsDataFrame() numeric . Således måste de två kolumnerna konverteras.

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

Få av värdena kan inte konverteras till numeriska data och därför skapas NA värden. De måste tas bort.

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

Slutligen kan XY-datauppsättningen konverteras till en rumslig datauppsättning. Detta kräver koordinaterna och specifikationen för det koordinatreferenssystem (CRS) där koordinaterna lagras.

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

Den grundläggande plottfunktionen kan enkelt användas för att smyga upp de producerade rumsliga punkterna.

plot(xySPoints, pch = ".")

ange bildbeskrivning här

Importera en formfil (.shp)

rgdal

ESRI-formfiler kan enkelt importeras till R genom att använda funktionen readOGR() från rgdal paketet.

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

Det är viktigt att veta att dsn inte får sluta med / och layer inte tillåter att filen slutar (t.ex. .shp )

raster

Ett annat möjligt sätt att importera shapefiles är via raster och shapefile funktionen:

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

Observera hur bandefinitionen skiljer sig från rgdal-importmeddelandet.

TMAP

tmap paketet erbjuder ett trevligt omslag för rgdal::readORG .

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow