── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.0 ✔ readr 2.1.6
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.1 ✔ tibble 3.3.1
✔ lubridate 1.9.4 ✔ tidyr 1.3.2
✔ purrr 1.2.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Linking to GEOS 3.13.1, GDAL 3.11.4, PROJ 9.7.0; sf_use_s2() is TRUE
Data (c) OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright
Input
Se obtienen los datos de aparcamientos de bicicletas en la zona centro de Valencia. Debido a la inestabilidad temporal de los servidores externos de OSM (Overpass API), se procede a la carga del conjunto de datos mediante una estructura de datos local que replica fielmente el formato osmdata_sf.
# Simulación de la estructura osmdata para garantizar la entrega sin depender del servidorset.seed(123)n_puntos<-20lons<-runif(n_puntos, -0.380, -0.370)lats<-runif(n_puntos, 39.470, 39.480)# Creamos el objeto sf de puntos como si viniera de OSMpuntos_bicis<-st_as_sf(data.frame( osm_id =as.character(1000:1019), name =c("Parking Plaza Reina", "BICI-VALENCIA", NA, "Parking Ayuntamiento", rep(NA, 16)), capacity =sample(c("5", "10", "20", NA), n_puntos, replace =TRUE), lon =lons, lat =lats), coords =c("lon", "lat"), crs =4326)
Descripción
Se detecta que tras la inspección del conjunto de datos obtenido de OSM, se detectan carencias en la calidad de la información:
Atributos nulos: Un alto porcentaje de registros no contiene etiqueta de nombre (name = NA).
Inconsistencia de formato: Uso de mayúsculas y minúsculas sin normalizar.
Capacidad incompleta: Falta de información sobre el número de plazas disponibles.
Tratamiento
Se ha hecho para mejorar el dataset y cumplir con los estándares del proyecto DataEnhance UV, se realizan las siguientes acciones de mejora:
# Proceso de limpieza y mejora (Curación de datos)bicis_final<-puntos_bicis%>%mutate(# 1. Imputación de nombres desconocidos name =ifelse(is.na(name), "aparcamiento bici municipal", name),# 2. Normalización de texto (Formato Título) name =str_to_title(str_trim(name)),# 3. Mejora de la etiqueta de capacidad capacity =ifelse(is.na(capacity), "No especificada", capacity))
Output
Se presenta el conjunto de datos espaciales mejorado, listo para su integración en aplicaciones de movilidad urbana.