Dans cette leçon, vous serez guidé à travers une analyse complète de SIG dans QGIS.
Note
Leçon développée par Linfiniti et S Motala (Cape Peninsula University of Technology)
Vous êtes chargé de repérer les zones intérieures et alentours de la Péninsule du Cap qui correspondent à un habitat convenable pour des végétaux fynbos rares. L’étendue de votre zone de recherche dans la Péninsule du Cap est : au sud de Melkbosstrand, à l’ouest de Strand. Les botanistes vous ont fourni les préférences suivantes présentées par les espèces en question :
Elles poussent sur des pentes de la face est.
Elles poussent sur les pentes avec un gradient compris entre 15% et 60%.
Elles poussent dans des zones qui ont un total de précipitations annuelles de > 1200 mm.
On n’en trouve pas à moins de 250 m d’habitations humaines.
Les aires de végétation dans lesquelles elles se reproduisent doivent avoir une surface d’au moins 6000m2.
En tant que bénévole de Cap Nature, vous avez accepté de chercher la plante sur la partie de territoire conforme aux conditions la plus proche de votre maison. Utilisez vos compétences en SIG pour déterminer où vous devriez aller chercher.
Afin de résoudre ce problème, vous devrez télécharger les données depuis https://www.dropbox.com/s/q5evvkizuunrcs0/more_analysis.zip?dl=0 et les placer dans le dossier exercise_data/more_analysis. Vous les utiliserez pour trouver la zone candidate qui est la plus proche de votre maison. Si vous ne vivez pas au Cap (là où le problème se situe), vous pouvez choisir n’importe quelle maison dans la région du Cap. La solution impliquera :
analyser le MNE pour trouver les pentes face à l’Est et les pentes avec les bons gradients ;
analyser le raster des précipitations pour trouver les zones avec la bonne moyenne de précipitations ;
analyser la couche vectorielle de zonage pour trouver des zones qui sont éloignées des habitations humaines et qui ont la bonne taille.
Cliquez sur le bouton “Statut du SCR” dans le coin en bas à droite de l’écran. Sous l’onglet SCR de l’écran qui apparaît, vous verrez la boîte Liste des Systèmes de Coordonnées de Référence.
Dans cette boîte, naviguez jusqu’à Système de coordonnées projeté ‣ Transverse Universelle de Mercator (UTM).
Sauvegardez la carte en cliquant sur le bouton de la barre d’outils Sauvegarder le projet sous, ou utilisez le menu Fichier ‣ Sauvegarder le projet sous....
Pour traiter les données, vous devrez charger les couches nécessaires (noms des rues, zones, précipitations, MNE) dans le canevas de la carte.
Cliquer sur Ouvrir.
The dialog closes and shows the original dialog, with the file path specified in the text field next to the Browse button. This allows you to ensure that the correct file is selected. It is also possible to enter the file path in this field manually, should you wish to do so.
Naviguez jusqu’au fichier approprié. sélectionnez-le, et cliquez sur Ouvrir.
Sauvegardez la carte.
Afin de bien voir ce qu’il se passe, la symbologie des couches doit être changée.
Sélectionnez les Propriétés du menu qui apparaît.
Cliquez sur le bouton étiqueté Changer, avec un carré montrant la couleur actuelle de la couche Streets.
Sélectionnez une nouvelle couleur dans la boîte de dialogue qui apparaît.
Cliquez sur OK.
Cliquez encore sur OK dans la boîte de dialogue Propriétés de la couche. Cela changera la couleur de la couche Streets.
Suivez un processus similaire pour la couche Zonage et choisissez une couleur appropriée pour elle.
La symbologie des couches raster est quelque peu différente.
Ouvrez la boîte de dialogue Propriétés pour le raster Rainfall.
Assurez-vous que le bouton Utiliser l’écart-type est sélectionné.
Sous l’en-tête Amélioration de contraste, changez la valeur de Courent de la liste déroulante en Étirer jusqu’au MinMax.
Cliquez sur OK. Le raster “Rainfall”, si visible, devrait changer de couleurs, vous permettant de voir différentes valeurs de brillance pour chaque pixel.
Maintenant que toutes les données sont chargées et proprement visibles, l’analyse peut commencer. il est préférable que l’opération de découpage soit faite en premier. Ainsi, de la puissance de traitement ne sera pas gaspillée pour le calcul des valeurs dans les zones qui ne seront de toute façon par utilisées.
Dans le menu qui apparaît, sélectionnez l’élément du menu Requête.... La boîte de dialogue Constructeur de requêtes apparaît.
Vous allez maintenant construire une requête pour sélectionner la liste suivante de districts :
Dans la liste Champs, double-cliquez sur le champ NAME_2. Il apparaît dans le champ de texte Clause SQL WHERE ci-dessous.
Cliquez sur le bouton Toutes en-dessous de la liste (toujours vide) Valeurs. Après un court délai, la liste Valeurs sera remplie avec les valeurs du champ sélectionné (NAME_2).
Double-cliquez sur la valeur Bellville dans la liste Valeurs. Comme avant, elle va être ajoutée à la requête SQL.
In order to select more than one district, you’ll need to use the OR boolean operator.
Cliquez sur le bouton OU et il sera ajouté à la requête SQL.
En utilisant un processus similaire à celui d’en haut, ajoutez ce qui suit à la requête SQL existante :
"NAME_2" = 'Cape'
Add another OR operator, then work your way through the list of districts above in a similar fashion.
La requête finale devrait être :
"NAME_2" = 'Bellville' OR "NAME_2" = 'Cape' OR "NAME_2" = 'Goodwood' OR
"NAME_2" = 'Kuils River' OR "NAME_2" = 'Mitchells Plain' OR "NAME_2" =
'Simons Town' OR "NAME_2" = 'Wynberg'
Cliquez sur OK. Les districts indiqués dans votre carte sont maintenant limité à ceux de la liste ci-dessus.
Maintenant que vous avez une aire d’intérêt, vous pouvez couper les rasters de cette aire.
Assurez-vous que les seules couches visibles soient le MNE, Rainfall et Districts.
Districts doit être au sommet de celles qui sont visibles.
Ouvrez la boîte de dialogue de coupage en sélectionnant l’élément de menu Raster ‣ Extraction ‣ Découper.
Dans la liste déroulante Fichier source (raster), sélectionnez la couche MNE.
Spécifiez un emplacement de sortie dans le champ de texte Fichier de sortie en cliquant sur le bouton Sélectionner....
Entrez un nom de fichier.
Sauvegardez le fichier. Laissez la case à cocher Pas de données de valeurs non cochée.
Utilisez le mode de découpe Apreçu en vous assurant que le bon bouton radio est sélectionné.
Cliquez et faites glissez une zone dans le canevas, ainsi la zone qui inclut les districts est sélectionnée.
Cliquez sur OK.
Après l’opération de découpage terminée, NE FERMEZ PAS la boîte de dialogue Découper. (Le faire vous ferait perdre la zone découpée que vous venez de définir.)
Sélectionnez le raster Rainfall dans la liste déroulante Fichier source (raster) et choisissez un nom différent de fichier de sortie.
Après la seconde opération de découpage terminée, vous pouvez fermer la boîte de dialogue Découper.
Sauvegardez la carte.
Faites un clic-droit sur ces couches et sélectionnez Supprimer.
Cela ne va pas supprimer les données de votre périphérique de stockage, cela va seulement l’ôter de votre carte.
Désactivez les étiquettes de la couche Streets :
Cliquez sur le bouton Étiquetage.
Décochez la case Étiqueter cette couche avec.
Cliquez sur OK.
Montrer à nouveau toute la couche Streets :
Sélectionner Requête.
Dans la boîte de dialogue Requête qui apparaît, cliquez sur le bouton Effacer, puis cliquez sur OK.
Attendez que les données chargent. Toutes les rues seront maintenant visibles.
Sauvegardez la carte.
In order to create the hillshade, you will need to use a plugin that was written for this purpose.
This plugin is included by default in QGIS 1.8. However, it may not be immediately visible. To check if it is accessible on your system:
Cliquez sur OK.
You will now have access to this plugin via the Raster ‣ Terrain analysis menu item.
Remember that plugins may sometimes depend on certain Python modules being installed on your system. Should a plugin refuse to work while complaining of missing dependencies, please ask your tutor or lecturer for assistance.
Spécifiez un emplacement approprié pour la couche de sortie et appelez-la Hillshade.
Cliquez sur OK.
Attendez que le processus se termine.
La nouvelle couche hillshade est apparue dans votre Légende de la carte.
Faites un clic-droit sur la couche hillshade dans votre Légende de la carte et faites apparaître la boîte de dialogue Propriétés.
Notez l’effet quand l’ombrage transparent est superposé au MNE coupé.
Cliquez sur l’élément du menu Raster ‣ Analyse de Terrain.
Sélectionnez le type d’analyse Pente, avec le MNE coupé comme couche source.
Spécifiez un nom de fichier et un emplacement appropriés à des fins de sortie.
Cliquez sur OK.
L’image de la pente a été calculée et ajoutée à la carte. Cependant, c’est comme d’habitude juste un rectangle gris. Pour voir correctement ce qui se passe, changez la symbologie comme suit.
Ouvrez la boîte de dialogue Propriétés de la couche (comme d’habitude, via le menu du clic-droit sur la couche).
Où il est dit Échelle de gris (dans le menu déroulant Couleur de la carte), changez le en Pseudocouleur.
Assurez-vous que le bouton radio Utiliser l’écart-type est sélectionné.
Utilisez la même approche que pour calculer la pente, mais sélectionnez Aspect dans la boîte de dialogue initiale.
Souvenez-vous de sauvegarder périodiquement la carte.
Cliquez sur l’élément du menu Raster ‣ Calculatrice Raster.
In the Raster bands list on the left, you will see all the raster layers in your Layers list. If your Slope layer is called slope, it will be listed as slope@1.
The slope needs to be between 15 and 60 degrees. Everything less than 15 or greater than 60 must therefore be excluded.
En utilisant les éléments de la liste et les boutons dans l’interface, construisez l’expression suivante :
((slope@1 < 15) OR (slope@1 > 60)) = 0
Configurez le champ Couche de sortie avec un emplacement approprié et un nom de fichier.
Cliquez sur OK.
Now find the correct aspect (east-facing: between 45 and 135 degrees) using the same approach.
Construisez l’expression suivante :
((aspect@1 < 45) OR (aspect@1 > 135)) = 0
Find the correct rainfall (greater than 1200mm) the same way. Build the following expression:
(rainfall@1 < 1200) = 0
Having reclassified all the rasters, you will now see them displayed as gray rectangles in your map (assuming that they have been added to the map correctly). To properly display raster data with only two classes (1 and 0, meaning true or false), you will need to change their symbology.
Sous l’en-tête Charger des valeurs min / max à partir d’une bande, sélectionnez le bouton radio Actuel (plus lent).
Cliquez sur le bouton Charger.
The Custom min / max values fields should now populate with 0 and 1, respectively. (If they do not, then there was a mistake with your reclassification of the data, and you will need to go over that part again.)
Sous Amélioration de contraste, configurez la liste déroulante Actuel en Étirer jusqu’au MinMax.
Cliquez sur OK.
Faites ceci pour les trois rasters reclassifiés, et souvenez-vous de sauvegarder votre travail !
The only criterion that remains is that the area must be 250m away from urban areas. We will satisfy this requirement by ensuring that the areas we compute are 250m or more from the edge of a rural area. Hence, we need to find all rural areas first.
Hide all layers in the Layers list.
Affichez la couche vecteur Zonage.
Faites un clic-droit dessus et faites apparaître la boîte de dialogue Requête.
Construisez la requête suivante :
"Gen_Zoning" = 'Rural'
Voyez les instructions précédentes pour construire la requête Streets si vous êtes coincés.
Quand vous avez fini, fermez la boîte de dialogue Requête.
Vous devriez voir une collection de polygones de la couche Zonage. Vous aurez besoin de les sauvegarder dans un nouveau fichier de couche.
Dans le menu du clic-droit de Zonage, sélectionnez Sauvegarder sous....
Sauvegardez votre couche sous le dossier Zoning.
Cliquez sur OK.
Ajoutez la couche à votre carte.
Cliquez sur l’élément du menu Vecteur ‣ Outils de géotraitement ‣ Décomposer.
Sélectionnez la couche rural en couche d’entrée et laissez décochée la case Utiliser seulement les entités sélectionnées
Sauvegardez votre couche sous le dossier Zoning.
Fermez la boîte de dialogue Décomposer.
Effacez les couches rural et Zoning.
Sauvegardez la carte.
Now you need to exclude the areas that are within 250m from the edge of the rural areas. Do this by creating a negative buffer, as explained below.
Cliquez sur l’élément de menu Vecteur ‣ Outils de géotraitement ‣ Tampon(s).
Dans la boîte de dialogue qui apparaît, sélectionnez la couche rural_dissolve comme votre couche vecteur source (Utiliser uniquement les valeurs sélectionnées ne doit pas être coché).
Cochez la case Union des résultats du tampon.
Mettez le fichier de sortie dans le même dossier que les autres fichiers vecteurs ruraux
Cliquez sur Sauvegarder.
Cliquez sur OK et attendez que le processus soit terminé.
Sélectionnez Oui dans la boîte de dialogue qui apparaît.
Fermez la boîte de dialogue Tampon.
Supprimez la couche rural_dissolve.
Sauvegardez la carte.
Afin d’intégrer les zones rurales dans la même analyse avec les trois rasters existants, il sera nécessaire d’également les rasteriser. Mais pour que les rasters soient compatibles pour l’analyse, ils devront être de la même taille. Par conséquent, avant que vous puissiez les rasteriser, vous devrez découper le vecteur de la même surface que les trois rasters. Un vecteur peut seulement être découpé par un autre vecteur, donc vous devrez d’abord créer une boîte englobante en forme de polygone de la même taille que les rasters.
Cliquez sur l’élément du menu Couche ‣ Nouveau ‣ Nouvelle couche shapefile....
Sous l’en-tête Type, sélectionnez le bouton Polygone.
Cliquez sur OK.
Cliquez aussi sur OK dans la boîte de dialogue Nouvelle couche vecteur.
Sauvegardez le vecteur dans le dossier Zoning.
Cachez toutes les couches exceptée la nouvelle couche bbox et un des rasters reclassés.
Naviguez jusqu’à l’élément du menu Vue > Barre d’outils et assurez-vous que la Numérisation est sélectionnée. Vous devriez alors voir une icône de barre d’outils avec un crayon ou koki dessus. Il s’agit du bouton Basculer en mode édition.
Cliquez sur le bouton Basculer en mode édition pour entrer en mode d’édition. Cela vous permet de modifier une couche vecteur.
Cliquez sur le bouton Ajouter une entité, qui devrait être près du bouton Basculer en mode édition. Il peut être caché derrière un bouton à double flèches ; si c’est le cas, cliquez sur les double flèches pour montrer les boutons cachés de la barre d’outils Numérisation.
Avec l’outil Ajouter une entité sélectionné, faites un clic-gauche sur les coins du raster. Vous devrez peut-être zoomer avec la molette de la souris afin de vous assurer que c’est fait de manière exacte. Pour vous déplacer sur la carte dans ce mode, cliquez et faites glisser la carte avec le bouton du milieu de la souris ou la molette de la souris.
Pour le quatrième et dernier point, faites un clic-droit pour finaliser la forme.
Entrez un nombre arbitraire pour l’ID de la forme.
Cliquez sur OK.
Cliquez sur le bouton Sauvegardez les modifications.
Cliquez sur le bouton Basculer en mode édition pour arrêter votre session d’édition.
Sauvegardez la carte.
Maintenant que vous avez une boîte englobante, vous pouvez l’utiliser pour couper la couche tampon rural.
Assurez-vous que seules les couches bbox and rural_buffer sont visibles, avec celui-ci sur le dessus.
Cliquez sur l’élément du menu Vecteur > Outils de géotraitement > Découper.
Dans la boîte de dialogue qui apparaît, configurez la couche vecteur source avec rural_buffer et la couche de découpage avec bbox, avec les deux cases Utiliser uniquement les entités sélectionnées décochées.
Mettez le fichier de sortie sous le dossier Zoning.
Cliquez sur OK.
Quand on vous demande d’ajouter la couche à la Légende de la carte, cliquez sur Oui.
Fermez la boîte de dialogue.
Comparez les trois vecteurs et regardez les résultats pour vous-même.
Effacer les couches bbox et rural_buffer, puis sauvegardez votre carte.
Elle est maintenant prête à être numérisée.
Vous devrez spécifier une taille de pixel pour un nouveau raster que vous créez, donc vous devrez d’abord connaître la taille d’un de vos rasters existants.
Ouvrez la boîte de dialogue Propriétés d’un des trois rasters existants.
Basculez sur l’onglet Métadonnées.
Fermez la boîte de dialogue Propriétés.
Cliquez sur l’élément du menu Raster ‣ Conversion ‣ Numériser. Vous pouvez recevoir un avertissement à propos d’un jeu de données non supporté. Cliquez sur suivant et ignorez-le.
Sélectionnez rural_clipped comme votre couche source.
Définissez un emplacement pour le fichier de sortie dans le dossier Zoning.
Cochez la case Chargez dans la carte.
Cliquez sur OK.
Le nouveau raster devrait apparaître dans votre carte une fois qu’il a été calculé.
Le nouveau raster ressemblera à un rectangle gris – vous pouvez changer le style d’affichage comme vous l’avez fait pour les rasters reclassifiés.
Sauvegardez votre carte.
Now that you have all four criteria each in a separate raster, you need to combine them to see which areas satisfy all the criteria. To do so, the rasters will be multiplied with each other. When this happens, all overlapping pixels with a value of 1 will retain the value of 1, but if a pixel has the value of 0 in any of the four rasters, then it will be 0 in the result. In this way, the result will contain only the overlapping areas.
Cliquez sur l’élément du menu Raster ‣ Calculatrice Raster.
Construisez l’expression suivante (avec les noms appropriés pour vos couches, selon comment vous les avez appelées) :
[Rural raster] * [Reclassified aspect] * [Reclassified slope] *
[Reclassified rainfall]
Set the output location to the Rasterprac directory.
Name the output raster cross_product.tif.
Ensure that the Add result to project box is checked.
Cliquez sur OK.
Changez la symbologie du nouveau raster de la même façon que vous avez configuré les styles pour les autres rasters reclassés. Le nouveau raster affiche désormais correctement les zones pour lesquelles tous les critères sont satisfaits.
To get the final result, you need to select the areas that are greater than 6000m^2. However, computing these areas accurately is only possible for a vector layer, so you will need to vectorize the raster.
Cliquez sur l’élément du menu Raster ‣ Conversion ‣ Polygoniser.
Cliquez sur OK.
Fermez la boîte de dialogue quand le processus est terminé.
All areas of the raster have been vectorized, so you need to select only the areas that have a value of 1.
Ouvrez la boîte de dialogue Requête pour le nouveau vecteur.
Construisez cette requête :
"DN" = 1
Cliquez sur OK.
Create a new vector file from the results by saving the candidate_areas vector after the query is complete (and only the areas with a value of 1 are visible). Use the Save as... function in the layer’s right-click menu for this.
Save the file in the Rasterprac directory.
Nommez le fichier candidate_areas_only.shp.
Sauvegardez votre carte.
Ouvrez le menu du clic-droit de la nouvelle couche vectorielle.
Sélectionnez Ouvrir la table attributaire.
Cliquez sur le bouton Basculer en mode édition le long du bas de la table, ou appuyez sur Ctrl+E.
Cliquez sur le bouton Ouvrir la calculatrice de champ le long en bas de la table, ou appuyez sur Ctrl+I.
Under the New field heading in the dialog that appears, enter the field name area. The output field type should be an integer, and the field width should be 10.
Dans l’Expression de la calculatrice de champ, tapez :
$area
Cela signifie que la calculatrice de champ calculera l’aire de chaque polygone dans la couche vectorielle et remplira ensuite une nouvelle colonne d’entiers (appelée area) avec la valeur calculée.
Cliquez sur OK.
Faites la même chose pour un autre nouveau champ nommé id. Dans l’Expression de la calculatrice de champ, tapez :
$id
Cela garantit que chaque polygone a un identifiant unique à des fins d’identification.
Cliquez encore sur Basculer en mode édition, et sauvegardez vos modifications si vous êtes invités à le faire.
Maintenant que les aires sont connues :
Build a query (as usual) to select only the polygons larger than 6000m^2. The query is:
"area" > 6000
Save the selection as a new vector layer called solution.shp.
Vous avez maintenant vos aires de solution, parmi lesquelles vous sélectionnerez la plus proche de votre maison.
Créez une nouvelle couche vectorielle comme avant, mais cette fois, sélectionnez un Point comme valeur Type.
Assurez-vous que c’est le bon SCR !
Terminez la création de la nouvelle couche.
Entrez en mode d’édition (alors que la nouvelle couche est sélectionnée).
Cliquez sur le point où votre maison ou autre lieu de résidence actuel se trouve, en utilisant les rues comme une aide. Vous pourriez devoir ouvrir d’autres couches pour vous aider à trouver votre maison. Si vous ne vivez pas dans les environs, cliquez simplement quelque part entre les rues où une maison pourrait en théorie être.
Entrez un nombre arbitraire pour l’ID de la forme.
Cliquez sur OK.
Sauvegardez vos modifications et quittez le mode d’édition.
Sauvegardez la carte.
Vous devrez trouver les centroïdes (“centres de gravité”) pour les polygones de l’aire de solution afin de décider lequel est le plus proche de votre maison.
Spécifiez la couche source comme solution.shp.
Faites glisser la nouvelle couche jusqu’au sommet de l’ordre des couches de sorte que vous puissiez la voir.
Cliquez sur l’élément du menu Vecteur ‣ Outils d’analyse ‣ Matrice des distances.
Le type de matrice en sortie devrait être linéaire.
Définissez un emplacement et un nom appropriés de sortie.
Cliquez sur OK.
Ouvrez le fichier dans un éditeur de texte (ou importez-le dans un tableur). Notez quel identifiant cible est associé avec la Distance la plus courte. Il peut y en avoir plus d’un à la même distance.
C’est la réponse finale à la question de recherche.
Pour votre soumission, incluez la couche d’ombrage semi-transparent au-dessus d’un raster attrayant de votre choix (comme par exemple le MNE ou le raster pente). Incluez également le polygone de la zone(s) de solution la plus proche, aussi bien que votre maison. Suivez toutes les meilleures pratiques de la cartographie pour la création de votre carte de sortie.