-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.Rmd
executable file
·186 lines (132 loc) · 12.9 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
---
output: github_document
editor_options:
chunk_output_type: console
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# LAU2boundaries4spain <img src="man/figures/logo.png" align="right" width="120" />
<!-- badges: start -->
[![rOS-badge](https://img.shields.io/badge/rOpenSpain--green?style=social&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH5AwHABsBxxfdgAAAAF50RVh0UmF3IHByb2ZpbGUgdHlwZSBpcHRjAAppcHRjCiAgICAgIDI4CjM4NDI0OTRkMDQwNDAwMDAwMDAwMDAwZjFjMDI2ZTAwMDM1MjQ2NDcxYzAyMDAwMDAyMDAwNDAwCmCaPZ4AAARaSURBVFjDxZddbBRVFMf//zuzu+30A9qCpRDbWKKWiIQHA0TAIFCJMcUCIhAEoxATiab4oNEHE/VRE+EBTJRAlGglEENLQpCKCC0fIWqbqBBoASl0u7Ur/WLdzu7MvceHLfIRaQrspv9kXiaTe35z/vecew9xl6pvegniQSmHT1DhfQIFRuQjz9WHLUv51XO+uav1ONIPv/thLfIe8uBGrYlUXEfF9SBKAQCCqIj52mjzWbQ1eb7gwSCWza9ND8Cuvc/DKcmHaMlVNpdAYSPJ6QDU7d+KSKsY2SLa1FohdTXe7ePFZ3fdO0D9idUQjYAKqDlUeItkJYisYVcU+AI5DiObtK8PUtEdCPtY88LukQPsbXwZbsxmTmGyggpvklwJouCuzBWJiUi9GNms3WQzbdtUz/l2eIC6H1+BPT4O80/gAVpYQ3IDyHLcj0Q6RWSHGLNt8kxePndEsPTp2lsBRPrQ0LwRTijXibmxKgOpATEDgIX0SCDyB8Et2XbW7t74332Lpm9EjjMXVFQAMFYENWXlhTMqpo2fFwhajoggnSIJrU3y4rnek62nu08IzCYCUaaSIA+PK845+syy0pKQQyC9sW+R0cDR/ZGuS229TwFos69Hy80PcPaiccgvsCCZAiDgJYDTv/biUlvqlX3DJEBrgdaSOYChDNxsr8Ioa9QB7KFNCAJQJEjeoZwlUwCp9XuiCb1nWzuCIXVbYGBMYRALlhTDyVVp3x92wFbwfN2xeEXFsbFFzoqbA5BAbMBD06GLmDW/CE5eMO0lah89/Tr6EwkXOtEJMBX1JoCrfw2i5VQ4Y61BdUf6oZQF39OpMvTNrY8WSAY7k9K+B6basRmVMjTig0Nn0qgACGQotIxOI1IZdXhEnZDX7c88BwEqXrc8BUAE4HsuIGyDyEDmUk1oD/j9VB/C7TEXgA8AalnlLiTjCXgJ+cpoWS5Gvocgmb6LSOoyculcHDs3XdDbPzl7LHIlVqPIKyRTh1H17FrEzntJ2tKgk/5KY/QGEfntfmwhU3/d0+2j7ssObP3gzIXGA+F3YgPuUkD2OXbIF5Eb94G1r+4BAOxpWN7/WOXU7W0nWxtUUK032qwjOEkpDh1bI0i3RQxe0/i5sQc/7eu82t7WX6u12ZoXcFpdnRTP+Ih57vBzQX3jKiyeW823P9z65M7PW3ZWrS4tn7WwCMEsBWPkjj77vuBsyzUc2ht2zzT3NCRc71OL6rgR8f+v3oYdTGwqKEJ5BguzcwLvTptZNLdy6US7fEouaAnE3Eg3QIT/HMThuoj5pSna3N87uJlgvUBiZSWT0B4J39toNsHJR1d8AAQLBVhVOD77jVkLih+dVzWBxZNCAIG+qIfjB6NoOhC53NUR+0IgOwBEHCuIuE7Tfs6yQlhZ9hwAlpPq49LJY7rW1EyR196bKo9MLeq1bWsbgMdz7GwGVSBzvcSijaAKWgDmBYL2kVAo0Ayg2qIV4siH7f/0L7Kq+91zoPR0AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTEyLTA3VDAwOjI3OjAwKzAwOjAwWgYBiAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0xMi0wN1QwMDoyNzowMCswMDowMCtbuTQAAAAASUVORK5CYII=)](https://ropenspain.es/)
<!-- badges: end -->
**LAU2boundaries4spain** es un paquete de R cuyo objetivo es facilitar la realización de mapas a nivel municipal para España. Para ello se ofrecen las geometrías o contornos municipales españoles para los años 2002 a 2021.
¿Es necesaria esta información? Evidentemente pensamos que sí. En España el organismo encargado de ofrecer está información es el [Instituto Geográfico Nacional](http://www.ign.es/web/ign/portal) (IGN), pero el IGN no ofrece un registro histórico de las lineas límite municipales; solo ofrece la información más actual. Por lo tanto, si se quisiera representar gráficamente, por ejemplo, la población o la renta per cápita por municipios en el año 2010, ocurriría que los contornos ofrecidos por el IGN no cuadrarían con la información estadística del INE referida a 2010. La razón es que la relación de municipios puede cambiar con el tiempo; por ejemplo, [en el año 2018 se crearon en España 7 nuevos municipios](https://www.ine.es/daco/daco42/codmun/codmun19/19codmunmod.htm), entre ellos El Palmar de Troya, que surge como una segregación de Utrera.
Para obtener información detallada de los datos ofrecidos y de su proceso de creación puede visitarse la **página web del proyecto** [aquí](https://ropenspain.github.io/LAU2boundaries4spain/) o en las
viñetas del paquete [aquí](https://ropenspain.github.io/LAU2boundaries4spain/articles/intro-to-lau2boundaries4spain.html) y [aquí](https://ropenspain.github.io/LAU2boundaries4spain/articles/detailed-info-lau2boundaries4spain.html).
Durante el periodo 2002-2021 desaparecieron en España 4 municipios ^[Concretamente los municipios de Cerdedo y Cotabade, que se juntaron para crear Cerdedo-Cotobade y los municipios de Cesuras y Oza dos Ríos que acabaron formando Oza-Cesuras] y se crearon 25 municipios nuevos. El listado completo de alteraciones municipales puede consultarse en el INE. Como ejemplo, el siguiente gráfico muestra los 6 municipios nuevos creados en la provincia de Granada durante el periodo 2002-2020.
```{r, echo = FALSE, message = FALSE, warning =FALSE}
#- ok Granada se lleva la palma con 6 alteraciones municipales
library(LAU2boundaries4spain)
library(knitr)
library(here)
library(tidyverse)
library(ggrepel)
library(sf)
#----------------------------------------
granada_2020 <- LAU2boundaries4spain::municipios_2020 %>% filter(INECodProv == "18")
granada_2002 <- LAU2boundaries4spain::municipios_2002 %>% filter(INECodProv == "18")
granada_2002_df <- LAU2boundaries4spain::municipios_2002 %>% filter(INECodProv == "18") %>% st_set_geometry(NULL)
dif_granada <- anti_join(granada_2020, granada_2002_df, by = c("INECodMuni" = "INECodMuni")) #- los 6 municipios que han cambiado
Provincias <- Provincias
Prov_granada <- Provincias %>% filter(INECodProv == "18")
Prov_limitrofes <- Provincias [st_touches(Provincias, Prov_granada, sparse = FALSE ), ]
centroides_prov <- st_centroid(Prov_limitrofes) #- sustituye la geometry por el centroide
centroides_prov <- cbind(Prov_limitrofes, st_coordinates(st_centroid(Prov_limitrofes$geometry))) #- ahora e
#- centroides de los municipios q han cambiado en Granada
centroides_dif <- st_centroid(dif_granada) #- sustituye la geometry por el centroide
centroides_dif <- cbind(dif_granada, st_coordinates(st_centroid(dif_granada$geometry))) #- ahora e
dif_granada_names <- dif_granada %>% st_drop_geometry()
p <- ggplot() +
geom_sf(data = Provincias, fill = "antiquewhite", color = "grey", size = 0.2) +
geom_sf(data = granada_2002, fill = "antiquewhite", color = "black", size = 0.14) +
geom_sf(data = dif_granada, fill = "#E41A1C", color = "black", size = 0.14) +
geom_sf(data = Prov_granada, fill = NA, color = "black", size = 0.6) +
geom_text(data = centroides_prov, aes(x = X, y = Y, label = NombreProv), color = "grey", check_overlap = TRUE, size = 3) +
coord_sf(xlim = c(-4.50, -2.15), ylim = c(36.4, 38.10), expand = FALSE) +
theme(panel.grid.major = element_line(color = gray(.5), linetype = "dashed", size = 0.15), panel.background = element_rect(fill = "azure")) +
theme(text = element_text(size = 10), axis.text.x = element_text(size = 5)) +
theme(axis.text.y = element_text(size = 5)) +
geom_text_repel(data = centroides_dif, aes(x = X, y = Y, label = NombreMuni), force = 18.5, color = "black", size = 2.4, fontface = "bold") +
labs(title = "Municipios creados en el periodo 2002-2020", subtitle = "(Provincia de Granada)", x = NULL, y = NULL)
p
```
Como curiosidad, en 2021 hay en España 8.131 municipios, pero el fichero `municipios_2021` tiene 8212 registros. ¿Cuál es la razón de esta discrepancia entre el número oficial de municipios y los datos del IGN? ¿Se inventa el IGN municipios? Evidentemente no. La razón es que en España existen territorios que no pertenecen a un único municipio, son los llamados **condominios**. Actualmente en los ficheros del IGN existen 81 condominios, la mayoría de estos territorios están en las provincias Burgos y Navarra, siendo el mayor de ellos las Bardenas Reales. [Aquí](https://es.wikipedia.org/wiki/Facer%C3%ADa) puedes ver los territorios comunales, generalmente llamados *Facerías*, en la provincia de Navarra.
Como el objetivo último de este repositorio es facilitar la representación gráfica de información estadística a nivel municipal, se facilitan los contornos de los términos municipales españoles ajustados a los municipios existentes a 1 de enero de cada año desde 2002, de forma que cuadren exactamente con el Padrón de dicho año. Los contornos a fecha de 1 de enero de 2002 son consistentes con los existentes en el censo de 2001, con fecha de referencia 1 de noviembre de dicho año.
Creemos que dicha base de datos es útil por varias razones. El [Instituto Geográfico Nacional](http://www.ign.es/web/ign/portal) (IGN) ofrece, a través del [Centro de Descargas](http://centrodedescargas.cnig.es/CentroDescargas/index.jsp) del Centro Nacional de Información Geográfica, los recintos municipales --también los provinciales y autonómicos-- dentro de la Base de Datos de Líneas de Límite Municipal en la **Información Geográfica de Referencia**, sin embargo estas bases de datos son de actualización continua, de forma que lo que se dispone son los municipios "en el momento actual", y no existe un histórico que puede ser de utilidad por muchas razones. Así pues, hasta donde nosotros conocemos, no se dispone, por ejemplo, de una capa vectorial de los polígonos municipales del año 2006, o de la de los municipios correspondientes al censo de 2001. Esta información es necesaria si queremos combinar la información geográfica con la información estadística municipal histórica procedente, por ejemplo, del [Instituto Nacional de Estadística](http://www.ine.es/) (INE).
Este repositorio pretende cubrir esa laguna que, de momento, no ha sido satisfecha por las instituciones oficiales. El repositorio está disponible como un _package_ de _R_ alojado en _Github_: <https://github.com/rOpenSpain/LAU2boundaries4spain>. La información ofrecida ha ido elaborándose durante bastante tiempo a partir de diversos trabajos (Goerlich, Mas, Azagra y Chorén 2006, 2007; Goerlich, Ruiz, Chorén y Albert 2015; Reig, Goerlich y Cantarino 2016).
Información más detallada del proceso seguido para la construcción de los diferentes ficheros de lindes puede encontrase en las dos *vignettes* del *package*, concretamente [aquí](https://ropenspain.github.io/LAU2boundaries4spain/articles/intro-to-lau2boundaries4spain.html) y [aquí](https://ropenspain.github.io/LAU2boundaries4spain/articles/detailed-info-lau2boundaries4spain.html)
Datos
---------------------
El paquete proporciona:
- un fichero con los lindes de las CC.AA (`CCAA`)
- un fichero con los lindes provinciales (`Provincias`)
- un fichero con los lindes municipales para cada año del periodo 2002-2021 (por ejemplo `municipios_2021`)
Los ficheros se ofrecen en formato `spatial-df` del paquete [`sf`](https://CRAN.R-project.org/package=sf)
Instalación
-----------
Para instalar el paquete:
```r
remotes::install_github("rOpenSpain/LAU2boundaries4spain")
```
Uso
---
Para cargar los datos en R:
```{r}
library(LAU2boundaries4spain)
CCAA <- CCAA #- geometrías de CC.AA
Provincias <- Provincias #- geometrías provinciales
municipios_2017 <- municipios_2017 #- geometrías municipales año 2017 (años posibles: 2002 - 2021)
```
## Algunos ejemplos de uso
- Un gráfico simple con el método por defecto del paquete `sf`:
```{r, fig.height= 2.8}
library(sf)
Provincias <- Provincias
plot(Provincias, max.plot = 1)
```
- Municipios de Teruel en 2017
```{r, message = FALSE}
library(LAU2boundaries4spain)
library(tidyverse)
library(sf)
library(patchwork)
CCAA_peninsular <- CCAA %>% filter(!NombreCCAA %in% c("Canarias", "Illes Balears", "Ciudades Autónomas de Ceuta y Melilla"))
Prov_aragon <- Provincias %>% filter(NombreCCAA == "Aragón")
muni_teruel_2017 <- municipios_2017 %>% filter(NombreProv == "Teruel")
Pancrudo <- muni_teruel_2017 %>% filter(NombreMuni == "Pancrudo")
p1 <- ggplot(data = CCAA_peninsular) + geom_sf(fill = "antiquewhite") +
geom_sf(data = Prov_aragon, color = "red", size = 0.15) +
geom_sf(data = muni_teruel_2017, color = "blue", size = 0.05) + theme(panel.background = element_rect(fill = "aliceblue")) +
labs(title = "CC.AA. españolas", subtitle = "(Aragón en gris y rojo. Municipios de Teruel en azul)")
p2 <- ggplot(data = Prov_aragon) + geom_sf() +
geom_sf(data = muni_teruel_2017, color = "black", size = 0.15, fill = "antiquewhite") +
geom_sf(data = Pancrudo, fill = "purple", size = 0.1) + theme_minimal() +
labs(title = "Municipios de Teruel ... existe!!!", subtitle = "(Pancrudo en violeta)") +
theme(axis.text = element_blank()) +
theme(panel.grid.major = element_blank()) +
theme(plot.title = element_text(size = 11))
p1 + p2
```
- Si queremos situar a Canarias cerca de España:
```{r}
library(LAU2boundaries4spain)
library(tidyverse)
library(sf)
library(patchwork)
canarias <- Provincias %>% filter(INECodProv %in% c(35,38))
peninsula <- Provincias %>% filter( !(INECodProv %in% c(35, 38)) )
my_shift <- st_bbox(peninsula)[c(1,2)]- (st_bbox(canarias)[c(1,2)]) + c(-2.4, -1.1)
canarias$geometry <- canarias$geometry + my_shift
st_crs(canarias) <- st_crs(peninsula)
peninsula_y_canarias <- rbind(peninsula, canarias)
p1 <- ggplot() + geom_sf(data = Provincias)
p2 <- ggplot() + geom_sf(data = peninsula) + geom_sf(data = canarias, fill = "purple")
p1 + p2
```