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.
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:
Listado de establecimientos educativos de CABA y sus condiciones de accesibilidad: rampas, ascensores, etc.
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.
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
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"
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")
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.
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
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")
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.
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.
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).
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:
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.
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.
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.
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/
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.↩
El paquete se llama Región Urbana Metropolitana de Buenos Aires (RUMBA) desarrollado por Antonio Vázquez Brust: https://github.com/bitsandbricks/RUMBA↩