Datos sobre coelgios en la Comunidad Valenciana
Input
Obtenemos el conjunto de datos geoespaciales sobre colegios en la Comunidad Valenciana mediante OpenStreetMap (OSM), un proyecto colaborativo que proporciona un mapa libre y editable del mundo. Toda la información puede consultarse en la wiki de OpenStreetMap.
- Licencia de uso: Los datos obtenidos de OSM están sujetos a la Open Database License (ODbL).
- Formatos: Los conjuntos de datos de OpenStreetMap pueden exportarse en varios formatos, incluyendo GeoJSON, Shapefile, KML y CSV.
Descripción
# Bounding box para la Comunidad Valenciana
bbox_valencia <- c(-1.9, 37.8, 0.1, 40.9)
# Obtenemos colegios en la Comunidad Valenciana
datos_colegios <- bbox_valencia %>%
opq() %>%
add_osm_feature(key = "amenity", value = "school") %>%
osmdata_sf() %>%
.$osm_points
colegios_sf <-st_as_sf(datos_colegios)
# Transformamos CRS para Leaflet
colegios_sf <- st_transform(colegios_sf, crs=4326)
class(colegios_sf)
[1] "sf" "data.frame"
dim(colegios_sf)
[1] 26664 98
Hemos obtenido un mapa donde estan representados los colegios de la Comunidad Valenciana utilizando datos de OpenStreetMap. Primero, hemos definido una bounding box para la CCAA, luego extraemos los puntos correspondientes a escuelas con la librería osmdata y los conviertimos en un objeto sf. Posteriormente, hemos transformado el sistema de coordenadas para su correcta visualización en Leaflet. Finalmente representamos los colegios en un mapa interactivo.
Si inspeccionamos bien el mapa, detectamos varias cosas. Falta de normalización en los nombres de los colegios y que hay algunos puntos de interés que aparecen duplicados o incluso tripilicados, como por ejemplo en el municipio de Paiporta el instituto “La sènia” que aparece representado con múltiples puntos.
Tratamiento
library(dbscan)
coords <- sf::st_coordinates(colegios_sf)
res <- dbscan(coords, eps = 0.001, minPts = 1)
colegios_sf$cluster <- data.frame(res$cluster)
colegios_final <- colegios_sf %>%
group_by(cluster) %>%
summarise(geometry = st_centroid(st_combine(geometry)))
Para mejorar y que estos errores no nos ocurran aplicamos un clustering espacial a los colegios de la Comunidad Valenciana utilizando el algoritmo DBSCAN. Primero, extraemos las coordenadas de los colegios y las usamos para identificar grupos cercanos con un radio de 0.001 y un mínimo de 1 punto por grupo. Luego, asignamos los clusters a cada colegio y, finalmente, calculamos un punto representativo por grupo mediante la combinación y centroides de las geometrías. De esta manera evitamos tener centros duplicados.
Output
Para ver si lo hemos hecho correctamente verificamos la limpieza de nuestros datos
Observamos que hemos pasado de 26624 colegios que teniamos al principio a 2421 centros, algo con mucho más sentido teniendo en cuenta la población con la que cuenta la C. Valenciana. Aún así para asegurarnos vamos a volver a represnetrar los datos para comprobar que ya no existen estas duplicidades.
En efecto, si nos volevemos a fijar en el mismo intituto de antes “La Sénia” en Paiporta, vemos que ya solo tenemos un punto representando este centro, no los múltiples que teniamos antes.
Ahora que ya sabemos que tenemos los datos correctos nos los podemos gurdar para trabajar en un futuro con ellos
st_write(colegios_final,"Colegios_comunidad_Valenciana.gpkg")
El fichero generados con este procedimiento se puede descargar de aquí.
Proyectos de Innovación Educativa Emergente PIEE-2737007 y PIEE-3325394