Open Source & SIG

mardi 27 novembre 2007

Geocodage en ligne

Qu'est ce que le géocodage?

Le géocodage est l'opération qui consiste à analyser les adresses postales d'une base de données pour en déduire la localisation géographique des informations. Les adresses sont confrontées à une base de données cartographique contenant la liste des rues des différentes communes, ainsi que leur géométrie. En cas de correspondance, l'adresse peut être corrigée des fautes d'orthographe, et située sur un segment de rue, avec prise en compte du côté de la rue. On peut également en déduire des informations d'appartenance géographique, comme le code INSEE de la commune, ou le code IRIS dans lequel est situé l'adresse. Le géocodeur est le logiciel qui effectue le géocodage. Source Geoconcept.com

Le but de ce mémo est d'évaluer les géocodeurs en ligne basés sur les API Yahoo et Google face à un logiciel bureautique du commerce, celui de Géoconcept.

Lire ici la présentation commerciale de ce logiciel.

Ce benchmark est réalisé fin octobre 2007. Sont testés:

  • http://www.batchgeocodeur.mapjmz.com, basé sur l'API Google

  • http://www.batchgeocode.com basé sur l'API Yahoo

  • Universal Geocoder de Géoconcept (alimenté par la table Navteq TableRef_France_Q106_V6 01/01/2006)

Condition du test

Les 3 outils seront utilisés pour géocoder 100 adresses dispersées sur la France entière. Les adresses sont celles de sites situés dans des villes de toutes tailles et de sites situés en milieu rural. Le mémo portera sur la méthode de géocodage (préparation des fichiers), le temps nécessaire à l'application pour obtenir le résultat et enfin l'analyse des résultats. Le fichier d'adresses est un fichier excel. Les adresses sont divisées en 4 champs:

  • Adresse (25 rue de Chartres)

  • Code Postal (28800)

  • Ville (Bonneval)

  • Pays

A partir des pages jaunes, nous avons récupéré:

  • des adresses sur PARIS centre

  • des adresses sur Region parisienne y compris la Defense

  • des adresses sur Lyon, Marseille, Bordeaux, Toulouse

  • des adresses sur Lille Roubaix

  • des adresses sur des villes moyennes

  • des adresses sur des villes de -5000 habitants

  • des adresses sur le Cantal et l'Ariège

Géocodage Géoconcept

a) Préparation des données

Le géocodeur Géoconcept travaille à partir d'une BD Access pour des raisons pratiques. Il y a donc un temps de préparation nécessaire afin de convertir le fichier. Nous rajoutons les colonnes suivantes: X, Y, Note et Type de Géocodage. Les champs Adresse trouvée, Cp trouvé, Ville trouvée permettront de qualifier le résultat obtenu. Des trois solutions, c'est celle qui a l'étape de préparation la plus longue.

b) Géocodage

Le géocodeur Géoconcept utilise une base géographique Navteq datant de début 2006. Ce logiciel se veut facile d'accès. Chaque géocodage nécessite 8 étapes. La méthode est la suivante: géocodage au numéro dans la rue avec une note de ressemblance de 20/20, lors de l'appariement, l'adresse proposée au géocodage est trouvée telle quelle dans la base Navteq. Nous faisons ensuite un tour de géocodage avec une note de 19/20 pour les adresses non trouvées et enfin un dernier tour avec une note de 18/20. Les adresses résiduelles seront géocodées à la commune. Nous récupérons en sortie les coordonnées X Y. Nous passons la table Access au format shape puis au format KML.

Parmi les 3 solutions Géoconcept est la seule qui permette un géocodage interactif.

c) Analyse des Résultats

Géocodage Yahoo

a) Préparation des données

La page Yahoo est ici. Il suffit de copier coller le fichier des adresses dans le formulaire (étape 2). En cas de difficulté, penser à supprimer les espaces présents à la fin du dernier enregistrement.

b) Géocodage

La procédure est décrite de manière claire et nécessite 6 étapes.

c) Analyse des Résultats

Le géocodage de nos sites prend plusieurs minutes. Nous récupérons au choix un fichier KML (intégrable dans une carte Google) ou un fichier txt (intégrable dans tout SIG ou BD). Les X Y sont exprimés en WGS84. La plus grosse lacune de cette application est l'absence de renvoi des codes d'erreurs du géocodeur. Pas d'autre moyen de qualifier le géocodage qu'en vérifiant une à une les adresses sur un fond Yahoo. A noter que les adresses placées dans le Golfe de Guinée sont celles dont l'API n'a pas trouvé les X et Y...


Agrandir le plan

Géocodage Google

a) Préparation des données

Le fichier Excel peut être copié collé directement sous l'interface Web. Il n'est pas nécessaire de préparer les données (idem Yahoo).

b) Géocodage

La procédure est décrite de manière claire et nécessite aussi 6 étapes. Avant de lancer le géocodage, régler les différents champs d'adressage. Le géocodage de nos 140 sites prend plusieurs minutes. Nous récupérons au choix un fichier KML (intégrable dans une carte Google) ou un fichier txt (intégrable dans tout SIG ou BD). . Les X Y sont exprimés en WGS84. Prendre le temps de lire les notes de bas de page: [...]A la différence du batch Yahoo, le processus de géocodage ajoute diverse informations au tableau initial:

  • Lat: latitude du point trouvé, en degrés décimaux, système de coordonnées WGS84 - EPSG 4326 (0 si pas trouvée)

  • Lng: longitude du point trouvé, en degrés décimaux, système de coordonnées WGS84 - EPSG 4326 (0 si pas trouvée)

  • Accuracy: Pertinence du positionnement trouvé, (0 si rien trouvé) : 1 correspond à un géocodage au pays, 2 à la région, 3 à la sous-région, 4 correspond à un géocodage à la ville, 5 au code postal, 6 à la rue, 7 à l'intersection, 8 à l'adresse.

  • NbAdrReturned: nombre d'adresses correspondants à l'adresse recherchée

  • Error/Address: adresse renvoyée (ou message d'erreur si rien trouvé)

  • Code : code retourné par le Geocodeur Google© : 200:trouvé/500:erreur serveur/601:adresse manquante/602:adresse inconnue/603:adresse indisponible/610:clef API invalide

c) Analyse des Résultats


Agrandir le plan

Integration sous ArcGis

Récupérer le résultat du géocodage et le copier coller dans une feuille Excel. Les deux colonnes qui nous intéressent sont celle de la Latitude et celle de la Longitude exprimées en degrés décimaux. Par défaut la virgule est la virgule américaine. Il faut donc:

  • Rechercher remplacer le caractère . par , dans ces 2 colonnes

  • Passer les 2 colonnes au format numérique + 6 décimales (format cellule, nombre)

  • Enregistrer le fichier au format txt, dbase ou encore l'importer dans une base Access..

Repasser sous ArcGis. Dans une vue vide faire : Outils, Ajouter des données XY. La boite de dialogue suivante apparait:

Figure 1. Fenêtre ajouter des données XY.

Choisir la table comportant les XY issus du géocodage. Définir les champs qui contiennent les XY (figure 2).

Figure 2. Faire correspondre les champs X et Y avec les colonnes LONG et LAT fournies par le géocodeur.

Fixer le système de coordonnées (bouton sélection puis coordonnées géographiques, monde, GCS_WGS_1984)

Figure 3. Réglages des informations de projection.

Les données sont prêtes à être importées sous ArcGis.

Conclusion

Les interfaces utilisant les API Google et Yahoo ne permettent pas de géocoder de grosses quantités. Google limite l'utilisation de son API à 15000 géocodages par jour et par adresse IP, Yahoo à 5000 et toujours par IP. On ne peut donc imaginer géocoder un fichier de 400000 adresses via ces outils en ligne. Pour ce type de géocodage le géocodeur Géoconcept ou autre sera nécessaire.

Yahoo ou Google ne communiquent pas suffisament sur le réferentiel utilisé. Yahoo communiquant sur un fond plus adapté que les données Tiger de son concurrent et affirmant utiliser un fond très répandu dans l'industrie des transports... Difficile de faire plus opaque. On peut imaginer un changement de référentiel au gré de la volonté de ces sociétés.

Lire ici une réflexion sur Google et les récents changements portés à l'utilisation de son géocodeur.

En revanche pour des géocodages ponctuels (inf 5000), ces outils sont adaptés. Cette étude demontre que Google s'avère le plus performant. On peut écarter la solution Yahoo car elle ne permet pas de qualifier le géocodage obtenu et est en plus moins précise que l'API de Google.