LibrerĆas a usar :)
- library(tidyverse)
- library(data.table)
- library(bivariateLeaflet)
library(tidyverse)
library(data.table)
library(bivariateLeaflet)
Lectura de la base
Por facilidad y solo como ejemplo para este ejercicio filtramos:
- Incidentes de Atropellado y Motociclista
- Quitamos los que tienen NA en las coordenadas
c5 = data.table::fread(
"https://archivo.datos.cdmx.gob.mx/C5/incidentes_viales/inViales_2022_2024.csv"
)[incidente_c4 %in% c("Atropellado", "Motociclista") & !is.na(longitud) & !is.na(latitud)]
Agregamos las variable de H3 con los siguientes pasos:
sf::st_as_sf(coords=c("longitud","latitud"), crs=4326)
convierte los datos a un objeto espacial de tipo sf (Simple Features) indicando que las coordenadas son long y lat con un CRS de 4326:- con la funcioón de sf crea la geometrĆa llamada
geometry
que se usa para obtener el id de h3 asignando una resolución de 8, (va de 0 a 15) - Conteo de h3 por incidente
c5_h3 = c5 %>%
sf::st_as_sf(coords=c("longitud","latitud"),crs=4326) %>%
mutate(h3=h3jsr::point_to_cell(input=geometry,
res=8)
) %>%
as_tibble() %>%
count(incidente_c4,h3)
acĆ” hacemos un formato wide para tener dos columnas en función del mismo id de h3 y generamos su geometrĆa
c5_geo = c5_h3 %>%
pivot_wider(id_cols = h3,
names_from = incidente_c4,
values_from = n) %>%
mutate(geom=h3jsr::cell_to_polygon(h3)) %>%
sf::st_as_sf()
Mapa bivariado
Hicimos mÔs código para preparar los datos que lo que se requiere
para hacer el mapa, pero necesitamos esa estructura (dos columnas y
geometrĆa) para poder hacer el mapa, la librerĆa bivariateLeaflet
facilitó mucho la creación de estos mapas únicamente se llama a la
función create_bivariate_map, con los parÔmetros de:
- data: la base c5 ya en formato
la variable uno y la variable dos, hay colores por default y el mapĆ” etiquetas se puede modificar.
library(bivariateLeaflet)
mapa = create_bivariate_map(
data = c5_geo,
var_1 = "Atropellado", # Total population
var_2 = "Motociclista" # Median household income
)
Mapa
mapa