S'abonner à un flux RSS
 

Préalables pour l'utilisation de Qgis-GRASS sur le LIDAR

De Wikibardig

Cette page est en cours de construction

Sommaire

Contexte

Cette page est un sous-thème de la page sur l'Utilisation des données LIDAR pour la directive inondation. Le lecteur est invité à s'y reporter pour comprendre le contexte général sur l'exploitation des données LIDAR.

Cette page a pour objectif de fournir les bases de prise en main de Qgis-GRASS pour l'exploitation des données LIDAR avant de faire des traitements plus ciblés.

Installation et prise en main de Qgis-GRASS pour le LIDAR

L'installation proposée est celle du MEDDTL sur http://geoinfo.metier.i2/qgis-r625.html qui fournit une version stable 1.7.4 avec les plugins nécessaires. Une équivalence est accessible sur le site Qgis.

Si les explications ci-dessous ne suffisent pas, vous pouvez vous reporter au rapport du CPII sur l'Expérimentation des données Litto3D® au lien suivant http://geoinfo.metier.i2/experimentation-des-donnees-a2006.html. Une équivalence est accessible à ce lien.

Les temps de calcul sont souvent faibles mais les traitements demandent de la rame sur votre PC, il convient de limiter le nombre de programmes ouverts sur vos postes.

Problèmes possibles

Lorsque vous chargez la version MEDDTL, il y a l'extension .exe alors que ce n'est pas une application, la changer par zip, décompresser le zip et lancer l'exe à l'intérieur.

 

Installation de plugins Qgis nécessaires

Qgis fonctionne avec de nombreux plugins. Pour les ouvrir, Menu: Extension/Installation d'extension Pytho et aller sur l'onglet Extensions

  • Lancer une recherche pour les mises à jour
  • Charger trois plugins très utiles Profile (pour le calcul de profil), Table Manager (Table pour ajouter, supprimer des champs...) et Value Tool (affiche la valeur de tous les rasters visibles dans le contrôle des couches en se positionnant sur la fenêtre carte avec la souris).
qgis installation module
qgis bouton profil
qgis value tool


N.B. L'autre moyen pour installer est de taper par exemple « profi » dans le filtre. L'extension « profile » dont la description est « plots terrain profile » apparaît, il suffit de la sélectionner et de cliquer sur l'onglet "Installer l'extension".


Dans la barre d'outil, il apparaît les boutons suivant :

Les trois mondes Qgis, Qgis-GRASS et GRASS

Lorsque vous installez Qgis-GRASS, trois mondes cohabitent, le monde Qgis, le monde Qgis-GRASS et le monde GRASS.

interface qgis
interface qgis grass
interface grass par qgis grass
  • Qgis disposant d'une interface conviviale, s'appuie sur de nombreux plugins ( mini-programmes à ajouter) en constante évolution.

L'interface est classique à celle d'un SIG.

  • Qgis avec l'extension GRASS permet d'accéder à des fonctions "bridées" de GRASS mais déjà performantes

Cette interface s'appuie sur trois onglets, une arborescence de modules classés de manière thématique, une liste de modules alphabétiques et un onglet parcourir qui permet de voir les différentes "couches" disponibles. Chaque module dispose d'un onglet manuel qui décrit le travail effectué par la routine. Pour que GRASS fonctionne correctement, il convient d'éviter  les espaces, caractères spéciaux, les accents dans les noms des fichiers.

Au préalable, Grass stocke ses données dans un répertoire appelé généralement grassdata, les données sont organisées par projets dans des sous-répertoires appelés secteur ou localisation. Chaque secteur peut contenir plusieurs jeux de données (sous-répertoires) pour subdiviser le projet en différents thèmes ou espaces de travail. Chaque SECTEUR ou localisation est défini par son système de coordonnées, sa projection et son étendue géographique appelée Région courante. Pour définir simplement un jeu de donnée dans GRASS, le mieux est d'ouvrir dans Qgis une table de l'emprise de votre zone de travail dans le bon référentiel, ensuite lors de la création de votre zone, vous coller votre zone GRASS sur l'étendue géographique de Qgis.

  • GRASS assez accessible pour les non-initiés par l'extension Qgis-GRASS

L'accès se fait par la console SHELL et en tapant sur cette interface "DOS" le nom de la fonction, une boite de dialogue apparaît.

Ces trois mondes sont visualisables dans l'interface Qgis.

Ouverture de raster, exemple des trois mondes

Ouverture sous Qgis

Deux options permettent d'ouvrir les fichiers ASCII sous Qgis, il faut ensuite lui appliquer une palette de couleur, une méthode est fournie ci-dessous. Des compléments pour les palettes de couleurs sont fournis dans la partie automatisation de cette page.

Ouverture d'un fichier ASCII

Le fichier ASCII doit être importé en utilisant la barre d'outil ou le Menu: Couche/Ajouter une couche raster

Il suffit de choisir le répertoire où se trouve la dalle, sélectionner le fichier ASCII puis définir la projection.

qgis ouverture raster
qgis vue mnt

En France métropolitaine, si le MNT est dans le dernier référentiel, il faut choisir le RGF93, Lambert 93 (ID certifié : EPSG : 2154), le MNT apparaît dans le contrôle des couches de la fenêtre QGIS.

Ouverture de plusieurs fichiers ASCII

qgis rastervirtuel
 

Dans l'interface Qgis, il est possible de faire des Rasters Virtuels en ouvrant plusieurs dalles facilement (test sur 100 dalles de 1km² avec un pas de 1m => 2 minutes) à partir du menu: Raster/Divers/Construire un Raster Virtuel (Catalogue vrt)


Création de la palette de couleur

qgis palette couleur
Sélectionner le raster dans le contrôle des couches sur lequel sera appliqué la palette de couleur. Lancer la commande 1-Band Raster Colour table à partir du menu: Extension/Raster Colours. Valider le système de projection (RGF93-L93 en métropole).

QGIS crée automatiquement la palette 032_grey dans le répertoire choisi, par défaut il le met dans le répertoire où se trouve le MNT. Une fois la palette définie, le fichier créé se trouve au format .txt.


On peut créer autant de fichier de palette de couleur que l'on veut pour ce Mnt, à condition de ne pas sortir de cette boite de dialogue entre chaque enregistrement de fichier. Pour enregister une palette il suffit de cliquer sur le bouton "Create", tous les fichiers créés seront dans le même répertoire. Il est possible d'appliquer directement la palette de couleur au mnt en choisissant dans le menu déroulant (en bas de la fenêtre) le Mnt sur lequel on veut l'appliquer. Sinon on peut lui attribuer la palette de couleur à partir des propriétés de la table depuis le contrôle des couches (voir explications ci-dessous).


Une autre information importante est le choix de la palette de couleur. Celles-ce sont classées par nombre de couleurs (8, 16 ,32, 64...). Si vous avez par exemple un territoire qui s'étend de 0 à 600 mètres, et que vous voulez le classer tous les 10 mètres, le mieux est de choisir une barre de couleur de 64 couleurs.

MNT et Palette de couleur

Il est maintenant possible d'appliquer une palette de couleur au MNT. Dans la fenêtre QGIS (contrôle des couches), il faut sélectionner le MNT sur lequel sera appliqué la palette et aller dans ses propriétés.

Dans la fenêtre qui s'ouvre, il faut choisir dans l'onglet :

  • Style: dans le menu déroulant de palette de couleur: palette de couleur
  • Palette de couleur: cliquer sur  (charger une palette depuis le fichier) qui permet de choisir le modèle de palette enregistré préalablement.
qgis mnt propriete
qgis chargement palette
qgis choix palette

Ouverture sous Qgis-GRASS

Il faut considérer que le raster a déjà été ouvert dans QGIS pour maintenant le traiter avec GRASS.

Création du jeu de donnée

grass jeu de donnee
Dans un premier temps, il faut créer un nouveau jeu de donnée à l'aide du Menu Extension\GRASS\Nouveau jeu de données :

Choisir (ou créer) un répertoire de sortie pour les Geodatabase GRASS, Cliquez sur « next »

La phase suivante permet de donner le nom d'un répertoire de sortie des données dans le répertoire précédemment défini. Cliquez sur « next »

Ensuite il faut définir la projection (RGF93 – L93 pour le dernier référentiel France métropolitaine). Cliquez sur « next »

Pour ensuite « fixer l'emprise courante de QGIS ». Cliquez sur « next »

Il faut ici donner un nom au « jeu de donnée » qui est maintenant créé.

Import du raster dans Qgis Grass

Pour ouvrir le raster existant, il faut utiliser le menu extension\GRASS\Ouvrir les outils GRASS. Il faut importer le raster ouvert dans Qgis, GRASS s'occupe de tout fusionner (r.in.gdal.qgis). Les modules de l'interface Qgis-Grass ne donnent accès qu'aux couches visibles dans Qgis, ce qui nécessite de les visualiser. Cette étape est parfois la plus pénible car elle consomme plus de temps que l'exécution de la routine. Le bouton "Vue", actif à la fin des traitements, permet d'ouvrir les résultats dans Qgis.

grass ouverture outil
grass import raster

Définition de la région courante GRASS

Cette région définie le secteur dans lequel se trouve différents paramètres dont la précision du MNT.
Il faut aller dans Menu: Extension\GRASS\Editer la région courante GRASS. La résolution de la région sous GRASS est très importante pour les exports de raster ou le calcul de profil en travers. Il faut choisir la taille en fonction de la maille de vos dalles (1m par exemple). Certaines fonctions de GRASS donnent sinon des résultats incohérents si cette fonction n'est pas activée.

grass fenetre region
qgis grass reduction section courante
grass region courante

Quand vous avez fini l'import, limiter la région de Grass (g.region.zoom) aux données non nulles du lidar pour avoir un gain de place avec un espace de travail réduit et un export en ASCII par exemple qui se limite à votre région de travail.

Ouverture sous GRASS

Sous Grass, vous pouvez utiliser la fonction r.in.gdal en la tapant dans la console SHELL.

Les problèmes de cohabitation

Certains problèmes apparaissent entre les mondes, comme la numérisation.

Numérisation sous Qgis OU sous GRASS

Ne pas numériser sous Qgis lorsque l'on visualise un raster du monde GRASS car avec des zooms et dezzooms, le vecteur bouge sur le raster.

Pour éviter ce problème, si vous avez des traitements dans GRASS, le mieux est d'exporter le raster du monde GRASS en ASCII et de l'ouvrir ensuite dans Qgis.

Automatisation

L'automatisation a pour objet dans le traitement des MNT LIDAR de réaliser des opérations simples à la suite sur des emprises qui peuvent être séparées sans difficulté. Par exemple, le classement en iso-cotes d'un MNT peut se faire dalles par dalles sans problème de continuité, ce qui ne serait pas le cas sur une modélisation hydraulique 2D où il existe des relations amont-aval.

L'objectif de cette partie est de montrer les préalables à l'automatisation par le schéma le plus simple qui existe, l'Interface en ligne de commande.

Au préalable, pour pouvoir traiter de nombreuses dalles, il faut avoir leur nom, objet de la première partie, ensuite deux exemples seront donnés, un exemple de copie simple et un exemple d'ouverture de fichier ASCII.

Récupération des noms des dalles

L'automatisation sur chaque dalle nécessite d'avoir la liste de toutes les dalles. La plupart du temps un fichier d'assemblage vecteur est fourni permettant avec un export en fichier texte d'avoir les noms des dalles.

Dans le monde Windows, une autre solution simple est de créer un fichier texte dans le répertoire de vos dalles LIDAR en copiant l'expression suivante: dir *.asc /b > liste.txt et de l'enregistrer, de mettre l'extension bat au lieu de txt et de le lancer.

Vous obtenez un fichier liste.txt par exemple sur le département du VAR:

IGN_MNT_1m_0961_6270.asc
IGN_MNT_1m_0962_6269.asc
IGN_MNT_1m_0962_6270.asc
IGN_MNT_1m_0962_6271.asc
IGN_MNT_1m_0963_6269.asc
IGN_MNT_1m_0963_6270.asc
IGN_MNT_1m_0963_6271.asc
IGN_MNT_1m_0963_6272.asc
IGN_MNT_1m_0964_6268.asc
...

Automatisation des couleurs des Rasters

Lorsque le MNT est fourni avec de nombreuses dalles, il peut être intéressant de faire une palette de couleur unique pour toutes les dalles.

Après avoir défini votre palette avec le nombre de couleurs voulues, dans l'onglet "Palette de couleur" disponible dans les propriétés de votre couche, vous mettez "à la main" les borne 0, 10, 20... jusqu'à 600 mètres, vous supprimez les classes non voulues et vous choisissez l'option "Sauvegarder comme défaut", c'est un fichier du même nom que votre dalle avec l'extension qml indiquant le style. Vous pouvez également créer des classes avec des pas différents comme: 0m, 1m, 1.4m, 1.5m, 1.9m, 2m, 2.4m...
Pour automatiser ce style sur toutes vos dalles, il suffit simplement dans un tableur de faire la liste suivante, en utilisant la fonction copy, le chemin de vos données ascii et le nom de vos dalles.

Dans cet exemple, nous voulons appliquer le style "IGN_MNT_1m_0970_6265.qml" (associé à la table "IGN_MNT_1m_0970_6265.asc") à la table "IGN_MNT_1m_0961_6270.asc" en créant le fichier "IGN_MNT_1m_0961_6270.qml", de même pour la table "IGN_MNT_1m_0962_6269.asc" avec le fichier "IGN_MNT_1m_0962_6269.qml"...

copy D:\Topo\IGN_MNT_1m_0970_6265.qml D:\Topo\IGN_MNT_1m_0961_6270.qml
copy D:\Topo\IGN_MNT_1m_0970_6265.qml D:\Topo\IGN_MNT_1m_0962_6269.qml
copy D:\Topo\IGN_MNT_1m_0970_6265.qml D:\Topo\IGN_MNT_1m_0962_6270.qml
copy D:\Topo\IGN_MNT_1m_0970_6265.qml D:\Topo\IGN_MNT_1m_0962_6271.qml
copy D:\Topo\IGN_MNT_1m_0970_6265.qml D:\Topo\IGN_MNT_1m_0963_6269.qml
copy D:\Topo\IGN_MNT_1m_0970_6265.qml D:\Topo\IGN_MNT_1m_0963_6270.qml

...

Il vous suffit de copier cette liste dans une fenêtre DOS ou votre interface SHELL (clic droit souris et coller) et toutes vos dalles s'ouvriront avec la palette choisie. Ceci était un exemple simple avec une fonction copy qui n'était pas spécifique à l'automatisation dans GRASS.

Ouverture de fichier Raster ASCII dans l'interface GRASS

Pour ouvrir un fichier ASCII Grille dans l'interface Qgis-GRASS ou GRASS par la console SHELL, lancer la commande suivante:

r.in.gdal -o input=D:/Topo/MNT/IGN_MNT_1m_0962_6270.asc output=IGN_MNT_1m_0962_6270_GRASS

Dans ce cas, le choix a été de prendre comme nom dans GRASS le même que le nom du fichier ASCII avec en plus _GRASS.

Ceci est facilement automatisable dans un tableur comme Openoffice-Calc:

  • colonne A: IGN_MNT_1m_0961_6270
  • colonne B: r.in.gdal -o input=D:\TopoMNT\
  • colonne C: .asc output=
  • colonne D: _GRASS
  • colonne E: formule: =CONCATENER(B2;A2;C2;A2;D2)

Le résultat est le suivant sur une ligne r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0961_6270.asc output=IGN_MNT_1m_0961_6270_GRASS et se lance facilement sur toutes les dalles.

r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0961_6270.asc output=IGN_MNT_1m_0961_6270_GRASS
r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0962_6269.asc output=IGN_MNT_1m_0962_6269_GRASS
r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0962_6270.asc output=IGN_MNT_1m_0962_6270_GRASS
r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0962_6271.asc output=IGN_MNT_1m_0962_6271_GRASS
r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0963_6269.asc output=IGN_MNT_1m_0963_6269_GRASS
r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0963_6270.asc output=IGN_MNT_1m_0963_6270_GRASS
r.in.gdal -o input=D:\TopoMNT\IGN_MNT_1m_0963_6271.asc output=IGN_MNT_1m_0963_6271_GRASS

...

En copiant et collant ces données dans l'interface SHELL, tous vos rasters s'ouvrent. Ceci est un exemple d'automatisation, l'objectif dans les différentes parties d'automatisations va être de réaliser des opérations sur chaque dalle et de ne travailler qu'avec une dalle en même temps.

Il faudra ensuite le supprimer via l'option g.remove.

Liens externes


Les intervenants

Maîtrise d'Ouvrage: MEDDM/DGPR

  • Responsable de l'étude: Sabine Baillarguet

Réalisation: Centre d'Études Techniques de l'Équipement Méditerranée

Partenariats:

Article rédigé par Appui CETE/CETMEF pour la Directive Inondation piloté par le PCI Inondations et Aléas Côtiers

Le créateur de cet article est Frédéric Pons
Note : d'autres personnes peuvent avoir contribué au contenu de cet article, [Consultez l'historique].

  • Pour d'autres articles de cet auteur, voir ici.
  • Pour un aperçu des contributions de cet auteur, voir ici.
Outils personnels