install.packages("tidyverse")
install.packages("leaflet")
install.packages("rgdal")
install.packages("deldir")
install.packages("sp")
install.packages("RColorBrewer")
install.packages("KernSmooth")
library(data.table)
library(ggplot2)
library(tidyverse)
library(leaflet) ## Nos permite hacer los mapas
library(rgdal)
library(deldir)
library(sp)
library(RColorBrewer)
library(KernSmooth)
rm(list=ls())
Fuente: http://www.ide.cl/index.php/salud/item/1595-accidentes-en-bicicleta-ano-2016
biciMap<-readOGR( dsn= "C:/Users/mariajesustraub/Desktop/Rstudio/Ejercicio mapas/Bici_personaGS2016_2/Bici_personaGS2016_2.shp")
## OGR data source with driver: ESRI Shapefile
## Source: "C:\Users\mariajesustraub\Desktop\Rstudio\Ejercicio mapas\Bici_personaGS2016_2\Bici_personaGS2016_2.shp", layer: "Bici_personaGS2016_2"
## with 1135 features
## It has 30 fields
## archivo que contiene las bases de datos y coordenadas
## readOGR nos permite abrir los archivos shp
biciMap@proj4string # proyección y para ver los componentes utilizo @, son los conjuntos de coordenadas que tiene la proyección
## CRS arguments: +proj=longlat +datum=WGS84 +no_defs
proj4string(biciMap) # proyección escrita de otra manera, es el mismo resultado.
## [1] "+proj=longlat +datum=WGS84 +no_defs"
biciMap@coords # coordenadas en la base
coordinates(biciMap) # coordenadas lat (Y) long (X)
View(biciMap@data) # para ver los datos del data frame
Fuente: http://www.censo2017.cl/servicio-de-mapas/
ComunasR13Map<-readOGR(dsn = "C:/Users/mariajesustraub/Desktop/Rstudio/Ejercicio mapas/ComunasR13/ComunasR13_COMUNA_C17.shp")
## OGR data source with driver: ESRI Shapefile
## Source: "C:\Users\mariajesustraub\Desktop\Rstudio\Ejercicio mapas\ComunasR13\ComunasR13_COMUNA_C17.shp", layer: "ComunasR13_COMUNA_C17"
## with 52 features
## It has 8 fields
## tienen proyecciones distintas
ComunasR13Map@proj4string #proyección
## CRS arguments:
## +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
ComunasR13Map<-spTransform(ComunasR13Map,CRSobj = proj4string(biciMap)) #tenemos que transformar la proyección que sea igual a la proyección que tenga bicimap con spTransform, creando una nueva proyección con CRSobj
ComunasR13Map@proj4string
## CRS arguments: +proj=longlat +datum=WGS84 +no_defs
plot(biciMap) #puntos como coordenadas
plot(ComunasR13Map) #Polígonos
leaflet(biciMap)%>% ## función que permite hacer un mapa interactivo
addTiles()%>% ##%<% quiere decir lo que voy a hacer siguiente en la función y addTitles (títulos) y add Markers (los puntos)
addMarkers()
leaflet(biciMap)%>%
addTiles()%>%
addCircles() ## en vez de con markers podemos mostrarlos con círculos
leaflet(ComunasR13Map)%>%
addTiles()%>%
addPolygons() ## delimitaciones entre polígonos
leaflet(ComunasR13Map)%>%
addTiles()%>%
addPolygons()%>% ## comunas estamos trabajando en polígonos
addMarkers(biciMap,lng = biciMap@coords[,1],lat = biciMap@coords[,2]) ##markers que vengan de la base bicimap; lng son longitudes (1 componente), lat son latitudes (2 componente)
head(ComunasR13Map@data) ##head permite ver las primeras 5 obs de las bases de datos
## REGION NOM_REGION PROVINCIA NOM_PROVIN COMUNA
## 0 13 REGIÓN METROPOLITANA DE SANTIAGO 134 MAIPO 13404
## 1 13 REGIÓN METROPOLITANA DE SANTIAGO 134 MAIPO 13402
## 2 13 REGIÓN METROPOLITANA DE SANTIAGO 131 SANTIAGO 13124
## 3 13 REGIÓN METROPOLITANA DE SANTIAGO 131 SANTIAGO 13103
## 4 13 REGIÓN METROPOLITANA DE SANTIAGO 133 CHACABUCO 13301
## 5 13 REGIÓN METROPOLITANA DE SANTIAGO 133 CHACABUCO 13303
## NOM_COMUNA SHAPE_Leng SHAPE_Area
## 0 PAINE 1.6253302 0.066034887
## 1 BUIN 0.8841641 0.021166233
## 2 PUDAHUEL 0.7201757 0.019124278
## 3 CERRO NAVIA 0.1701803 0.001075965
## 4 COLINA 1.6920071 0.093820189
## 5 TILTIL 1.3301477 0.063169398
head(biciMap@data)
## IdAcciden Accidentes Fallecidos Graves Menos_Grav Leves Ilesos ANO FECHA
## 1 870941 2 0 0 0 2 0 2016 1/11/2016
## 2 875846 1 0 1 0 0 0 2016 1/22/2016
## 3 876106 1 0 1 0 0 0 2016 1/23/2016
## 4 876656 1 0 1 0 0 0 2016 1/27/2016
## 5 884912 1 0 0 0 0 1 2016 2/23/2016
## 6 881882 2 0 0 0 1 1 2016 2/25/2016
## HORA COD_COMUNA COMUNA1 COD_REGION REGION1 TIPO_ACCID
## 1 7:40 13123 PROVIDENCIA 13 REGION METROPOLITANA COLISION LATERAL
## 2 16:15 13103 CERRO NAVIA 13 REGION METROPOLITANA COLISION LATERAL
## 3 20:30 13120 NUNOA 13 REGION METROPOLITANA COLISION
## 4 20:50 13128 RENCA 13 REGION METROPOLITANA CHOQUE FRONTAL
## 5 14:00 13101 SANTIAGO 13 REGION METROPOLITANA ATROPELLO
## 6 19:30 13119 MAIPU 13 REGION METROPOLITANA COLISION LATERAL
## TIPO__CONA ZONA UBICACION_ CAUSA__CON
## 1 COLISION URBANA TRAMO DE VIA RECTA PERDIDA CONTROL VEHICULO
## 2 COLISION URBANA TRAMO DE VIA RECTA CAUSAS NO DETERMINADAS
## 3 COLISION URBANA TRAMO DE VIA RECTA IMPRUDENCIA DEL CONDUCTOR
## 4 CHOQUE URBANA TRAMO DE VIA RECTA OTRAS CAUSAS
## 5 ATROPELLO URBANA TRAMO DE VIA RECTA DESOBEDIENCIA A SENALIZACION
## 6 COLISION URBANA TRAMO DE VIA RECTA IMPRUDENCIA DEL CONDUCTOR
## CAUSA1 CALLE_UNO
## 1 PERDIDA CONTROL VEHICULO SANTA ISABEL
## 2 CAUSAS NO DETERMINADAS NEPTUNO
## 3 CONDUCCION NO ATENTO CONDICIONES TRANSITO MOMENTO DUBLE ALMEYDA
## 4 OTRAS CAUSAS NAPOLES
## 5 SENALIZACION DESOBEDECER LUZ ROJA DE SEMAFORO JOSE SANTIAGO MONTT
## 6 CONDUCCION NO ATENTO CONDICIONES TRANSITO MOMENTO FUNDO LA RINCONADA
## CALLE_DOS NUMERO INTERSECCI DIRECCIO_1
## 1 <NA> 1161 - STA ISABEL 1161 SANTA ISABEL
## 2 <NA> 1530 - NEPTUNO 1530 NEPTUNO
## 3 <NA> 4289 - DUBLE ALMEYDA 4289 DUBLE ALMEYDA
## 4 <NA> 1496 - NAPOLES 1496 NAPOLES
## 5 <NA> 2373 - JOSE SANTIAGO MONTT 2373 JOSE SANTIAGO MONTT
## 6 <NA> 145 - FUNDO LA RINCONADA 145 FUNDO LA RINCONADA
## CALZADA TIPO_CALZA ESTADO_CAL CONDICION_ ESTADO_ATM
## 1 UNIDIRECCIONAL ASFALTO REGULAR SECO DESPEJADO
## 2 BIDIRECCIONAL ASFALTO BUENO SECO DESPEJADO
## 3 UNIDIRECCIONAL CONCRETO BUENO SECO DESPEJADO
## 4 UNIDIRECCIONAL CONCRETO BUENO SECO DESPEJADO
## 5 BIDIRECCIONAL CON BANDEJON ASFALTO BUENO SECO DESPEJADO
## 6 UNIDIRECCIONAL ASFALTO BUENO SECO DESPEJADO
table(ComunasR13Map@data$COMUNA%in%biciMap@data$COD_COMUNA) ##todas las comunas (variable) que estan en comuna de comunar13 y en bicimap
##
## FALSE TRUE
## 17 35
ComunasR13MapBici<-ComunasR13Map[ComunasR13Map@data$COMUNA%in%biciMap@data$COD_COMUNA,] ## nos vamos a quedar con las comunas que estén en la base de datos bici y en comunas r13
leaflet(ComunasR13MapBici)%>%
addTiles()%>%
addPolygons()%>%
addMarkers(biciMap,lng = biciMap@coords[,1],lat = biciMap@coords[,2]) ##grafico con la nueva base de datos
class(biciMap@data)
## [1] "data.frame"
biciData<-data.table(biciMap@data)
NumAccBici<-biciData[,.(NumAccBici=.N),by=COD_COMUNA] ##Numero de accidentes en bicicleta por comuna
View(ComunasR13MapBici@data)
ComunasR13MapBici@data<-merge(ComunasR13MapBici@data,NumAccBici,by.x="COMUNA",by.y="COD_COMUNA",sort=F, all.x=T) ## by.x o by.y es porque aunque las variables signifiquen lo mismo, tienen distinto nombre. sort=F es para que no se reordene
View(ComunasR13MapBici@data)
pColor<-colorQuantile(palette = brewer.pal(4,name = "Reds"),domain =range(ComunasR13MapBici@data$NumAccBici,na.rm = T),n = 5) ## los colores se hacen antes de hacer el mapa y se asignan a un objeto
labels <- sprintf(
"<strong>Comuna: %s </strong><br/>Acc.Bicicleta: %g ",
ComunasR13MapBici$NOM_COMUNA, ComunasR13MapBici$NumAccBici
) %>% lapply(htmltools::HTML) ## etiquetas que permita verificar los datos por comuna cuando pase el mouse por encima del mapa
leaflet(ComunasR13MapBici)%>%
addTiles()%>%
addPolygons(fillColor = ~pColor(NumAccBici),color='white',weight=1,fillOpacity = 0.7,highlight = highlightOptions(
weight = 5,
color = "#666",
fillOpacity = 0.7,
bringToFront = TRUE),label=labels)
class(biciMap@data)
## [1] "data.frame"
biciData<-data.table(biciMap@data)
biciData[,.N,by=.(COMUNA1)]
## COMUNA1 N
## 1: PROVIDENCIA 135
## 2: CERRO NAVIA 15
## 3: NUNOA 79
## 4: RENCA 35
## 5: SANTIAGO 150
## 6: MAIPU 62
## 7: LA FLORIDA 31
## 8: P. AGUIRRE CERDA 11
## 9: PUDAHUEL 37
## 10: PENALOLEN 41
## 11: LAMPA 11
## 12: COLINA 6
## 13: LAS CONDES 52
## 14: QUILICURA 48
## 15: SAN JOAQUIN 18
## 16: PIRQUE 1
## 17: PUENTE ALTO 73
## 18: MACUL 28
## 19: LA CISTERNA 16
## 20: LO BARNECHEA 9
## 21: EL BOSQUE 34
## 22: CERRILLOS 14
## 23: SAN RAMON 14
## 24: VITACURA 6
## 25: RECOLETA 24
## 26: LA REINA 29
## 27: LO PRADO 18
## 28: ESTACION CENTRAL 32
## 29: SAN MIGUEL 19
## 30: QUINTA NORMAL 27
## 31: LA GRANJA 15
## 32: HUECHURABA 6
## 33: INDEPENDENCIA 16
## 34: LA PINTANA 12
## 35: CONCHALI 11
## COMUNA1 N
biciMapStgo<-biciMap[biciMap$COMUNA1=="SANTIAGO" | biciMap$COMUNA1=="PROVIDENCIA" ,] ## objeto con las comunas con más accidentes
leaflet(biciMapStgo)%>%
addTiles()%>%
addMarkers()
Fuente: https://gis.stackexchange.com/questions/168886/r-how-to-build-heatmap-with-the-leaflet-package
kde2d <- bkde2D(biciMapStgo@coords,
bandwidth=c(.00225, .00225))
CL <- contourLines(kde2d$x1 , kde2d$x2 , kde2d$fhat)
LEVS <- as.factor(sapply(CL, `[[`, "level"))
NLEV <- length(levels(LEVS))
pgons <- lapply(1:length(CL), function(i)
Polygons(list(Polygon(cbind(CL[[i]]$x, CL[[i]]$y))), ID=i))
spgons <- SpatialPolygons(pgons)
leaflet(spgons) %>% addTiles() %>%
addPolygons(color = heat.colors(NLEV, NULL)[LEVS])
bikeShops<-readRDS("C:/Users/mariajesustraub/Desktop/Rstudio/Ejercicio mapas/bikeShopsStgo.rds")
class(bikeShops$store_lat)
## [1] "character"
class(bikeShops$store_lon)
## [1] "character"
bikeShops$store_lat<-as.numeric(bikeShops$store_lat)
bikeShops$store_lon<-as.numeric(bikeShops$store_lon)
leaflet(spgons) %>% addTiles() %>%
addPolygons(color = heat.colors(NLEV, NULL)[LEVS])%>%
addMarkers(lng = bikeShops$store_lon,lat = bikeShops$store_lat)