Important

La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 92.75%.

6.2. Leçon : Analyse Vectorielle

Les données vecteur peuvent également être analysées pour révéler comment différentes entités interagissent les unes avec les autres dans l’espace. Il existe de nombreuses fonctions différentes liées à l’analyse, nous ne les passerons donc pas toutes en revue. Nous allons plutôt poser une question et essayer de la résoudre à l’aide des outils que fournit QGIS.

Objectif de cette leçon : Poser une question et la résoudre en utilisant les outils d’analyse.

6.2.1. ★☆☆ Le processus SIG

Avant de commencer, il serait utile de donner un bref aperçu d’un processus qui peut être utilisé pour résoudre un problème. La marche à suivre est la suivante :

  1. Énoncer le problème

  2. Obtenir les données

  3. Analyser le problème

  4. Présenter les résultats

6.2.2. ★☆☆ Le problème

Nous allons commencer le processus en décidant d’un problème à résoudre. Par exemple, vous êtes un agent immobilier et vous recherchez une propriété résidentielle à Swellendam pour des clients dont les critères sont les suivants:

  1. Elle doit être dans Swellendam

  2. Elle doit se trouver à une distance raisonnable en voiture (disons 1 km) d’une école

  3. Elle doit avoir une surface supérieure à 100 mètres carrés

  4. Elle doit se situer à moins de 50m d’une route principale

  5. Elle doit se situer à moins de 500m d’un restaurant

6.2.3. ★☆☆ Les données

Pour répondre à ces questions, nous allons avoir besoin des données suivantes :

  1. Les propriétés résidentielles (bâtiments) dans la région

  2. Les routes dans et autour de la ville

  3. L’emplacement des écoles et des restaurants

  4. La taille des bâtiments

Ces données sont disponibles par le biais d’OSM, et vous devriez constater que l’ensemble de données que vous avez utilisé tout au long de ce manuel peut également être utilisé pour cette leçon.

Si vous souhaitez télécharger les données d’une autre zone, suivez le Chapitre de préparation des données.

Note

Bien que les données OSM aient des champs cohérents, la couverture et le détail varie. Si vous trouvez que votre région ne contient pas d’informations sur les restaurants par exemple, vous devriez peut-être choisir une région différente.

6.2.4. ★☆☆ Pas à pas : Démarrer un projet et obtenir les données

Nous devons d’abord charger les données pour travailler.

  1. Démarrer un nouveau projet QGIS

  2. Si vous le souhaitez, vous pouvez ajouter un fond de carte. Ouvrez l” Explorateur et chargez le fond de carte OpenStreetMap du groupe Tuiles XYZ.

    ../../../_images/osm_swellendam.png
  3. Dans la base de données Geopackage training_data.gpkg , vous trouverez la plupart des jeux de données que nous utiliserons dans ce chapitre :

    1. buildings

    2. roads

    3. restaurants

    4. schools

    Chargez-les ainsi que landuse.sqlite.

  4. Zoomer sur l’étendue de la couche pour voir Swellendam, South Africa

    Avant de poursuivre, nous allons filtrer la couche roads, afin de n’avoir que quelques types de routes spécifiques avec lesquelles travailler.

    Certaines routes dans les données OSM sont répertoriées comme unclassified, tracks, path et footway. Nous voulons les exclure de nos données et nous concentrer sur les autres types de routes, plus appropriés pour cet exercice.

    De plus, les données OSM pourraient ne pas être mises à jour partout, et nous exclurons également les valeurs NULL.

  5. Faites un clic droit sur la couche roads et choisissez Filtrer….

  6. Dans la fenêtre qui s’affiche, nous allons filtrer les entités avec l’expression suivante: :

    "highway" NOT IN ('footway', 'path', 'unclassified', 'track') AND "highway" IS NOT NULL
    

    La concaténation des deux opérateurs NOT et IN exclut toutes les entités qui ont ces valeurs d’attribut dans le champ highway.

    IS NOT NULL combiné avec l’opérateur AND exclut les routes sans valeur dans le champ highway.

    Notez l’icône indicatorFilter à côté de la couche roads. Elle vous aide à vous rappeler que cette couche a un filtre activé et que certaines entités peuvent ne pas être disponibles dans le projet.

La carte avec toutes les données doit ressembler à la suivante :

../../../_images/osm_swellendam_2.png

6.2.5. ★☆☆ Essayez vous-même : Convertir le SCR d’une couche

Comme nous allons mesurer des distances à l’intérieur de nos couches, nous devons changer le CRS des couches. Pour ce faire, nous devons sélectionner chaque couche à tour de rôle, l’enregistrer avec une nouvelle projection, puis importer cette nouvelle couche dans notre carte.

Vous disposez de nombreuses options différentes, par exemple vous pouvez exporter chaque couche comme un jeu de données au format ESRI Shapefile, vous pouvez ajouter les couches à un fichier GeoPackage existant, ou vous pouvez créer un autre fichier GeoPackage et le remplir avec les nouvelles couches reprojetées. Nous allons montrer la dernière option, de sorte que le fichier training_data.gpkg restera propre. N’hésitez pas à choisir l’option qui vous convient le mieux.

Note

Dans cet exemple, nous utilisons le CRS WGS 84 / UTM zone 34S, mais vous devriez utiliser un CRS UTM qui est plus approprié pour votre région.

  1. Cliquez avec le bouton droit sur la couche roads dans le panneau couches

  2. Cliquez sur Exporter –> Sauvegarder les entités sous…

  3. Dans la fenêtre Enregistrer la couche vectorielle sous…, choisissez GeoPackage comme Format.

  4. Cliquez sur pour le Nom du fichier, et nommez le nouveau GeoPackage vector_analysis.

  5. Changer le Nom de la couche en roads_34S.

  6. Remplacer le SCR par WGS 84 / UTM zone 34S

  7. Cliquez sur OK :

    ../../../_images/save_roads_34S.png

    Cela va créer la nouvelle base de données GeoPackage et ajouter la couche roads_34S.

  8. Répétez ce processus pour chaque couche, en créant une nouvelle couche dans le fichier GeoPackage vector_analysis.gpkg avec _34S ajouté au nom original.

    Sur macOS, cliquez sur le bouton Remplacer dans la fenêtre qui apparaît pour permettre à QGIS de remplacer le GeoPackage existant.

    Note

    Lorsque vous choisissez d’enregistrer une couche dans un GeoPackage existant, QGIS ajoutera cette couche aux autres couches présentes dans le Geopackage, s’il n’existe pas déjà une couche du même nom.

  9. Supprimez les anciennes couches du projet

  10. Une fois que vous avez terminé le processus pour toutes les couches, faites un clic droit sur n’importe quelle couche et cliquez sur Zoomer sur la(les) couche(s) pour centrer la carte sur la zone d’intérêt.

Maintenant que nous avons converti les données OSM dans une projection UTM, nous pouvons commencer nos calculs.

6.2.6. ★☆☆ Pas à pas : Analyse du problème : Distances des écoles aux routes

QGIS vous permet de calculer les distances entre n’importe quel objet vecteur.

  1. Assurez-vous que seules les couches routes_34S et buildings_34S sont visibles (pour simplifier la carte pendant que vous travaillez)

  2. Cliquez sur Traitement ► Boîte à outils pour ouvrir le cœur analytique de QGIS. Fondamentalement, tous les algorithmes (pour l’analyse vecteur et raster) sont disponibles dans cette boîte à outils.

  3. Nous commençons par calculer la zone autour de roads_34S en utilisant l’algorithme Tampon. Vous pouvez le trouver dans le groupe Géométrie vectorielle.

    ../../../_images/processing_buffer_1.png

    Vous pouvez également taper tampon dans le menu de recherche situé dans la partie supérieure de la boîte à outils :

    ../../../_images/processing_buffer_2.png
  4. Double-cliquez dessus pour ouvrir la fenêtre de l’algorithme

  5. Sélectionnez roads_34S comme Couche source, mettez Distance` à 50 et utilisez les valeurs par défaut pour le reste des paramètres.

    ../../../_images/vector_buffer_setup.png
  6. La valeur par défaut de Distance est en mètres car notre jeu de données d’entrée est dans un système de coordonnées projetées qui utilise le mètre comme unité de mesure de base. Vous pouvez utiliser la liste déroulante pour choisir d’autres unités comme les kilomètres, les yards, etc.

    Note

    Si vous essayez de créer un tampon sur une couche avec un système de coordonnées géographiques, le traitement vous avertira et vous proposera de reprojeter la couche dans un système de coordonnées métriques.

  7. Par défaut, le traitement créé des couches temporaires et les ajoute au panneau Couches. Pour ajouter le résultat à la base de données GeoPackage, vous pouvez :

    1. Cliquer sur le bouton et choisir Enregistrer dans un GeoPackage….

    2. Nommer la nouvelle couche « roads_buffer_50m ».

    3. Enregistrez-le dans le fichier vector_analysis.gpkg

    ../../../_images/buffer_saving.png
  8. Cliquez sur Exécuter, puis fermez la fenêtre Tampon.

    Maintenant, votre carte devrait ressembler à ceci:

    ../../../_images/roads_buffer_result.png

Si votre nouvelle couche se trouve en haut de la liste Couches, elle couvrira probablement une grande partie de votre carte, mais cela vous donne toutes les zones de votre région qui se trouvent à moins de 50m d’une route.

Remarquez qu’il existe des zones distinctes dans votre zone tampon, qui correspondent à chaque route individuelle. Pour vous débarrasser de ce problème :

  1. Décochez la couche roads_buffer_50m et recréez le tampon avec Regrouper le résultat activé.

    ../../../_images/dissolve_buffer_setup.png
  2. Enregistrez la sortie sous le nom roads_buffer_50m_dissolved.

  3. Cliquez sur Exécuter et fermez la fenêtre Tampon.

Une fois la couche ajoutée au panneau couches, la carte ressemblera à ceci :

../../../_images/dissolve_buffer_results.png

Il n’y a maintenant plus de subdivisions inutiles.

Note

La brève aide sur le côté droit de la fenêtre explique comment l’algorithme fonctionne. Si vous avez besoin de plus d’informations, il vous suffit de cliquer sur le bouton Aide dans la partie inférieure pour ouvrir un guide plus détaillé de l’algorithme.

6.2.7. ★☆☆ Essayez vous-même : Distance depuis les écoles

Utilisez la même approche qu’en haut et créez un tampon pour vos écoles.

Il devrait avoir un rayon de 1 km. Enregistrez la couche dans le fichier vector_analysis.gpkg sous le nom schools_buffer_1km_dissolved.

6.2.8. ★☆☆ Pas à pas : Superpositions de zones

Nous avons maintenant identifié les zones où la route est à moins de 50 mètres et les zones où il y a une école dans un rayon de 1 km (à vol d’oiseau, pas par la route). Mais évidemment, nous ne voulons que les zones où ces deux critères sont satisfaits. Pour ce faire, nous devrons utiliser l’outil Intersection. Vous pouvez le trouver dans le groupe Recouvrement de vecteur dans la Boîte à outils de traitements.

  1. Utilisez les deux couches tampons comme Couche source et Couche de superposition, choisissez le GeoPackage vector_analysis.gpkg dans Intersection et inscrivez road_school_buffers_intersect dans Nom de la couche. Laissez le reste comme suggéré (par défaut).

    ../../../_images/school_roads_intersect.png
  2. Cliquez sur Exécuter.

    Dans l’image ci-dessous, les zones bleues correspondent aux endroits où les deux critères de distance sont satisfaits.

    ../../../_images/intersect_result.png
  3. Vous pouvez enlever les deux couches de tampon et garder seulement celle qui montre où elles se croisent, étant donné que c’est ce que nous voulons vraiment savoir en premier lieu :

    ../../../_images/final_intersect_result.png

6.2.9. ★☆☆ Follow Along: Extract the Buildings

Maintenant, vous avez la zone où les bâtiments doivent se chevaucher. Ensuite, vous voulez extraire les bâtiments dans cette zone.

  1. Cherchez l’entrée de menu Sélection de vecteurs ► Extraction par emplacement dans la Boîte à outils traitement

  2. Sélectionnez buildings_34S dans Extrayez les entités de`. Vérifiez intersection dans Où les éléments (prédicat géométrique), sélectionnez la couche d’intersection tampon dans En comparant avec les éléments de `. Enregistrez dans le fichier :file:`vector_analysis.gpkg, et nommez la couche well_located_houses.

    ../../../_images/location_select_dialog.png
  3. Cliquez sur Executer et fermez le dialogue

  4. You will probably find that not much seems to have changed. If so, move the well_located_houses layer to the top of the layers list, then zoom in.

    ../../../_images/select_zoom_result.png

    Les bâtiments en rouge sont ceux qui correspondent à nos critères, tandis que les bâtiments en vert sont ceux qui n’y correspondent pas.

  5. Vous avez maintenant deux couches séparées et vous pouvez supprimer buildings_34S de la liste des couches.

6.2.10. ★★☆ Try Yourself: Further Filter our Buildings

Nous avons maintenant une couche qui nous montre tous les bâtiments à 1km d’une école et à 50m d’une route. Nous devons maintenant réduire la sélection pour ne montrer que les bâtiments qui sont à 500m d’un restaurant.

Using the processes described above, create a new layer called houses_restaurants_500m which further filters your well_located_houses layer to show only those which are within 500m of a restaurant.

6.2.11. ★☆☆ Follow Along: Select Buildings of the Right Size

Pour savoir quels bâtiments sont de la bonne taille (plus de 100 mètres carrés), nous devons calculer leurs dimensions.

  1. Select the houses_restaurants_500m layer and open the Field Calculator by clicking on the calculateField Open Field Calculator button in the main toolbar or in the attribute table window

  2. Sélectionnez créer un nouveau champs, mettez le nom de champ de sortie à AREA, choisissez nombre decimal (real) as type de champ sortie, et choisissez $area dans le groupe Geometry.

    ../../../_images/buildings_area_calculator.png

    Le nouveau champ AREA contiendra la superficie de chaque bâtiment en mètres carrés.

  3. Cliquez sur OK. Le champ AREA a été ajouté à la fin de la table d’attributs.

  4. Cliquez sur le bouton toggleEditing basculer en mode edition pour terminer l’édition, et enregistrez vos modifications lorsque vous y êtes invité.

  5. Dans l’onglet Source des propriétés de la couche, réglez le filtre Provider Feature Filter à "AREA >= 100.

    ../../../_images/buildings_area_query.png
  6. Cliquez sur OK.

Votre carte ne doit maintenant vous montrer que les bâtiments qui correspondent à nos critères de départ et qui ont une superficie de plus de 100 mètres carrés.

6.2.12. ★☆☆ Essayez vous-même

Sauvegardez votre solution comme une nouvelle couche, en utilisant pour ce faire l’approche que vous avez apprise ci-dessus. Le fichier doit être enregistré dans la même base de données GeoPackage, sous le nom de solution.

6.2.13. Conclusion

En utilisant l’approche de résolution de problèmes des SIG avec les outils d’analyse vecteur de QGIS, vous avez pu résoudre un problème à critères multiples rapidement et facilement.

6.2.14. La suite ?

Dans la prochaine leçon, nous verrons comment calculer la distance la plus courte le long des routes d’un point à un autre.