6.2. Lesson: 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 le QGIS.

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

6.2.1. basic 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. basic 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. Il doit être dans Swellendam

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

  3. Il doit avoir une taille supérieure à 100 mètres carrés

  4. A moins de 50m d’une route principale

  5. A moins de 500m d’un restaurant

6.2.3. basic 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 des données à partir d’une autre zone, passez au Introduction Chapter pour lire comment le faire.

Note

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

6.2.4. basic Follow Along: 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 le Navigateur et chargez le fond de carte OSM dans le menu tuiles XYZ.

    ../../../_images/osm_swellendam.png
  3. Dans la base de données training_data.gpkg Geopackage, 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, et aussi 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 ensembles de données OSM sont répertoriées comme unclassified, tracks, path``et ``footway. Nous voulons les exclure de notre ensemble de 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 Filtre….

  6. Dans le dialogue qui s’affiche, nous filtrons ces 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 entites 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é, de sorte 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. basic Try Yourself Convertir le SCR des couches

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, enregistrer la couche dans une nouvelle couche avec notre 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 le meilleur flux de travail pour vous-même.

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 entites sous…

  3. Dans le dialogue sauvegarder les couches 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 CRS 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 vector_analysis.gpkg GeoPackage avec _34S ajouté au nom original et en supprimant chacune des anciennes couches du projet.

    Note

    Lorsque vous choisissez d’enregistrer une couche dans un GeoPackage existant, QGIS va ajouter cette couche au GeoPackage.

  9. 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 jusqu’à l’étendue de la couche pour centrer la carte sur la zone d’intérêt.

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

6.2.6. basic Follow Along: 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 le lien traitement ► boite 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 vecteur.

    ../../../_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 le dialogue de l’algorithme

  5. Sélectionnez roads_34S comme couche entrée, 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 boîte combinée pour choisir d’autres unités de projection 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, Processing vous avertira et vous proposera de reprojeter la couche dans un système de coordonnées métriques.

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

    1. Cliquant sur le bouton et choisir sauvegarder 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 le dialogue tampon.

    Maintenant, votre carte devrait ressembler à peu près à ceci:

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

Si votre nouvelle couche se trouve en haut de la liste couches, elle obscurcira 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 dissoudre résultat activé.

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

  3. Cliquez sur executer et fermez le dialogue tampon.

Une fois que vous avez ajouté la couche au panneau couches, il 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 du dialogue 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. basic Try Yourself Distance depuis les écoles

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

Elle doit avoir un rayon de 1 km. Enregistrez la nouvelle couche dans le fichier vector_analysis.gpkg comme schools_buffer_1km_dissolved.

Vérifiez vos résultats

6.2.8. basic Follow Along: Chevauchement des 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 (ligne directe, pas de 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 superposition vecteur dans la boite à outils traitement.

  1. Utilisez les deux couches tampons comme Couche d’entrée et Couche de recouvrement, choisissez analyse_vectorielle.gpkg GeoPackage dans Intersection avec Nom de la couche road_school_buffers_intersect. 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. basic Follow Along: Extraire les bâtiments

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 entites 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. Vous constaterez probablement que peu de choses semblent avoir changé. Si c’est le cas, déplacez la couche well_located_houses en haut de la liste des couches, puis zoomez.

    ../../../_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. moderate Try Yourself Filtrer davantage nos bâtiments

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.

En utilisant les processus décrits ci-dessus, créez une nouvelle couche appelée houses_restaurants_500m qui filtre davantage votre couche well_located_houses pour ne montrer que celles qui sont à moins de 500m d’un restaurant.

Vérifiez vos résultats

6.2.11. basic Follow Along: Sélection des bâtiments de la bonne taille

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

  1. Sélectionnez la couche houses_restaurants_500m et ouvrez la Calculatrice de champs en cliquant sur le bouton calculateField Ouvrir calculatrice champs dans la barre d’outils principale ou dans la fenêtre de la table d’attributs

  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. basic Try Yourself

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. In 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. What’s Next?

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