Archivo de la etiqueta: sp

Identificar los municipios costeros y limítrofes de España con R.

Otro ejercicio con spatial data R Rstats y data sciense para el trabajo con objetos espaciales en el ecosistema big data. Empiezo con frase ilógica y ridícula para mejorar las búsquedas de Google pero el tema que traigo hoy creo que puede ser útil para aquellos que, dado un spatial data, tienen que identificar los polígonos que bordean ese objeto, en este caso vamos a identificar los municipios que bordean España, pueden ser limítrofes con Francia y Portugal o bien municipios costeros. No se plantean algoritmos complicados, como en entradas anteriores nos centramos en la extracción de mapas de GADM:

Obtención de los mapas necesarios

library(maptools)
library(raster)
library(maps)
library(tidyverse)
library(sqldf)

Espania < - getData('GADM', country='Spain', level=0)
Espania$name = Espania$NAME_1
Espania2 <- getData('GADM', country='Spain', level=4)
Espania2$name = Espania$NAME_1

Por un lado obtenemos el mapa de España sin división territorial que en GADM es el nivel 0 y por otro lado el municipal que es nivel 4. Un tipo brillante sería capaz de encontrar un algoritmo que identificara que polígonos no tienen adyacencia, pero un tipo mediocre pensaría "si cruzo el borde con los municipios, los objetos que crucen son el exterior"

Municipios del contorno

contorno < - map_data(Espania) %>% mutate(lat2=round(lat,1), long2=round(long,1)) %>% select(long2,lat2) 

municipios < - map_data(Espania2) %>% mutate(lat2=round(lat,1), long2=round(long,1))  %>% select(long2,lat2,region) 

contorno < - inner_join(municipios, contorno) 

En este punto hay aspectos claramente mejorables, el cruce se realiza por latitud y longitud, Seguir leyendo Identificar los municipios costeros y limítrofes de España con R.

Mapas municipales de Argentina con R

Municipios Buenos Aires

En respuesta a un lector del blog he elaborado de forma rápida una nueva entrada que nos permite realizar mapas por municipalidades para Argentina, ya hay entradas similares pero está bien que este mapa tenga su propia entrada para facilitar las búsquedas. El ejemplo es rápido y es probable que el código tenga algún fallo o error, si es así lo comentáis y lo solvento. Como es habitual nos dirigimos a la web del proyecto Global Administrative Areas (http://www.gadm.org/country) y nos descargamos el mapa de Argentina por municipios que es el nivel 2, una vez descargado pocas líneas de R:
[sourcecode language=”r”]library(sp)
library(RColorBrewer)

ub_argentina="C:\\mapas\\ARG_adm2.rds"

argentina = readRDS(ub_argentina)
b.aires = argentina[argentina$NAME_1=="Buenos Aires",]

aleatorio = rpois(length(unique(b.aires$NAME_2)),3)
b.aires@data=data.frame(aleatorio)
spplot(b.aires,col.regions=brewer.pal(5, "Blues"))
[/sourcecode]
Leemos el mapa entero y hacemos un subconjunto de datos sólo con los municipios de Buenos Aires, pintamos unos datos aleatorios con la función spplot y con la librería RColorBrewer podemos dar un formato más elegante a nuestro mapa. Saludos.

Mapa de Argentina con R

Un lector necesita realizar un mapa de Argentina con R. El primer paso es descargar el mapa en formato R de la página web de siempre: http://www.gadm.org/country seleccionamos Argentina y el formato en R. Podéis descargar en otros formatos y trabajar con R, pero eso lo contaré otro día. Para ilustrar el ejemplo me he descargado el mapa de nivel 2, es decir, a nivel de Estado argentino. Una vez descargado el mapa empleamos el código de siempre:

library(sp)
library(RColorBrewer)

ub_argentina=”C:\\TEMP\\00 raul\\MAPA\\ARG_adm1.RData”

#Creamos los objetos de R
load(ub_argentina)
argentina=gadm

plot(argentina)

argentina_R

Es sencillo trabajar con el objeto y colorear en función de valores. Un ejemplo simplista:

argentina$NAME_1
datos<-c(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)

plot(argentina,col=datos)

Pinta de negro el estado de Buenos Aires. A ver si dispongo de más tiempo y puedo desarrollar más esta entrada. Saludos.

Mapas con spatial data de R

colombia13.jpgespania1.jpgmexico1.jpg

Vamos a hacer mapas de México, España y Colombia con R. Y lo primero que tenemos que hacer es disponer de un objeto de R con los datos del mapa. Estos datos los vamos a obtener de http://www.gadm.org/country Seleccionamos el país y el formato que deseamos descargar. Para ilustrar nuestros ejemplos vamos a descargarnos los mapas de España, México y Colombia en formato R data. Vemos que tenemos distintas divisiones en función del nivel al que deseemos llegar. En este caso seleccionamos nivel 2 para España y nivel 1 para Colombia y México. Los hemos descargado a nuestro equipo, mejor descargarlo que no acceder a la web, y comprobamos que tengan extensión Rdata los archivos. Una vez tengamos los archivos con su formato, su extensión y demás ya podemos trabajar con ellos y vamos a trabajar con el paquete sp spatial data:

#install.packages("sp")
library(sp)
ub_colombia="C:\\temp\\00 Raul\\04_software\\mapas\\COL_adm1.Rdata"
ub_mexico="C:\\temp\\00 Raul\\04_software\\mapas\\MEX_adm1.RData"
ub_espania="C:\\temp\\00 Raul\\04_software\\mapas\\ESP_adm2.RData"
#Creamos los objetos de R
load(ub_colombia)
colombia=gadm
load(ub_mexico)
mexico=gadm
load(ub_espania)
espania=gadm

Evidentemente modificad la ubicación de los archivos. Seguir leyendo Mapas con spatial data de R