
Méthodologie adoptée
methodologie.Rmd
Hypothèses
Seules les adresses géolocalisées avec un niveau de précision « suffisant » sont mobilisées pour créer les approximations de contours de bureaux de vote.
-
Champ des communes « découpables » :
- celles avec au moins 2 bureaux de vote.
- celles ayant un nombre de « points » géolocalisés en leur sein supérieur à un seuil (avec un niveau de confiance acceptable dans la BAN).
Un contour de bureau de vote sera créé s’il existe un nombre minimal d’adresses associées à ce bureau de vote (toujours dans la base du REU).
Remarque : différentes adresses du REU peuvent être géolocalisées sur le même point géographique.
1. Nettoyage et préparation des inputs
- La fonction
prepare_address
:- Remplace les arrondissements communaux de Paris, Lyon et Marseille par le code commune de la ville entière (grâce à la fonction interne
rm_arrond
). - Ne conserve que les adresses …
- … dans des communes avec au moins 2 bureaux de vote (BV) d’après la base des adresses du REU (grâce à la fonction interne
fget_multiBV
). - … avec une bonne qualité de géolocalisation d’après la Base Adresse Nationale (BAN) (
housenumber
,interpolation
,locality
).
- … dans des communes avec au moins 2 bureaux de vote (BV) d’après la base des adresses du REU (grâce à la fonction interne
- Transforme les adresses en table
sf
avec le système de coordonnées WGS84. - Récupère les contours et la liste des communes susceptibles d’être découpées en contours de BV (à partir de la table des contours de communes en entrée de la fonction).
- Remplace les arrondissements communaux de Paris, Lyon et Marseille par le code commune de la ville entière (grâce à la fonction interne
Ainsi, en théorie, une grande commune dont les adresses sont géolocalisées de manière trop imprécise pourrait être exclue du champ.
La fonction renvoie des logs, c’est-à-dire enregistre l’historique du bon déroulé des différentes fonctions. Pour enregistrer ces logs localement, il faut entrer un chemin dans le paramètre path_log
.
2. Découpage d’une commune en contours de bureaux de vote
La fonction create_contours
vise à partionner une ville cible en contours approximés de bureaux de vote. La ville cible est désignée par son code officiel géographique ou « code Insee ». create_contours
utilise la liste des adresses et les contours communaux produits par prepare_address
.
Étape 1 : Vérifications et préparations
- Suppression des points de la base REU en dehors du contour géographique de la commune (des effets de bord peuvent exister entre les différentes sources).
- Vérification que la commune cible possède au moins min_points_com points (grâce à la fonction interne
valid_for_contours
). Autrement, la fonction renvoieNULL
. - Vérification que chaque bureau de vote (BV) de la commune est composé d’au moins min_address_bv adresses.
- Si ce n’est pas le cas, les adresses associées à ce BV sont retirées du champ et la commune sera découpée sans prise en compte de l’existence de ce BV.
Étape 2 : Partitionnement de la commune en contours de bureaux de vote
- Partition de la commune en polygones de Voronoï à partir du nuage de points géolocalisés (grâce à la fonction interne
voronoi_com
) - Association d’un bureau de vote (BV) à chaque Voronoï (grâce à la fonction interne
decouplage_ptsBv
) :- Des hypothèses sont nécessaires quand on trouve plusieurs adresses sur un même point géographique, et que ces adresses sont reliées à plusieurs BV différents : on considère par ordre de priorité le nombre d’adresses associées à chaque BV, puis la qualité de géolocalisation de ces adresses.
- On regroupe géographiquement (union) les polygones de Voronoï par bureau de vote.
Une première version de contours « bruts » est ainsi construite.
Étape 3 : Simplification/correction a posteriori des contours
L’idée est de supprimer les éventuels « confettis » de contours, essentiellement dus à des imprécisions de géolocalisation. La fonction interne shoot_isolated
est ici mobilisée.
- Les contours des bureaux de votes n’étant pas nécessairement contigus, on transforme le zonage en polygones contigus (grâce à la fonction interne
st_cast_bis
) - Ces polygones étant, par construction, des juxtapositions de polygones de Voronoï, on recherche les polygones composés de moins de min_address_shoot polygones de Voronoï (et donc de moins de
min_address_shoot
points géographiques). Cette opération est réalisée à l’aide de la fonction internecount_voro
. - Pour un petit polygone candidat, on modifie le code de BV auquel il est associé :
- Si ce polygone n’est pas isolé (s’il touche d’autres polygones associés à l’autres BV)
- Si au moins un de ses voisins est suffisamment gros (composé de plus de
min_address_shoot
points géographiques). - Si ces conditions sont réunies, on choisit comme nouveau code BV celui du plus gros voisin.
- Enfin, on fusionne les polygones en fonction de leurs éventuels nouveaux codes BV.
On reforme ainsi une partion de la commune en contours de BV expurgés des « confettis » traîtés.
La fonction create_contours
renvoie la partition brute et la partition simplifiée de la commune.
Comment précedemment, create_contours
renvoie des logs, qui peuvent être enregistrés localement grâce au paramètre path_log
.
3. Visualisation dynamique des contours créés
La package mapvotr
met à disposition de l’utilisateur une fonction de visualisation des contours produits aux étapes précédentes, permettant notamment d’en contrôler la qualité.
La fonction map_contours
permet ainsi de visualiser conjointement dans la commune cible sur des fonds de cartes dynamiques :
- les contours produits (bruts ou simplifiés) ;
- Les adresses géolocalisées du REU (à afficher selon le besoin en cochant l’affichage dans les options)
Pour plus de détails, voir la vignette de prise en main du package.