Problématique du jour
Une commune – nous prendrons pour ce tutoriel l’exemple de Fréjus, dans le Var (83) – souhaite développer son SIG. Elle ne dispose pas de données vectorielles lui permettant de connaître son réseau routier.
Elle décide d’exploiter les données fournies par le projet collaboratif de création d’une carte libre du monde OpenStreetMap. Mais elle souhaite pouvoir récupérer ses données au format vectoriel shape pour pouvoir manipuler ses données à volonté et les adapter à son territoire.
Elle souhaite notamment pouvoir les découper selon le contour exacte de son territoire, visualiser et travailler ces données routières au sein du logiciel SIG QGIS.
Les pré-requis
Ce tutoriel admet donc comme pré-requis :
l’installation préalable du logiciel SIG QGIS. QGIS est un logiciel SIG libre et open source.
un accès à internet pour télécharger les données OSM,
un accès àune boîte mail,
la détention d’une couche de de données géographique (shp, base de données…) décrivant les contours d’un territoire – pour ce tutoriel nous utiliserons un extrait de la BD GEOFLA® Communes produite par l’IGN sur le territoire de Fréjus-.
OpenStreetMap, souvent appelé « OSM » est un projet international fondé en 2004 dans le but de créer une carte libre du monde.
Les données du monde entier sont collectées sur les routes, voies ferrées, les rivières, les forêts, les bâtiments et bien plus encore !
Les données cartographiques collectées sont ré-utilisables sous licence libre ODbL (depuis le 12 septembre 2012).
Pour découvrir le projet OSM → https://openstreetmap.fr/
Suivre le tutoriel pas à pas…
Étape 1 : Impuls'Map vous propose une méthode, il en existe d'autres !
Il existe plusieurs méthodes pour télécharger / importer / exploiter des données OpenStreetMap – OSM – avec QGIS.
Comme pour toute problématique, aucune méthode n’est la bonne, toutes les méthodes sont les meilleures, chaque technique utilisée et proposée est issue :
des habitudes de travail de chacun,
de l’objectif à atteindre.
Impuls’Map propose donc dans ce tutoriel une méthode pour récupérer et utiliser des données OSM dans QGIS. En exploitant notamment les possibilités offertes par le site bbbike.org Il en existe d’autres. Ces possibilités, nous vous les présenterons peut-être sur ce blog. Ou pas. En fonction des problématiques qui se présenteront à nous.
Pour notre besoin du jour, voici la méthode que nous affectionnons le plus !
Étape 2 : BBBike & extract.bbbike
Le site BBBike est un planificateur de voyage à vélo, que vous trouverez à l’adresse → http://www.bbbike.org
Vous pouvez saisir une adresse de départ, une adresse d’arrivée, une éventuelle étape… BBBike mouline tout ça et vous propose le meilleur trajet « safe and short » en détaillant chaque étape, rue par rue, présente les dénivelés et vous propose une interface cartographique décrivant le parcours.
Et pour vous offrir toutes ces fonctionnalités, la cartographie de BBBike exploite les données OpenStreetMap.
BBBike propose une fonctionnalité très intéressante pour les cartographe : la possibilité d’extraire des données OpenStreetMap !
Pour l’exploiter, il faut se rendre à l’adresse → http://extract.bbbike.org/
Le principe de fonctionnement : vous sélectionnez la zone pour laquelle vous souhaitez télécharger les données OSM, vous fournissez une adresse mail et sélectionnez le format dans lequel vous souhaitez recevoir les données.
L’application vous envoie par réponse de mail, l’extraction sur la zone demandée.
Que demander de plus ?!?!
Étape 3 : Extraire des données OpensStreetMap OSM grâce à BBBike.org
Grâce au navigateur web de son choix, se rendre à l’adresse → http://extract.bbbike.org/
Naviguer dans la carte et se positionner sur la zone pour laquelle on souhaite récupérer des données OSM – ici Fréjus –.
Au sein du panneau situé à gauche de la fenêtre cartographique, préciser :
le Format des données que vous souhaitez récupérer. Le choix est large, il y en a pour de nombreux goûts. Pour ce tutoriel, l’objectif est une exploitation au sein du logiciel SIG QGIS, nous seront donc simples et choisirons le format « Shapefile (ESRI) ».
L’interface propose une prévisualisation des données une fois récupérées et exploitées, en fonction du format sélectionné. Ici, elle propose donc une prévisualisation dans QGIS.
une adresse mail. Ce sera l’adresse mail à laquelle l’application enverra le lien de téléchargement permettant de récupérer l’extraction de données.
Un nom pour la zone à extraire. Ce nom est libre, pour ce tutoriel, nous indiquerons « Fréjus ».
Il reste ensuite à ajuster la zone pour laquelle les données seront extraites.
Dans la seconde partie du panneau de gauche, cliquer sur le bouton « HERE » au sein de la phrase « Then click HERE pour créer un rectangle de sélection ».
Un rectangle orange apparaît, il indique la zone qui sera téléchargeable.
Il est possible d’ajuster cette zone, en cliquant sur « Ajoutez des points au polygone » : le rectangle devient bleu et les sommets sont symbolisés par des ronds oranges. Il est possible de déplacer ces sommets grâce à des glisser-déposer.
Étape 4 : Télécharger les données OpenStreetMap OSM depuis votre boîte mail
Consulter ensuite votre boîte mail, vous avez dû recevoir un e-mail de BBBike.
Cliquer sur le lien de téléchargement et enregistrer le zip récupéré.
Rendez-vous ensuite dans vos fichiers, à l’emplacement où vous avez enregistré les données téléchargées et décompressez le fichier compressé (zip) récupéré.
Le dossier « shape » téléchargé contient l’ensemble des couches shapefile OpenStreetMap de la zone que vous avez sélectionnée.
Etape 5 : On vous explique pourquoi on aime la méthode BBBike !
C’est là qu’on vous explique pourquoi on aime cette méthode !
Les données récupérées grâce à http://extract.bbbike.org/ sont structurées de manière thématique. D’autres méthodes d’extraction des données OSM vous permettront de récupérer des données selon le type d’objets géographiques (point, ligne, polyligne, polygone). Il faudra ensuite effectuer des requêtes dans les données pour en sortir les thématiques.
Dans le cadre de ce tutoriel où l’objectif est de traiter seulement les données routières, cette méthode est donc idéale !
Étape 6 : Afficher les données OpenStreetMap OSM dans le logiciel SIG QGIS
Les données OSM sont donc téléchargées, la prochaine étape est de les exploiter au sein d’un logiciel SIG. Pour ce tutoriel, Impuls’Map fait le choix de vous les présenter grâce au logiciel opensource et gratuit QGIS.
Les données OpenStreetMap récupérées via BBBike.org étant au format interopérable shapefile (ESRI), elles peuvent être également exploitées dans la plupart des logiciels de cartographie et SIG comme ArcGIS, Géoconcept, MapInfo…
Lancer QGIS
Les données OpenStreetMap sont fournies en projection WGS84. Il y a de fortes chances pour que les données qui composent votre SIG ne soient pas en WGS84 mais en Lambert 93.
Par exemple dans ce tutoriel nous travaillons en Lambert 93, EPSG 2154.
Afin que les données OSM s’affichent directement dans la projection de votre choix, il faut indiquer au projet QGIS votre projection de prédilection.
Attention ! Les données OpenStreetMap ne seront pas projetées dans votre système de coordonnées, elles seront simplement affichées ainsi. Pour que vos données OSM soient dans la projection de votre choix il faudra réaliser une opération de reprojection qui sera détaillée plus loin dans ce tutoriel.
Pour ce tutoriel, nous allons donc indiquer au projet QGIS que l’affichage doit se faire en Lambert93.
Dans le Menu principal de QGIS, cliquer sur Projet > Propriétés du projet
Dans la Fenêtre Propriétés du projet, se rendre sur l’onglet SCR :
– Cocher la case Activer la projection « à la volée »
– Sélectionner la projection de votre choix. Pour ce tutoriel, on sélectionnera « RGF / Lambert 93 | EPSG : 2154 ».
– Cliquer sur OK.
Cliquer sur le bouton Ajouter une couche vecteur
Dans la Fenêtre Ajouter une couche vecteur :
– dans la Section Type de source : sélectionner Fichier
– dans la Section Source > Jeu de données : cliquer sur le Bouton Parcourir
Puis au sein de vos fichiers, choisir la ou les couches OSM qu’on souhaite afficher dans QGIS. Pour ce tutoriel, on veut simplement récupérer les données décrivant les routes, on choisira donc le fichier « roads.shp ».
Étape 7 : Ajouter le contour du territoire souhaité dans QGIS
En suivant ensuite la même manipulation d’ajout d’une couche vecteur, ajouter le contour du territoire au sein duquel vous travaillez dans QGIS.
Pour ce tutoriel, on ajoutera une couche shapefile décrivant l’emprise de la commune de Fréjus issue de la BD GEOFLA® Communes produite pas l’IGN.
On a appelé cette couche « Frejus.shp »
Les deux couches de données « Frejus.shp » et « roads.shp » – cette dernière couche étant issue d’OpenStreetMap – sont donc ouvertes conjointement dans QGIS et se superposent.
Il est possible de modifier la symbologie des couches de données en allant dans les Propriétés de chaque couche > Onglet Style. Cette manipulation n’est pas l’objet de ce tutoriel, elle ne sera donc pas décrite ici. Elle est en revanche détaillée au sein du tutoriel Impuls’Map « Effectuer une analyse thématique Catégorie avec QGIS » au sein de l’Etape 3 : Créer une analyse thématique avec QGIS, tout est question de style !
Étape 8 : Découper les données OpenStreetMap selon le contour d'un territoire ou comment effectuer une requête spatiale
Une fois les données OSM – ici les routes – chargées au sein du SIG, on constate que la zone extraite est plus large que le territoire au sein duquel on souhaite travailler.
L’étape suivante est donc d’ajuster les données de la couche « roads.shp » au contour du territoire – ici de la commune de Fréjus.
On va donc conserver les objets de la couche « roads.shp » en fonction de l’implantation géographique de la couche « Frejus.shp ».
Sélectionner des objets géographiques en fonction de leur implantation spatiale revient à effectuer une Requête spatiale.
Dans le Menu principal de QGIS, cliquer sur Vecteur > Requête spatiale > Requête spatiale
Dans la Fenêtre Requête spatiale :
– Section Sélection des entités source depuis : choisir la couche au sein de laquelle on souhaite sélectionner des données → ici la couche contenant les routes soit « roads.shp »
– Section Entités références de : choisir la couche qui servira de référence géographique pour effectuer la sélection → ici la couche contenant le découpage de la commune soit « frejus.shp »
Pour ces deux options, le choix des données à exploiter en tant que sélection ou référence de sélection peut être une sélection préalablement réalisée.
– Où l’entité : choisir la relation spatiale qui doit exister entre les deux sources de données lors de la réalisation de la sélection. Pour ce tutoriel on choisira « Intersecte ».
– Et utiliser le résultat pour :
Si une sélection a déjà été réalisée, il sera possible
1. De créer une nouvelle sélection totalement indépendante de l’ancienne sélection
2. D’ajouter les objets nouvellement sélectionnés aux objets anciennement sélectionnés > choisir > Ajouter à la sélection actuelle
3. De soustraire les objets de la sélection en cours de réalisation aux objets anciennement sélectionnés > choisir > Supprimer de la sélection actuelle
Pour ce tutoriel, il n’y a pas besoin de réaliser une sélection préalable et on choisira l’option Créer une nouvelle sélection
Une fois la sélection spatiale paramétrée > cliquer sur Appliquer
La Fenêtre Requête spatiale présente alors une liste de résultats contenant tous les ID des entités sélectionnées.
Dans la Fenêtre Carte de QGIS, les objets sélectionnés sont représentés dans la couleur de sélection – notre projet QGIS est paramétré pour afficher les sélections en jaune.
On constate que sont sélectionnées tous les routes qui intersectent la couche qui représente le territoire de la commune de Fréjus > nous avons réalisé une requête spatiale !
Étape 9 : Enregistrer et reprojeter les données OSM
Il reste maintenant à enregistrer la sélection spatiale des données OpenStreetMap adaptées au territoire souhaité en tant que couche vectorielle et à la reprojeter puisque même si elle est affichée dans un projet en Lambert 93, elle reste dans le système de coordonnées WGS84.
Dans le Panneau Couches > Effectuer un clic-droit sur la couche qu’on souhaite enregistrer → ici « roads.shp » > Puis cliquer sur Enregistrer sous…
Dans la Fenêtre Enregistrer la couche vectorielle sous…
– Format > choisir ESRI shapefile
– Enregistrer sous : cliquer sur le Bouton Parcourir et indiquer le nom de la nouvelle couche générée ainsi que son emplacement – pour ce tutoriel, on appelera la nouvelle couche « RoutesFrejus.shp »
– SCR : sélectionner le système de projection dans lequel on souhaite reprojeter la couche OSM. La reprojection sera faite dans ce nouveau système de coordonnées lors de l’enregistrement. Pour ce tutoriel, on choisira RGF 93 / Lambert-93 | EPSG 2154.
– Cocher la case N’enregistrer que les entités sélectionnées pour ne conserver dans la nouvelle couche de données que le résultat de la sélection – soit ici seulement les routes de Fréjus.
– Pour valider l’enregistrement et la reprojection > cliquer sur OK.
Ce tutoriel est terminé !!
Les données OpenStreetMap OSM ont été extraites grâce à l’application http://extract.bbbike.org/ et intégrées au sein du logiciel SIG QGIS.
Grâce à une requête spatiale, les données routes que l’on souhaitait exploiter ont été découpées selon le contour du territoire de travail.
Ce tutoriel a été réalisé avec les logiciels QGIS 2.14.3-Essen et grâce à l’applIcation web extract.bbbike.org
Pour en savoir + …
Les données exploitées au sein de ce tutoriel sont issues du projet OpenStreetMap et une extraction de la couche de données GEOFLA® Communes produite par l’IGN sur le territoire de Fréjus
Pour en savoir + …
L’idée de la réalisation de ce tutoriel nous est venue suite à un échange avec un client qui nous a interrogé sur son besoin d’exploiter des données routières.
Vous aimeriez que nous traitions un sujet, une problématique qui pourrait vous aider ?
N’hésitez pas à nous contacter et à nous soumettre votre besoin. Si nous le pouvons, nous y répondrons !
Vous avez aimé ?
Alors dites-le avec des , des likes, des tweets, des shares et des commentaires … !
On vous gâte…
Toujours + de tutoriels Impuls’Map !!
Tutoriel video by Impuls’Map pour apprendre à créer une carte web interactive, à partir de la librairie javascript Leaflet et exploitant des données geojson stockées dans des fichiers externes
Grâce à ce tutoriel, vous allez apprendre à créer un trigger pour pouvoir enregistrer et suivre les mises à jour effectuées au sein d’une base de données PostgreSQL. Et comme Impuls’Map est dédié aux SIG, nous effectuerons ce tutoriel au sein d’une base de données détenant l’extension spatiale PostGIS et à partir de données à dimension géographique, exploitables dans un SIG.