R Language
análisis espacial
Buscar..
Crear puntos espaciales a partir del conjunto de datos XY
Cuando se trata de datos geográficos, R demuestra ser una herramienta poderosa para el manejo, análisis y visualización de datos.
A menudo, los datos espaciales están disponibles como un conjunto de datos de coordenadas XY en forma tabular. Este ejemplo mostrará cómo crear un conjunto de datos espaciales a partir de un conjunto de datos XY.
Los paquetes rgdal
y sp
proporcionan funciones potentes. Los datos espaciales en R se pueden almacenar como Spatial*DataFrame
(donde *
puede ser Points
, Lines
o Polygons
).
Este ejemplo utiliza datos que pueden descargarse en OpenGeocode .
Al principio, el directorio de trabajo debe configurarse en la carpeta del conjunto de datos CSV descargados. Además, el paquete rgdal
tiene que ser cargado.
setwd("D:/GeocodeExample/")
library(rgdal)
Posteriormente, el archivo CSV que almacena las ciudades y sus coordenadas geográficas se carga en R como un data.frame
xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)
A menudo, es útil para vislumbrar los datos y su estructura (por ejemplo, nombres de columnas, tipos de datos, etc.).
head(xy)
str(xy)
Esto muestra que las columnas de latitud y longitud se interpretan como valores de caracteres, ya que contienen entradas como "-33.532". Sin embargo, la última función utilizada SpatialPointsDataFrame()
que crea el conjunto de datos espaciales requiere que los valores de las coordenadas sean del tipo de datos numeric
. Por lo tanto las dos columnas tienen que ser convertidas.
xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)
Pocos de los valores no se pueden convertir en datos numéricos y, por lo tanto, se crean valores de NA
. Tienen que ser eliminados.
xy <- xy[!is.na(xy$longitude),]
Finalmente, el conjunto de datos XY se puede convertir en un conjunto de datos espaciales. Esto requiere las coordenadas y la especificación del sistema de coordenadas (CRS) en el que se almacenan las coordenadas.
xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)
La función de trazado básico se puede utilizar fácilmente para arrastrar los puntos espaciales producidos.
plot(xySPoints, pch = ".")
Importando un archivo de forma (.shp)
rgdal
Los archivos de forma ESRI se pueden importar fácilmente a R usando la función readOGR()
del paquete rgdal
.
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
Es importante saber que el dsn
no debe terminar con /
y que la layer
no permite el final del archivo (por ejemplo, .shp
)
raster
Otra forma posible de importar shapefiles es a través de la biblioteca de raster
y la función shapefile
:
library(raster)
shp <- shapefile("path/to/your/file.shp")
Observe en qué se diferencia la definición de ruta de la declaración de importación rgdal.
tmap
tmap
paquete tmap
proporciona un bonito envoltorio para la función rgdal::readORG
.
library(tmap)
sph <- read_shape("path/to/your/file.shp")