jeudi 6 février 2014

Géocodage en série (batch geocoding) avec QGIS

Avoir un fichier d'adresses, et le transformer en couche de points géolocalisés, de façon semi-automatique ... vous en avez peut être rêvé ; QGIS l'a fait ! 

Ci-dessous la liste puis la carte des organismes que j'ai eus en formation ; et plus bas, les explications pour arriver à ce résultat, en quelques clics.





Étape 1 : Le fichier d'adresses

a) Créez, à partir de votre fichier d'adresses (par exemple un fichier Excel), un fichier de type ".csv". Dans mon cas je l'ai fait à partir du logiciel OpenOffice ;
b) "nettoyez" le fichier original, pour ne garder que les lignes et colonnes nécessaires à la localisation des points : dans mon cas, les colonnes conservées sont "ORGANISME" ; "ADRESSE" ; "CP_VILLE" ; "PAYS". Préciser le pays évite de se retrouver avec des points en Louisiane ou au Québec, puisque nombre de ville françaises ont leurs homonymes là-bas !
c) "enregistrez sous"  au format .csv (impérativement en UTF-8) ; pour cette raison, il faut proscrire les caractères spéciaux et les accents.


Etape 2 :  Extension "MMQGIS"

- Installez et activez l'extension "MMQGIS", qui permet le "géocodage en série" (l'extension interroge en fait les bases d'adresses de Google Map ou de Open Street Map). Il propose d'autres outils intéressants mais ce n'est pas le sujet ici.
- ouvrez l'outil "Geocode" dans le menu déroulant MMQGIS et inspirez vous de la fenêtre ci-dessous pour renseigner les différents champs :

- les adresses correctement localisées seront enregistrées sous forme d'une couche shp, dans le système de coordonnées de référence 4326 (c'est le WGS84, qu'utilisent notamment les GPS). 
- les adresses non localisées seront stockées dans un fichier notfound.csv

Étape 3 : utilisez la couche créée par géocodage dans votre propre SIG

-Il faudra penser à enregistrer cette nouvelle couche dans votre SCR habituel (le Lambert93, normalement).
- dans mon exemple, le fond utilisé est celui d'OpenStreetMap, auquel on accède très simplement à l'aide de l'extension "OpenLayerPlugin". 

Conclusions 

- l'outil exige quelques tâtonnements, mais une fois bien compris les principes généraux, quelle magie !
- il faut bien entendu que les adresses dont on dispose soient les plus complètes et précises possible, et il faut qu'il s'agisse d'adresses physiques (pas de BP 132 ...) ; 
- j'ai fait l'essai avec Google et avec OSM : résultat, 51 adresses sur 52 trouvées par Google, alors que OSM n'en trouve que 14 ... avantage pour Google, à la date de rédaction de ce tuto, mais OSM progresse très vite ... 
- et puis conclusion plus personnelle : cap au Sud !