Datos sobre la ubicación de contenedores de vidrio en Valencia

medioambiente
reciclaje
vidrio
Autor/a
Afiliación

Luis Mera

Universidad de Valencia

Fecha de publicación

29 de marzo de 2025

Input

En el catálogo de datos del Portal de Dades Obertes de l’Ajuntament de València, se encuentra disponible una amplia variedad de conjuntos de datos accesibles al público. Dentro de la categoría de Medio Ambiente, se puede acceder a información georreferenciada sobre elementos del mobiliario urbano como contenedores de residuos, zonas de reciclaje, puntos de recogida selectiva, entre otros.

Este proyecto se centra en el conjunto de datos titulado “Contenedores vidrio”, el cual, según la descripción oficial, recoge la localización y clasificación de los distintos tipos de contenedores distribuidos por el municipio de Valencia.

A continuación, se resumen algunos datos relevantes del recurso:

  • Temática: Medio ambiente

  • Palabras clave: Servicios de utilidad pública y estatales

  • Última modificación: 23 de octubre de 2024

  • Publicador: Ayuntamiento de València

  • Licencia de uso: Creative Commons Attribution 4.0

  • Formatos de descarga: CSV, Excel, JSON, GeoJSON, Shapefile, KML, GPX, FlatGeobuf y Parquet


Para el desarrollo de este trabajo, se ha utilizado el formato Shapefile, por su compatibilidad con herramientas de análisis geoespacial en R.

Descripción

Empezamos cargando las librerias necesarias

Warning: package 'purrr' was built under R version 4.4.3
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── 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.12.2, GDAL 3.9.3, PROJ 9.4.1; sf_use_s2() is TRUE

Adjuntando el paquete: 'kableExtra'

The following object is masked from 'package:dplyr':

    group_rows

Continuamos leyendo los datos

datos_cont <- sf::st_read("data/000125/contenidors-vidre-contenedores-vidrio.shp")
Reading layer `contenidors-vidre-contenedores-vidrio' from data source 
  `C:\Users\scorp\OneDrive - Universitat de València\01 PROFESOR\06 Innovación Educativa\2023 2024\03 Web\datasets\data\000125\contenidors-vidre-contenedores-vidrio.shp' 
  using driver `ESRI Shapefile'
Simple feature collection with 2816 features and 23 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: -0.428668 ymin: 39.28003 xmax: -0.27818 ymax: 39.55024
Geodetic CRS:  WGS 84

Seguidamente examinamos los datos

cat("Clase del objeto:", class(datos_cont), "\n\n")
Clase del objeto: sf data.frame 
cat("Dimensiones - Filas:", nrow(datos_cont), "| Columnas:", ncol(datos_cont), "\n")
Dimensiones - Filas: 2816 | Columnas: 24 

El conjunto de datos cargado corresponde a un objeto de clase sf que contiene 273 observaciones y 10 variables relacionadas con la ubicación y características de los contenedores.

A continuación, transformamos el sistema de referencia de coordenadas para garantizar su compatibilidad con entornos web y se representa gráficamente utilizando el paquete leaflet para su visualización interactiva.

datos_cont <- sf::st_transform(datos_cont, crs = 4326)
datos_cont %>%
  leaflet() %>%
  addProviderTiles("CartoDB.Positron") %>%
    addCircles(color = "#66A182")

A primera vista no parece que haya ningun valor anomalo, aunque sospechamos que pueden haber valores fuera de los limites del municipio.

Tratamiento

Con el objetivo de identificar las observaciones que están fuera de los límites del municipio de Valencia, se utilizó la cartografía de la región mediante el paquete mapSpain. Posteriormente, empleando las funciones st_intersection y st_difference del paquete sf, se distinguieron los puntos que pertenecen a Valencia y los que se encuentran fuera de sus fronteras, respectivamente.

spain <- mapSpain::esp_get_munic(moveCAN = FALSE) %>% 
  sf::st_transform(crs= 4326)

val <- spain %>% filter(name == "Valencia") %>%
  st_transform(crs = 4326)

puntos <- sf::st_intersection(datos_cont,val)
puntos_anomalos <- sf::st_difference(datos_cont,val)

nrow(puntos_anomalos)
[1] 23

Obtenemos 23 observaciones fuera de los limites del municipio. Investigemos un poco mas.

puntos_anomalos %>%
  leaflet() %>%
  addProviderTiles("CartoDB.Positron") %>%
    addCircles(color = "#66A182")

Observamos que efectivamente existen algunas observaciones fuera del término municipal de Valencia. Sin embargo, también identificamos puntos que, aunque visualmente parecen quedar fuera del área central, se ubican dentro del municipio, como ocurre en la zona portuaria.

Procedemos a eliminar los valores anómalos y conservamos los que se ubican en la zona del puerto.

tabla <- as.data.frame(puntos_anomalos)[, c("objectid", "observacio")]
tabla
     objectid
8       30247
509     30207
555     29902
969     31366
1017    30248
1126    31400
1137    31396
1218    31395
1277    31394
1293    29768
1367    31405
1511    31402
1541    30208
1579    31393
1592    30706
1751    30341
1972    31401
2144    29988
2158    31397
2209    29769
2445    31399
2540    29906
2566    30707
                                                                                   observacio
8                                                            Cmno. Canal, 91 ==> Club Naútico
509                                                      Pso. De la Calma, S/nº Rte. " Duna "
555                                                                           C/ Alpuente, 13
969                                                                     C/ Manuel Iranzo, F-7
1017                      Cmno. Canal, 91 ==> Club Naútico ==> Rest. "La Rosa de los Vientos"
1126  C/ Marina Real Juan Carlos I, S/nº ==> Cafetería Final Faro (actualmente PASSEIG REMOR)
1137                           C/ Marina Real Juan Carlos I, S/nº (actualmente PASSEIG REMOR)
1218                           C/ Marina Real Juan Carlos I, S/nº (actualmente PASSEIG REMOR)
1277 C/ Marina Real Juan Carlos I, S/nº==> Disc. " Marina Beach " (actualmente PASSEIG REMOR)
1293        Club Náutico Valencia ==> C/ Moll de Ponent, s/n ==> Escuela de Vela RCN Valencia
1367      C/ Marina Real Juan Carlos I, S/nº==> Rest. " Panorama" (actualmente PASSEIG REMOR)
1511                           C/ Marina Real Juan Carlos I, S/nº (actualmente PASSEIG REMOR)
1541                                                 Pso. De la Calma, S/nº Rte. " Albacora "
1579      C/ Marina Real Juan Carlos I, S/nº==> Rest. " Panorama" (actualmente PASSEIG REMOR)
1592                                     Av. de las Ferias, s/n ==> Feria Valencia ==> Pab. 5
1751                                                                         Av. Del Cid, 111
1972       C/ Marina Real Juan Carlos I, S/nº ==> Zona Pescadores (actualmente PASSEIG REMOR)
2144                                                                C/ Arquitecto Gilabert, 9
2158 C/ Marina Real Juan Carlos I, S/nº ==> Junto a la Gasolinera (actualmente PASSEIG REMOR)
2209                                                                   C/ Moll de Ponent, s/n
2445 C/ Marina Real Juan Carlos I, S/nº ==> Disc. " Marina Beach" (actualmente PASSEIG REMOR)
2540         Núcleo Benifaraig ==> C/ L'Alquería de Chilet, 14 ==> C.P. Manuel González Martí
2566                                     Av. de las Ferias, s/n ==> Feria Valencia ==> Pab. 8

Filtramos las observaciones en el puerto

contenedores_fuera_puerto <- puntos_anomalos %>%
  filter(!distrito %in% c("11-POBLATS MARÍTIMS", "19-POBLES DEL SUD"))

Limpiamos los datos

datos_cont_limpio <- datos_cont %>%
  filter(!objectid %in% contenedores_fuera_puerto$objectid)

Output

Se ha obtenido el siguiente resultado

datos_cont_limpio %>%
  leaflet() %>%
  addProviderTiles("CartoDB.Positron") %>%
    addCircles(color = "#66A182")



Proyectos de Innovación Educativa Emergente PIEE-2737007 y PIEE-3325394