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 = ".")

introduzca la descripción de la imagen aquí

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")


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow