BANGeocoder sept fois plus rapide en mode masse


Publié le 22 mars 2018
Temps de lecture estimé : 2 minutes (453 mots)

Mots-clés associés :Catégories associées :

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 :

Projet FME

  1. Lecture du CSV
  2. Filtrage des enregistrements lorsque NUVOIEOU, TYVOIEOU et NOVOIEOU sont vides
  3. Concaténation des champs NUVOIEOU, TYVOIEOU et NOVOIEOU pour créer l’adresse (séparateur espace)
  4. Suppression des éventuels espaces en trop générés par la concaténation (par exemple lorsque TYVOIEOU est vide)
  5. Ajout d’un 0 à gauche pour les codes postaux sur 4 caractères (par exemple 2168 devient 02168)
  6. 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 :

Résultat

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 !).