La información que vamos a analizar incluye la localización de todas las gasolineras Repsol presentes en España. Esta información se ha obtenido de OpenStreetMaps (OSM).
A continuación se presenta otro detalle de interés acerca de OSM:
Descripción
En vez de exportar directamente los datos del sitio web, los extraeremos en R a través de una serie de comandos. Para facilitar proceso, filtraremos los datos de OSM a partir de unas etiquetas. Cada etiqueta representa una temática distinta.
Installing package into 'C:/Users/scorp/AppData/Local/R/win-library/4.4'
(as 'lib' is unspecified)
package 'dbscan' successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\scorp\AppData\Local\Temp\RtmpMrq33d\downloaded_packages
── 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
Como podemos observar, hemos obtenido un objeto sf con 10321 observaciones y 144 variables.
Ahora procedemos a realizar la representación gráfica.
library(leaflet)repsol_sf%>%leaflet()%>%addTiles()%>%addPolygons(data =Spain, color ="gray", weight =1, opacity =0.5, fillOpacity =0.1)%>%# Mapa de EspañaaddCircles( lng =~st_coordinates(geometry)[, 1], # Coordenada X (longitud) lat =~st_coordinates(geometry)[, 2], # Coordenada Y (latitud) radius =6, # Tamaño del círculo color ="blue", # Color del borde fillColor ="blue", # Color de relleno fillOpacity =0.5, # Opacidad del relleno stroke =TRUE, # Mostrar borde weight =1, # Grosor del borde popup =~paste("<b>Repsol</b><br>", "Ubicación: ", name)# Pop-up con el nombre de la ubicación)%>%setView(lng =mean(bbox_spain[c("xmin", "xmax")]), lat =mean(bbox_spain[c("ymin", "ymax")]), zoom =6)# Centrado en España
Como podemos observar, tambien nos pone las Repsol que hay en Portugal y eso no lo queremos, por lo que vamos a realizar una serie de procedimientos para conseguir que salgan solo las que están dentro del territorio nacional español.
Tratamiento
Como hemos comentado anteriormente es importante considerar que, con las coordenadas que hemos establecido para España, también aparecen puntos para Portugal. Para solucionar este problema y mantenernos exclusivos con las Repsol de España, estableceremos un objeto llamado “spain_ccaa” con los datos y coordenadas particulares de cada Comunidad Autónoma. Lo realizamos utilizando la librería “MapSpain”.
Después de esto, se realiza una intersección entre la información previa y este nuevo objeto “spain_ccaa” para eliminar aquellas Repsol que no se encuentren en España.
Parece que ya está todo correcto, pero si investigamos un poco nos daremos cuenta de que en España hay alrededor de 3200 estaciones de servicio Repsol, por lo que, ¿porque nos aparece que hayan más de 9000? ¿como es posible?
Esto podría ser resultado de que hay datos duplicados. Es posible que varios usuarios efectúen modificaciones/exportaciones de datos en la misma zona sin estar al tanto de las aportaciones de los demás, lo que podría derivar en datos duplicados.
También, nos hemos dado cuenta de que en cada gasolinera o cada punto donde hay una gasolinera Repsol hay, en la mayoría de sitios, 4 puntos. Lo que también nos da una pequeña explicación de la duplicación de datos.
Para poder darle solución a este problema, vamos a relizar clusters que unifiquen aquellas observaciones que se encuentren muy juntas.
Vamos a usar un valor épsilon de 0.00025, lo que más o menos equivaldría a unos 30 metros de distancia.
Installing package into 'C:/Users/scorp/AppData/Local/R/win-library/4.4'
(as 'lib' is unspecified)
package 'dbscan' successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\scorp\AppData\Local\Temp\RtmpMrq33d\downloaded_packages
Una vez realizado todo estos procedimientos, nos damos cuenta que el df ha reducido considerablemente su tamaño, observamos que ha pasado de 10321 observaciones al principio del trabajo a 3223 observaciones ahora, lo que tiene mucho más sentido ya que en la página web de Repsol nos dicen que hay más de 3200 gasolineras por España.
Una vez obtenido todo esto, volvemos a graficar para obtener el gráfico definitivo.