Distribución de tiendas Zara en España

COMERCIO
MODA
ESPAÑA
GPKG
Autor/a
Afiliación

Mar Rodrigo Ibáñez

Universitat de València

Fecha de publicación

10 de mayo de 2024

Input

Obtenemos el conjunto de datos geoespaciales acerca de las tiendas Zara en España mediante OpenStreetMap (OSM), un proyecto colaborativo para crear un mapa libre y editable del mundo, el cual permite a los usuarios visualizar, editar y utilizar datos geográficos de cualquier parte del globo.Podemos ver toda la información accediendo a la wiki de OSM.

A continuación se muestran otras informaciones de interés:
· Licencia de uso:Los datos obtenidos de OSM están sujetos a la Open Database License (ODbL), que permite el uso y distribución de los datos con ciertas condiciones, como el reconocimiento de la fuente y la compartición de las modificaciones realizadas.

· Formatos: Los conjuntos de datos de OpenStreetMap (OSM) puenden estar disponibles en varios formatos, según el método que utilices para extraer los datos (GeoJSON, Shapefile, KML, CSV, etc…)

Descripcion

Cargamos las librerías necesarias

Utilizamos la librería osmdata para importar datos de OpenStreetMaps Leemos el conjunto de datos, construyendo nuestro propio cuadro delimitador de España.

bbox_spain <- c(-10, 30, 5, 46)
data <- bbox_spain %>%
  osmdata::opq(timeout = 1000) %>%
  osmdata::add_osm_feature("name", "Zara") %>%
  osmdata::add_osm_feature("shop", "clothes")
zara <- osmdata_sf(data)
zara_sf <- zara$osm_points

Se trata de un objeto sf con 482 observaciones y 82 variables:

class(zara_sf)
[1] "sf"         "data.frame"
dim(zara_sf)
[1] 510  82

Lo representamos gráficamente con leaflet:

zara_sf %>%
  leaflet::leaflet() %>%
  leaflet::addTiles() %>%
  leaflet::addCircles()

Tratamiento

Se ha detectado que observaciones (puntos), se encuentran fuera de los límites de España.Para ello realizamos una intersección con un conjunto de datos geoespaciales que representa las comunidades autónomas de España en el sistema de coordenadas EPSG:4326 (WGS84), que resuelve este problema:

spain_ccaa <- mapSpain::esp_get_ccaa(epsg="4326")
spain2 <- spain_ccaa %>% group_by(codauto) %>% summarise()
zara_sf2 <- st_intersection(zara_sf,spain2)

Lo representamos gráficamente con leaflet:

zara_sf2 %>%
  leaflet::leaflet() %>%
  leaflet::addTiles() %>%
  leaflet::addCircles()

Sin embargo, como podemos observar si ampliamos el mapa (por ejemplo, en el centro de Madrid), debido a ciertos errores, en algunas zonas geográficas nos duplica o incluso triplica la existencia de una misma tienda Zara. Para paliar este error utilizamos el siguiente comando, realizando así un cluster.

library(dbscan)
coords <- sf::st_coordinates(zara_sf2)
res <- dbscan(coords, eps = 0.001, minPts = 1) 
zara_sf2$cluster <- data.frame(res$cluster)

zara_final <- zara_sf2 %>%
  group_by(cluster) %>%
  summarise(geometry = st_centroid(st_combine(geometry)))

zara_final <- st_join(zara_sf2, zara_final)

Cabe recalcar utilizamos el epsilon (eps) = 0.001 ya que, equivale a una distancia de aproximadamente 110 metros, una distancia pequeña, lo que permite identificar grupos de tiendas Zara que están muy cerca unas de otras y, por lo tanto, duplicadas.

Output

Hemos obtenido un nuevo objeto sf, con 213 observaciones y 85 variables:

class(zara_final)
[1] "sf"         "data.frame"
dim(zara_final)
[1] 241  85

Observamos a continuación que ahora todos los puntos están dentro de los límites de España y, también, no existen duplicados.

zara_final %>%
  leaflet::leaflet() %>%
  leaflet::addTiles() %>%
  leaflet::addCircles()

El fichero generado con el procedimiento descrito anteriormente se puede descargar, en formato GeoPackage (gpkg), de aquí.

sf::st_write(zara_final, "Zara.gpkg", delete_dsn = TRUE)



Proyecto de Innovación Educativa Emergente (PIEE-2737007)