Données séparées
Le package phacochr
a la particularité de ne pas
contenir directement les données nécessaires au géocodage. C’est la
raison pour laquelle il faut lancer la fonction
phaco_setup_data()
après l’installation du package pour que
les fonctions du package puissent fonctionner :
# Charger phacochr
library(phacochr)
# Installer les données nécessaires à phacochr
phaco_setup_data()
La fonction phaco_setup_data()
télécharge les fichiers
nécessaires (90Mo), qui sont alors décompressés et stockés de manière
permanente dans un répertoire de travail sur l’ordinateur. Une fois
décompressés, ces fichiers occupent une place de 265Mo sur le disque
dur. Le chemin du répertoire dépend du système d’exploitation ; il est
renseigné par la fonction lors de l’installation. Pour Windows, ce
chemin est C:\Users\USERNAME\AppData\Local\phacochr
. Voici
en résumé ce que contiennent ces fichiers. L’utilisateur/trice peut
consulter le répertoire d’installation pour prendre connaissance plus
précisément de leur contenu. Attention : ces fichier ne peuvent
pas être modifiés !
Type de données | Descriptif | Taille |
---|---|---|
Données BeST | Les rues BeST Address et leurs coordonnées par numéro issues des données régionales Urbis (Région de Bruxelles-Capitale), CRAB (Région flamande) et ICAR (Région wallonne). | 140Mo |
Données vectorielles Statbel et Urbis | Des données vectorielles des secteurs statistiques Statbel et des quartiers du monitoring Urbis permettant d’une part d’ajouter des informations administratives au géocodage (secteurs statistiques, quartiers du monitoring de Bruxelles, (sous-)communes…), d’autre part de fournir les limites spatiales pour pouvoir produire des cartographies des données géocodées. | 110Mo |
Données de prénom Statbel | Une liste de tous les prénoms en Belgique, permettant de recoder les rues BeST contenant des prénoms pour créer des alias avec prénom abrégé (les rues étant usuellement écrites de cette manière). | 8Mo |
Tables de conversion | Des tables de conversion nécessaires au processus de géocodage pour lier les différentes données. Il s’agit de tables permettant de passer du code postal à la commune, l’arrondissement ou la région, du secteur statistique au quartier du monitoring de Bruxelles, d’une table faisant la liste des communes adjacentes pour chaque commune, etc. | 5Mo |
Le fait que les données ne soient pas intégrées a deux avantages :
- Il permettra de soumettre notre package au dépôt CRAN, la taille des packages acceptés étant limitée.
- Il donne à l’utilisateur/trice la possibilité de mettre à jour lui/elle-même les données. Nous développons cet élément dans le point suivant.
Mise à jour des données
Bien que phacochr
repose essentiellement sur les données
BeST, les données utilisées par le package ne sont pas directement
celles que l’on peut télécharger sur le site où elles sont mises à
disposition : https://opendata.bosa.be/. Les données BeST sur
lesquelles est construit phacochr
sont en effet
transformées dans le but d’ajouter des options au, et d’augmenter la
vitesse du géocodage.
Ces opérations sont réalisées par le package lui-même à travers la
fonction phaco_best_data_update()
. Voici quelques éléments
constituant les transformations opérées. L’utilisateur/trice peut
prendre connaissance de l’ensemble de ces transformations en consultant
le code
de la fonction phaco_best_data_update()
sur Github.
- La distinction de numéros de boite différents pour le même numéro de rue est supprimée. Par exemple, les numéros 52a et 52b sont tous deux ramenés au 52.
- Les rues sont doublées par langue, pour simplifier l’écriture du code de la fonction de géocodage. C’est notamment le cas pour Bruxelles, dont toutes les rues sont traduites en français et néérlandais. La même rue bruxelloise est sonc située sur deux lignes dans la base de données (une en fr, l’autre en nl).
- Les numéros de rue avec coordonnées manquantes sont supprimées. Ce problème de coordonnées manquantes concerne uniquement la Wallonie.
- Les coordonnées des milieux de rues sont calculées.
- Des alias des rues avec prénoms sont créés pour que celles-ci existent dans une version avec prénom abrégé (les rues étant usuellement écrites de cette manière).
- Des corrections orthographiques sont apportées aux données BeST. Le
formatage des adresses BEST n’est en effet pas toujours homogène :
celles-ci contiennent des précisions entre parenthèses, des abréviations
(Av. pour “Avenue”, St. pour “Saint”), etc. qui nuisent potentiellement
à la bonne détection des rues. Par défaut, des corrections sont donc
apportées. Par cohérence, la correction orthographique des données à
géocoder - dans la fonction
phaco_geocode()
- est également activée par défaut. Cette correction des données BeST est désactivable via l’argumentcorrection_REGEX = FALSE
de la fonctionphaco_best_data_update()
. - Les secteurs statistiques sont ajoutés aux données BeST à l’aide d’une jointure spatiale avec les données vectorielles de Statbel. C’est par le biais des secteurs statistiques que les autres informations administratives (quartiers du monitoring de Bruxelles, (sous-)communes…) sont ajoutées aux adresses géocodées en fin de géocodage. La table secteurs statistiques - quartiers du monitoring de Bruxelles est quant à elle réalisée via une jointure spatiale des centroïdes des secteurs statistiques Statbel aux géométries Urbis des quartiers du monitoring. De ce fait, les quartiers du monitoring épousent les limites spatiales des secteurs statistiques Statbel.
- Les fichiers BeST sont simplifiés au maximum afin d’augmenter la vitesse du géocodage. Les fichiers BeST originaux font 960Mo ; nous les avons réduits à 140Mo. Nous avons notamment diminué la précision des coordonnées au mètre pour diminuer la taille des fichiers.
- Les fichiers sont en outre scindés par arrondissement, afin de pouvoir charger uniquement les fichiers nécessaires lors du géocodage, réduisant significativement le temps de chargement pour géocoder les bases de données d’adresses ne couvrant pas tout le territoire belge.
La fonction phaco_best_data_update()
télécharge les
dernières données BeST sur le site officiel, les transforme, y intègre
les secteurs statistiques à partir des données vectorielles de Statbel
et sauvegarde le résultat dans le répertoire de travail de
phacochr
pour être utilisées lors du géocodage. En outre,
la fonction crée toutes les tables de conversion nécessaires au
géocodage. Toutes ces tables étant réalisées à la volée par la fonction,
elles sont modifiables très facilement (en cas de refonte des secteurs
statistiques, de changement des géométries, etc.).
Cette manière de faire a l’avantage majeur que l’utilisateur/trice peut réaliser lui/elle-même la mise à jour des données. Les données BeST sont en effet mises à jour de manière hebdomadaire, et il aurait été beaucoup trop contraignant pour nous de mettre le package à jour toutes les semaines pour suivre ce rythme. La fonction de mise à jour se lance simplement de cette façon :
La fonction détecte automatiquement si les données installées ont
plus d’une semaine, pour éviter de faire une mise à jour pour rien. Si
c’est bien le cas, elle procède alors aux téléchargements et calculs
nécessaires pour créer les données. Les opérations sont nombreuses et
peuvent prendre une dizaine de minutes pour être réalisées. L’avancement
des opérations est indiqué par différents messages successifs dans la
console. Les autres données (par exemple les données vectorielles
Statbel et Urbis) ne peuvent pas être mises à jour par l’utilisateur.
Leur mise à disposition n’étant pas faite à une URL fixe,
l’automatisation est moins facile. Cependant, leur actualisation étant
beaucoup moins fréquente, nous (les développeurs de
phacochr
) nous chargeons de les intégrer au package dès
qu’un changement se présentera.
Précision du géocodage
L’utilisateur/trice peut par ailleurs choisir le degré de précision
des coordonnées X-Y lors de cette mise à jour avec le paramètre
précision
(par défaut réglé sur "m"
- mètre).
Si l’utilisateur/trice veut changer le degré de précision alors que les
données ont moins d’une semaine, il/elle doit indiquer l’argument
force = TRUE
, forçant la mise à jour. Attention : augmenter
le degré de précision diminue la vitesse de géocodage. Les arguments
possibles de la fonction sont renseignés dans
le dictionnaire des fonctions.
phaco_best_data_update(precision = "cm",
force = TRUE)