R Projects|Libraries and Multispatial Data Analysis


CatastroDownloader

Librería R para descargar información consolidada de catastro a nivel provincial en un único archivo .gpkg

CatastroDownloader

GITHUB PROJECT


Objetivo

El objetivo de esta librería es descargar una copia completa de Catastro a nivel Provincial (provincias de España). Las ventajas de utilizar esta librería son:

  • El proceso es paralelizable, de forma que se puede descargar el Catastro provincial en una sola ejecución de R. Además la ejecución se puede configurar de forma que se reciba una notificación en el móvil cuando el proceso ha finalizado.
  • El proceso junta el catastro de todos los municipios en un único archivo pero manteniendo el nombre del municipio de forma que sirva para procesos de filtrado posteriores.
  • El proceso genera un único archivo en formato . gpkg con 3 capas internas: - buildings - buildingparts - otherconstructions
  • Se estima la altura de la edificación en base a un parámetro de altura dado sobre las plantas por encima del nivel del suelo.

Instalación

La librería ha sito testada en:

  • Ubuntu 20.04 with R 3.6.3
  • Windows 10 with R 4.0 + Rtools40

Instalar librería:

# install libraries to install packages from github
install.packages("devtools"); library(devtools)

install_github("cesarkero/CatastroDownloader")

Antes de seguir…

Por favor, usa esta librería de forma coherente. La descarga masiva de estos datos en repetidas ocasiones o utilizando los procesos en paralelo puede suponer una carga demasiado alta para los servidores públicos, lo que podría conllevar a futuras restricciones del servicio. Disfruta de los datos de forma respetuosa.

Además, si solo necesitas la información de catastro para uno o unos pocos municipios simplemente utiliza el complemento de QGIS que sirve para tal propósito y está realmente bien –> Spanish Inspire Catastral Downloader.

Spanish Inspire Catastral Downloader

Si has configurado el servicio antes rpushbullet recibirar una notificación cuando el proceso haya concluido para cada una de las provincias.

¡DISFRUTA DE LOS DATOS¡


Ejemplos

Descarga de datos para una sola provincia

Captura la lista de provincias disponibles en el servicio atom de Catastro:

library(CatastroDownloader)

# set parameters
catastropush <- "http://www.catastro.minhap.es/INSPIRE/buildings/ES.SDGC.bu.atom.xml"

# Catch Provinces Names in atom service
FeedProvinces(catastropush)

Esta es la lista de nombres de provincias disponibles a 2021-01-27:

“Albacete” “Alicante” “Almería” “Avila” “Badajoz” “Baleares” “Barcelona” “Burgos” “Cáceres” “Cádiz” “Castellón” “Ciudad Real” “Córdoba” “Coruña” “Cuenca” “Girona”
“Granada” “Guadalajara” “Huelva” “Huesca” “Jaén” “León” “Lleida” “La Rioja” “Lugo” “Madrid” “Málaga” “Murcia” “Ourense” “Oviedo” “Palencia” “Palmas (Las)” “Pontevedra” “Salamanca” “S.C. Tenerife” “Cantabria” “Segovia” “Sevilla” “Soria” “Tarragona” “Teruel” “Toledo” “Valencia” “Valladolid” “Zamora” “Zaragoza” “Cartagena” “Gijon” “Jerez Frontera” “Vigo” “Ceuta” “Melilla”

Para descargar Catastro para una provincia (por ejemplo Melilla), establece los parámetros y ejecuta:

# Set parameters 
catastropush <- "http://www.catastro.minhap.es/INSPIRE/buildings/ES.SDGC.bu.atom.xml" #url for the atom service
output <- "../00_Output/" #where the .gpkg file will be stored
tempdir <- "./temp/" #careful as all files inside will be removed
rpush = TRUE #if you want a notification when finished (RPushbullet must be configured before)
overwrite = TRUE #overwrite .gpkg if exists
Hfloor = 3 #set desired height for each floor above the ground

catastroprovince('Melilla', catastropush, tempdir, output, rpush = TRUE, overwrite = FALSE, Hfloor = 3)

Screenshot de descarga

Proceso en paralelo

Parallel process allows to download a list of desired Provinces with just one execution of the code. Must be taken into acount that there are slight differences between the process within Linux and Windows.

Proceso paralelo para Linux

# Set parameters 
catastropush <- "http://www.catastro.minhap.es/INSPIRE/buildings/ES.SDGC.bu.atom.xml" #url for the atom service
output <- "../00_Output/" #where the .gpkg file will be stored
tempdir <- "./temp/" #careful as all files inside will be removed
rpush = TRUE #if you want a notification when finished (RPushbullet must be configured before)
overwrite = TRUE #overwrite .gpkg if exists
ncores = 16 #specify number of cores dedicated
Hfloor = 3 #set desired height for each floor above the ground

# Set list of provinces to download
provinceslist <- c("Zamora", "Vigo")

# Set parallel
cl <- parallel::makeCluster(ncores, type="FORK")
doParallel::registerDoParallel(cl)

# Execute function
foreach(i=provinceslist) %dopar% {catastroprovince(i,catastropush, tempdir, output, rpush, overwrite, Hfloor)}

# Stop parallel 
stopCluster(cl)

Proceso paralelo para Windows

# Set parameters 
catastropush <- "http://www.catastro.minhap.es/INSPIRE/buildings/ES.SDGC.bu.atom.xml" #url for the atom service
output <- "../00_Output/" #where the .gpkg file will be stored
tempdir <- "./temp/" #careful as all files inside will be removed
rpush = TRUE #if you want a notification when finished (RPushbullet must be configured before)
overwrite = TRUE #overwrite .gpkg if exists
ncores = 16 #specify number of cores dedicated
Hfloor = 3 #set desired height for each floor above the ground

# Set list of provinces to download
provinceslist <- c("Zamora", "Vigo")

# Set parallel
cl <- parallel::makeCluster(ncores, type="PSOCK")
doParallel::registerDoParallel(cl)
clusterEvalQ(cl, library("CatastroDownloader")) # load libraries
clusterExport(cl, c('catastropush', 'output', 'tempdir', 'ncores'))

# Execute function
foreach(i=provinceslist) %dopar% {catastroprovince(i,catastropush, tempdir, output, rpush, overwrite, Hfloor)}

# Stop parallel 
stopCluster(cl)

Vista de los resultados


Si te ha parecido interesante, me ayudarás compartiéndolo.

Si necesitas capturar datos o ya los tienes pero necesitas ayuda para sistematizar procesos, analizarlos y mostrarlos, no dudes en ponerte en contacto a través de este formulario.

Conctactar