03 Mar 2011 |
|
Dans un précédent billet, j'ai brièvement présenté le projet de cartographie libre et collaborative OpenStreetMap. Je vais ici vous présenter quelques outils et manipulations qui permettent d'extraire des données depuis la base OpenStreetMap et de les transformer au format shapefile afin de les exploiter avec n'importe quel logiciel SIG.
Comme rien ne vaut l'explication par l'exemple, je vais prendre un cas concret que j'ai eu à traiter dans le cadre de mes activités professionnelles. Il s'agissait de récupérer au format shape toutes les autoroutes sur le territoire allemand. 1ère étape : le téléchargement des donnéesLes données OpenStreetMap sont disponibles en téléchargement sur le site de la société Cloudmade, fondée par le créateur d'OpenStreetMap Steve Coast. Les données à télécharger sont fournies au format OSM spécifique à OpenStreetMap, mais également au format shape. Voici le lien direct en ce qui concerne l'Allemagne : http://downloads.cloudmade.com/europe/germany Les fichiers disponibles sont mis à jour régulièrement depuis la base de données d'OpenStreetMap. Ils sont découpés par continents, pays ou régions (Länder en Allemagne). Si vous choisissez de télécharger le format shape, vous obtenez un fichier zip contenant plusieurs couches : routes, limites administratives, surface en eau, ... Les données sur le site de Cloudmade sont très peu souvent mises à jour. Vous pouvez également trouver des fichiers Shape extrait d'OSM sur le site de Goefabrik : http://download.geofabrik.de/osm/ Dans mon cas le problème était que je ne devais récupérer que les routes de types "autoroute" (c'est à dire caractérisées par le tag highway=motorway dans OpenStreetMap). Une première possibilité aurait été de récupérer le shape contenant les routes et d'utiliser directement un SIG pour filtrer les données en se basant sur les valeurs attributaires. Mais le traitement aurait sans doute été très long étant donné la taille importante du fichier (620 Mo). J'ai donc préféré récupérer le fichier au format OSM germany.osm.highway.bz2 et utiliser un outil spécialement conçu pour traiter les données OSM qui s'appelle Osmosis. 2ème étape : l'extraction des données avec OsmosisLe fichier highway issu d'OpenStreetMap regroupe tous les types de voies de circulation existants : autoroutes, voies rapides, routes primaires, secondaires, tertiaires, résidentielles, pistes en terre, sentiers, etc. Il s'agissait donc d'extraire seulement les autoroutes depuis ce fichier contenant toutes les routes d'Allemagne. Osmosis est un outil en java (donc qui fonctionne sous Windows, GNU/Linux ou Mac) qui s'exécute en ligne de commande. L'absence d'interface graphique permet de très bonnes performances pour l'extraction de données dans des gros fichiers. Voici comment j'ai réalisé l'extraction dans mon cas : Il s'agit de préciser le fichier en entrée avec l'option --read-xml et le fichier en sortie avec l'option --write-xml. Les options --tag-filter permettent de préciser les éléments à conserver ou ceux à supprimer. Ici on conserve tous les chemins caractérisés par le tag highway=motorway et on rejette toutes les relations. L'option --used-node permet de récupérer également tous les points empruntés par les chemins récupérés. Si on ne veut que le linéaire des autoroutes, on n'est pas obligé d'ajouter cette option. Le traitement a duré environ 20 minutes pour un fichier d'entrée de 620Mo. Le fichier de sortie obtenu faisait une taille de 45Mo. 3ème étape : la transformation en shapePour cette étape il existe plusieurs outils, dont un également en java ligne de commande. J'ai essayé de l'utiliser mais je n'ai pas réussi à le faire fonctionner correctement. Du coup, j'ai choisi d'utiliser un SIG libre bien connu : QuantumGIS. En effet depuis la version 1.2, ce SIG propose une extension pour OpenStreetMap. Il suffit de l'activer avec le gestionnaire d'extensions pour bénéficier d'une nouvelle barre d'outils dédiés à OpenStreetMap. Le premier icône à gauche permet d'ouvrir un fichier local au format OSM. J'ai donc pu ouvrir le fichier germany.motorway.osm contenant les autoroutes d'Allemagne. ![]() Pour finir, il ne reste plus qu'à sauver la couche nommée germany_lines au format shapefile en sélectionnant la couche puis en cliquant sur le menu Couche > Sauvegarder sous. A noter que QGIS propose un grand nombre de formats de sauvegarde autres que le shape (MapInfo, KML, ...) Vous voilà maintenant prêt à utiliser les données d'OpenStreetMap dans vos SIG. |
Ajouter un Commentaire
Tout les contenus de ce site sont publiés selon les termes de la licence Creative Commons by sa. En ajoutant votre commentaire, vous acceptez implicitement sa mise à disposition selon les termes de cette licence.








Commentaires
S’abonner au flux RSS pour les commentaires de cet article.