.

Intégration du SIG GRASS

L’extension GRASS fournit un accès aux bases de données et aux fonctionnalités de GRASS (voir GRASS-PROJECT Bibliographie). Cela inclut la visualisation des couches d’informations GRASS raster et vecteur, la numérisation de couches vectorielles, l’édition des attributs des couches d’informations vecteurs, la création de nouvelles couches et l’analyse 2D et 3D grâce à plus de 400 modules GRASS.

Cette section présente les fonctionnalités de l’extension et donner des exemples sur la manière de gérer et de travailler avec des données GRASS. Les fonctionnalités principales suivantes sont fournies dans la barre de menu lorsque vous lancez l’extension GRASS, comme décrit dans la section sec_starting_grass :

  • grass_open_mapset Ouvrir le jeu de données

  • grass_new_mapset Nouveau jeu de données

  • grass_close_mapset Fermer le jeu de données

  • grass_add_vector Ajouter une couche vectorielle GRASS

  • grass_add_raster Ajouter une couche raster GRASS

  • grass_new_vector_layer Créer une nouvelle couche vectorielle GRASS

  • grass_edit Éditer une couche vectorielle GRASS

  • grass_tools Ouvrir les outils GRASS

  • grass_region Afficher la région courante GRASS

  • grass_region_edit Éditer la région courante GRASS

Lancer l’extension GRASS

Pour pouvoir utiliser les fonctionnalités de GRASS et/ou visionner des données vecteurs ou raster dans QGIS, vous devez sélectionner et charger l’extension GRASS à l’aide du gestionnaire d’extensions. Cliquez sur le menu Extensions ‣ mActionShowPluginManager Installer/gérer les extensions, sélectionnez checkbox GRASS et cliquez sur [OK].

Vous pouvez maintenant charger des données raster et vecteur depuis un SECTEUR GRASS existant (voir section sec_load_grassdata). Ou alors vous pouvez créer un nouveau SECTEUR GRASS à l’aide de QGIS (voir section Créer un nouveau SECTEUR GRASS) et y importer des données raster et vecteur (voir section Importer des données dans un SECTEUR GRASS) pour réaliser des traitements à l’aide de la boîte à outils GRASS (voir section La Boîte à outils GRASS).

Charger des données GRASS raster et vecteur

Avec l’extension GRASS, vous pouvez charger des données raster ou vecteur à l’aide du bouton approprié dans la barre de menu. Ici nous utiliserons comme exemple le jeu de données QGIS sur l’Alaska (voir section Échantillon de données). Il contient un SECTEUR GRASS avec trois couches vectorielles et un raster d’élévation.

  1. Créez un nouveau répertoire grassdata, téléchargez le jeu de données QGIS ‘Alaska’ qgis_sample_data.zip depuis http://download.osgeo.org/qgis/data/ et décompressez le dans le répertoire grassdata.

  2. Lancez QGIS.

  3. Si cela n’a pas déjà été fait dans une précédente session QGIS, chargez l’extension GRASS en cliquant sur Extensions ‣ mActionShowPluginManager Gestionnaire d’extensions et sélectionnez checkbox GRASS. La barre d’outils GRASS apparaît dans la barre de menu.

  4. Dans la barre d’outils GRASS, cliquez sur le bouton grass_open_mapsetOuvrir le jeu de données pour ouvrir le gestionnaire de Base de données.

  5. Pour Base de données GIS, parcourez puis sélectionnez ou entrez le chemin vers le répertoire nouvellement créé : grassdata.

  6. Vous devriez maintenant être capable de sélectionner le SECTEUR selectstring alaska et le jeu de données selectstring demo.

  7. Cliquez sur [OK]. Notez que les outils GRASS sont maintenant accessibles dans la barre d’outils.

  8. Cliquez sur grass_add_raster Ajouter une couche raster GRASS, choisissez le fichier gtopo30 et cliquez sur [OK]. Vous isionnez alors la couche d’élévation.

  9. Cliquez sur grass_add_vector Ajouter une couche vectorielle GRASS, choisissez la couche alaska et cliquez sur [OK]. La couche vectorielle Alaska s’affiche au-dessus du raster gtopo30. Vous pouvez modifier les propriétés de la couche d’information comme décrit dans le chapitre Fenêtre Propriétés d’une couche vecteur (par exemple modifier la transparence, changer la couleur du contour ou celle du remplissage).

  10. Chargez également les deux autres couches vecteur, rivers et airports, et modifiez leurs propriétés.

Comme vous le voyez, il est très simple de charger des couches vecteur et raster de GRASS dans QGIS. Voir les sections suivantes pour l’édition des données GRASS et la création d’un nouveau SECTEUR. D’autres exemples de SECTEURs sont disponibles sur le site web de GRASS à http://grass.osgeo.org/download/sample-data/.

Astuce

Charger des données GRASS

Si vous rencontrez des problèmes lors du chargement de données ou si QGIS se ferme anormalement, vérifiez que vous que avez bien charger l’extension GRASS comme décrit dans la section Lancer l’extension GRASS.

Secteur et Jeu de données GRASS

Les données GRASS sont stockées dans un répertoire référencé sous le nom GISDBASE. Ce répertoire, souvent appelé grassdata, doit être créé avant que vous commenciez à travailler avec l’extension GRASS dans QGIS. Dans ce répertoire, les données GRASS sont organisées par projets et stockées dans des sous-répertoires appelés SECTEUR ( LOCATION en Anglais). Chaque SECTEUR est défini par son système de coordonnées, sa projection et son étendue géographique. Chaque SECTEUR peut contenir plusieurs Jeux de données (MAPSETs en Anglais) (sous-répertoires du SECTEUR) qui sont utilisés pour subdiviser le projet en différents thèmes, sous régions ou espaces de travail pour chaque membre d’une équipe (Neteler & Mitasova 2008 Bibliographie). Pour pouvoir analyser des couches raster ou vecteur à l’aide des modules GRASS, vous devez les importer dans un SECTEUR. (Ce n’est pas complètement vrai, car avec les modules GRASS r.external et v.external, vous pouvez lier (en lecture seule) des données externes gérées par GDAL/OGR sans les importer. Mais comme il ne s’agit pas d’une fonctionnalité courante pour les débutants sur GRASS, elle ne sera pas décrite ici).

Figure GRASS location 1:

../../../_images/grass_location1.png

Données GRASS du SECTEUR Alaska

Créer un nouveau SECTEUR GRASS

À titre d’exemple, voici la manière dont le SECTEUR alaska, projeté en Albers Equal Area et ayant pour unité le pied, a été créé pour l’échantillon de données QGIS. Ce SECTEUR alaska sera utilisé pour tous les exemples et exercices GRASS qui suivent. Il est utile de le télécharger et de l’installer sur votre ordinateur (voir Échantillon de données).

  1. Démarrez QGIS et assurez vous que l’extension GRASS est chargée.

  2. Affichez le shapefile alaska.shp (voir section Charger un Shapefile) du jeu de données QGIS Alaska (voir Échantillon de données).

  3. Dans la barre d’outils GRASS, cliquez sur grass_new_mapsetNouveau jeu de données pour ouvrir l’assistant de création de Jeux de données.

  4. Sélectionnez un répertoire existant de base de données GRASS (GISDBASE) grassdata ou créez en un pour le nouveau SECTEUR avec le gestionnaire de fichiers de votre ordinateur. Cliquez sur le bouton [Suivant].

  5. Nous pouvons utiliser cet assistant à la fois pour créer un nouveau Jeu de données dans un SECTEUR existant (voir section Ajouter un nouveau Jeu de données) et pour créer également un nouveau SECTEUR. Cliquez sur le bouton radio radiobuttononCréez un nouveau secteur (voir figure_grass_location_2).

  6. Entrez un nom pour le SECTEUR – nous avons utilisé ‘alaska’ – et cliquez sur le bouton [Suivant].

  7. Définissez la projection en cliquant sur le bouton radio radiobuttononProjection pour activer la liste des projections.

  8. Nous utilisons la projection Albers Equal Area Alaska (pieds). Étant donné que nous savons qu’elle correspond au code EPSG 2964, nous le saisissons dans le champ de recherche. (Note : Si vous souhaitez reproduire la manipulation pour un autre SECTEUR et une autre projection dont vous ne connaissez pas le code EPSG, cliquez sur mIconProjectionEnabled Statut de la projection dans le coin inférieur droit de la barre d’état de QGIS (voir section Utiliser les projections)).

  9. Saisissez 2964 dans le Filtre pour sélectionner la projection.

  10. Cliquez sur [Suivant].

  11. Pour définir la région par défaut, nous devons saisir les limites Nord, Sud , Est et Ouest du SECTEUR. Ici il suffit de cliquer sur le bouton [Fixer l’emprise courante de |qg|], pour appliquer l’emprise du shapefile alaska.shp déjà chargé comme emprise par défaut.

  12. Cliquez sur [Suivant].

  13. Nous avons aussi besoin de définir un Jeu de données dans notre nouveau SECTEUR (étape indispensable lors de la création d’un nouveau SECTEUR). Vous pouvez l’appeler comme vous le souhaitez - nous utiliserons ‘demo’. GRASS crée automatiquement un Jeu de données spécial appelé PERMANENT, conçu pour stocker les données essentielles du projet, son emprise spatiale par défaut et la définition du système de coordonnées (voir Neteler & Mitasova 2008 Bibliographie).

  14. Vérifiez le résumé pour vous assurez que tout est correct et cliquez sur [Terminer].

  15. Le nouveau SECTEUR ‘alaska’ et les deux Jeux de données ‘démo’ et ‘PERMANENT’ sont créés. Le jeu de données ouvert à ce moment est ‘démo’, tel que vous l’avez défini.

  16. Notez que certains outils de la barre d’outils GRASS qui n’étaient pas accessibles le sont maintenant.

Figure GRASS location 2:

../../../_images/create_grass_location.png

Création d’un nouveau SECTEUR ou Jeu de données GRASS dans QGIS

Si ce processus semble long, il s’agit en fait d’un moyen simple et rapide de créer un SECTEUR. Le SECTEUR ‘alaska’ est maintenant prêt pour l’importation de données (voir section Importer des données dans un SECTEUR GRASS). Vous pouvez également utiliser des données raster ou vecteur existantes dans le SECTEUR ‘alaska’ inclues dans le jeu de données QGIS ‘Alaska’ Échantillon de données et continuez avec la section Le modèle vecteur de GRASS.

Ajouter un nouveau Jeu de données

Un utilisateur a seulement des droits d’écriture sur le Jeu de données GRASS qu’il a créé. Cela veut dire, qu’au-delà de l’accès à son propre Jeu de données GRASS, vous pouvez lire les Jeux de données des autres utilisateurs (et ils peuvent lire le votre), mais vous ne pouvez modifier ou supprimer que les données de votre propre Jeu de données.

Tous les Jeux de données incluent un fichier WIND qui stocke l’emprise et la résolution raster courante (voir Neteler & Mitasova 2008 dans Bibliographie et section L’outil région GRASS).

  1. Démarrez QGIS et assurez vous que l’extension GRASS est chargée.

  2. Dans la barre d’outils GRASS, cliquez sur grass_new_mapsetNouveau jeu de données pour ouvrir l’assistant de création de Jeux de données.

  3. Sélectionnez le répertoire grassdata de la base de données GRASS (GISDBASE) qui contient déjà le SECTEUR ‘alaska’ et où nous voulons ajouter un autre SECTEUR nommé ‘test’.

  4. Cliquez sur [Suivant].

  5. Nous pouvons utiliser cet assistant à la fois pour créer un nouveau Jeu de données dans le SECTEUR existant et pour créer un nouveau SECTEUR. Cliquez sur le bouton radio radiobuttononSélectionnez le Secteur (voir figure_grass_location_2) et cliquez sur [Suivant].

  6. Entrez le texte du nom pour le nouveau Jeu de données. En dessous, dans l’assistant, vous pouvez voir une liste des Jeux de données et de leurs propriétaires.

  7. Cliquez sur [Suivant], vérifiez le résumé pour vous assurer qu’il est correct et cliquez sur [Terminer].

Importer des données dans un SECTEUR GRASS

Cette section donne un exemple d’importation de données raster et vecteur dans le SECTEUR GRASS ‘alaska’ fournit dans le jeu de données QGIS ‘Alaska’. Nous utiliserons la couche raster d’occupation du sol landcover.img et la couche vectorielle au format GML lakes.gml, toutes deux présentes dans le jeu de données ‘Alaska’ (voir Échantillon de données).

  1. Démarrez QGIS et assurez vous que l’extension GRASS est chargée.

  2. Dans la barre d’outils GRASS, cliquez sur grass_open_mapsetOuvrir un jeu de données pour ouvrir l’assistant Jeu de données.

  3. Sélectionnez comme base de données GRASS, le répertoire grassdata dans le jeu de données QGIS Alaska, puis le SECTEUR ‘alaska’, le Jeu de donnée ‘demo’ et cliquez sur [OK].

  4. Maintenant cliquez sur grass_tools Ouvrir les outils GRASS. La boîte à outils GRASS s’ouvre (voir section La Boîte à outils GRASS).

  5. Pour importer la couche raster landcover.img, cliquez sur le module r.in.gdal dans l’onglet Arborescence des modules. Ce module GRASS vous permet d’importer les fichiers raster gérés par la librairie GDAL dans un SECTEUR GRASS. La fenêtre r.in.gdal apparaît.

  6. Naviguer jusqu’au répertoire raster dans le jeu de données QGIS ‘Alaska’ et sélectionnez le fichier landcover.img.

  7. Définissez landcover_grass comme nom de sortie pour le raster et cliquez sur [Lancer]. Dans l’onglet Rendu, vous voyez la commande GRASS en cours r.in.gdal -o input=/path/to/landcover.img output=landcover_grass.

  8. Lorsque Terminé avec succès s’affiche, cliquez sur [Vue]. La couche raster landcover_grass est maintenant importée dans GRASS et pourra être affichée dans QGIS.

  9. Pour importer le fichier GML lakes.gml, cliquez sur le module v.in.ogr dans l’onglet Arborescence des modules. Ce module vous permet d’importer des données vectorielles gérées par OGR dans un SECTEUR GRASS. La fenêtre v.in.ogr apparaît.

  10. Naviguer jusqu’au répertoire gml dans le jeu de données QGIS ‘Alaska’ et sélectionnez le fichier lakes.gml.

  11. Définissez lakes_grass comme nom de sortie et cliquez sur [Lancer]. Vous n’avez pas besoin des autres options dans cet exemple. Dans l’onglet Rendu, vous voyez la commande GRASS en cours v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass.

  12. Lorsque Terminé avec succès s’affiche, cliquez sur [Vue]. La couche raster :file:`lakes_grass`est maintenant importée dans GRASS et pourra être affichée dans QGIS.

Le modèle vecteur de GRASS

Il est important de comprendre le modèle vectoriel de GRASS avant de faire de la numérisation.

En général, GRASS utilise un modèle topologique pour les couches vecteur.

Cela signifie que les surfaces ne sont pas représentées par des polygones fermés et distincts, mais par une ou plusieurs limites. Une limite entre des polygones adjacents n’est numérisée qu’une seule fois et est partagée par les deux surfaces. Les limites doivent être connectées sans trous. Une surface est identifiée (et libellée) via le centroïde de la surface.

Outre les limites et centroïdes, une couche vectorielle peut également contenir des points et des lignes. Tous ces éléments de géométrie peuvent être mélangés dans une couche vectorielle et seront représentés dans différentes ‘sous-couches’ dans une carte vectorielle GRASS. Ainsi, une couche GRASS n’est pas un vecteur ou un raster, mais un niveau à l’intérieur d’une couche vectorielle. Il est important de bien distinguer ceci (même s’il est possible de mélanger des éléments de géométries différentes, c’est inhabituel et même dans GRASS, on l’utilise dans des cas particuliers tel que l’analyse de réseau. Normalement, vous devriez stocker des éléments de géométries différentes dans des couches différentes).

Il est possible de stocker plusieurs ‘sous-couches’ dans une couche vectorielle. Par exemple, des champs, de la forêt et des lacs peuvent être stockés dans une couche vectorielle. Des forêts et des lacs adjacents partagent les mêmes limites, mais ils auront des tables attributaires différentes. Il est aussi possible de faire correspondre une table attributaire aux limites. Par exemple, la limite entre un lac et une forêt peut être une route qui peut avoir une table attributaire différente.

La ‘sous-couche’ est définie dans GRASS par un chiffre. Ce chiffre définit s’il y a plusieurs sous-couches à l’intérieur d’une couche vectorielle (par exemple, il définit s’il s’agit de lac ou de forêt). Pour l’instant, il s’agit d’un nombre, mais dans des versions futures GRASS pourra utiliser des noms pour les sous-couches dans l’interface utilisateur.

Les données attributaires peuvent être stockées dans le SECTEUR au format dBase, SQLite3 ou dans des tables de bases de données externes comme par exemple : PostgreSQL, MySQL, Oracle, etc.

Les données attributaires sont liées à la géométrie par le biais d’un champ ‘category’.

‘Category’ (clé, ID) est un entier attaché à la géométrie, et il est utilisé comme lien vers une colonne de clé dans la table de base de données.

Astuce

Apprendre le modèle vecteur de GRASS

Le meilleur moyen d’apprendre le modèle vecteur de GRASS et ses possibilités est de télécharger un des nombreux tutoriels GRASS où le modèle vecteur est décrit plus précisément. Voir http://grass.osgeo.org/documentation/manuals/ pour plus d’informations, livres et tutoriels dans différentes langues.

Création d’une nouvelle couche vectorielle GRASS

Pour créer une nouvelle couche vectorielle GRASS à l’aide de l’extension GRASS, cliquez sur grass_new_vector_layer Créez une nouvelle couche vectorielle GRASS dans la barre d’outils. Entrez le nom de la couche dans la fenêtre et vous pouvez commencer à digitaliser un point, une ligne ou un polygone en suivant les instructions de la section Numérisation et édition de couche vectorielle GRASS.

Dans GRASS, il est possible de gérer plusieurs types de géométrie (point, ligne et surface) dans une seule couche d’information, car GRASS utilise un modèle vecteur topologique. Vous n’avez donc pas besoin de sélectionner un type de géométrie quand vous créez une couche vectorielle GRASS. Ce comportement est différent de celui de la création de shapefile avec QGIS, car les shapefiles utilisent un modèle vecteur d’entité simple (voir section Créer de nouvelles couches vecteur).

Astuce

Création d’une table attributaire pour une nouvelle couche vectorielle GRASS

Si vous souhaitez renseigner les données attributaires de vos entités numérisées, assurez-vous d’avoir créé une table attributaire avec des champs avant de commencer votre numérisation (voir figure_grass_digitizing_5).

Numérisation et édition de couche vectorielle GRASS

Les outils de numérisation pour les couches vectorielles de GRASS sont accessibles via grass_edit Éditer une couche vectorielle GRASS dans la barre d’outils. Assurez-vous d’avoir ouvert une couche vectorielle GRASS et sélectionné la sous-couche dans la légende avant d’utiliser l’outil d’édition. La figure figure_grass_digitizing_2 montre la fenêtre GRASS qui s’affiche quand vous cliquez sur l’outil d’édition. Les outils et les paramètres d’édition sont détaillés dans les paragraphes suivants.

Astuce

Numérisation de polygones dans GRASS

Si vous voulez créer un polygone dans GRASS, vous devez numériser premièrement les limites du polygone, en définissant le mode sur ‘Pas de catégorie’. Ensuite, vous ajoutez un centroïde (emplacement de l’étiquette) dans le polygone fermé, fixant le mode sur ‘Prochain non utilisé’. La raison en est, que le modèle vectoriel topologique assure toujours le lien entre les informations d’attributs des polygones via le centroïde et non via la limite.

Barre d’outils

Sur la figure figure_grass_digitizing_1 vous pouvez voir la barre d’outils d’édition GRASS de l’extension GRASS. Le tableau table_grass_digitizing_1 récapitule les fonctions disponibles.

Figure GRASS digitizing 1:

../../../_images/grass_digitizing_toolbar.png

Barre d’outils d’édition GRASS

Icône

Outil

Fonction

grass_new_point

Nouveau Point

Numérise un nouveau point

grass_new_line

Nouvelle Ligne

Numérise une nouvelle ligne

grass_new_boundary

Nouveau Contour

Numérise un nouveau contour (terminer la numérisation en sélectionnant un nouvel outil)

grass_new_centroid

Nouveau Centroïde

Numérise un nouveau centroïde (permet d’étiqueter un polygone existant)

grass_move_vertex

Déplacer un sommet

Déplace un sommet d’une ligne ou d’un polygone existant et indique sa nouvelle position

grass_add_vertex

Ajouter un sommet

Ajoute un nouveau sommet à une ligne existante

grass_delete_vertex

Effacer un sommet

Efface un sommet d’une ligne existante (confirmez le sommet sélectionné par un autre clic)

grass_move_line

Déplacer l’élément

Déplacez la limite, la ligne, le point ou le centroïde sélectionné puis cliquez sur la nouvelle position

grass_split_line

Couper la ligne

Coupe une ligne existante en deux parties

grass_delete_line

Effacer l’élément

Efface une limite, une ligne, un point ou un centroïde existant (confirmez l’élément sélectionné avec un autre clic)

grass_edit_attributes

Éditer les attributs

Édite les attributs de l’élément sélectionné (notez qu’un seul élément peut représenter plusieurs géométries, voir ci-dessus)

grass_close_edit

Fermer

Ferme la session et sauvegarde l’état actuel (reconstruit la topologie après)

Tableau Numérisation avec GRASS 1 : outils d’édition GRASS

Onglet Categorie

L’onglet Catégorie vous permet de définir la manière dont les valeurs du champ category sont assignées au nouvel élément géométrique.

Figure GRASS digitizing 2:

../../../_images/grass_digitizing_category.png

Onglet Catégorie de la fenêtre d’édition GRASS

  • Mode : La catégorie qui sera appliquée aux nouveaux éléments.

    • Prochain non utilisé - Applique la valeur suivante non utilisée du champ category à l’élément géométrique.

    • Saisie manuelle - Saisir manuellement la valeur du champ ‘category’ pour l’élément géométrique.

    • Pas de catégorie - Ne pas remplir le champ category. C’est par exemple utilisé pour les surfaces, car les valeurs de catégorie sont stockées via le centroïde.

  • Categorie - Un identifiant (ID) associé à chaque objet numérisé. Il est utilisé pour connecter les objets géométriques avec ces attributs.

  • Couche - Chaque objet peut être connecté à différentes tables attributaires au travers des différentes sous-couches. Le numéro de sous-couche par défaut est 1.

Astuce

Création d’une ‘sous-couche’ supplémentaire avec |qg|

i vous souhaitez avoir plusieurs sous-couches dans votre couche vectorielle, ajouter simplement un nouveau chiffre dans la zone de saisie ‘Couche’ et appuyez sur entrée. Dans l’onglet Table, vous pouvez créer de nouvelles tables attributaires connectées à votre nouvelle sous-couche.

Onglet Paramètres

L’onglet Paramètres vous permet de définir la tolérance d’accrochage en pixels-écrans. Le seuil définit à partir de quelle distance les nouveaux points ou les nouvelles lignes sont accrochées automatiquement à des noeuds existants. Cela aide à éviter de créer des trous ou des superpositions entre les contours. La valeur par défaut est fixée à 10 pixels.

Figure GRASS digitizing 3:

../../../_images/grass_digitizing_settings.png

Onglet Paramètres de la fenêtre d’édition de GRASS

Onglet Convention des signes

L’onglet Convention des signes vous permet d’afficher et modifier la symbologie, la couleur des différentes formes géométriques ainsi que leur statut topologique (par exemple : contour ouvert / fermé).

Figure GRASS digitizing 4:

../../../_images/grass_digitizing_symbology.png

Onglet Convention des signes de la fenêtre d’édition de GRASS

Onglet Table

L’onglet Table donne des informations sur la table attributaire d’une ‘sous-couche’ donnée. C’est ici que vous pouvez ajouter des colonnes à une table attributaire existante ou créer une nouvelle table attributaire pour une nouvelle couche vectorielle GRASS (voir section Création d’une nouvelle couche vectorielle GRASS).

Figure GRASS digitizing 5:

../../../_images/grass_digitizing_table.png

Onglet Table de la fenêtre d’édition de GRASS

Astuce

Droits d’édition GRASS

Vous devez être propriétaire du Jeu de données que vous voulez éditer. Il est impossible de modifier des informations d’un Jeu de données qui n’est pas à vous, même si vous avez des droits en écriture.

L’outil région GRASS

La définition d’une région (définir une emprise spatiale de travail) dans GRASS est très importante pour travailler avec des couches rasters. Le travail d’analyse vecteur n’est, par défaut, pas limitée à une région définie. Mais, tous les rasters nouvellement créés auront l’emprise spatiale et la résolution de la région GRASS en cours d’utilisation, indépendamment de leur emprise et résolution d’origine. La région courante GRASS est stockée dans le fichier $LOCATION/$MAPSET/WIND, et celui-ci définit les limites Nord, Sud, Est et Ouest, le nombre de lignes et de colonnes ainsi que la résolution spatiale horizontale et verticale.

Il est possible d’afficher ou de masquer l’emprise de la région GRASS dans QGIS à l’aide du bouton grass_region Afficher la région courante GRASS.

A l’aide du bouton grass_region_edit Éditer la région courante GRASS vous avez accès à une fenêtre qui vous permet de modifier la région courante ainsi que sa symbologie. Entrez les nouvelles limites et résolution et cliquez sur [OK]. Cette fenêtre vous permet aussi de définir une nouvelle région interactivement à l’aide de la souris. Pour définir ce rectangle d’emprise, cliquez avec le bouton gauche de la souris et définissez un rectangle que vous terminerez en cliquant de nouveau sur le bouton gauche de la souris et cliquez sur [OK].

Le module GRASS g.region propose un grand nombre de paramètres pour définir de façon appropriée les limites et la résolution d’une région pour faire de l’analyse raster. Vous pouvez vous servir de ces paramètres dans la boîte à outils GRASS décrite dans la section La Boîte à outils GRASS.

La Boîte à outils GRASS

La fenêtre grass_tools Ouvrir les outils GRASS donne accès aux fonctionnalités GRASS qui permettent de travailler sur les données d’un SECTEUR et d’un Jeu de données. Pour utiliser la Boîte à outils GRASS, vous devez ouvrir un SECTEUR et un Jeu de données sur lequel vous avez des droits d’écriture (que vous avez normalement si vous avez créé le Jeu de données). Cela est nécessaire car les rasters et les vecteurs nouvellement créés lors des analyses doivent être écrits dans le SECTEUR et Jeu de données courant.

Figure GRASS Toolbox 1:

../../../_images/grass_toolbox_moduletree.png

La Boîte à outils GRASS et la l’Arborescence des modules

Travailler avec les modules GRASS

La console de la Boîte à outils GRASS vous donne accès à pratiquement tous les modules GRASS (plus de 300) en ligne de commande. Afin d’offrir un environnement de travail plus agréable, environ 200 d’entre eux sont disponibles via l’interface graphique de la Boîte à outils GRASS.

La liste des modules GRASS disponibles via la boîte à outils de QGIS 2.8 est détaillée sur le wiki de GRASS : http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list.

Il est aussi possible de personnaliser le contenu de la boîte à outils GRASS. Ceci est décrit dans la section Paramètrer la boîte à outils GRASS.

Comme indiqué sur la figure figure_grass_toolbox_1, vous pouvez chercher le module GRASS approprié en utilisant l’onglet Arborescence des modules ou en utilisant l’onglet Liste des Modules pour faire une recherche.

Lorsque vous cliquez sur un module, un nouvel onglet apparaît proposant trois sous-onglets : Options, Rendu et Manuel.

Options

L’onglet Options propose une interface simplifiée où vous pouvez sélectionner un raster ou un vecteur en cours de visualisation dans QGIS et saisir les paramètres spécifiques au module avant de le lancer.

Figure GRASS module 1:

../../../_images/grass_module_option.png

Boîte à outils GRASS, onglet Options d’un module nix

Tous les paramètres du module ne sont généralement pas fournis afin de simplifier les fenêtres. Pour utiliser des paramètres qui ne se trouvent pas dans la fenêtre, vous devez utiliser la console GRASS et lancer les modules en lignes de commande.

Une nouvelle fonctionnalité depuis QGIS 1.8.0 est l’ajout d’un bouton Afficher les options avancées >> en-dessous de la fenêtre simplifiée de l’onglet Options. Pour l’instant seul le module v.in.ascii a été adapté afin de servir d’exemple d’utilisation mais d’autres le seront dans les prochaines versions de QGIS. La finalité est de pouvoir recourir à toutes les options de GRASS sans devoir ouvrir la console GRASS.

Rendu

Figure GRASS module 2:

../../../_images/grass_module_output.png

Boîte à outils GRASS, onglet Sortie d’un module nix

L’onglet Rendu fournit des informations sur l’état de sortie du module. Quand vous cliquez sur le bouton [Lancer], le module passe sur l’onglet Rendu et vous voyez les informations sur le processus en cours. Si tout se passe bien, vous verrez finalement le message Terminé avec succès.

Manuel

Figure GRASS module 3:

../../../_images/grass_module_manual.png

Boîte à outils GRASS, onglet Manuel d’un module nix

L’onglet Manuel montre la page HTML d’aide du module GRASS. Vous pouvez vous en servir pour voir les autres paramètres du module et pour avoir une connaissance plus approfondie de l’objet du module. À la fin de chaque page d’aide d’un module, vous avez des liens vers Main Help index (index principal), Thematic.index (index par thème) et Full.index (index complet). Ces liens vous donnent les mêmes informations que si vous utilisiez directement g.manual.

Astuce

Afficher les résultats immédiatement

Si vous voulez voir immédiatement dans votre fenêtre carte le résultat des calculs du module, vous pouvez utiliser le bouton ‘Vue’ au bas de l’onglet du module.

Exemples de modules GRASS

Les exemples suivants décrivent les possibilités de certains modules GRASS.

Création de courbes de niveau

Le premier exemple permet de créer une couche vectorielle de courbes de niveau à partir d’un modèle numérique de terrain (MNT). Ici, nous considérerons que le SECTEUR Alaska a été installé comme décrit dans la section Importer des données dans un SECTEUR GRASS.

  • Premièrement, ouvrez le secteur en cliquant sur le bouton grass_open_mapset Ouvrir le jeu de données et choisissez le secteur Alaska.

  • Maintenant chargez le raster gtopo30 en cliquant sur le bouton grass_add_raster Ajouter une couche raster GRASS puis en sélectionnant le raster gtopo30 dans le secteur demo.

  • Ouvrez la boite à outils à l’aide du bouton grass_tools Ouvrir les outils GRASS.

  • Dans la liste des outils double-cliquez sur Raster -> Gestion de surface -> Générer des lignes vectorielles de contours.

  • Maintenant, cliquez sur l’outil r.contour, cela ouvrira une fenêtre comme expliqué ci-dessus (voir Travailler avec les modules GRASS). Le raster gtopo30 devrait apparaitre dans le champ Nom du raster en entrée.

  • Dans le champ Increment between Contour levels selectnumber, saisissez la valeur 100. (Cela va créer des courbes de niveau tous les 100 mètres)

  • Saisisez dans le champ Nom de la couche vectorielle en sortie, le nom ctour_100.

  • Cliquer sur [Lancer] pour lancer le traitement. Attendez quelques instants que le message Terminé avec succès apparaisse à l’écran. Cliquez enfin sur [Vue] puis [Fermer].

Comme il s’agit d’une grande région, cela prendra un certain temps à s’afficher. Une fois l’affichage terminé, vous pouvez ouvrir la fenêtre de propriétés de la couche pour changer la couleur des courbes de niveau afin qu’elles apparaissent clairement au dessus de la couche raster d’élévation comme décrit dans Fenêtre Propriétés d’une couche vecteur.

Zoomez sur une petite région montagneuse du centre de l’Alaska. Avec un zoom important, vous constaterez que les courbes de niveau sont constituées de lignes brisées avec des angles vifs. GRASS offre la possibilité de généraliser les cartes vecteurs à l’aide de l’outil v.generalize, tout en conservant leur forme générale. L’outil utilise différents algorithmes ayant différents objectifs. Certains de ces algorithmes (par exemple : Douglas Peucker et Réduction de Vertex) simplifient les lignes en supprimant des sommets. La couche simplifiée se chargera plus rapidement. Cette commande est utile lorsque vous avez une couche vectorielle très détaillée et que vous créez une carte à petite échelle où les détails ne sont donc pas nécessaires.

Astuce

L’outil de simplification

Vous remarquerez que fTools dispose aussi d’un outil de simplification Simplifier la géometrie qui fonctionne comme l’algorithme Douglas-Peucker de GRASS, v.generalize.

Cependant, le but de cet exemple est différent. Les courbes de niveau créées avec r.contour ont des angles vifs qui doivent être lissés. Parmi les algorithmes de v.generalize, il y a l’algorithme de Chaiken qui fait justement ça (comme Hermite splines). Gardez à l’esprit que ces algorithmes peuvent ajouter des sommets supplémentaires au vecteur, l’amenant à se charger encore plus lentement.

  • Ouvrez la Boîte à outils GRASS et double cliquez sur Vecteur -> Développer la carte -> Généralisation. Cliquez alors sur le module v.generalize pour ouvrir sa fenêtre d’options.

  • rifier que la couche vectorielle ‘ctour_100’ apparait dans le champ Nom de la couche vectorielle en entrée.

  • Dans la liste des algorithmes choisissez Chaiken. Laisser les autres options par défaut et descendez à la dernière ligne pour donner le nom de la couche d’information à créer : Nom de la couche vectorielle en sortie ‘ctour_100_smooth’, et cliquez sur [Lancer].

  • Cela peut prendre plusieurs minutes. Lorsque le texte Terminé avec succès apparait, cliquez sur le bouton [Vue] puis sur [Fermer].

  • Vous pouvez changer la couleur de cette couche vectorielle pour qu’elle apparaisse clairement sur le raster et qu’elle contraste aussi avec la couche de départ.Vous remarquerez que les nouvelles courbes de niveau ont des angles plus arrondis que l’original tout en restant fidèle à la forme globale d’origine.

Figure GRASS module 4:

../../../_images/grass_toolbox_vgeneralize.png

Module GRASS v.generalize utilisé pour simplifier une couche vectorielle nix

Astuce

Autres utilisations de r.contour

La procédure décrite ci-dessus peut être utilisée dans d’autres cas similaires. Si vous disposez d’une couche d’informations raster représentant des précipitations, par exemple, vous pouvez utiliser la même méthode pour créer des isohyètes (lignes reliant des points d’égales quantités de précipitations).

Créer un ombrage avec effet 3D

Différentes méthodes sont utilisées pour afficher les modèles numérique de terrain et donner un effet 3D au carte. L’utilisation de courbes de niveau comme décrit ci-dessus est un des moyens souvent utilisés pour produire des cartes topographiques. Un autre moyen de rendre cet effet 3D est d’utiliser l’ombrage. L’ombrage est créé à partir du modèle numérique de terrain (MNT) en calculant d’abord les pentes et les expositions puis en simulant la position du soleil dans le ciel ce qui donne à chaque cellule une valeur de réflectance. Les pentes éclairées par le soleil sont plus claires et les pentes à l’abri du soleil sont plus sombres.

  • Commencez par ouvrir la couche raster gtopo30. Ouvrez la Boîte à outils GRASS et dans la catégorie Raster double cliquez sur Analyse spatiale ‣ Analyse de terrain.

  • Cliquez ensuite sur r.shaded.relief pour lancer le module.

  • Changer l’ Azimuth du soleil par rapport au nord, en degrés selectnumber et mettez 315.

  • Saisissez gtopo30_shade comme nom pour la nouvelle couche d’ombrage et cliquez sur le bouton [Lancer].

  • Quand le calcul est terminé, ajoutez le raster d’ombrage à la fenêtre carte. Normalement, il devrait s’afficher en niveau de gris.

  • Pour voir les deux couches d’informations ombrage et gtopo30 en même temps, placez la couche ombrage sous la couche gtopo30 dans le gestionnaire de couches et ouvrez la fenêtre Propriétés de la couche gtopo30, allez sur l’onglet Transparence et fixez la transparence à environ 25%.

Vous devriez maintenant avoir la couche gtopo30 en couleur et en transparence, affiché au dessus de la couche d’ombrage en niveau de gris. Pour bien visualiser l’effet d’ombrage, décochez puis recochez la couche gtopo30_shade dans la légende.

Utiliser la console GRASS

L’extension GRASS de QGIS est faite pour les utilisateurs ne connaissant pas GRASS et qui ne sont pas familiers avec les modules et les options. Ainsi, certains modules dans la Boîte à outils n’apparaissent pas avec toutes les options possibles et certains n’apparaissent pas du tout. La console GRASS donne accès à ces modules additionnels qui n’apparaissent pas dans la Boîte à outils et aussi aux options des modules qui n’apparaissent que de façon simplifiés dans la Boîte à outils. Cet exemple montre l’utilisation des options supplémentaires du module r.shaded.relief utilisé ci-dessus.

Figure GRASS module 5:

../../../_images/grass_toolbox_shell.png

La console GRASS utilisation du module r.shaded.relief nix

Le module r.shaded.relief possède un paramètre zmult qui multiplie la valeur de l’altitude (exprimé dans la même unité que les coordonnées X - Y) ce qui a pour effet d’accentuer le relief.

  • Ouvrez le raster gtopo30 comme ci-dessus, lancez la Boîte à outils GRASS et ouvrez la console GRASS. Dans la console, entrez la ligne suivante r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 et pressez [Entrée].

  • Une fois le calcul terminé, allez sur l’onglet Parcourir et double-cliquez sur le nouveau raster gtopo30_shade2 pour l’afficher dans QGIS.

  • Comme expliqué ci-dessus, placez le raster d’ombrage sous le raster gtopo30 puis vérifiez la transparence du raster gtopo30. Vous devriez constater que le relief apparaît plus marqué qu’avec le premier raster d’ombrage.

Figure GRASS module 6:

../../../_images/grass_toolbox_shadedrelief.png

Affichage du relief ombré créé avec le module GRASS r.shaded.relief nix

Statistiques raster avec des couches vectorielles

L’exemple suivant comment un module GRASS peut aggréger des données raster et ajouter des colonnes de statistiques pour chaque polygone d’une couche vectorielle.

  • Encore une fois, nous allons utiliser le jeu de données Alaska. Référez vous à Importer des données dans un SECTEUR GRASS pour importer les shapefiles contenus dans le répetoire shapefiles dans GRASS.

  • Un étape intermédiaire est nécessaire : des centroïdes doivent importés afin d’avoir une couche GRASS vecteur complète (qui inclue les contours et les centroïdes).

  • Dans la Boîte à outils choisissez Vecteur -> Gestion des entités et ouvrez le module v.centroids.

  • Entrez ‘forest_areas’ comme nom de couche en sortie et lancez le module.

  • Maintenant ouvrez la couche vectorielle forest_areas et affichez les types de forêts avec différentes couleurs : caduques, persistentes, mélangées. Dans la fenêtre Propriétés, onglet symbologie , choisissez le Type de légende selectstring ‘Valeur unique’ et le champ ‘VEGDESC’ comme champ de classification. (Reportez vous aux explications de l’onglet Symbologie Onglet Style de la section vecteur).

  • Réouvrez la Boîte à outils GRASS et ouvrez Vecteur -> Mise à jour vectorielle via d’autres cartes.

  • Cliquez sur le module v.rast.stats. Saisissez gtopo30 et forest_areas.

  • Un seul paramètre additionnel est requis : Entrez elev pour le column prefix, et cliquez sur le bouton [Lancer]. C’est un opération lourde qui peut durer longtemps (jusqu’à deux heures).

  • Pour finir, ouvrez la table attributaire de forest_areas, et vérifiez que plusieurs nouvelles colonnes ont étés ajoutées dont elev_min, elev_max, elev_mean, etc., pour chaque polygone de forêt.

Travailler avec le navigateur GRASS

Une autre fonctionnalité utile de la boîte à outils GRASS est le navigateur de SECTEUR GRASS. Sur la figure figure_grass_module_7 vous pouvez voir le SECTEUR en cours avec ses Jeux de données.

Dans la partie gauche de la fenêtre vous pouvez naviguer dans tous les Jeux de données du SECTEUR courant. La partie droite de la fenêtre affiche des informations sur le raster ou le vecteur sélectionné (par exemple la résolution, l’emprise, la source des données, les tables attributaires pour les vecteurs et un historique des commandes).

Figure GRASS module 7:

../../../_images/grass_mapset_browser.png

Navigateur de SECTEUR GRASS nix

La barre d’outils de l’onglet Parcourir donne accès aux outils de gestion du SECTEUR sélectionné :

  • grass_add_map Ajoute la carte sélectionnée à la carte QGIS

  • grass_copy_map Copie la carte sélectionnée

  • grass_rename_map Renomme la carte sélectionnée

  • grass_delete_map Effacer la carte sélectionnée

  • grass_set_region Région courante réglée sur la carte choisie

  • grass_refresh Rafraîchir

Les commandes grass_rename_map Renommer la carte sélectionnée et grass_delete_map Effacer la carte sélectionnée ne fonctionnent qu’avec les cartes présentes dans votre Jeu de données sélectionné. Tous les autres outils fonctionnent aussi avec les autres Jeux de données.

Paramètrer la boîte à outils GRASS

Pratiquement tous les modules GRASS peuvent être ajoutés à la Boîte à outils. Une interface XML est fournie pour analyser les fichiers XML très simples qui configurent l’apparence et les paramètres des modules dans la boîte à outils.

Un exemple de fichier XML pour le module v.buffer (v.buffer.qgm) est donné ci-dessous :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE qgisgrassmodule SYSTEM "http://mrcc.com/qgisgrassmodule.dtd">

<qgisgrassmodule label="Vector buffer" module="v.buffer">
        <option key="input" typeoption="type" layeroption="layer" />
        <option key="buffer"/>
        <option key="output" />
</qgisgrassmodule>

L’analyseur lit cette définition et crée un nouvel onglet à l’intérieur de la Boîte à outils lorsque vous sélectionnez le module. Une description plus détaillée pour ajouter des modules, changer les groupes de modules, etc. est disponible sur le wiki de QGIS à l’adresse http://hub.qgis.org/projects/quantum-gis/wiki/Adding_New_Tools_to_the_GRASS_Toolbox.