Mapa de Accesibilidad Electoral para la Ciudad Autónoma de Buenos Aires

I. Introducción: derechos de personas con discapacidad

En el presente trabajo se busca realizar un relevamiento sobre las condiciones de accesibilidad de centros electorales de la Ciudad Autónoma de Buenos Aires. El análisis presentado a continuación es el trabajo final de la materia Ciencia de Datos Geográfica, a cargo de Antonio Vázquez Brust, de la Especialización en Big Data e Inteligencia Territorial de FLACSO Argentina.

En el año 2006, las Naciones Unidas aprobó la Convención sobre los Derechos de Personas con Discapacidad, en la que se establece “la importancia que para las personas con discapacidad reviste su autonomía e independencia individual, incluida la libertad de tomar sus propias decisiones”. Asimismo, incluye medidas que deben tomar los Estados para garantizar estos principios, entre los cuales se encuentra la necesidad de “desarrollar, promulgar y supervisar la aplicación de normas mínimas y directrices sobre la accesibilidad de las instalaciones exteriores e interiores como escuelas, viviendas, instalaciones médicas y lugares de trabajo”. Esta convención fue aprobada por el Congreso Nacional de Argentina en el año 2008 mediante la Ley 26.378.

Bajo estas normativas, Se debe garantizar en la entrada de los establecimientos rampas o medios alternativos de elevación, para que las personas con discapacidad puedan acceder por sus propios medios. Vale la pena aclarar que más allá de las personas con discapacidad motriz permanente, las cuales suelen ser inscriptas en los organismos y relevadas en los censos, muchas personas pueden tener discapacidades temporales -por ejemplo como consecuencia de algún accidente-, por lo que la cantidad de personas que necesitan medios para acceder a los establecimientos suele ser mayor.

II. Mapas de accesibilidad

En los últimos años, se ha discutido las condiciones de accesibilidad a partir del relevamiento y desarrollo de mapas y datos geográficos. En esta nueva corriente, los mapas accesibles son fundamentales, ya que presentan particularidades que facilitan la lectura y el desplazamiento de personas con discapacidad.

La finalidad de este trabajo no es la elaboración de un “mapa accesible”, sino trabajar en una representación geográfica que sirva para realizar diagnósticos sobre la accesibilidad de establecimientos de votación y, de ese modo, trabajar con base en evidencia para garantizar elecciones más inclusivas.

En primer lugar, realizamos una serie de visualizaciones de las condiciones de acceso en la Ciudad. Para ello, graficamos las rampas y los ascensores. Luego, incluiremos los establecimientos, en los que identificaremos los que tienen medios de acceso para personas con discapacidad. Las bases de datos serán representadas geográficamente mediante el programa R.

Para realizar este trabajo, utilizaremos las siguientes bases de datos:

  1. Listado de establecimientos educativos de CABA y sus condiciones de accesibilidad: rampas, ascensores, etc.

  2. Base de datos con rampas y ascensores de las calles de la Ciudad de Buenos Aires. Esto podría servir para conocer las condiciones de accesibilidad.

Este trabajo intenta ser un pequeño aporte para fortalecer las elecciones inclusivas. Por otro lado, y debido a que en la Argentina suelen ser las escuelas los establecimientos utilizados para las elecciones, este estudio también puede contribuir a conocer condiciones de accesibilidad de los centros educativos ubicados en la Ciudad de Buenos Aires.

Para realizar nuestro trabajo vamos a utilizar los siguientes paquetes de R.

III. Una primera aproximación a condiciones generales de accesibilidad en CABA

III. 1. Rampas

A continuación cargo las bases de datos de las Rampas de la Ciudad de Buenos Aires.

RAMPAS_TOTAL <- read.csv("RAMPAS_TOTAL.csv")

RAMPAS_TOTAL <- RAMPAS_TOTAL %>% select(-X.1) #borramos la categoría X.1, ya que está de más

head(RAMPAS_TOTAL)
##           X         Y ALTURA         CALLE ANIO
## 1 -58.42684 -34.57772   4801 SANTA FE, AV. 2011
## 2 -58.43205 -34.58756   5198      HONDURAS 2011
## 3 -58.43215 -34.58757   1599       URIARTE 2011
## 4 -58.42845 -34.57723   4899 SANTA FE, AV. 2011
## 5 -58.43214 -34.58737   5201      HONDURAS 2011
## 6 -58.43202 -34.58737   1602       URIARTE 2011

III. 2. Mapas por comunas (circuitos electorales)

Además, incluimos las comunas, que son también los circuitos electorales, con el objetivo de conocer las condiciones de accesibilidad de una forma más específica.

En primer lugar, cargamos desde el sitio de BA DATA el archivo las comunas de la Ciudad.

GEO_CABA_COMUNA <- st_read ("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/comunas/CABA_comunas.geojson", quiet = TRUE)

summary(GEO_CABA_COMUNA)
##                                                                             BARRIOS 
##  AGRONOMIA - CHACARITA -  PARQUE CHAS -  PATERNAL - VILLA CRESPO - VILLA ORTUZAR:1  
##  ALMAGRO - BOEDO                                                                :1  
##  BALVANERA - SAN CRISTOBAL                                                      :1  
##  BARRACAS - BOCA - NUEVA POMPEYA - PARQUE PATRICIOS                             :1  
##  BELGRANO - COLEGIALES - NUÑEZ                                                  :1  
##  CABALLITO                                                                      :1  
##  (Other)                                                                        :9  
##    PERIMETRO          AREA             COMUNAS           ID      
##  Min.   :10486   Min.   : 6317265   Min.   : 1.0   Min.   : 1.0  
##  1st Qu.:17532   1st Qu.: 9636965   1st Qu.: 4.5   1st Qu.: 4.5  
##  Median :19988   Median :14322897   Median : 8.0   Median : 8.0  
##  Mean   :20587   Mean   :13604581   Mean   : 8.0   Mean   : 8.0  
##  3rd Qu.:21790   3rd Qu.:16175589   3rd Qu.:11.5   3rd Qu.:11.5  
##  Max.   :36102   Max.   :22216902   Max.   :15.0   Max.   :15.0  
##                                                                  
##             OBJETO            geometry 
##  LIMITE COMUNAL:15   MULTIPOLYGON :15  
##                      epsg:4326    : 0  
##                      +proj=long...: 0  
##                                        
##                                        
##                                        
## 

El AREA es muy grande, porque está expresada en MILÍMETROS. Vamos a pasarlo a METROS para tener valores más adecuados:

GEO_CABA_COMUNA$AREA <- round(GEO_CABA_COMUNA$AREA / 1000, digits=0)

En nuestro dataset de rampas (RAMPAS_TOTAL) tenemos solamente la calle y la altura, pero no las comuna. Para obtener este dato, tenemos que combinar nuestros puntos (rampas) con los polígonos de las comunas. Esto nos permitirá realizar un cálculo de la cantidad de rampas por comunas. Además, convertimos el X e Y a coordenadas mediante st_as_sf.

RAMPAS_TOTAL_SP <- RAMPAS_TOTAL %>% 
    filter(!is.na(X), !is.na(Y)) %>% 
    st_as_sf(coords = c("X", "Y"), crs = 4326)

RAMPAS_EN_COMUNAS <- st_join(RAMPAS_TOTAL_SP,GEO_CABA_COMUNA)
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
names(RAMPAS_EN_COMUNAS)
##  [1] "ALTURA"    "CALLE"     "ANIO"      "BARRIOS"   "PERIMETRO"
##  [6] "AREA"      "COMUNAS"   "ID"        "OBJETO"    "geometry"

III. 3. Gráficos de las rampas

Ahora, con la ubicación de las rampas en las comunas, vamos a calcular cuántas rampas hay en cada comuna.

CANT_RAMPAS_COMUNA <- RAMPAS_EN_COMUNAS %>% 
    group_by(COMUNAS, AREA) %>% 
    summarise(cantidad_rampas = n()) %>% 
    arrange(-cantidad_rampas)

CANT_RAMPAS_COMUNA
## Simple feature collection with 15 features and 3 fields
## geometry type:  MULTIPOINT
## dimension:      XY
## bbox:           xmin: -58.53106 ymin: -34.69721 xmax: -58.35406 ymax: -34.53517
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
## # A tibble: 15 x 4
## # Groups:   COMUNAS [15]
##    COMUNAS  AREA cantidad_rampas                                   geometry
##      <dbl> <dbl>           <int>                           <MULTIPOINT [°]>
##  1      11 14120            3182 (-58.52847 -34.61147, -58.52812 -34.61172~
##  2      10 12657            2625 (-58.53106 -34.61466, -58.53025 -34.61509~
##  3      15 14323            2390 (-58.50291 -34.59456, -58.50284 -34.59456~
##  4      12 15571            2246 (-58.51334 -34.58204, -58.51331 -34.58295~
##  5       9 16505            2068 (-58.52919 -34.63644, -58.52917 -34.63633~
##  6       7 12423            2066 (-58.4777 -34.62247, -58.47694 -34.62412,~
##  7       4 21685            1707 (-58.43468 -34.64621, -58.43419 -34.65299~
##  8      13 14713            1651 (-58.47521 -34.53929, -58.47473 -34.54001~
##  9       1 17795            1442 (-58.39207 -34.60559, -58.39206 -34.6057,~
## 10      14 15846            1421 (-58.44655 -34.56901, -58.44623 -34.56916~
## 11       3  6386            1088 (-58.41397 -34.6079, -58.41368 -34.60653,~
## 12       6  6851             975 (-58.46216 -34.60827, -58.46159 -34.60795~
## 13       5  6661             873 (-58.43225 -34.60388, -58.43224 -34.60222~
## 14       8 22217             822 (-58.49954 -34.67301, -58.4992 -34.67279,~
## 15       2  6317             327 (-58.41528 -34.59667, -58.41482 -34.59556~

Como puede apreciarse, las comunas con menos rampas son la 2, la 8, la 5, la 6 y la 7. Podemos graficar estos resultados:

CANT_RAMPAS_COMUNA %>% 
  ggplot(aes(x = COMUNAS, y=cantidad_rampas, label=cantidad_rampas))+
      geom_bar(stat = "identity") +
      scale_x_continuous(breaks=1:15)+
      geom_text(size = 3, colour= "white", position = position_stack(vjust = 0.9))+
      labs(title = "Cantidad de rampas por comuna",
           x= "Comunas",
           y= "Cantidad")

III. 4. Calculamos el área urbana

Ahora bien, hay un aspecto que debemos considerar. Para visualizar la cantidad de rampas de una forma más precisa, podríamos calcular la cantidad de rampas sobre el área de cada comuna, ya que sus tamaños son diferentes. Asimismo, debemos tener presente otra cuestión: tomar la totalidad de la superficie de la comuna para considerar cuántas rampas hay tal vez no sea lo más adecuado, ya que en algunas comunas -como la 8 o la 14- hay muchos espacios verdes. Por eso, decidimos graficar la cantidad de rampas en la superficie de las comunas MENOS la superficie de espacios verdes de cada comuna.

Por eso, primero calculamos la superficie de espacios verdes por comuna:

ESP_VERDES <- read_csv("espacio-verde-catastrales-historico.csv")
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   periodo = col_double(),
##   objectid = col_double(),
##   seccion = col_number(),
##   comuna = col_double(),
##   superficie = col_double(),
##   ley = col_double(),
##   fecha_ley = col_date(format = ""),
##   fecha_ord = col_date(format = ""),
##   fecha_dec = col_date(format = "")
## )
## See spec(...) for full column specifications.
## Warning: 9133 parsing failures.
##  row        col               expected actual                                      file
## 2611 superficie no trailing characters ,28332 'espacio-verde-catastrales-historico.csv'
## 2612 superficie no trailing characters ,4304  'espacio-verde-catastrales-historico.csv'
## 2613 superficie no trailing characters ,37421 'espacio-verde-catastrales-historico.csv'
## 2614 superficie no trailing characters ,52463 'espacio-verde-catastrales-historico.csv'
## 2615 superficie no trailing characters ,92772 'espacio-verde-catastrales-historico.csv'
## .... .......... ...................... ...... .........................................
## See problems(...) for more details.
ESP_VERDES <- ESP_VERDES %>% 
                  select(comuna,superficie) %>% 
                  drop_na() %>% 
                  group_by(comuna) %>%
                  summarise(Area_Verde = round(sum(superficie)))

#Convertimos el área en METROS
ESP_VERDES$Area_Verde <- round(ESP_VERDES$Area_Verde / 1000, digits=0)

head(ESP_VERDES)
## # A tibble: 6 x 2
##   comuna Area_Verde
##    <dbl>      <dbl>
## 1      1      11089
## 2      2       1977
## 3      3        311
## 4      4       3141
## 5      5        128
## 6      6       1048

Ahora, restamos el total de área menos el total de áreas verdes por cada comuna. Llamaremos a esta nueva superficie “AREA_URBANA”.

CANT_RAMPAS_AREA <- rename(ESP_VERDES, COMUNAS = comuna) %>% 
                        inner_join(CANT_RAMPAS_COMUNA, ESP_VERDES, by="COMUNAS") %>%
                        mutate(AREA_URBANA = AREA - Area_Verde) %>% 
                        arrange(-AREA_URBANA) 
                        
head(CANT_RAMPAS_AREA)
## # A tibble: 6 x 6
##   COMUNAS Area_Verde  AREA cantidad_rampas                  geometry
##     <dbl>      <dbl> <dbl>           <int>          <MULTIPOINT [°]>
## 1       4       3141 21685            1707 (-58.43468 -34.64621, -5~
## 2      15       1127 14323            2390 (-58.50291 -34.59456, -5~
## 3      11        956 14120            3182 (-58.52847 -34.61147, -5~
## 4       9       4016 16505            2068 (-58.52919 -34.63644, -5~
## 5      10       1111 12657            2625 (-58.53106 -34.61466, -5~
## 6       7       1725 12423            2066 (-58.4777 -34.62247, -58~
## # ... with 1 more variable: AREA_URBANA <dbl>

Ahora sí! Grafiquemos la cantidad de rampas sobre el total de área urbana por comuna.

CANT_RAMPAS_AREA %>% 
            select(COMUNAS, cantidad_rampas, AREA_URBANA, geometry) %>% 
            ggplot() +
                geom_sf(data = GEO_CABA_COMUNA) +
                geom_sf(data = CANT_RAMPAS_AREA, aes(geometry=geometry, colour = cantidad_rampas/AREA_URBANA), size =0.9)+
            labs(title = "Mapa de rampas en espacio urbano en cada comuna",
                 subtitle = "Más roja es la comuna, menor es la cantidad de rampas en su área urbana"
                 ) +
            scale_colour_gradient(low = "red4", high = "lightskyblue")

¿Cómo se lee el gráfico?

En primer lugar, los puntos representan las ubicaciones de las rampas. El color de cada comuna está definido por la división la cantidad de rampas que hay en el total de metros cuadrados urbanos de cada una. Por este motivo, cuanto más roja está la comuna, menor cantidad de rampas por metro cuadrado urbano tiene.

Se puede apreciar que las comunas 2 y 4 son las que menos rampas tiene por metro cuadrado urbano.

Podemos apreciar esto si sacamos el promedio total de metros cuadrado sin rampas:

CANT_RAMPAS_AREA %>% group_by(COMUNAS) %>% 
                              summarise(RAMPA_CUBRE_X_METROS = cantidad_rampas/AREA_URBANA) %>% 
                              summary(RAMPA_CUBRE_X_METROS)
##     COMUNAS     RAMPA_CUBRE_X_METROS
##  Min.   : 1.0   Min.   :0.07535     
##  1st Qu.: 4.5   1st Qu.:0.14851     
##  Median : 8.0   Median :0.17909     
##  Mean   : 8.0   Mean   :0.17595     
##  3rd Qu.:11.5   3rd Qu.:0.21974     
##  Max.   :15.0   Max.   :0.24808

El promedio total es de 0,175. Si lo graficamos, vemos qué comunas salen de dicho promedio. Por su parte, la mediana es 0,179, lo que significa que la mitad de las comunas está por debajo de ese valor (y que no hay mucha varianza entre los resultados, ya que media y mediana tinen valores similares).

CANT_RAMPAS_AREA %>% group_by(COMUNAS) %>% 
                      summarise(METROS_SIN_RAMPA = cantidad_rampas/AREA_URBANA) %>% 
                          ggplot(aes(x = COMUNAS, 
                                     y=METROS_SIN_RAMPA, 
                                     label=round(METROS_SIN_RAMPA,2)))+
                            geom_bar(stat = "identity") +
                            scale_x_continuous(breaks=1:15)+
                            geom_text(size = 3, colour= "white", 
                                      position = position_stack(vjust = 0.9))+
                      geom_hline(yintercept=0.175, linetype="dashed", color = "red")+
                      labs(title = "Rampas sobre metros cuadrados urbanos de cada comuna",
                           subtitle = "¿Cuántas rampas hay en cada metro cuadrado urbano?",
                                 x= "Comunas",
                                 y= "Rampas/Metros Cuadrados")

Como puede apreciarse, las comunas 2, 4, 8 y 5 son las que menos rampas tienen según la cantidad de metros cuadrados urbanos que poseen. Es el turno de analizar las escuelas -establecimientos de votación- para conocer sus condiciones de accesibilidad.

IV. Accesibilidad de escuelas en CABA

Con los mapas y gráficos precedenes hemos tenido una primera aproximación de las condiciones de accesibilidad de la CABA. Como hemos mencionado, ahora utilizaremos el listado de escuelas de la Ciudad para conocer los establecimientos accesibles.

Para tener el listado de escuelas, hemos solicitado la información a la Unidad de Evaluación Integral de la Calidad y la Equidad Educativa (UEICEE) de la Ciudad de Buenos Aires.1

Escuelas <- read.csv("accesibilidad_para_derechos_politicos.csv")

names(Escuelas)
##  [1] "CUI"                            "DIRECC"                        
##  [3] "Calle"                          "Numero"                        
##  [5] "Barrio"                         "Comuna"                        
##  [7] "CIUDAD"                         "Oferta.MEI"                    
##  [9] "Gestionado"                     "Nombre.Institucion"            
## [11] "total_ascensores"               "rampa_discapacitados"          
## [13] "montaescaleras"                 "cant_sanitarios_discapacitados"
## [15] "señalizacion_luminosa_sordos"   "señalizacion_luminosa_ciegos"  
## [17] "textura_pisos_ciegos"           "textura_paredes_ciegos"        
## [19] "fecha_descarga"                 "Calle.1"

Ahora bien, como podemos apreciar, las escuelas de este listado no poseen sus coordenadas. Esto es importante ya que deseamos poder ubicarlas en los mapas. Para realizar esto, utilizamos el paquete RUMBA, el cual contiene funciones de georeferenciamiento de la zona metropolitana de Buenos Aires.2

library(RUMBA)

Como no lee las “ü” o las “ñ”, primero cambiamos esas letras y luego utilizamos RUMBA para obtener las coordenadas de los establecimientos (este proceso lleva tiempo).

Escuelas$DIRECC <- gsub("Ñ", "N", Escuelas$DIRECC)
Escuelas$DIRECC <- gsub("Ü", "U", Escuelas$DIRECC)

Escuelas_GEOREF <- mutate_USIG_geocode(Escuelas, "DIRECC")

write.csv2(Escuelas_GEOREF, "Escuelas_GEOREF.csv")

La mayoría de establecimientos ya tiene sus respectivas coordenadas. Los que no la tienen, son en su mayoría escuelas sin número de dirección (aparece como S/N). Como son pocas, para este trabajo vamos a borrar las que no tienen coordenadas.

Escuelas_GEOREF_S_NA <- drop_na(Escuelas_GEOREF)

head(Escuelas_GEOREF_S_NA)
##      CUI                   DIRECC                       Calle Numero
## 1 200001      AYACUCHO 1680, CABA                    AYACUCHO   1680
## 2 200002        QUINTANA 31, CABA QUINTANA, MANUEL, PRES. AV.     31
## 3 200003     SANTA FE  1510, CABA                SANTA FE AV.   1510
## 4 200004    RECONQUISTA 461, CABA                 RECONQUISTA    461
## 5 200005 RODRIGUEZ PENA 747, CABA              RODRIGUEZ PEÑA    747
## 6 200006   BASAVILBASO 1295, CABA                 BASAVILBASO   1295
##        Barrio Comuna CIUDAD Oferta.MEI Gestionado Nombre.Institucion
## 1    RECOLETA      2   CABA         si         si                MEI
## 2      RETIRO      1   CABA         si         si                MEI
## 3    RECOLETA      2   CABA         si         si                MEI
## 4 SAN NICOLAS      1   CABA         si         si                MEI
## 5 SAN NICOLAS      1   CABA         si         si                MEI
## 6      RETIRO      1   CABA         si         si                MEI
##   total_ascensores rampa_discapacitados montaescaleras
## 1                1                   Si             No
## 2                0                   Si             No
## 3                0                   No             Si
## 4                1                   No             No
## 5                0                   Si             Si
## 6                0                   No             No
##   cant_sanitarios_discapacitados señalizacion_luminosa_sordos
## 1                              3                           No
## 2                              1                           No
## 3                              1                           Si
## 4                              2                           No
## 5                              1                           No
## 6                              1                           No
##   señalizacion_luminosa_ciegos textura_pisos_ciegos textura_paredes_ciegos
## 1                           No                   No                     No
## 2                           No                   No                     No
## 3                           No                   No                     No
## 4                           No                   No                     No
## 5                           No                   No                     No
## 6                           No                   No                     No
##   fecha_descarga        Calle.1               address_normalised       lon
## 1       16-07-19       AYACUCHO              AYACUCHO 1680, CABA -58.39219
## 2       16-07-19       QUINTANA QUINTANA, MANUEL, PRES. 31, CABA -58.38489
## 3       16-07-19      SANTA FE           SANTA FE AV. 1510, CABA -58.38863
## 4       16-07-19    RECONQUISTA            RECONQUISTA 461, CABA -58.37247
## 5       16-07-19 RODRIGUEZ PEÑA         RODRIGUEZ PEÑA 747, CABA -58.39142
## 6       16-07-19    BASAVILBASO           BASAVILBASO 1295, CABA -58.37716
##         lat
## 1 -34.59024
## 2 -34.59233
## 3 -34.59585
## 4 -34.60244
## 5 -34.60037
## 6 -34.59313

IV. 1. Condición de accesibilidad de las escuelas

Vamos a elegir las variables que necesitamos para este trabajo. Solamente vamos a considerar las rampas, ascensores y montaescaleras.

#En la variable "ascensores", se indica cuántos hay. Lo que queremos hacer es saber si hay o no, por lo que cambiamos las cantidades por una respuesta afirmativa y una negativa para indicar si tiene o no. 

Escuelas_GEOREF_ACC <- Escuelas_GEOREF_S_NA %>%                                                                           mutate(ascensores = if_else(as.numeric(total_ascensores) >=1, "Si", "No"))

Escuelas_GEOREF_ACC <- Escuelas_GEOREF_ACC %>% 
                                select(CUI,DIRECC,Calle,Numero,Barrio, Comuna, ascensores, rampa_discapacitados,montaescaleras, lon, lat)

Escuelas_GEOREF_ACC <- Escuelas_GEOREF_ACC %>% mutate(Sin_medio = 
                                                        if_else(
                                                          ascensores=="No"&
                                                            rampa_discapacitados =="No"&
                                                            montaescaleras=="No",
                                                          "NADA", "Al menos una"
                                                        ))

Escuelas_GEOREF_ACC %>% 
  group_by(Comuna, Sin_medio) %>% 
  count(Sin_medio)
## # A tibble: 30 x 3
## # Groups:   Comuna, Sin_medio [30]
##    Comuna Sin_medio        n
##     <int> <chr>        <int>
##  1      1 Al menos una    51
##  2      1 NADA            20
##  3      2 Al menos una    18
##  4      2 NADA             5
##  5      3 Al menos una    46
##  6      3 NADA            17
##  7      4 Al menos una    75
##  8      4 NADA            27
##  9      5 Al menos una    30
## 10      5 NADA            17
## # ... with 20 more rows
ggplot() +
    geom_sf(data = GEO_CABA_COMUNA)+
    geom_point(data = Escuelas_GEOREF_ACC, aes(x=lon, y=lat, color = Sin_medio))+
    scale_colour_manual(values = c("blue", "red")) +
    labs(title = "Accesibilidad en las escuelas",
         subtitle = "Establecimientos con algún medio para permitir la accesibilidad 
-rampa, ascensor, montaescalera- y establecimientos 
sin ningún tipo medio para facilitar el ingreso")

IV. 2. Combinación de escuelas y rampas en las comunas

Si tomamos las escuelas sin rampas, ascensores ni montaescaleras y agregamos el gráfico de la cantidad de rampas por metros cuadrados urbanos por comuna, obtenemos el siguiente resultado:

ggplot() +
    geom_sf(data = GEO_CABA_COMUNA) +
    geom_sf(data = CANT_RAMPAS_AREA, 
            aes(geometry=geometry, colour = cantidad_rampas/AREA_URBANA), size =0.9)+
            scale_colour_gradient(low = "red2", high = "white")+
    geom_point(data = filter(Escuelas_GEOREF_ACC, Sin_medio == "NADA"), aes(x = lon, y = lat))+
    labs(title = "Escuelas sin medios de accesibilidad -puntos-",
         subtitle = "Sobre las comunas con menos rampas por metro cuadrado urbano")

Para concluir estas visualizaciones, presentamos un gráfico de puntos que contempla tanto la cobertua de rampas por metro cuadrado como la cantidad de escuelas sin rampas, ascensores ni montaescaleras.

MAPA_PUNTOS_ACCESIBILIDAD <- Escuelas_GEOREF_ACC %>% 
                      rename(COMUNAS = Comuna) %>% 
                      select(COMUNAS, Sin_medio) %>% 
                      filter(Sin_medio == "NADA") %>% 
                      group_by(COMUNAS) %>% 
                      count(Sin_medio) %>% 
                      rename(n_ESCUELAS_NADA = n) %>% 
                      left_join(CANT_RAMPAS_AREA, by = "COMUNAS") %>% 
                      select(COMUNAS,n_ESCUELAS_NADA,cantidad_rampas,AREA_URBANA) %>% 
                      group_by(COMUNAS, n_ESCUELAS_NADA) %>% 
                      summarise(RAMPAS_POR_M2 = round(cantidad_rampas/AREA_URBANA, digits = 2))

ggplot(MAPA_PUNTOS_ACCESIBILIDAD, aes(COMUNAS, RAMPAS_POR_M2))+
    geom_point(aes(size= n_ESCUELAS_NADA, color=n_ESCUELAS_NADA))+
    geom_text(aes(label = n_ESCUELAS_NADA, size = 10, vjust = -0.9))+
    scale_colour_gradient(low = "white", high = "red4")+
    scale_x_continuous(breaks=1:15)+
    theme(legend.position = "none")+
    labs(title = "Escuelas con posibles problemas de accesibilidad",
         subtitle = "Cantidad de escuelas sin rampas ni ascensores en cada comuna (punto) 
a partir cantidad de rampas sobre metros cuadrados urbanos (eje y)",
        x = "Comunas",
        y = "Cantidad de rampas / Metros cuadrados urbanos"
        )

Estos mapas nos han dado información de las condiciones de accesibilidad electoral de la Ciudad de Buenos Aires. Hemos visto realizado visualizaciones de la cantidad de rampas en las comunas de la ciudad y las escuelas sin rampas, ascensores ni montaescaleras. Este puede ser un primer paso para conocer los problemas de accesibilidad: el último gráfico, por ejemplo, muestra que hay comunas con pocas rampas por metro cuadrado urbano, pero que tienen pocas escuelas sin rampas, ascensores o montaescaleras -por ejemplo la Comuna 2-; por otro lado, hay comunas con bastantes rampas por metro cuadrado urbano, pero tienen muchas escuelas sin rampas, ascensores o montaescaleras -por ejemplo la Comuna 1, Comuna 9, Comuna 15. Finalmente, existen comunas con ambos problemas: la 4, la 5 y la 8.

Estos resultados pueden ser útiles para trabajar en mayores condiciones de accesibilidad de la Ciudad. En este caso, hemos tratado de elaborar un tipo de mapa de accesibilidad para fortalecer la condciones inclusiva de los derechos políticos en la Ciudad.

V. Mapa interactivo de las escuelas y sus condiciones de accesibilidad

Finalmente, vamos a proponer un mapa interactivo de las condiciones de accesibilidad en las escuelas. Para eto, tenemos que utilizar el paquete leaflet.

library(leaflet)

¿Qué vamos a hacer?

Primero, vamos a armar un listado con las características de cada lugar (si tiene rampas, ascensores, nada, etc.). Esto nos va a servir para clasificar las escuelas con una leyenda y un color.

Escuelas_GEOREF_ACC <- Escuelas_GEOREF_ACC %>% 
                        mutate(Condicion=
                                 case_when(
                                   ascensores=="Si"&
                                     rampa_discapacitados=="Si"&
                                     montaescaleras=="Si"  ~"Rampa, Ascensor, Montaescaleras",
                                   ascensores=="No"&
                                     rampa_discapacitados=="Si"&
                                     montaescaleras=="Si"  ~"Rampa, Montaescaleras",
                                   ascensores=="Si"&
                                     rampa_discapacitados=="Si"&
                                     montaescaleras=="No"  ~"Rampa, Ascensor",
                                   ascensores=="Si"&
                                     rampa_discapacitados=="No"&
                                     montaescaleras=="Si"  ~"Ascensor, Montaescaleras",
                                   ascensores=="No"&
                                     rampa_discapacitados=="Si"&
                                     montaescaleras=="No"  ~"Rampas",
                                   ascensores=="Si"&
                                     rampa_discapacitados=="No"&
                                     montaescaleras=="No"  ~"Ascensor",
                                   ascensores=="No"&
                                     rampa_discapacitados=="No"&
                                     montaescaleras=="Si"  ~"Montaescaleras",
                                   ascensores=="No"&
                                     rampa_discapacitados=="No"&
                                     montaescaleras=="No"  ~"NO TIENE MEDIOS DE ACCESIBILIDAD"
                                 ))

Ahora bien, para darle color según cada clasificación, vamos a utilizar una función. En este caso, para no abrumar con tanta información, vamos a darle tres colores a nuestros marcadores:

Verde = los establecimientos que tienen rampas solamente Azul = los que tienen distintos medios de acceso *Rojo = las escuelas que no tienen rampas ni ascensores ni montaescaleras.

Una vez asignados los colores, ubicamos las escuelas en nuestro mapa interactivo. Hacemos un zoom sobre la comuna 4, ya que es la que presenta más escuelas sin medios de accesibilidad.

Color <- function(Escuelas_GEOREF_ACC) {
  lapply(Escuelas_GEOREF_ACC$Condicion, function(Condicion) {
  if(Condicion == "NO TIENE MEDIOS DE ACCESIBILIDAD") {
    "red"} 
  else if(Condicion == "Rampas") {
    "green"} 
  else {
    "blue"} 
    })
}

marcadores <- awesomeIcons(
  iconColor = 'black',
  library = 'ion',
  markerColor = Color(Escuelas_GEOREF_ACC)
)

leaflet(Escuelas_GEOREF_ACC) %>% 
          addTiles() %>% 
          setView(lng = -58.405000,lat = -34.644379, zoom = 14) %>% 
          addAwesomeMarkers(icon = marcadores, label = ~Condicion) 
## Assuming "lon" and "lat" are longitude and latitude, respectively

¡Bastante informativo el mapa! Pero también tenemos otros datos: sabemos la cantidad de metros cuadrados urbanos por comuna que está cubierto por una rampa (AREA_URBANA / cantidad_rampas). Vamos a graficar estos polígonos.

Primero hacemos un join para unir las bases que necesitamos y luego asignamos el color que vamos a usar ( col ). Para esto último, usamos la paleta magma de VIRIDIS.

Una vez hecho esto, visualizamos las comunas mediante leaflet y agregamos una tabla de referencia.

LEAFLET_POL <- left_join(GEO_CABA_COMUNA,MAPA_PUNTOS_ACCESIBILIDAD, by = "COMUNAS")
col <- colorBin("magma", domain = LEAFLET_POL$RAMPAS_POR_M2, bins = 10)

leaflet(LEAFLET_POL) %>%
        addPolygons(
              color = "black", weight = 1, smoothFactor = 0.5,
              opacity = 1.0, fillOpacity = 0.5,
              fillColor = ~col(LEAFLET_POL$RAMPAS_POR_M2),
              highlightOptions = highlightOptions(color = "white", bringToFront = TRUE)
                )%>% 
        addLegend(pal = col, values = ~LEAFLET_POL$RAMPAS_EN_X_M2, opacity = 0.5, title = "Rampa por metro cuadrado",
                position = "topright")

Podemos afirmarlo una vez más: las comunas 2 y 4 son las que tienen menos rampas en su área urbana, seguidas por las 8 y la 6.

V. 1.El último mapa: rampas y escuelas sin medios de accesibilidad

Con estos mapas elaborados en leaflet es más sencillo presentar las escuelas y sus condiciones de accesibilidad para cada comuna. Es necesario seguir trabajando en este mapa, a partir de algunas cuestiones que veremos a continuación.

LEAF_SIN_MEDIOS <- filter(Escuelas_GEOREF_ACC, Condicion == "NO TIENE MEDIOS DE ACCESIBILIDAD") 

leaflet(LEAFLET_POL) %>%
        addPolygons(
              color = "black", weight = 1, smoothFactor = 0.5,
              opacity = 1.0, fillOpacity = 0.5,
              fillColor = ~col(LEAFLET_POL$RAMPAS_POR_M2),
              highlightOptions = highlightOptions(color = "white", bringToFront = TRUE)
                )%>% 
        addLegend(pal = col, values = ~LEAFLET_POL$RAMPAS_POR_M2, opacity = 0.5, title = "Una rampa cada X metros cuadrados",
                position = "topright") %>% 
          addAwesomeMarkers(data = LEAF_SIN_MEDIOS, label = ~Condicion) 
## Assuming "lon" and "lat" are longitude and latitude, respectively

Con este último mapa, podemos ver las comunas con menos rampas en su área urbana y las condiciones de las escuelas que se encuentran en ellas (en colores y con un popup si ponemos el cursos sobre los establecimientos).

VI. Reflexiones finales y lineamientos futuros

Este trabajo es un esbozo de lo que podría trabajarse en un mapa de accesibilidad electoral para personas con discapacidad motriz. En la selección de establecimientos muchas veces no se contemplan las condiciones de accesibilidad, lo que desincentiva la participación de personas con discapacidad y, de ese modo, atenta contra los principios inclusivos que tienen los procesos electorales.

En este espíritu, se necesita seguir trabajando para realizar mejores mapas. Asimismo, existen algunas cuestiones o carencias que debemos tener en cuenta para leer estos mapas:

  1. Además de los centros educativos de CABA, se utilizan otros establecimientos para llevar a cabo las elecciones, como universidades necionales, centros de educación privada, etc. Es necesario considerarlos en un trabajo futuro para poder realizar un análisis más adecuado de las condiciones de accesibilidad en CABA.

  2. Es importante realizar una aclaración, quizás lo más importante para sumarle valor a este trabajo. No todos los establecimientos necesitan rampas, ascensores o montaescaleras para garantizar el acceso, ya que algunos no tienen desniveles en la entrada. Por eso, es necesario poder relevar cuáles son las escuelas que precisan medios para que puedan ingresar las personas con discapacidad. Este dato es de suma importancia para relevamientos futuros.

  3. Sería interesante poder redefinir los establecimientos electorales a partir de sus condiciones de accesibilidad: utilizar aquellos que tienen acceso total y comenzar a seleccionar otros si es necesario. Por ello, es importante contar con este tipo de mapas para tomar decisiones que están sustentadas en datos. Si se escoge una escuela con malas condiciones de acceso, podría ser interesante ofrecer formas manuales o automáticas de reasignación de establecimientos que se encuentren a corta distancia del primer seleccionado. También es importante tener en cuenta aspectos en tiempo real, como el funcionamiento de los ascensores y montaescaleras, las condiciones de las rampas, etc.

El análisis de la accesibilidad de las escuelas posee dos beneficios: se relevan las condiciones de acceso para personas con discapacidad -permanente o temporal- de establecimientos electorales y también de los centros educativos. Por este motivo, no sólo es un dato que es relevante cada dos o cuatro años.

El objetivo principal de este trabajo ha sido comenzar a utilizar las bases de datos disponibles para fortalecer derechos. En este caso el enfoque ha sido la accesibilidad electoral de personas con discapacidad motriz. Los análisis realizados esperan contribuir al diagnóstico de las condiciones de accesibilidad en la Ciudad de Buenos Aires. Falta, como siempre, seguir diferenciando la señal del ruido para evaluar los problemas y construir soluciones.

Cómo seguir

Es necesario trabajar en mapas como Open Street Maps para ubicar las escuelas y las rampas, así como también considerar las calles de acceso. Usuarios de Open Street Maps diseñan mapas de accesibilidad, tanto para diseñar políticas públicas como para que personas con discapacidad puedan utilizarlos. Para seguir investigando: https://blog.openstreetmap.org/2013/12/03/disability-mapping-openstreetmap/


  1. Una aclaración: la información suministrada por la UEICEE corresponde a registros del escolares relevados en el Censo de Infraestructura Escolar 2017. Los datos dan cuenta de la existencia de rampas, montaescaleras, ascensores y sanitarios para personas con discapacidad al momento del relevamiento (mayo-noviembre de 2017). Además, al ser otorgada la base de datos, se expreso que los datos no permiten asegurar categóricamente que se cumpla la condición de accesibilidad en los lugares con rampas o ascensores, ya que no se contemplan sus condiciones. Por otro lado, y esto es lo más importante y lo que retomamos en las conclusiones, en algunos edificios sin rampa y montaescalera la accesibilidad a la Planta Baja podría estar resuelta por ausencia de desniveles en los accesos. Más allá de ser una buena base de datos para empezar a analizar condiciones de los edificios, se deben realizar ajustes para tener datos completos, específicos y actualizados.

  2. El paquete se llama Región Urbana Metropolitana de Buenos Aires (RUMBA) desarrollado por Antonio Vázquez Brust: https://github.com/bitsandbricks/RUMBA