Mapas en el paquete de "Métodos para datos espaciales" (sp) en R

mapa de lima Software R

2 min

Para trabajar con este paquete podemos descargar la información georeferenciada de http://gadm.org/ de cualquier país, lo malo es que a mayor nivel de detalle tal como distritos existen discrepancias con la realidad. De todas maneras este paquete resulta interesante y útil a la hora de trabajar con datos georeferenciados y mucho más si son datos propios. A continuación se muestra un código para obtener el mapa de Lima por provincias directo desde el Software R.

library(sp)
peru <- readRDS("PER_adm2.rds")
# Para descargar el mapa http://gadm.org/country
# En la misma página también se puede descargar para departamentos y
# provincias
# solo se cambia PER_adm2.RData por PER_adm0.RData,PER_adm1.RData o
# PER_adm3.RData
names(peru)
# Hasta ahora el mapa y sus características están cargados en gadm por
# provincias
mapalima <- peru[peru@data$NAME_1 == "Lima",] # Seleccionamos las provincias
# de lima (polígonos y datos) Aquí tu indicaste otros números pero la data
# ha cambiado y esos son los actuales que tienen las provincias de lima.
datalima <- data.frame(mapalima) # Seleccionamos solo los datos de la
# provincias
# Los nombres de las provincias pueden ser obtenidas de 2 maneras:
datalima[7]; mapalima$NAME_2;
#creamos el factor según los nombres de las provincias elegidas
mapalima$provincias <- factor(mapalima$NAME_2)
#la función factor es para eliminar los niveles que no existen
col <- rainbow(length(levels(mapalima$provincias ))) # asignamos los
# colores según los niveles
# mostramos el mapa
spplot(mapalima, provincias, col.regions = col, main = "Lima Provincias")
# Además lo siguiente es por si se desea el mapa con texto
# (puede ser en vectores)
d1 <- list(sp.text,c(-75.99853,-11.), "Estadística")
spplot(mapalima, provincias, col.regions = col, main = "Lima Provincias",
   sp.layout = list(d1))

El resultado del mapa es el siguiente (Por supuesto que puede ser mejorado según sus intereses):

example

Por otro lado, también se muestra ,a continuación, el código para obtener los distritos del departamento de Lima:

library(sp)
#descargamos los datos por distritos
gadm <- readRDS("PER_adm3.rds")

# elegimos solo los distritos de lima
mapalima <- gadm[(gadm@data$NAME_2  == "Lima") |
                  gadm@data$NAME_3  == "Callao" |
                  gadm@data$NAME_3  == "Ventanilla",]
dataprovlima <- data.frame(mapalima)
limageo <- mapalima[1]

mapalima$distritos <- distritos# asignamos el factor

# mostramos el mapa
spplot(mapalima, distrito, col.regions = col,
   main = "Distritos del Departamento de Lima")

Espero que les sea útil =).