Cargamos las librerías que vamos a utilizar
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.4 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(sf)
## Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1
Cargamos el dataset espacial de comunas de la ciudad de Montevideo
mvd_comunales <- st_read("sig_comunales.shp", stringsAsFactors=TRUE)
## Reading layer `sig_comunales' from data source
## `C:\Users\Daniel\Desktop\Respaldo Daniel\Desktop\Daniel\_Diplomatura PU\Ciencia de Datos para Ciudades\CDC-DIPLOMATURA\sig_comunales.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 18 features and 2 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 551994.3 ymin: 6133494 xmax: 589199.4 ymax: 6159799
## Projected CRS: WGS 84 / UTM zone 21S
Observamos la información
summary(mvd_comunales)
## GID ZONA_LEGAL geometry
## Min. :8647694 CCZ01 : 1 POLYGON :18
## 1st Qu.:8647698 CCZ02 : 1 epsg:32721 : 0
## Median :8647702 CCZ03 : 1 +proj=utm ...: 0
## Mean :8647702 CCZ04 : 1
## 3rd Qu.:8647707 CCZ05 : 1
## Max. :8647711 CCZ06 : 1
## (Other):12
Visualizamos rápidamente en un mapa los datos del shape
ggplot(mvd_comunales)+
geom_sf()
Le damos un poco de expresión a la cartografía para representar sobre ella la información de espacios públicos de la ciudad
ggplot(mvd_comunales)+
geom_sf(fill="gray50", color="white")+
labs(title="Ciudad de Montevideo")+
theme_light()
Cargamos el dataset de espacios públicos de Montevideo, en este caso la información también es del tipo espacial
mvd_esp_publicos <- st_read("v_sig_espacios_publicos.shp", stringsAsFactors=TRUE)
## Reading layer `v_sig_espacios_publicos' from data source
## `C:\Users\Daniel\Desktop\Respaldo Daniel\Desktop\Daniel\_Diplomatura PU\Ciencia de Datos para Ciudades\CDC-DIPLOMATURA\v_sig_espacios_publicos.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 2607 features and 9 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 551994.3 ymin: 6133525 xmax: 588550.1 ymax: 6156784
## Projected CRS: WGS 84 / UTM zone 21S
Observamos la información obtenida
summary(mvd_esp_publicos)
## GID COD_NOM_ES NOMBRE_ESP
## Min. : 3196193 Min. :2761 DR JULIO CESAR GRAUERT : 8
## 1st Qu.: 3197312 1st Qu.:2884 GENERAL RONDEAU : 4
## Median : 3198221 Median :3079 GONZALO RAMIREZ : 4
## Mean :18060220 Mean :3571 DE CAGANCHA : 3
## 3rd Qu.:37772688 3rd Qu.:4292 GRAL. FRUCTUOSO RIVERA (GRAL): 3
## Max. :57888639 Max. :6101 (Other) : 465
## NA's :2120 NA's :2120
## NRO_ESPACI NOM_TIPO_E COD_NOM_PA
## Min. : 1.0 PLAZA : 170 Min. : 4.00
## 1st Qu.: 979.5 ESPACIO LIBRE: 150 1st Qu.: 18.00
## Median :1708.0 PLAZUELA : 95 Median : 24.00
## Mean :1890.2 PLAZOLETA : 30 Mean : 54.03
## 3rd Qu.:2652.5 PARQUE : 19 3rd Qu.: 32.00
## Max. :5318.0 (Other) : 23 Max. :206.00
## NA's :2120 NA's :2533
## NOM_PARQUE TIPO_ESPAC DESC_TIPO_
## PRADO : 14 Min. :1.000 Area parquizada: 109
## JOSE BATLLE Y ORDOÃ<U+0091>EZ: 11 1st Qu.:3.000 Cantero :1133
## CARLOS VAZ FERREIRA : 9 Median :3.000 Espacio libre : 310
## JOSE ENRIQUE RODO : 8 Mean :3.225 Plaza/Plazoleta: 435
## DR JULIO CESAR GRAUERT : 7 3rd Qu.:4.000 Separador vial : 620
## (Other) : 25 Max. :5.000
## NA's :2533
## geometry
## POLYGON :2607
## epsg:32721 : 0
## +proj=utm ...: 0
##
##
##
##
Vemos que las categorías NOM_TIPO_E y DESC_TIPO_ nos aportan información sobre la tipología de espacio público que representa cada polígono del shape.
Vamos a representar ambos dataset en un mapa compuesto
ggplot(mvd_comunales)+
geom_sf(fill="gray70", color="white")+
theme_light()+
geom_sf(data=mvd_esp_publicos, fill= "darkgreen", color = "NA", alpha=0.5)+
labs(title="Ciudad de Montevideo")
Al dataset de espacios públicos, vamos a realizarle un join espacial con la información de zona comunal para cada elemento
mvd_esp_pub_geo <- st_join(mvd_esp_publicos, mvd_comunales)
summary(mvd_esp_pub_geo)
## GID.x COD_NOM_ES NOMBRE_ESP
## Min. : 3196193 Min. :2761 DR JULIO CESAR GRAUERT : 8
## 1st Qu.: 3197314 1st Qu.:2883 GENERAL RONDEAU : 4
## Median : 3198189 Median :3078 GONZALO RAMIREZ : 4
## Mean :17642263 Mean :3566 DE CAGANCHA : 3
## 3rd Qu.:37772660 3rd Qu.:4266 GRAL. FRUCTUOSO RIVERA (GRAL): 3
## Max. :57888639 Max. :6101 (Other) : 474
## NA's :2319 NA's :2319
## NRO_ESPACI NOM_TIPO_E COD_NOM_PA
## Min. : 1.0 PLAZA : 174 Min. : 4.00
## 1st Qu.: 982.5 ESPACIO LIBRE: 152 1st Qu.: 18.00
## Median :1735.0 PLAZUELA : 97 Median : 24.00
## Mean :1878.7 PLAZOLETA : 30 Mean : 54.03
## 3rd Qu.:2601.5 PARQUE : 19 3rd Qu.: 32.00
## Max. :5318.0 (Other) : 24 Max. :206.00
## NA's :2319 NA's :2741
## NOM_PARQUE TIPO_ESPAC DESC_TIPO_
## PRADO : 14 Min. :1.000 Area parquizada: 114
## JOSE BATLLE Y ORDOÃ<U+0091>EZ: 11 1st Qu.:3.000 Cantero :1289
## CARLOS VAZ FERREIRA : 9 Median :3.000 Espacio libre : 315
## JOSE ENRIQUE RODO : 8 Mean :3.218 Plaza/Plazoleta: 443
## DR JULIO CESAR GRAUERT : 7 3rd Qu.:4.000 Separador vial : 654
## (Other) : 25 Max. :5.000
## NA's :2741
## GID.y ZONA_LEGAL geometry
## Min. :8647694 CCZ05 : 295 POLYGON :2815
## 1st Qu.:8647699 CCZ09 : 252 epsg:32721 : 0
## Median :8647702 CCZ11 : 248 +proj=utm ...: 0
## Mean :8647703 CCZ02 : 231
## 3rd Qu.:8647707 CCZ08 : 221
## Max. :8647711 (Other):1567
## NA's :1 NA's : 1
Vemos que en mvd_esp_pub_geo, al shp de espacios públicos se le agregan dos columnas de información; una de gid y otra denominada ZONA_LEGAL que indica los valores de zona comunal para cada elemento del dataset resultado.
Vamos a representar en un mapa por color el dato de Zona Comunal para espacio público
ggplot()+
geom_sf(data=mvd_comunales)+
geom_sf(data=mvd_esp_pub_geo, aes(color=ZONA_LEGAL), alpha=0.75, show.legend = FALSE)
Identificamos rapidamente por color los espacios publicos abiertos de acuerdo a la Zona Coumnal correspondiente.
Vamos a eliminar los registros nulos del dataset que generamos
mvd_esp_pub_geo <- mvd_esp_pub_geo %>%
st_set_geometry(NULL)
Realizamos una gráfica de barras para obtener un conteo de la cantidad de espacios públicos por Zona Comunal
ggplot(mvd_esp_pub_geo)+
geom_bar(aes(x=ZONA_LEGAL))
No se expresan claramente los resultados. Deberíamos probar girando los ejes.
Vamos a generar un nuevo dataset para obtener la cantidad de registros (espacios públicos) por Comuna, cualquiera sea el tipo de espacio del que se trate
mvd_esp_pub_geo_sum <- mvd_esp_pub_geo %>%
group_by(ZONA_LEGAL) %>%
summarise(cantidad=n())
Realizamos una nueva gráfica clasificando las Zonas comunales de acuerdo a la cantidad de espacios públicos que contienen.
Agregamos etiquetas e invertimos la información de los ejes de coordenadas
ggplot(mvd_esp_pub_geo_sum)+
geom_bar(aes(x=reorder(ZONA_LEGAL, cantidad), weight=cantidad, fill=ZONA_LEGAL))+
coord_flip()+
labs(title="Espacios públicos por Zona Comunal",
subtitle="Censo 2011 - INE",
x="Zona Comunal",
y="Cantidad",
fill="Zona Comunal")
Al dataset de Zonas Comunales le realizamos un join espacial para incorporarle el dato obtenido de cantidad de espacios públicos
mvd_comunales <- left_join(mvd_comunales, mvd_esp_pub_geo_sum, by="ZONA_LEGAL")
Realizamos un mapa coroplético con la cantidad de espacios públicos por Zona
ggplot()+
geom_sf(data=mvd_comunales, aes(fill=cantidad))
Vamos a incorporar una columna de cálculo de superficies de las geometrías para obtener información de cantidad por área
mvd_comunales <- mvd_comunales %>%
mutate(superficie=st_area(mvd_comunales))
Expresamos el resultado en km2
mvd_comunales <- mvd_comunales %>%
mutate(superficie_km2=round(as.numeric(superficie)/1000000, 2))
ggplot()+
geom_sf(data=mvd_comunales, aes(fill=cantidad/superficie_km2))+
labs(title = "Espacios pùblicos por km2",
subtitle = "Zonas Comunales",
fill = "Cantidad/km2",
caption= "Fuente: SIG Intendecia de Montevideo") +
scale_fill_distiller(palette = "YlOrRd", direction = 1) +
theme_light()
Las asimetrias del tipo económico entre las Zonas Comunales también se verifican en cuanto a la disponibilidad de espacios públicos por km2, siendo las areas centrales y costeras de la ciudad las que cuentan con mayor cantidad de equipamientos pubilcos abiertos en relación a su superficie.