#> Data (c) OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright
library(sf)com <-st_read("data/lot.gpkg", layer ="communes", quiet =TRUE)# Sélection de la commune de Cahorscahors <- com[com$INSEE_COM =="46042", ]# Définition d'une bounding boxq <-opq(bbox =st_bbox(st_transform(cahors, 4326)))# Extraction des restaurantsreq <-add_osm_feature(opq = q, key ='amenity', value ="restaurant")res <-osmdata_sf(req)# Réduction du resultats :# les points composant les polygones sont supprimésres <-unique_osmdata(res)
Le résultat contient une couche de points et une couche de polygones. Cela signifie que certains restaurants (la très grande majorité) sont enregistrés sous forme de points dans OSM et d’autres sous forme de polygones. Pour obtenir une couche de points cohérente nous pouvons utiliser les centroïdes des polygones.
resto_point <- res$osm_points# extraire les centroïdes des polygonesresto_poly_point <-st_centroid(res$osm_polygons)
#> Warning: st_centroid assumes attributes are constant over geometries
# identifier les champs en communchps <-intersect(names(resto_point), names(resto_poly_point))# Union des deux couchesresto <-rbind(resto_point[, chps], resto_poly_point[, chps])
Le package osmextract(Gilardi et Lovelace, 2023) permet d’extraire des données depuis une base de données OSM directement. Ce package permet de travailler en local sur des volumes de données très importants et ainsi d’éviter de surcharger un serveur Overpass turbo.
La fonction oe_get() permet de télécharger un extrait de la base de données OSM sur une zone particulière et de sélectionner un type d’objet à importer.
L’argument place correspond au nom du fichier *.pbf accessible sur le site Geofabrik. L’argument extra_tag permet de sélectionner les objets de la base OSM correspondant à une clef particulière (se référer à la documentation d’OSM pour choisir les clefs).
Nous nous intéressons ici à l’ensemble des équipements (clef amenity) enregistrés dans la base OSM sous forme de points en Andorre.
library(osmextract)
#> Data (c) OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright.
#> Check the package website, https://docs.ropensci.org/osmextract/, for more details.
Mark Padgham, Bob Rudis, Robin Lovelace et Maëlle Salmon. (2017). osmdata. Journal of Open Source Software, 2(14), 305. https://doi.org/10.21105/joss.00305