#CIENCIA DE DATOS II

CIENCIA DE DATOS PARA CIUDADES

Ejercicio 1

*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

  • Cargo librerias
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

  • Un gráfico (barras, puntos, o el que prefieran) para mostrar los resultados de cantidad por barrio
  • Un mapa con los límites de los barrios, cuyo color de relleno indique la cantidad encontrada en cada uno*

** 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")