#CIENCIA DE DATOS II
*1. Deberán elegir una ciudad en cualquier parte del mundo que les interese (ya que seguirán trabajando con ella) y que disponga de un portal de datos abiertos que ofrece un shapefile con sus barrios.
Ciudad elegida: CABA
library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.0 ✓ purrr 0.3.4
## ✓ tibble 3.0.1 ✓ dplyr 0.8.5
## ✓ tidyr 1.0.2 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ──────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(sf)
## Linking to GEOS 3.5.1, GDAL 2.2.2, PROJ 4.9.2
Cargo dataset barrios porteños
barrios <- st_read('http://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson')
## Reading layer `barrios_badata' from data source `http://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson' using driver `GeoJSON'
## Simple feature collection with 48 features and 4 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -58.53152 ymin: -34.70529 xmax: -58.33515 ymax: -34.52649
## CRS: 4326
names(barrios)
## [1] "barrio" "comuna" "perimetro" "area" "geometry"
2. Del mismo portal de datos, o de otra fuente si la tienen, elegirán un dataset con registros geo-referenciados. Por ejemplo, las escuelas de la ciudad (o las comisarías, o las propiedades en alquiler, o…) con sus coordenadas. Seleccionamos centros de vacunacion para adultos mayores.
Cargo dataset de vacunatorios para adultos
vacunatorios_adultos <-st_read('http://cdn.buenosaires.gob.ar/datosabiertos/datasets/vacunatorios-adultos-mayores/vacunatorios-adultos-mayores.geojson')
## Reading layer `vacunacion' from data source `http://cdn.buenosaires.gob.ar/datosabiertos/datasets/vacunatorios-adultos-mayores/vacunatorios-adultos-mayores.geojson' using driver `GeoJSON'
## Simple feature collection with 80 features and 6 fields
## geometry type: POINT
## dimension: XY
## bbox: xmin: -58.5253 ymin: -34.68989 xmax: -58.37062 ymax: -34.54537
## CRS: 4326
names(vacunatorios_adultos)
## [1] "nombre" "barrio" "comuna" "tipo" "domicilio" "aph"
## [7] "geometry"
3. Realizando un join espacial, asignar a cada registro geo-referenciado la comuna que le corresponde. Combinamos datasets con información espacial de vacunatorios para adultos mayores y comunas.
ggplot() +
geom_sf(data = barrios) +
geom_sf(data = vacunatorios_adultos, color = "red", alpha = .4)
vacunatorios_barrios <- st_join(barrios, vacunatorios_adultos)
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
head(vacunatorios_barrios)
## Simple feature collection with 6 features and 10 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -58.47883 ymin: -34.60762 xmax: -58.42337 ymax: -34.57829
## CRS: 4326
## barrio.x comuna.x perimetro area nombre
## 1 CHACARITA 15 7724.853 3115707 Carlos Gardel
## 1.1 CHACARITA 15 7724.853 3115707 Baldomero Fernández Moreno
## 2 PATERNAL 15 7087.513 2229829 Santa Inés Virgen y Mártir
## 3 VILLA CRESPO 15 8131.857 3615978 Centro de dia 15
## 3.1 VILLA CRESPO 15 8131.857 3615978 Esc. de Educación Media N° 03/07°
## 3.2 VILLA CRESPO 15 8131.857 3615978 Casa de la Lectura
## barrio.y comuna.y tipo domicilio
## 1 CHACARITA 15 Espacio cultural Olleros 3640
## 1.1 CHACARITA 15 Espacio cultural Concepción Arenal 4206
## 2 PATERNAL 15 Iglesia Ávalos 250
## 3 VILLA CRESPO 15 Centro de día Jufre 350
## 3.1 VILLA CRESPO 15 Escuela Padilla 1051
## 3.2 VILLA CRESPO 15 Espacio cultural Lavalleja 924
## aph geometry
## 1 HTAL. DR. E. TORNÚ POLYGON ((-58.45282 -34.595...
## 1.1 HTAL. DR. E. TORNÚ POLYGON ((-58.45282 -34.595...
## 2 HTAL. DR. E. TORNÚ POLYGON ((-58.46558 -34.596...
## 3 HTAL. DR. C.G. DURAND POLYGON ((-58.42375 -34.597...
## 3.1 HTAL. DR. C.G. DURAND POLYGON ((-58.42375 -34.597...
## 3.2 HTAL. DR. C.G. DURAND POLYGON ((-58.42375 -34.597...
Creamos un nuevo dataset con las variables que nos interesa analizar, nombrándola vacunatorios_barrios
cantidad_vacunatorios <- vacunatorios_barrios %>%
group_by(barrio.x) %>%
summarise(cantidad = n())
head(cantidad_vacunatorios)
## Simple feature collection with 6 features and 2 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -58.50354 ymin: -34.66226 xmax: -58.33515 ymax: -34.53168
## CRS: 4326
## # A tibble: 6 x 3
## barrio.x cantidad geometry
## <fct> <int> <POLYGON [°]>
## 1 AGRONOMIA 1 ((-58.47712 -34.59511, -58.47788 -34.59709, -58.47835 -34.…
## 2 ALMAGRO 2 ((-58.41287 -34.61412, -58.41282 -34.61544, -58.41275 -34.…
## 3 BALVANERA 2 ((-58.41192 -34.598, -58.41029 -34.59809, -58.40943 -34.59…
## 4 BARRACAS 1 ((-58.37034 -34.63293, -58.37028 -34.63339, -58.37025 -34.…
## 5 BELGRANO 4 ((-58.45057 -34.53561, -58.45066 -34.53564, -58.45075 -34.…
## 6 BOCA 1 ((-58.35429 -34.62977, -58.35427 -34.62981, -58.35421 -34.…
4. Utilizando ggplot() realizar
** Ambos dataset presentan las variables de comunas y barrios Realizamos un join espacial de las variables de vacunatorios adultos y geriatricos
Realizamos grafico donde se ven los vacunatorios por comuna
ggplot() +
geom_sf(data = barrios) +
geom_sf(data = vacunatorios_adultos, aes(color = barrio))
Creamos gráfico de barras mostrando cantidad de vacunatorios para adultosmayores por barrio
ggplot(cantidad_vacunatorios) +
geom_bar(aes(x = barrio.x, weight = cantidad, color = cantidad, fill = barrio.x)) +
coord_flip() +
labs(title = "Centros de vacunacion de adultos mayores por comuna",
subtitle = "Ciudad Autónoma de Buenos Aires",
caption = "Fuente: portal de datos abiertos de la Ciudad - http://data.buenosaires.gob.ar",
x = "barrio",
y = "cantidad",
fill = "barrio")
Procederemos ahora a realizar un mapa con los límites de los barrios, cuyo color de relleno indique la cantidad de centros vacunatorios para adultos mayores encontrada en cada barrio.
cantidad_vacunatorios <- vacunatorios_barrios %>%
group_by(barrio.x) %>%
summarise(cantidad = n())
head(cantidad_vacunatorios)
## Simple feature collection with 6 features and 2 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -58.50354 ymin: -34.66226 xmax: -58.33515 ymax: -34.53168
## CRS: 4326
## # A tibble: 6 x 3
## barrio.x cantidad geometry
## <fct> <int> <POLYGON [°]>
## 1 AGRONOMIA 1 ((-58.47712 -34.59511, -58.47788 -34.59709, -58.47835 -34.…
## 2 ALMAGRO 2 ((-58.41287 -34.61412, -58.41282 -34.61544, -58.41275 -34.…
## 3 BALVANERA 2 ((-58.41192 -34.598, -58.41029 -34.59809, -58.40943 -34.59…
## 4 BARRACAS 1 ((-58.37034 -34.63293, -58.37028 -34.63339, -58.37025 -34.…
## 5 BELGRANO 4 ((-58.45057 -34.53561, -58.45066 -34.53564, -58.45075 -34.…
## 6 BOCA 1 ((-58.35429 -34.62977, -58.35427 -34.62981, -58.35421 -34.…
ggplot() +
geom_sf(data = cantidad_vacunatorios, aes(fill=cantidad)) +
labs(title = "Vacunatorios para adultos",
subtitle = "Ciudad Autonoma de Buenos Aires",
fill = "Cantidad",
caption= "Fuente: https://data.buenosaires.gob.ar/",
y="latitud",
x="longitud") +
scale_fill_gradient(low="pink", high="red")