R Language
analisi spaziale
Ricerca…
Crea punti spaziali dal set di dati XY
Quando si tratta di dati geografici, R mostra di essere un potente strumento per la gestione, l'analisi e la visualizzazione dei dati.
Spesso, i dati spaziali sono disponibili come set di dati di coordinate XY in formato tabulare. Questo esempio mostrerà come creare un set di dati spaziali da un set di dati XY.
I pacchetti rgdal
e sp
forniscono potenti funzioni. I dati spaziali in R possono essere memorizzati come Spatial*DataFrame
(dove *
può essere Points
, Lines
o Polygons
).
Questo esempio utilizza dati che possono essere scaricati su OpenGeocode .
Inizialmente, la directory di lavoro deve essere impostata sulla cartella del set di dati CSV scaricato. Inoltre, il pacchetto rgdal
deve essere caricato.
setwd("D:/GeocodeExample/")
library(rgdal)
Successivamente, il file CSV che memorizza le città e le loro coordinate geografiche viene caricato in R come data.frame
xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)
Spesso, è utile dare un'occhiata ai dati e alla loro struttura (ad es. Nomi di colonne, tipi di dati, ecc.).
head(xy)
str(xy)
Questo mostra che le colonne di latitudine e longitudine sono interpretate come valori di carattere, poiché contengono voci come "-33.532". Tuttavia, la funzione utilizzata in seguito SpatialPointsDataFrame()
che crea il set di dati spaziali richiede che i valori delle coordinate siano del tipo di dati numeric
. Quindi le due colonne devono essere convertite.
xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)
Pochi dei valori non possono essere convertiti in dati numerici e quindi vengono creati i valori NA
. Devono essere rimossi.
xy <- xy[!is.na(xy$longitude),]
Infine, il set di dati XY può essere convertito in un set di dati spaziali. Ciò richiede le coordinate e le specifiche del sistema di aggiornamento delle coordinate (CRS) in cui sono memorizzate le coordinate.
xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)
La funzione di tracciamento di base può essere facilmente utilizzata per sneakare i punti spaziali prodotti.
plot(xySPoints, pch = ".")
Importazione di un file di forma (.shp)
rgdal
I file di forma ESRI possono essere facilmente importati in R usando la funzione readOGR()
dal pacchetto rgdal
.
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
È importante sapere che il dsn
non deve terminare con /
e il layer
non consente la fine del file (ad esempio .shp
)
raster
Un altro modo possibile di importare gli shapefile è tramite la libreria raster
e la funzione shapefile
:
library(raster)
shp <- shapefile("path/to/your/file.shp")
Si noti come la definizione del percorso è diversa dall'istruzione import rgdal.
TMAP
tmap
pacchetto tmap
fornisce un bel wrapper per la funzione rgdal::readORG
.
library(tmap)
sph <- read_shape("path/to/your/file.shp")