Supermercados ALDI Comunidad Valenciana

SUPERMERCADOS
COMUNIDAD VALENCIANA
GPKG
OSM
Autor/a
Afiliación

Annie Rubio Coppillie

Universitat de València

Fecha de publicación

10 de mayo de 2024

Input

Esta ficha se centra en la dispersión de la cadena de supermercados ALDI en la Comunidad Valenciana. De origen alemán y fundada en 1961, en la actualidad cuenta con más de 10.000 establecimientos repartidos en 18 países.

Se ha obtenido el conjunto de datos espaciales de OpenStreetMaps. OSM es un proyecto colaborativo de creación de mapas que ofrece datos de acceso gratuito, disponibles bajo licencia abierta. La comunidad de OSM está compuesta por voluntarios que contribuyen a actualizar los mapas, lo cual supone una amplia cobertura de datos geográficos. No obstante, debido a este carácter colaborativo, los datos están continuamente actualizados. Esto puede significar que el número de tiendas haya cambiado desde la realización de este proyecto. Esta práctica busca depurar y ajustar los datos a la Comunidad Valenciana, sean las cifras que sean.

Descripción

En primer lugar, se cargan las librerías necesarias:

Seguidamente se crea el bounding box de la comunidad autónoma. La cartografía de esta región se ha obtenido del paquete mapSpain.

spain <- mapSpain::esp_get_prov(epsg="4326")
comval <- spain %>% filter(cpro %in% c("03","12", "46" ))

bbox_cv <- sf::st_bbox(comval)
bbox_cv
     xmin      ymin      xmax      ymax 
-1.528067 37.844130  0.689302 40.788267 

Se cargan los datos que cumplen con las cualidades de supermercado y ALDI.

p <- bbox_cv %>%
  osmdata::opq(timeout = 1000) %>%
  osmdata::add_osm_feature("name", "ALDI") %>%
  osmdata::add_osm_feature("shop", "supermarket")
aldi <- osmdata::osmdata_sf(p)
data <- aldi$osm_points
class(data)
[1] "sf"         "data.frame"
dim(data)
[1] 424  37

Nos encontramos en el momento de realización de este documento con un objeto sf de 37 variables y 423 observaciones. Nuevamente se advierte que esto es susceptible a cambios debido al carácter colaborativo de la organización OSM.

Se realiza una representación gráfica en leaflet:

data %>%
  leaflet::leaflet() %>%
  leaflet::addTiles() %>%
  leaflet::addCircles(color= "darkblue") %>%
  leaflet::addPolygons(data = comval, weight = 2, color = 'black')

Aquí se detecta que al menos un supermercado ALDI está fuera de los límites de la Comunidad Valenciana (España).

Tratamiento

Se han detectado qué observaciones (supermercados) están fuera de los límites de la Comunidad Valenciana. Como vemos a continuación, 86 observaciones tienen coordenadas fuera del territorio de la comunidad autónoma.

spain_ccaa <- mapSpain::esp_get_ccaa(epsg="4326")
ccaa <- spain_ccaa %>% filter(codauto %in% c("10"))

pts_out <- st_difference(data, ccaa) 
Warning: attribute variables are assumed to be spatially constant throughout
all geometries
pts_in <- st_intersection(data, ccaa)
Warning: attribute variables are assumed to be spatially constant throughout
all geometries
pts_out %>% 
  leaflet::leaflet() %>% 
  leaflet::addTiles() %>% 
  leaflet::addCircleMarkers(color = "darkblue", radius = 8) %>% 
  leaflet::addCircles() %>%
  leaflet::addPolylines(data = comval, weight = 2, color = "black")

Mediante este mapa se observa que los puntos fuera del alcance de la comunidad están en Murcia, Aragón y Cataluña. Se descartan, por tanto, estas coordenadas.

dim(pts_in)
[1] 338  58

Seguidamente, aún tenemos 337 observaciones. Contrastado con fuentes oficiales, se determina que esto no se refiere a la situación real. Por la naturaleza de OSM comentada anteriormente, varios voluntarios han registrado distintos puntos que realmente hacen referencia a un mismo supermercado. Para evitar esta inconsistencia, se realizan clústers. De esta forma, todos los puntos que se encuentran en gran proximidad se concentran en un solo punto, el centroide.

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

# calculo punto medio para cada cluster
aldi <- pts_in %>%
  group_by(cluster) %>%
  summarise(geometry = st_centroid(st_combine(geometry)))

leaflet() %>% 
  addProviderTiles("CartoDB.Positron") %>%
  addCircles(data = aldi, color ="darkblue")%>%
  addPolylines(data = comval, weight = 2, color = 'black')

Este último data frame contiene 67 tiendas.

aldi_count <- st_join(aldi, spain)
contador <- aldi_count %>%
  group_by(ine.prov.name) %>%
  summarise(num_aldi = n())

Output

Se ha obtenido por lo tanto un nuevo objeto con 67 observaciones. De ellas, podemos observar la siguiente distribución:

Provincia Número de supermercados ALDI
Alicante / Alacant 37
Castellón / Castelló 10
Valencia / València 20
limites_gva <- sf::st_buffer(comval, 25000) %>% sf::st_bbox()

ggplot() +
  geom_sf(data = spain, fill="#CEC1AD") +
  geom_sf(data = comval, fill="white") +
  geom_sf(data = aldi, alpha=0.5) +
  coord_sf(xlim = c(limites_gva["xmin"], limites_gva["xmax"]), 
           ylim = c(limites_gva["ymin"], limites_gva["ymax"])) +
  theme_minimal() +
  theme(axis.title = element_blank(),
        panel.background = element_rect(fill="lightblue"))

En la siguiente figura se puede observar que los puntos del nuevo dataset están dentro de los confines de la comunidad.

sf::st_write(aldi, "supermercados_aldi_comval.gpkg")

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



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