Temps de lecture estimé : 2 minutes (453 mots)
Mots-clés associés : Catégories associées :
Sommaire
Dans cet article nous testons le transformer FME BANGeocoder créé par Geonov.
BANGeocoder
BANGeocoder est un transformer personnalisé FME créé par Geonov et disponible gratuitement.
Il permet de géocoder dans FME des adresses à partir de l’API de la Base Adresse Nationale (BAN).
L’originalité de ce transformer est qu’il permet de géocoder des adresses en masse à l’aide d’une seule requête ce qui permet d’améliorer drastiquement les performances, comme nous allons le voir dans cet article.
Cas pratique
Nous allons tester ce nouveau transformer de Geonov pour géocoder les “foyers jeunes travailleurs percevant une prestation de service Caf”, données disponibles en Licence Ouverte sur la plate-forme OpenData.
Les données
Les données se présentent sous la forme d’un simple fichier CSV dont voici un extrait :
NUMORG;NOMEQU;NUVOIEOU;TYVOIEOU;NOVOIEOU;COADREOU;LIDITEOU;NUCOMEOU;COPOSEOU;NOCOMEOU;ACTEQU;
11;RESIDENCE LES 3 SAULES BOURG;;;;;;1053;1000;BOURG-EN-BRESSE;Foyer Jeunes Travailleurs;
28;FJT Le Rivage Château-Thierry;58 bis;Avenue;d'Essômes;;;2168;2400;CHATEAU THIERRY;Foyer Jeunes Travailleurs;
28;FJT Rés. du Bailly Chauny;1;Rue;du 1er Mai;;;2173;2300;CHAUNY;Foyer Jeunes Travailleurs;
Les champs qui vont nous être utiles pour le géocodage sont les suivants :
- NUVOIEOU : Numéro de la voie
- TYVOIEOU : Type de voie
- NOVOIEOU : Nom de la voie
- COPOSEOU : Code postal
Traitement FME
Le projet FME pour traiter ces données est simple :
- Lecture du CSV
- Filtrage des enregistrements lorsque NUVOIEOU, TYVOIEOU et NOVOIEOU sont vides
- Concaténation des champs NUVOIEOU, TYVOIEOU et NOVOIEOU pour créer l’adresse (séparateur espace)
- Suppression des éventuels espaces en trop générés par la concaténation (par exemple lorsque TYVOIEOU est vide)
- Ajout d’un 0 à gauche pour les codes postaux sur 4 caractères (par exemple 2168 devient 02168)
- Géocodage avec BANGeocoder
Résultats
Mode Unitaire
En mode Unitaire, BANGeocoder envoie une requête au serveur de la BAN pour chaque adresse à géocoder. Avec 473 adresses à géocoder, cela fera donc 473 requêtes. Dans ce mode, le traitement met 25,8 secondes.
On constate également que le géocodage échoue pour 20 adresses (20 entités rejetées).
Mode En masse
En mode En masse, BANGeocoder envoie une seule requête au serveur de la BAN pour l’ensemble des adresses à géocoder. Avec 473 adresses à géocoder, cela fera donc 1 seule requête. Dans ce mode, le traitement met 3,8 secondes c’est donc 7 fois plus rapide qu’avec le mode précédent !
On constate également que le géocodage échoue pour 20 adresses (20 entités rejetées) (avec la version 2 datée du 22/03/2018 de BANGeocoder).
Création des points
Pour générer les points, il suffit d’ajouter un VertexCreator à la fin du traitement et de spécifier leur projection avec un CoordinateSystemSetter :
Conclusion
BANGeocoder permet de géocoder efficacement de nombreuses adresses via l’API de la BAN.
Son mode “En masse” offre de très bonnes performances par rapport aux autres transformers FME de géocodage disponibles sur le marché (7 fois plus rapide dans cet exemple !).