Skip to Content

Comment trouver les zones qui correspondent à des critères d'altitudes, de pentes et d'orientations ?

Niveau Débutant
Logiciels utilisés QGIS
Plateforme Windows | Mac | Linux

Voici une question posée (un peu différement) de XxpavelxX sur le forumsig : http://www.forumsig.org/showthread.php/36322-Suppression-de-micro-polygones

En réalité la question initiale n'était pas celle là, mais la problématique correspond à cela.

Souvent pour répondre à ce genre de questions, une solution est de travailler sur des vecteurs, comme évoquée dans la discussion. Cette solution technique est un peu lourde, car elle nécessite de vectoriser plusieurs rasters, de faire des sélections, des intersections, et on se retrouve souvent avec des micro polygones (correspondant à un pixel) qu'il faut tenter de regrouper, etc. Bref, vous l'avez compris pour moi cette solution n'est pas idéale.

Il existe une autre méthode déjà évoquée sur le portailsig, notamment par Martin Laloux dans "GRASS GIS pas à pas pour les débutants: 6 - les masques (MASK) et leurs utilisations, rapport avec les régions et l'algèbre des cartes" ou encore "GRASS GIS : introduction à l'algèbre des cartes (map algebra, r.mapcalc (et r3.mapcalc))", l'algèbre de cartes.

Dans ce tutoriel, je vais essayer de vous montrer comment répondre à la question suivante avec cette méthode et donc avec du traitement raster.

Question :

Trouver les zones répondant aux critères suivants :

  • Altitudes inférieures à 1200 mètres,
  • Pentes inférieures à 30 %, (critère adapté par rapport à la question initiale pour que cela fonctionne avec mon jeu de données)
  • Expositions de nord ouest à nord est.

Nous allons travailler sur la bd alti au pas de 250 mètres de l'Ile de la Réunion (un peu d'exotisme ne peut pas faire de mal ...) que l'on peut trouver gratuitement en téléchargement sur le site de l'IGN http://professionnels.ign.fr/sites/default/files/Reunion_MNT250_ASC.zip

Nous utiliserons QGIS, mais la plupart des logiciels SIG permettant de traiter les rasters feraient l'affaire.

Etape 1 - Produire les rasters nécessaires :

Nous avons besoin de 3 rasters, le MNT (nous venons de le télécharger), un raster de pentes et un raster d'orientations.

QGIS possède une extension native, "Analyse Raster de terrain" permettant de faire cela, il suffit de l'activer dans le gestionnaire d'extensions, pour qu'un sous menu "Analyse de terrain" apparaisse dans le menu "Raster". On trouvera quelques informations sur cette extension dans le manuel de QGIS http://download.osgeo.org/qgis/doc/manual/qgis-1.7.2_user_guide_fr.pdf , page 191. On notera notamment que la pente est données en degrès et que l'orientation est donnée comme suit :

"Aspect : Calcule l’exposition (en degrés dans le sens horaire inverse et en commençant par 0 pour une direction nord)"

Pour la pente :

Raster / Analyse de terrain / Pente :

Pour les orientations :

Même principe, Raster / Analyse de terrain / Aspect :

Nous avons tous les éléments nécessaires pour commencer nos traitements :

Etape 2 - Extraire de chaque raster les zones répondant aux critères

Pour extraire les zones qui nous intéressent nous allons utiliser la calculatrice raster. Dans QGIS, on la trouve dans Raster / Calculatrice raster. Cette calculatrice nous permet de faire des opérations sur des rasters et cela s'avère très puissant, ici nous ne verrons que des opérations simples.

Le principe, on donne une couche de résultat, l'emprise que l'on souhaite utiliser pour le traitement, puis dans la partie Expression, il faut remplir la formule à utiliser.

Ici nous cherchons à obtenir un masque, c'est à dire que pour chaque raster, nous souhaitons obtenir un nouveau raster composé de 0 et de 1, les pixels de valeur 1 correspondront à une zone qui valident le critère recherché.

Ainsi pour l'altitude, nous cherchons les altitudes inférieures à 1200 mètres, la formule sera :

DEPT974@1 < 1200

ici DEPT974 est notre MNT, @1 spécifie sur quelle bande portera l'opération, ici nos rasters ne sont composés que d'une seule bande.

 

Pour la pente :

Pente974@1 < 30

Pour les orientations, on considère que les valeurs recherchées, vont de 0 à 30 ° et de 330 à 360 °:

Orientation974@1 > 330 OR Orientation974@1 < 30

Nous nous retrouvons avec 3 masques, un pour les altitudes, un pour les pentes et un pour les orientations correpondants aux critères précisés dans la question.

Afin de pouvoir obtenir les zones qui correspondent à ces trois critères cumulés, nous allons multiplier ces 3 masques, en effet, lorsque 0 d'un des masques sera multiplié avec un 0 ou un 1, on obtiendra toujours un 0 et donc la zone sera exclue :

altinInf1200@1 * orienationNO-NE@1 * penteInf30@1

X X

=

Nous obtenons finalement un raster composé de 0 et de 1. Les pixels de valeur 1 (ici en blanc) représentent les zones qui valident tous les critères évoqués et on répond donc à la question initiale. Vous verrez que ces opérations sont très rapides en réalité.

Bien sur ici, l'exemple est assez simple, mais l'algèbre de cartes est très puissant, il permet énormément de choses, on pourrait par exemple reclasser un raster, utiliser des opérateurs plus complexes, calculer des indices (par exemple l'indice NDVI) etc.

J'espère que ce petit tutoriel, vous permettra d'appréhender simplement l'algèbre de cartes et d'en comprendre son intérêt.

Site officiel : QGIS
Autres Liens : GRASS GIS pas à pas pour les débutants: 6 - les masques (MASK) et leurs utilisations, rapport avec les régions et l'algèbre des cartes
Autres Liens : GRASS GIS : introduction à l'algèbre des cartes (map algebra, r.mapcalc (et r3.mapcalc))


Creative Commons License
licence Creative Commons Paternité-Pas d'Utilisation Commerciale-Pas de Modification 2.0 France

Commentaires

Bonjour, c'est vraiment

Bonjour, c'est vraiment intereesant cette article sous forme de questionnaire. Mais je me demande, si on vas trouver les solution sans se deplacer sur les terrain, pour trouver les altitudes,les pentes avec leur position. En voyant votre publication, je vais faire une petite recherche à cela sur terrain, avec juste des materielles necessaires et une petite sacs, que j'ai trouvé sur https://www.valise-roulettes.fr/comparatif/valise-ultra-legere/, et je vais vous partager ici, mes resultats.

Bonjour, merci pour le

Bonjour,

merci pour le tuto,

mais où trouve t-on les raster de pente ? pour diverses régions françaises..?

merci

Bonjour Les rasters de pente

Bonjour

Les rasters de pente sont à créer à partir d'un modèle numérique de terrain (MNT) comme décrit dans l'article.

L'IGN propose des MNT à différentes résolutions, certains gratuitement http://professionnels.ign.fr/bdalti#tab-3

Bonjour a tous, Je me

Bonjour a tous,

Je me demandais si il était possible de créer a partir de ce tutoriel plusieurs "couches" dans un même raster.
Par exemple des zones (colorées?) pour la pente avec plusieurs classe (0 - 15)/(15 - 30) etc...

Merci d'avance
Cordialement

Calculatrice Raster ne semble pas prendre "OR"

Avec QGis1.8.0-Lisboa sur Mac/OS, mes requêtes par la calculatrice fonctionnent quand il y a "AND" et semble ne pas fonctionner avec "OR". J'ai procédé comme dans le tuto avec succès pour les 3 expositions qui ne nécessitaient que "AND" (E, S et Ouest), mais pour le Nord où il me faut écrire "aspect@1>=315 OR aspect@1<45" le raster produit n'a aucune bande! J'ai tenté de faire aussi "aspect@1>=45 OR aspect@1<45" pour avoir comme bande tous les pixels: même résultat (aucun pixel). Bug connu? Une solution?
Comme alternative j'ai tenté Raster/Divers/Fusionner d'un raster1 avec aspect@1>=315 et d'un raster2 avec aspect@1<45: sans succès, il ne me produit qu'un raster semblable à un des 2 rasters d'origine, semblable à raster1... J'ai loupé quoi?

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.