Inspiré du travail de SK53[1] j’ai ressorti les couverts et me suis relancé sur R (Un langage de programmation destiné au traitement de données). L’occasion d’à la fois me dérouiller un peu, de voir les interactions entre les communautés R et OpenStreetMap, et d’apprendre à jouer avec des données spatiales. Le code est fonctionnel mais nécessite encore un peu de peaufinage[2].
R n’est pas fourni par défaut sur ma distribution, ce qui a donc nécessité les bricoles d’usage pour l’installer avec l’interface RStudio – À défaut d’alternatives. Je ferai abstraction des installations de paquets nécessaires pour les librairies R par la suite (De tête il y en a eu pour pas moins de 2 Go).
En route
J’avais comme point de départ l’entrée de journal très succincte, ainsi qu’un morceau de code partagé sur le Fediverse :
qplot(x=area,data=ten,
geom="histogram",binwidth=25)
+aes(y=cumsum(
after_stat(count))
)
+labs(x="area of pitch",
y="count", title="Area of Tennis Courts in Great Britain on OSM")
+scale_x_continuous(
breaks=seq(0,2500,250),
limits=c(0,2500)
)
Bien qu’utilisant une syntaxe qui ne me sied guère le code semble relativement propre – Spoiler, je ne l’utiliserai finalement pas –, reste à savoir comment générer le jeu de données : je n’ai pas trouvé d’explication sur le passage d’une requête Overpass vers le calcul de surfaces. Ni le nettoyage des données au passage, je suppose qu’il y a aussi bien des nœuds, que des polygones, que – sigh – des multipolygones.
Spatial R : Comme le Spécial K™ mais avec plus que des lignes
J’utilise les paquets suivants :
- dplyr : Manipulation de données générale ;
- osmdata, sf, et units : Géographie ;
- ggplot2 : Standard pour les graphiques.
Overpass dans R
En lieu et place d’un jeu de donnée externe, osmdata permet de directement faire une requête Overpass. Je l’utilise pour rechercher les chemins (ouverts ou fermés) qui portent les attributs leisure = pitch
et sport = tennis
.