R Language
analiza przestrzenna
Szukaj…
Utwórz punkty przestrzenne z zestawu danych XY
Jeśli chodzi o dane geograficzne, R okazuje się być potężnym narzędziem do obsługi, analizy i wizualizacji danych.
Często dane przestrzenne są dostępne jako zestaw danych współrzędnych XY w formie tabelarycznej. Ten przykład pokaże, jak utworzyć zestaw danych przestrzennych z zestawu danych XY.
Pakiety rgdal
i sp
zapewniają potężne funkcje. Dane przestrzenne w R mogą być przechowywane jako Spatial*DataFrame
(gdzie *
mogą być Points
, Lines
lub Polygons
).
W tym przykładzie wykorzystano dane, które można pobrać z OpenGeocode .
Najpierw katalog roboczy musi być ustawiony na folder pobranego zestawu danych CSV. Ponadto należy załadować pakiet rgdal
.
setwd("D:/GeocodeExample/")
library(rgdal)
Następnie plik CSV przechowujący miasta i ich współrzędne geograficzne jest ładowany do R jako data.frame
xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)
Często warto rzucić okiem na dane i ich strukturę (np. Nazwy kolumn, typy danych itp.).
head(xy)
str(xy)
To pokazuje, że kolumny szerokości i długości geograficznej są interpretowane jako wartości znaków, ponieważ zawierają wpisy takie jak „-33.532”. Jednak funkcja później używany SpatialPointsDataFrame()
, która tworzy przestrzennych danych wymaga wartości współrzędnych się do typu danych numeric
. Zatem dwie kolumny muszą zostać przekonwertowane.
xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)
Niewielu wartości nie można przekonwertować na dane liczbowe, dlatego tworzone są wartości NA
. Muszą zostać usunięte.
xy <- xy[!is.na(xy$longitude),]
Wreszcie zestaw danych XY można przekształcić w zestaw danych przestrzennych. Wymaga to współrzędnych i specyfikacji układu odniesienia współrzędnych (CRS), w którym przechowywane są współrzędne.
xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)
Podstawowa funkcja wykresu może być łatwo wykorzystana do przekradnięcia się na szczyt wytworzonych punktów przestrzennych.
plot(xySPoints, pch = ".")
Importowanie pliku kształtu (.shp)
rgdal
Pliki kształtów ESRI można łatwo importować do R za pomocą funkcji readOGR()
z pakietu rgdal
.
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
Ważne jest, aby wiedzieć, że dsn
nie może kończyć się na /
a layer
nie pozwala na zakończenie pliku (np. .shp
)
raster
Innym możliwym sposobem importowania plików shapefile jest biblioteka raster
i funkcja shapefile
:
library(raster)
shp <- shapefile("path/to/your/file.shp")
Zauważ, że definicja ścieżki różni się od instrukcji importu rgdal.
tmap
Pakiet tmap
zapewnia ładne opakowanie dla funkcji rgdal::readORG
.
library(tmap)
sph <- read_shape("path/to/your/file.shp")