El conjunto de datos que vamos a analizar contiene la ubicación de todas las tiendas de Zara en España. Esta información ha sido obtenida a partir de OpenStreetMap (OSM).
OSM es una plataforma colaborativa de acceso público que proporciona datos geoespaciales organizados en diferentes categorías, desde ríos y montañas hasta edificaciones y establecimientos comerciales.
A continuación, se presentan algunos detalles relevantes sobre OSM:
• Fecha de creación: Julio de 2004.
• Licencia de uso: Los datos de OSM están bajo la licencia Open Database License (ODbL), la cual permite su uso y distribución bajo ciertas condiciones, como el reconocimiento de la fuente y la posibilidad de compartir modificaciones realizadas.
• Métodos de extracción de datos: Existen diversas formas de obtener información de OSM, como la descarga directa desde su sitio web, el uso de herramientas de exportación en línea o programas como RStudio.
• Formatos: Los datos de OpenStreetMap pueden encontrarse en distintos formatos, incluyendo GeoJSON, Shapefile, KML y CSV.
Descripción
En lugar de descargar los datos directamente desde la web de OSM, los extraeremos utilizando R mediante una serie de comandos. Para optimizar el proceso, filtraremos la información según etiquetas específicas, donde cada etiqueta representa una categoría diferente. En la web de OSM se pueden consultar todas las etiquetas disponibles en el siguiente enlace:
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\RtmpSCXgL2\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
Vamos a empezar creando una especie de caja que contendrá las coordenadas de España. Estas coordenadas estarán organizadas en un orden específico: primero el Oeste, luego el Sur, después el Este y finalmente el Norte. Esta caja servirá para delimitar el área geográfica de nuestro análisis. Una vez tengamos definida esta caja, vamos a crear un objeto utilizando la librería osmdata, que nos permitirá extraer los datos de los restaurantes dentro de esa área geográfica.
Para filtrar la información y asegurarnos de que obtenemos los datos que realmente nos interesan, añadiremos dos etiquetas específicas: “shop” y “clothes”, que están documentadas en la web de OSM. Esto nos ayudará a centrarnos solo en las tiendas Además, si queremos afinar aún más la búsqueda, podemos incluir el nombre específico de la tienda, lo que nos permitirá localizar exactamente lo que buscamos.
Una vez que hayamos creado este objeto, que en mi caso llamé q1, lo transformamos en un objeto del tipo sf (simple features), lo que nos permitirá manejarlo de forma más sencilla y representar la información geográfica de manera más eficiente.
Como podemos observar, hemos obtenido un objeto sf con 447 observaciones y 69 variables.
Ahora procedemos a realizar la representación gráfica.
library(leaflet)zara_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
En el gráfico observamos que, en lugar de obtener solo las ubicaciones de las tiendas en España, también han aparecido resultados de Francia y Portugal. Esto no es lo que buscábamos, así que vamos a solucionarlo. Ajustaremos los parámetros necesarios para asegurarnos de que solo se muestren las tiendas dentro de España, excluyendo cualquier otra ubicación.
Warning: attribute variables are assumed to be spatially constant throughout
all geometries
Tratamiento
Para solucionar este problema y asegurarnos de obtener solo las ubicaciones de las tiendas Zara en España, vamos a crear un objeto llamado “spain_ccaa” con los datos y coordenadas específicas de cada Comunidad Autónoma. Esto lo haremos utilizando la librería “MapSpain”. Después, realizamos una intersección entre los datos iniciales y este nuevo objeto “spain_ccaa” para eliminar las tiendas Zara que se encuentran fuera de España.
Una vez ya hemos hecho la intersección ya vemos que se han reducido el número de observaciones. Antes encontrabamos 447 y ahora obtenemos 247. Vamos a proceder a volver a graficar con este resultado.
Al buscar por internet, he encontrado que hay prácticamente el mismo número de tiendas Zara que los resultados obtenidos, aunque el número es un poco más bajo. Sin embargo, creo que nuestros datos están actualizados, ya que al comprobar las tiendas de Zara en mi ciudad (Zaragoza), he notado que aquellas que cerraron hace poco no eaparecen en el gráfico. En concreto, una tienda que cerró hace poco más de un año no aparece en los resultados. Esto sugiere que los datos de OSM están bastante actualizados, mientras que los datos que encontré en internet pueden ser más generales y estar menos actualizados.
Output
En resumen, hemos logrado extraer y filtrar de manera efectiva los datos de las tiendas Zara en España utilizando OSM. A lo largo del proceso, hemos solucionado diversos inconvenientes, como la aparición de ubicaciones fuera de España, y hemos confirmado que los datos de OSM están actualizados y son bastante precisos. La intersección entre los datos obtenidos y las coordenadas de las comunidades autónomas nos ha permitido obtener una representación fiable de las tiendas dentro del territorio español. Gracias a estos ajustes, podemos concluir que no es necesario aplicar técnicas adicionales como el clustering, ya que los datos obtenidos no presentan duplicados ni inconsistencias. De esta forma, hemos conseguido un análisis preciso y eficiente para nuestro objetivo. A continuación, procedemos a guardar los datos en un fichero tipo “GDPKG”