El objetivo general del presente trabajo es analizar la relación existente entre la distribución geográfica de los dispositivos de salud pública (oferta) y los hogares con Necesidades Básicas Insatisfechas (potencial demanda)en el Área Metropolitana de Buenos Aires (AMBA).
El producto final para realizar el análisis será un mapa imteractivo que permita visualizar facilmente la distribución geográfica de la oferta y la potencial demanda de los servicios públicos de salud.
EL SUPUESTO
Existen espacios dentro del AMBA con altos porcentajes de hogares con NBI y no tienen un dispositivo de salud público a menos de 1km de distancia.
Para cumplir con el objetivo mencionado anteriormente, se procesarán las siguientes capas y DF:
Radios censales total país. Los radios nos permiten representar información del Censo de Población Hogares y Vivienda del año 2010 a la mínima escala territorial. Si bien es una información desactualizada, es la única información oficial a esa esacala con la que contamos del AMBA. Para detectar hogares con necesidades básicas utilizaremos el indicador multidimensional de Necesidades Básicas Insatisfechas que mide pobreza estructural.
Capa de Departamentos del Area metropolitana de Buenos Aires (AMBA), para intersectar los radios del AMBA.
Capas de oferta de dispositivo de salud extraídos de la IDE Sedronar: Hospitales y Centros de Atención Primaria de la Salud (CAPS)
DF de oferta de dispositivo de salud de BA DATA.
Capa de calles del AMBA, para visualizar accesibilidad y densidad de área urbana.
ACLARACIÓN
Consideramos adecuado que las personas que necesitan acudir a un centro de salud debieran transportarse a pie y sin recorrer mas de 1km de distancia entre su domicilio y el dispositivo. Existe bibliografía que menciona a la distancia como uno de los factores de peso en los abandonos de tratamientos de salud. En términos de costo de transporte, el factor distancia también juega un papel importante en población de bajos ingresos económicos.(Para mas información sobre caminabilidad/accesibilidad se puede consultar: https://www.buenosaires.gob.ar/sites/gcaba/files/caminabilidad_0.pdf https://politicaspublicas.uc.cl/wp-content/uploads/2016/10/20161011_Informe_Ciudad-con-Todos_Bid_disen%CC%83ado-final-1.pdf)
#Activamos los paquetes a utilizar
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.5.3
## -- Attaching packages ----------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.2.0 v purrr 0.3.2
## v tibble 2.1.1 v dplyr 0.8.1
## v tidyr 0.8.3 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.4.0
## Warning: package 'ggplot2' was built under R version 3.5.3
## Warning: package 'tibble' was built under R version 3.5.3
## Warning: package 'tidyr' was built under R version 3.5.3
## Warning: package 'readr' was built under R version 3.5.3
## Warning: package 'purrr' was built under R version 3.5.3
## Warning: package 'dplyr' was built under R version 3.5.3
## Warning: package 'stringr' was built under R version 3.5.3
## Warning: package 'forcats' was built under R version 3.5.3
## -- Conflicts -------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(ggmap)
## Warning: package 'ggmap' was built under R version 3.5.3
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
library(sf)
## Warning: package 'sf' was built under R version 3.5.3
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(leaflet)
## Warning: package 'leaflet' was built under R version 3.5.3
library(reshape)
## Warning: package 'reshape' was built under R version 3.5.3
##
## Attaching package: 'reshape'
## The following object is masked from 'package:dplyr':
##
## rename
## The following objects are masked from 'package:tidyr':
##
## expand, smiths
library(dplyr)
library(tmap)
## Warning: package 'tmap' was built under R version 3.5.3
library(osmdata)
## Warning: package 'osmdata' was built under R version 3.5.3
## Data (c) OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright
library(knitr)
## Warning: package 'knitr' was built under R version 3.5.3
library(htmltools)
## Warning: package 'htmltools' was built under R version 3.5.3
Obtenemos los dispositivos Hospitales y CAPS de la IDE Sedronar y lo comenzamos a “limpiar”.
setwd("D:/My Files(MARIANO-PC)/Native/Disco local/CURSOS/BIG_DATA/FLACSO/Modulo_geodata_antonio/tp_entregal_MOD_3/salud_cobertura")
# traemos la tabla csv de caps:
caps<-read.csv("D:/TP3_flacso/shape/Salud_dispositivo_amba/sedro/web_caps_publicos_sisa.csv", encoding = "UTF-8")
# renombramos campos para posteriormente visualizar en leaflet con su correspondiente pop up
#caps = rename(caps, c(y="latitude", x= "longitude"))
#Traemos la tabla csv de Hospitales:
hospitales_publicos<-read.csv("d:/TP3_flacso/shape/Salud_dispositivo_amba/sedro/web_hospitales_publicos_sisa.csv", encoding = "UTF-8")
#hospitales_publicos = rename(hospitales_publicos, c(y="latitude", x= "longitude"))
Realizamos un join de ambas capas (caps y hospitales) Previamente limpiamos las tablas hospitales publicos y caps (dejamos los campos de interés y renombramos)
hospitales_publicos<-select(hospitales_publicos,-the_geom,-cod_establ, -FID, -ogc_fid,-director, -cat_topolo,-tipologia,-origen_fin, -cod_postal, -internacio, -street_vie,-fid)
head(caps)
## FID geom fid_1 fid
## 1 web_caps_publicos_sisa.1 POINT (-58.053549 -34.955142) 1 1
## 2 web_caps_publicos_sisa.2 POINT (-58.055982 -34.957304) 2 2
## 3 web_caps_publicos_sisa.3 POINT (-58.705667 -34.905526) 3 3
## 4 web_caps_publicos_sisa.4 POINT (-58.357471 -34.710888) 4 4
## 5 web_caps_publicos_sisa.5 POINT (-58.363041 -34.703077) 5 5
## 6 web_caps_publicos_sisa.6 POINT (-58.359604 -34.731438) 6 6
## x y prov
## 1 -58.05355 -34.95514 Buenos Aires
## 2 -58.05598 -34.95730 Buenos Aires
## 3 -58.70567 -34.90553 Buenos Aires
## 4 -58.35747 -34.71089 Buenos Aires
## 5 -58.36304 -34.70308 Buenos Aires
## 6 -58.35960 -34.73144 Buenos Aires
## nombre
## 1 Unidad Penal N° 34 Spb De La Plata
## 2 Unidad Penal Nº 10 I.N.S. - Spb De La Plata
## 3 Unidad Sanitaria Eva Peron De Marcos Paz
## 4 Unidad Sanitaria N° 48 Villa Pora De Lanus
## 5 Unidad Sanitaria 1° De Mayo De Lanus
## 6 Unidad Sanitaria San Martin De Lanus
## direccion depto localidad
## 1 Calle 520 Y 176 La Plata Jose Melchor Romero
## 2 Calle 520 Y 178 La Plata Jose Melchor Romero
## 3 Fallotico Barrio Lisandro De La Torre Marcos Paz Marcos Paz (Marcos Paz)
## 4 Bueras 3100 Lanus Lanus Este
## 5 Sánchez De Bustamante 2355 Lanus Lanus Oeste
## 6 Corvalán 2107 Lanus Lanus Este
## cod_postal origen_fin cat_topolo director internacio
## 1 1903 Público *sin dato* Sin Dato No
## 2 1903 Público *sin dato* Sin Dato No
## 3 1727 Público *sin dato* Sin Dato No
## 4 1824 Público *sin dato* Sin Dato No
## 5 1824 Público *sin dato* Sin Dato No
## 6 1824 Público *sin dato* Sin Dato No
caps<-select(caps,-geom, -FID,-fid, -director, -cat_topolo,-origen_fin, -cod_postal, -internacio,-fid_1)
Cambiamos nombre: domicilio por dirección en hospitales publicos.
hospitales_publicos = rename(hospitales_publicos, c(domicilio="direccion"))
head(hospitales_publicos)
## y x prov
## 1 -30.61676 -57.96196 Corrientes
## 2 -30.25311 -57.62338 Corrientes
## 3 -36.38017 -59.49962 Buenos Aires
## 4 -37.31455 -59.98025 Buenos Aires
## 5 -31.64862 -60.71914 Santa Fe
## 6 -31.00683 -66.00147 La Rioja
## nombre
## 1 Hospital Base Mocoreta
## 2 Hospital Samuel W. Robinson
## 3 Hospital Municipal Dr. Jose Casellas Sola
## 4 Hospital Local General De Agudos Dr. Horacio Ferro
## 5 Hospital Dr. Jose Maria Cullen
## 6 Hospital Distrital Segundo B. Romero - Milagro
## direccion depto localidad
## 1 Belgrano Esq Sarmiento Monte Caseros Mocoreta
## 2 Mitre Y San Martin Monte Caseros Monte Caseros
## 3 25 De Mayo 1069 Azul Cachari
## 4 Cortázar Y Alsina Azul Chillar
## 5 Av Freyre 2150 La Capital Santa Fe
## 6 Calle Uriburu S/N General Ocampo Milagro
Agregamos un campo llamado tipo de institucion para reconocer cuáles son CAPS y Hospitales, luego guardamos archivos con los cambios.
#mutate(caps, tipo= "caps")
#mutate(hospitales_publicos, tipo= "hospital")
view(caps)
#write.csv(caps, file="caps1.csv")
#write.csv(hospitales_publicos, file="hospitales_publicos1.csv")
hospitales<-read.csv("d:/My Files(MARIANO-PC)/Native/Disco local/CURSOS/BIG_DATA/FLACSO/Modulo_geodata_antonio/tp_entregal_MOD_3/salud_cobertura/hospitales_publicos1.csv")
caps<-read.csv("d:/My Files(MARIANO-PC)/Native/Disco local/CURSOS/BIG_DATA/FLACSO/Modulo_geodata_antonio/tp_entregal_MOD_3/salud_cobertura/caps1.csv")
rm(hospitales_publicos)
Listo, ya están los df para unir y crear uno de todos los dispositivos de salud tanto de alta como de baja complejidad y asistencia primaria:
dispo_salud_pais <- rbind(hospitales,caps)
Antes de seleccionar AMBA revisemos si falta agregar algún centro de salud en la base de Sedronar, para eso usaremos los dispositivos que publican desde BA DATA.
centros_medicos_barriales <- read.csv("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/centros-medicos-barriales/centros-medicos-barriales.csv",fileEncoding = "UTF-8")
#write.csv(centros_medicos_barriales, "centros_medicos_barriales_caba.csv")
cesac <- read.csv("http://cdn.buenosaires.gob.ar/datosabiertos/datasets/centros-de-salud-y-accion-comunitaria-cesac/centros-de-salud-y-accion-comunitaria.csv",fileEncoding = "UTF-8")
#write.csv(cesac, "cesac.csv")
Limpiamos la base de Centros Médicos Barriales para luego unirla a la de CESAC y verificar si faltan dispositivos de CABA en la base que construimos anteriormente con los dispositivos de la IDE Sedronar.
Eliminamos los campos que no usaremos, renombramos algunos y creamos otro:
head(centros_medicos_barriales)
## long lat objectid objeto nombre
## 1 -58.48299 -34.62216 1 CENTRO MÉDICO BARRIAL CMB N° 2
## 2 -58.45255 -34.63564 3 CENTRO MÉDICO BARRIAL CMB N° 4
## 3 -58.39366 -34.61963 4 CENTRO MÉDICO BARRIAL CMB N° 6
## 4 -58.51924 -34.64182 5 CENTRO MÉDICO BARRIAL CMB N° 7
## 5 -58.43169 -34.64097 6 CENTRO MÉDICO BARRIAL CMB N° 8
## 6 -58.47135 -34.66984 7 CENTRO MÉDICO BARRIAL CMB N° 9
## domicilio piso_dto telefono area_prog region_san
## 1 1022 LAMARCA EMILIO 4672-0744 ALVAREZ II
## 2 801 CARABOBO AV. 4632-7525 PIÑERO II
## 3 1936 ESTADOS UNIDOS P.B. A 4308-6058 RAMOS MEJIA I
## 4 230 MARTINIANO LEGUIZAMÓN P.B. 1 4642-5422 SANTOJANNI II
## 5 1131 LA CAPITAL 4924-0461 PENNA I
## 6 3512 ALBARIÑO 4601-2835 PIÑERO II
## especialid dom_mapa
## 1 Pediatría, Clínica médica, Tocoginecología. Lamarca Emilio 1022
## 2 Pediatría, Clínica médica, Tocoginecología. Carabobo av. 801
## 3 Pediatría, Clínica médica, Tocoginecología. Estados Unidos 1936
## 4 Pediatría, Clínica médica, Tocoginecología. Martiniano Leguizamón 230
## 5 Pediatría, Clínica médica, Tocoginecología. La Capital 1131
## 6 Pediatría, Clínica médica, Tocoginecología. Albariño 3512
## dom_geo calle_nombre calle_altura comuna
## 1 LAMARCA EMILIO 1022 LAMARCA EMILIO 1022 11
## 2 CARABOBO AV. 801 CARABOBO AV. 801 7
## 3 ESTADOS UNIDOS 1936 ESTADOS UNIDOS 1936 3
## 4 MARTINIANO LEGUIZAMÓN 230 MARTINIANO LEGUIZAM 230 9
## 5 LA CAPITAL 1131 LA CAPITAL 1131 7
## 6 ALBARIÑO 3512 ALBARI 3512 8
## barrio codigo_postal codigo_postal_argentino
## 1 Villa Santa Rita 1407 C1407DFV
## 2 Flores 1406 C1406DGI
## 3 San Cristobal 1227 C1227ABD
## 4 Liniers 1408 C1408GWF
## 5 Parque Chacabuco 1424 C1424DCA
## 6 Villa Lugano 1439 C1439ETV
centros_medicos_barriales<-select(centros_medicos_barriales, -domicilio,-objectid,-codigo_postal, -codigo_postal_argentino,-dom_mapa,-calle_nombre,-calle_altura,-objeto,-piso_dto,-telefono,-area_prog,-region_san,-especialid)
centros_medicos_barriales<- rename(centros_medicos_barriales, c(dom_geo="direccion", long= "longitude", lat= "latitude",barrio="localidad", comuna="depto"))
centros_medicos_barriales<-mutate(centros_medicos_barriales,prov="CABA")
head(centros_medicos_barriales)
## longitude latitude nombre direccion depto
## 1 -58.48299 -34.62216 CMB N° 2 LAMARCA EMILIO 1022 11
## 2 -58.45255 -34.63564 CMB N° 4 CARABOBO AV. 801 7
## 3 -58.39366 -34.61963 CMB N° 6 ESTADOS UNIDOS 1936 3
## 4 -58.51924 -34.64182 CMB N° 7 MARTINIANO LEGUIZAMÓN 230 9
## 5 -58.43169 -34.64097 CMB N° 8 LA CAPITAL 1131 7
## 6 -58.47135 -34.66984 CMB N° 9 ALBARIÑO 3512 8
## localidad prov
## 1 Villa Santa Rita CABA
## 2 Flores CABA
## 3 San Cristobal CABA
## 4 Liniers CABA
## 5 Parque Chacabuco CABA
## 6 Villa Lugano CABA
head(cesac)
## long lat id
## 1 -58.37954 -34.58462 45
## 2 -58.46736 -34.66073 43
## 3 -58.35792 -34.63133 40
## 4 -58.40225 -34.62539 38
## 5 -58.39736 -34.65604 36
## 6 -58.44246 -34.66563 34
## nombre
## 1 Centro de Salud Nivel 1 Retiro 3 (CeSAC Nº 47)
## 2 Centro de Salud Nivel 1 Villa Lugano 7 (CeSAC Nº 44)
## 3 Centro de Salud Nivel 1 La Boca 2 (CeSAC N° 41)
## 4 Centro de Salud Nivel 1 San Cristóbal (CeSAC N° 45)
## 5 Centro de Salud Nivel 1 Barracas 2 (CeSAC N° 8)
## 6 Centro de Salud Nivel 1 Villa Soldati 1 (CeSAC N° 6)
## telefono jefe area_progr region_san
## 1 FERNANDEZ IV
## 2 4601-3686/ 5573/ 9776 DR. HORACIO CRESPO PIÑERO II
## 3 4361-8736 DRA. NOEMI LEDESMA ARGERICH I
## 4 4941-0969/ 0826/ 1987 DRA. Natalia Zampichiati RAMOS MEJIA I
## 5 4302-3825 DRA. BEATRIZ BELLONI PENNA I
## 6 4918-4879 DR. GUILLERMO MORIS PIÑERO II
## especialid
## 1 S/D
## 2 Cardiología, Clínica médica, Enfermería, Farmacéutico, Ginecología, Kinesiología, Medicina general y/o familiar, Nutrición, Obstetricia, Odontología, Pediatría, Psicología, Tec. Radióloga, , Tocoginecología, Trabajo social, Traumatología
## 3 Clinica médica/geriatría, Cs. Educacion, Enfermería, Ginecología, Medicina general y/o familiar, Nutrición, Obstetricia, Odontología, Psicología, Psicopedagogía, Psiquiatría infanil, Trabajo social
## 4 Enfermería, Farmacéutico, Fonoaudiología, Ginecología, Kinesiología, Medicina general y/o familiar, Nutrición, Pediatría, Psicología, Psiquiatría, Trabajo social
## 5 Clinica médica, Farmacéutico, Ginecología, Medicina general y/o familiar, Obstetricia, Pediatría, Psicología, Trabajo social, Nutrición y Psiquiatría
## 6 Clínica médica, Enfermería, Farmacéutico, Fonoaudiología, Medicina general, Nutrición, Obstetricia, Odontología, Pediatría, Psicología, Psicopedagogía, Salud escolar, Tocoginecología, Trabajo social
## calle altura calle2
## 1 RODOLFO WALSH 0 PERETTE
## 2 SARAZA 4202
## 3 BRIN MINISTRO 843
## 4 COCHABAMBA 2622
## 5 CRUZ OSVALDO 0 LUNA
## 6 ACOSTA MARIANO 3673 AV INTENDENTE RABANAL FRANCISCO (EX ROCA CNEL)
## direccion
## 1 WALSH, RODOLFO y PERETTE, CARLOS H.
## 2 SARAZA 4202
## 3 BRIN, Ministro 843
## 4 COCHABAMBA 2622
## 5 CRUZ, OSVALDO y LUNA
## 6 ACOSTA, MARIANO 3673
## observacio
## 1 Galpón Retiro
## 2 Más información en: http://www.buenosaires.gob.ar/salud/centro-de-salud-villa-lugano-7
## 3 Más información en: http://www.buenosaires.gob.ar/salud/centro-de-salud-la-boca-2
## 4 Más información en: http://www.buenosaires.gob.ar/salud/centro-de-salud-san-cristobal
## 5 Más información en: http://www.buenosaires.gob.ar/salud/centro-de-salud-barracas-2
## 6 Más información en: http://www.buenosaires.gob.ar/salud/centro-de-salud-villa-soldati
## nom_ante vih servicios_ efe_salud vacunat_ comuna barrio
## 1 CeSAC N° 47 S/D S/D S/D S/D 1 RETIRO
## 2 CeSAC N° 44 SI SI SI SI 8 VILLA LUGANO
## 3 CeSAC N° 41 SI SI SI SI 4 BOCA
## 4 CeSAC N° 45 NO SI SI SI 3 SAN CRISTOBAL
## 5 CeSAC N° 8 SI SI SI NO 4 BARRACAS
## 6 CeSAC N° 6 NO SI SI SI 8 VILLA SOLDATI
## codigo_postal codigo_postal_argentino
## 1 NA
## 2 1439 C1439AOB
## 3 1158 C1158AAI
## 4 1252 C1252AAR
## 5 NA
## 6 1437 C1437CEE
cesac<-rename(cesac,c( long= "longitude", lat= "latitude",barrio="localidad", comuna="depto")) %>% mutate(prov= "CABA")
cesac<-select(cesac,-telefono,-region_san, -id, -telefono, -codigo_postal, -codigo_postal_argentino, -jefe,- area_progr, -especialid, -calle, -altura,- calle2, -observacio ,-nom_ante ,-vih ,-servicios_ ,-efe_salud ,-vacunat_)
Creamos campo tipo para no perder el origen del dato, guardamos cambios y traemos la tabla.
#mutate(cesac, tipo= "cesac")
#mutate(centros_medicos_barriales, tipo= "cm_barrial")
#write.csv(cesac, file="cesac1.csv")
#write.csv(centros_medicos_barriales, file="cm_barrial.csv")
cesac<-read.csv("cm_barrial.csv")
cm_barrial<-read.csv("cm_barrial.csv")
rm(centros_medicos_barriales)
Ya están listas las tablas para unir y crear un solo df con los dispositivos de salud de CABA provenientes de BA data:
dispo_salud_caba <- rbind(cesac,cm_barrial)
Ya tenemos la base de dispositivos de salud pública(IDE Sedronar, que llamaremos base única) con dispositivos de salud pública de las provincias del país y la base de dispositivos de la Ciudad Autónoma de Buenos Aires (CABA). Solo necesitamos los dispositivos del AMBA, por lo que procedemos a filtrar. Posteriormente crearemos un mapa interactivo para comparar los puntos del df dispositivos de salud de CABA con los de Sedronar y verificar si hace falta agregar alguno a la base única.
Antes de realizar el filtro de los dispositivo que necesitamos, es necesario mencionar que el AMBA es la zona urbana común que conforman la CABA y los siguientes 40 municipios de la Provincia de Buenos Aires: Almirante Brown, Avellaneda, Berazatagui, Berisso, Brandsen, Campana, Cañuelas, Ensenada, Escobar, Esteban Echeverría, Exaltación de la Cruz, Ezeiza, Florencio Varela, General Las Heras, General Rodríguez, General San Martín, Hurlingham, Ituzaingó, José C. Paz, La Matanza, Lanús, La Plata, Lomas de Zamora, Luján, Marcos Paz, Malvinas Argentinas, Moreno, Merlo, Morón, Pilar, Presidente Perón, Quilmes, San Fernando, San Isidro, San Miguel, San Vicente, Tigre, Tres de Febrero, Vicente López, y Zárate.Se trata de una megaciudad que se extiende desde Campana hasta La Plata, con límite físico en el Rio de la Plata e imaginario en la Ruta Provincial 6, y recorre una superficie de 13.285 km2. Según el censo de 2010, cuenta con 14.800.000 habitantes, que representan el 37% aproximadamente de los habitantes de la Argentina. *(extraído de https://www.buenosaires.gob.ar/gobierno/unidades%20de%20proyectos%20especiales%20y%20puerto/que-es-amba)
A continuación seleccionaremos de la base única los dispositivos que corresponden al AMBA.
dispo_salud_amba<-filter(dispo_salud_pais, prov== "Buenos Aires"|prov=="Caba") %>% filter(depto== "Almirante Brown" | depto== "Avellaneda"|depto== "Berazatagui"| depto=="Berisso"|depto=="Brandsen"| depto=="Campana"|depto== "Cañuelas" |depto=="Ensenada"|depto=="Escobar"|depto=="Esteban Echeverria"|depto== "Exaltacion de la Cruz"|
depto== "Ezeiza"| depto=="Florencio Varela"|depto== "General Las Heras"|depto== "General Rodriguez"|
depto=="General San Martin"| depto=="Hurlingham"
| depto=="Ituzaingo"|depto=="Jose C Paz"|depto== "La Matanza"|depto=="Lanus"|depto== "La Plata"|depto== "Lomas de Zamora"|depto== "Lujan"|depto== "Marcos Paz"|depto== "Malvinas Argentinas"|depto== "Moreno"| depto=="Merlo"| depto=="Moron"| depto=="Pilar"|depto==" Presidente Peron"| depto=="Quilmes"|depto== "San Fernando"| depto=="San Isidro"|depto== "San Miguel"|depto== "San Vicente"|depto== "Tigre"| depto=="Tres de Febrero"|depto== "Vicente Lopez"|depto=="Zarate"|depto=="Ciudad De Buenos Aires")
MAPEANDO DISPOSITIVO DE SALUD PÚBLICA
Creamos un mapa interactivo con los dispositivos de salud pública del AMBA: base única + base BA data y observamos que existen dispositivos en CABA (base BA data) que no estaban en la base única. En consecuencia, realizaremos la unión de ambos df.
leaflet() %>%
addTiles() %>%
addCircleMarkers(radius = 3
, color = "green",data = dispo_salud_amba,
popup = paste(dispo_salud_amba$nombre,"<br>",dispo_salud_amba$localidad,"<br>",
dispo_salud_amba$depto,"<br>",
dispo_salud_amba$prov)) %>%
addCircleMarkers(radius = 4
, color = "red",data = dispo_salud_caba, popup = paste(dispo_salud_caba$nombre,"<br>",dispo_salud_caba$localidad,"<br>",
dispo_salud_caba$depto,"<br>",
dispo_salud_caba$prov))
## Assuming "longitude" and "latitude" are longitude and latitude, respectively
## Assuming "longitude" and "latitude" are longitude and latitude, respectively
UNIÓN DE BASES: base única + base CABA
dispo_salud_AMBA <- rbind(dispo_salud_amba,dispo_salud_caba)
## Warning in `[<-.factor`(`*tmp*`, ri, value = c(11L, 9L, 7L, 3L, 9L, 7L, :
## invalid factor level, NA generated
rm(dispo_salud_amba)
# visualizamos como quedó la totalidad de dispositivos de salud para el AMBA:
leaflet() %>%
addTiles() %>%
addCircleMarkers(radius = 3
, color = "orange",data = dispo_salud_AMBA,
popup = paste(dispo_salud_AMBA$nombre,"<br>",dispo_salud_AMBA$localidad,"<br>",
dispo_salud_AMBA$depto,"<br>",
dispo_salud_AMBA$prov))
## Assuming "longitude" and "latitude" are longitude and latitude, respectively
CREANDO VARIABLE E INTERSECTANDO CAPAS
Ya tenemos la base de dispositivos de salud pública del AMBA. Lo que necesitamos para cumplir con nuestro objetivo es contruir el buffer de 1km desde cada dispositivo y cruzar esa información con los poligonos que contengan mayor porcentaje de hogares con NBI.
Primero traemos y procesamos los datos espaciales de los radios con la variable Hogares con NBI y la capa de departamentos.
Datos_radios<-st_read('D:/My Files(MARIANO-PC)/Native/Disco local/SIG Y ESTADISTICOS/SHAPES/shape censo/MAPEO_DATOS_10/DATOS_RADIOS_CENSO10.shp')
## Reading layer `DATOS_RADIOS_CENSO10' from data source `D:\My Files(MARIANO-PC)\Native\Disco local\SIG Y ESTADISTICOS\SHAPES\shape censo\MAPEO_DATOS_10\DATOS_RADIOS_CENSO10.shp' using driver `ESRI Shapefile'
## Simple feature collection with 52653 features and 28 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -73.5708 ymin: -55.05562 xmax: -53.6372 ymax: -21.78078
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
Datos_depto<-st_read ('D:/My Files(MARIANO-PC)/Native/Disco local/SIG Y ESTADISTICOS/SHAPES/shape censo/MAPEO_DATOS_10/DATOS_DEPTO_RMBA_CENSO10.shp')
## Reading layer `DATOS_DEPTO_RMBA_CENSO10' from data source `D:\My Files(MARIANO-PC)\Native\Disco local\SIG Y ESTADISTICOS\SHAPES\shape censo\MAPEO_DATOS_10\DATOS_DEPTO_RMBA_CENSO10.shp' using driver `ESRI Shapefile'
## Simple feature collection with 55 features and 25 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: -59.37824 ymin: -35.42315 xmax: -57.70946 ymax: -33.80725
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
Luego intersectamos la capa de departamentos del AMBA con la de Radio censal para quedarnos solamente con los radios de la región de interés, luego crearemos un buffer de 1km de distancia a los dispositivos de salud para saber si aquellos hogares que viven en un contexto de alta vulnerabilidad social poseen acceso a un servicio de salud pública a menos de un 1km de su domicilio.
Hacemos la instersección y mapeamos los radios del AMBA para revisarlos.
RMBA_radios1<- st_intersection(Datos_radios,Datos_depto)
## although coordinates are longitude/latitude, st_intersection assumes that they are planar
## Warning: attribute variables are assumed to be spatially constant
## throughout all geometries
rm(Datos_radios)
ggplot()+ geom_sf(data = RMBA_radios1)
#RMBA_radios<-st_write(RMBA_radios, "RMBA_depto_radios_datos.shp")
# Guardamos y eliminamos los campos que no usaremos por el momento.
getwd()
## [1] "D:/My Files(MARIANO-PC)/Native/Disco local/CURSOS/BIG_DATA/FLACSO/Modulo_geodata_antonio/tp_entregal_MOD_3/salud_cobertura"
#st_write(RMBA_radios3,"RMBA_radios3.shp")
RMBA_radios3<-st_read('RMBA_radios3.shp')
## Reading layer `RMBA_radios3' from data source `D:\My Files(MARIANO-PC)\Native\Disco local\CURSOS\BIG_DATA\FLACSO\Modulo_geodata_antonio\tp_entregal_MOD_3\salud_cobertura\RMBA_radios3.shp' using driver `ESRI Shapefile'
## Simple feature collection with 17006 features and 40 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: -59.37824 ymin: -35.42315 xmax: -57.70946 ymax: -33.80725
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
RMBA_radios3<-select(RMBA_radios1,-(PAIS9410_ :RADIO)) %>% select(-(OBR_SOCIAL:PROG_PUB)) %>% select(-codpcia,-JOIN.1,-sin_NBI)
summary(RMBA_radios3)
## AREA PERIMETER TIPO JOIN
## Min. : 3348 Min. : 231.6 M : 260 Min. :20010101
## 1st Qu.: 63150 1st Qu.: 1131.4 R : 363 1st Qu.:60280706
## Median : 114273 Median : 1509.0 U :12230 Median :64271410
## Mean : 1493341 Mean : 2751.3 NA's: 4153 Mean :53775595
## 3rd Qu.: 202257 3rd Qu.: 2102.2 3rd Qu.:65392512
## Max. :243362800 Max. :84240.4 Max. :68821803
##
## VARON MUJER TOTAL Hsin_nbi
## Min. : 0.0 Min. : 0.0 Min. : 0.0 Min. : 0.0
## 1st Qu.: 323.0 1st Qu.: 368.0 1st Qu.: 694.0 1st Qu.: 221.0
## Median : 432.0 Median : 478.0 Median : 911.0 Median : 280.0
## Mean : 469.1 Mean : 504.3 Mean : 973.5 Mean : 281.5
## 3rd Qu.: 580.0 3rd Qu.: 617.0 3rd Qu.:1197.2 3rd Qu.: 343.0
## Max. :3647.0 Max. :3108.0 Max. :5895.0 Max. :1245.0
## NA's :2 NA's :2 NA's :2 NA's :2
## HCon_NBI Total_H PorcCNBI
## Min. : 0.00 Min. : 0.0 0 : 1047
## 1st Qu.: 3.00 1st Qu.: 241.8 14.285714285714286: 34
## Median : 14.00 Median : 304.0 10 : 31
## Mean : 26.97 Mean : 308.4 11.111111111111111: 30
## 3rd Qu.: 39.00 3rd Qu.: 373.0 16.666666666666668: 26
## Max. :776.00 Max. :1370.0 (Other) :15836
## NA's :2 NA's :2 NA's : 2
## o_social pre_paga_o pre_paga_p progra_pub
## Min. : 0.0 Min. : 0.0 Min. : 0.00 Min. : 0.0
## 1st Qu.: 252.0 1st Qu.: 31.0 1st Qu.: 6.00 1st Qu.: 0.0
## Median : 426.0 Median : 99.0 Median : 34.00 Median : 0.0
## Mean : 472.7 Mean : 140.3 Mean : 69.26 Mean : 12.7
## 3rd Qu.: 623.0 3rd Qu.: 204.0 3rd Qu.: 97.00 3rd Qu.: 11.0
## Max. :4862.0 Max. :1692.0 Max. :1319.00 Max. :2129.0
## NA's :1298 NA's :1298 NA's :1298 NA's :1298
## sin_cob Total_1 PorNcober viila_si
## Min. : 0.0 Min. : 1 0 : 328 Min. : 0.00
## 1st Qu.: 71.0 1st Qu.: 637 100 : 25 1st Qu.: 0.00
## Median : 204.0 Median : 933 40 : 20 Median : 0.00
## Mean : 357.2 Mean : 1052 20 : 18 Mean : 23.12
## 3rd Qu.: 500.2 3rd Qu.: 1319 50 : 15 3rd Qu.: 0.00
## Max. :9139.0 Max. :15214 (Other):15302 Max. :2039.00
## NA's :1298 NA's :1298 NA's : 1298 NA's :1298
## villa_no Tot_VIV Porc_villa
## Min. : 0.0 Min. : 0.0 Min. : 0.000
## 1st Qu.: 197.0 1st Qu.: 221.0 1st Qu.: 0.000
## Median : 277.0 Median : 287.0 Median : 0.000
## Mean : 286.6 Mean : 309.7 Mean : 7.518
## 3rd Qu.: 357.0 3rd Qu.: 370.2 3rd Qu.: 0.000
## Max. :2628.0 Max. :3507.0 Max. :100.000
## NA's :1298 NA's :1298 NA's :1298
## departamen provincia
## La Matanza : 1335 Buenos Aires :12830
## La Plata : 865 Ciudad Autónoma de Buenos Aires: 4176
## Lomas de Zamora: 662
## Quilmes : 604
## Lanús : 557
## Almirante Brown: 515
## (Other) :12468
## mujeres varones personas hogares
## 909126 : 1335 866690 : 1335 1775816: 1335 484909 : 1335
## 339061 : 865 315263 : 865 654324 : 865 221313 : 865
## 319237 : 662 297042 : 662 616279 : 662 188844 : 662
## 301015 : 604 281928 : 604 582943 : 604 177110 : 604
## 240390 : 557 218873 : 557 459263 : 557 149594 : 557
## 282655 : 515 270247 : 515 552902 : 515 156918 : 515
## (Other):12468 (Other):12468 (Other):12468 (Other):12468
## viv_part viv_part_h CON_NBI Total
## 447306 : 1335 405338 : 1335 Min. : 323 Min. : 4641
## 259352 : 865 209888 : 865 1st Qu.: 3329 1st Qu.: 75512
## 188186 : 662 167304 : 662 Median : 8736 Median :100777
## 182216 : 604 163717 : 604 Mean :12438 Mean :134303
## 157867 : 557 137132 : 557 3rd Qu.:17552 3rd Qu.:149106
## 156204 : 515 142614 : 515 Max. :54118 Max. :485096
## (Other):12468 (Other):12468
## POR_CNBI SIN_COB TOT_PERS PORC_SIN
## Min. : 1.523 Min. : 4061 Min. : 14889 Min. : 6.0
## 1st Qu.: 4.918 1st Qu.: 38190 1st Qu.: 189470 1st Qu.:26.0
## Median : 9.294 Median :104655 Median : 322193 Median :32.0
## Mean : 8.687 Mean :161429 Mean : 438375 Mean :31.2
## 3rd Qu.:11.556 3rd Qu.:213430 3rd Qu.: 527344 3rd Qu.:41.0
## Max. :18.365 Max. :801729 Max. :1776156 Max. :51.0
##
## villa_Si Villa_No TOT_VIV PORC_VILLA
## Min. : 0 Min. : 4466 Min. : 4466 Min. : 0.000
## 1st Qu.: 1663 1st Qu.: 68819 1st Qu.: 71449 1st Qu.: 3.255
## Median : 5959 Median : 93089 Median : 98197 Median : 6.284
## Mean :10364 Mean :113294 Mean :123658 Mean : 7.171
## 3rd Qu.:12819 3rd Qu.:127895 3rd Qu.:138551 3rd Qu.: 9.091
## Max. :39460 Max. :394575 Max. :434035 Max. :27.406
##
## geometry
## MULTIPOLYGON : 201
## POLYGON :16805
## epsg:4326 : 0
## +proj=long...: 0
##
##
##
Creamos la variable porcentaje de hogares con NBI a nivel radio censal
RMBA_radios3a<-mutate(RMBA_radios3,porc_con_nbi_r=(HCon_NBI/Total_H)*100)
rm(RMBA_radios3)
# Sabemos que en la capa de radios existen diferentes variables y muchas de ellas tienen NA como por ejemplo aquellas que corresponden al cuestionario ampliado del CPHV 2010. en este caso revisaremos si hay algún NA dentro de la columna % de hogares por NBI (porc_con_nbi_r) que es la que nos interesa, revisemos: observamos que existe 6 de 17006 radios, no es un numero importante y por el mapeo que se realizó previamente tampoco son importantes en cuando a peso (cantidad de poblacion) por lo que procederemos a extraerlos para que no figuren dentro de las referencias del mapa.
sapply(RMBA_radios3a, function(x) sum(is.na(x)))
## AREA PERIMETER TIPO JOIN VARON
## 0 0 4153 0 2
## MUJER TOTAL Hsin_nbi HCon_NBI Total_H
## 2 2 2 2 2
## PorcCNBI o_social pre_paga_o pre_paga_p progra_pub
## 2 1298 1298 1298 1298
## sin_cob Total_1 PorNcober viila_si villa_no
## 1298 1298 1298 1298 1298
## Tot_VIV Porc_villa departamen provincia mujeres
## 1298 1298 0 0 0
## varones personas hogares viv_part viv_part_h
## 0 0 0 0 0
## CON_NBI Total POR_CNBI SIN_COB TOT_PERS
## 0 0 0 0 0
## PORC_SIN villa_Si Villa_No TOT_VIV PORC_VILLA
## 0 0 0 0 0
## geometry porc_con_nbi_r
## 0 6
#eliminamos NA del campo porc_con_nbi_r
RMBA_radios3a <- RMBA_radios3a[!is.na(RMBA_radios3a$porc_con_nbi_r),]
MAPEANDO PORCENTAJE DE HOGARES CON MAS DE 30% DE NBI EN AMBA
Para tener una primer aproximación de la zonas con mayor porcentaje de NBI,filtramos aquellos radios con mas del 30% (8.5% de los hogares del AMBA tienen NBI):como se puede observar existen radios distribuidos de manera heterogenea principalmente en el conurbano bonaerense sur y oeste donde mas del 30% de los hogares tienen NBI. Este es un dato preliminar que no nos llega a aportar mucha información, falta precisión en la localización, que se visualizará en el producto final.
ggplot() + geom_sf(data = RMBA_radios3a, aes(fill = porc_con_nbi_r>30) , color = NA)
El próximo paso es crear el buffer de 1km a cada dispositivo y superponerlo con los radios mapeados anteriormente. Antes de esto, tomamos el df de dispo_salud_AMBA, el cual convertimos a shape y luego creamos un buffer sobre esa capa que debemos reproyectar a planas.
dispo_salud_AMBA_shape<-st_as_sf(dispo_salud_AMBA,coords = c( "longitude","latitude"),crs = 4326)
Creamos buffer de 1km a cada dospositivo de salud:
dispo_salud_AMBA_shape = st_transform(dispo_salud_AMBA_shape, 5348)
dispo_AMBA_buffer1000m <- st_buffer(dispo_salud_AMBA_shape, dist = 1000)
## REPROYECTO A LAT/LONG WGS84
dispo_AMBA_buffer1000m= st_transform(dispo_AMBA_buffer1000m, 4326)
dispo_salud_AMBA_shape = st_transform(dispo_salud_AMBA_shape, 4326)
Antes de armar el mapa interactivo con los insumos necesarios planteados el comienzo para cumplir con el objetivo general, nos falta traer al proyecto la capa de calles del AMBA que nos permitirá visualizar la accesibilidad a los centros de salud.
calles_AMBA<- st_read("D:/My Files(MARIANO-PC)/Native/Disco local/CURSOS/BIG_DATA/FLACSO/SIG/shape/callesAMBA/Calles_zona_metropolitana/Calles_zona_metropolitana.shp")
## Reading layer `Calles_zona_metropolitana' from data source `D:\My Files(MARIANO-PC)\Native\Disco local\CURSOS\BIG_DATA\FLACSO\SIG\shape\callesAMBA\Calles_zona_metropolitana\Calles_zona_metropolitana.shp' using driver `ESRI Shapefile'
## Simple feature collection with 125517 features and 8 fields
## geometry type: LINESTRING
## dimension: XY
## bbox: xmin: -60.01281 ymin: -35.52648 xmax: -57.69995 ymax: -33.89241
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
head(calles_AMBA)
## Simple feature collection with 6 features and 8 fields
## geometry type: LINESTRING
## dimension: XY
## bbox: xmin: -58.62086 ymin: -34.82062 xmax: -58.42211 ymax: -34.40338
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
## osm_id name ref type oneway bridge tunnel
## 1 252906523 <NA> <NA> residential 0 0 0
## 2 252906524 <NA> <NA> residential 1 0 0
## 3 252906526 <NA> <NA> residential 0 0 0
## 4 252906522 <NA> <NA> residential 0 0 0
## 5 38151981 Eustaquio Díaz Vélez <NA> residential 1 0 0
## 6 38151982 Portugal <NA> residential 1 0 0
## maxspeed geometry
## 1 NA LINESTRING (-58.61626 -34.4...
## 2 NA LINESTRING (-58.61835 -34.4...
## 3 NA LINESTRING (-58.61933 -34.4...
## 4 NA LINESTRING (-58.62006 -34.4...
## 5 NA LINESTRING (-58.43555 -34.8...
## 6 NA LINESTRING (-58.4289 -34.81...
A continuación realizamos el procesamiento para finalmente cumplir con nuestro objetivo: crear un mapa interactivo que muestre las capas de información procesadas anteriormente que nos permita detectar las zonas donde existen porcentajes elevados de hogares con NBI y analizar la cobertura de dispositivo de salud.
CREACIÓN DE MAPA INTERACTIVO EN LEAFLET
Se cruzarán las capas de:
Radios, visualizando la variable porcentaje con NBI, total de hogares y el nombre del departamento al que pertenece.
Departamentos del AMBA donde al hacer clic sobre un departamento se visualizará el nombre del mismo,el total de hogares, % de hogares con NBI y de villas miserias.
Dispositivos de salud de AMBA con su respectivo nombre y dirección.
Área de influencia(buffer) de 1km a cada dispositivo de salud.
La visualización del porcentaje de Hogares con NBI se representará con una paleta de diferentes tonalidades de rojo.
La capa de calles fue descartada debido a que el peso de la misma generaba problemas en la visualización del mapa interactivo. Igualmente, el mapa base de Leaflet será suficiente para visualizar las calles y relacionar distancias.
El mapa creado ofrece la posibilidad de activar/desactivar capas para un mejor análisis de la información espacial.
# creo paleta de colores para las referencias de los hogares con NBI
pal <- colorNumeric(
palette = "Reds",
domain = RMBA_radios3a$porc_con_nbi_r)
# creo mapa interactivo (Producto final)
leaflet(RMBA_radios3a) %>%
addTiles(group = "OSM (default)") %>%
addPolygons(stroke = FALSE,smoothFactor = 0.2, fillOpacity = 1, color=~pal(porc_con_nbi_r), group = "NBI%", popup = paste("<b>Provincia:</b>" ,RMBA_radios3a$provincia,"<br>","<b>Departamento:</b>",RMBA_radios3a$departamen,"<br>",
"<b>Total de Hogares:</b>",RMBA_radios3a$Total_H,"<br>","<b>% de hogares con NBI:</b>",
RMBA_radios3a$porc_con_nbi_r)) %>% addPolygons(data = dispo_AMBA_buffer1000m, stroke = FALSE,color = "green",fillOpacity = 0.3, smoothFactor = 0.5, group = "Buffer 1km") %>%
addPolygons(data = Datos_depto,stroke = TRUE,color = "blue",fillOpacity = 0.1, smoothFactor = 0.2, group = "Deptos", popup = paste( "<b>Departamento:</b>",Datos_depto$departamen,"<br>","<b>Total de hogares:</b>",Datos_depto$hogares,"<br>","<b>% de hogares con NBI:</b>",
Datos_depto$POR_CNBI,"<br>","<b>% de villas:</b>",
Datos_depto$PORC_VILLA))%>% addCircleMarkers(radius = 2, color = "yellow",data = dispo_salud_AMBA_shape, group = "Dispositivos Salud", popup = paste("<b>Departamento:</b>",dispo_salud_AMBA_shape$depto,"<br>","<b>Localidad:</b>",dispo_salud_AMBA_shape$localidad,"<br>","<b>Nombre:</b>", dispo_salud_AMBA_shape$nombre,"<br>","<b>Dirección:</b>", dispo_salud_AMBA_shape$direccion)) %>% addLegend(title = "% Hogares con NBI", pal = pal, values = ~porc_con_nbi_r) %>%
addLayersControl(
baseGroups = c("OSM (default)"),
overlayGroups = c("Deptos","NBI%","Dispositivos Salud","Buffer 1km"),
options = layersControlOptions(collapsed = TRUE)
)