Comment calculer la courbure du terrain?


29

J'ai un raster d'élévation et j'aimerais obtenir des variables de terrain de base, telles que la pente, la robustesse, l'aspect ou la courbure.

Le problème est que je ne semble pas avoir la possibilité de calculer la courbure avec l'analyste de terrain:

entrez la description de l'image ici

Quelqu'un peut-il me dire pourquoi cet indicateur ne figure pas dans la liste? Comment puis-je le calculer autrement?

Réponses:


20

La courbure est un dérivé de terrain complexe à calculer, l'équation que vous utilisez dépend de la résolution de vos données d'entrée, car vous devez vous assurer que les résultats de courbure que vous calculez peuvent être distingués du bruit dans les données.

De nombreuses recherches ont été effectuées récemment sur les calculs de courbure sur des données LiDAR à haute résolution qui ont montré qu'il existe une rupture d'échelle à une résolution d'environ 2 ou 3 mètres et au-dessus de ce point, d'autres algorithmes (que je ne connais pas aussi bien) doivent être utilisés. . Les meilleures informations sur le calcul de la courbure topographique proviennent probablement de Hurst et al 2012 et des références qui y figurent.

Le principe de base du calcul de la courbure, comme pour la pente et l'aspect, est de passer une fenêtre mobile sur la surface d'élévation et d'ajuster les valeurs d'élévation à une fonction polynomiale à 6 termes, dont les coefficients donneront la pente, l'aspect et la courbure du centre cellule de la fenêtre mobile.

ArcGIS utilise une fenêtre de recherche 3x3 qui ne donnera de bons résultats que dans des zones totalement dépourvues de végétation, ce qui rend l'outil assez inutile à moins que les gens ne soient conscients de cette limitation, cela peut suggérer pourquoi il n'est pas présent dans QGIS.

Les mathématiques ont été dérivées à l'origine (je pense) dans Evans (1980) et ont été simplifiées en quelques pages dans Principles of Geographical Information Systems (lien Amazon) que je peux recommander comme un bon guide pour ce type d'analyse de terrain à un niveau de base.

Une façon de calculer la courbure d'un DEM consiste à convertir le DEM en un raster ascii, à le lire dans un tableau numpy, puis à effectuer l'ajustement polynomial sur une fenêtre mobile passant à travers les données. C'est assez facile à faire, mais il est très lent à exécuter et nécessite une bonne quantité d'optimisation (ce type d'opérations est souvent porté sur c ++ pour les accélérer).

Pour effectuer l'opération dans QGIS, vous pouvez utiliser le plugin GRASS r.slope.aspect qui est également limité par la fenêtre fixe 3x3.

Je sais que ce n'est pas la réponse simple que vous espériez sans doute, mais j'espère que vous comprenez que la courbure est complexe à dériver de manière significative. Bonne chance.

Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.

Merci pour tout le développement! Cependant, j'ai été intrigué par le fait que l'option "Courbure" ne figure pas dans la liste de l'analyste de terrain raster de QGIS. Est-ce normal? J'ai réinstallé ma version de QGIS 1.8 pour être sûr, mais elle n'est toujours pas là: - /
Damien

1
notez que dans GRASS, vous pouvez utiliser 'r.param.scale' qui calcule les dérivées du terrain, telles que la courbure, avec une taille définie par l'utilisateur pour l'opérateur de fenêtre (pas seulement le 3x3 par défaut).
user1013346

12

La version ESRI de Raster Analysis pour calculer la courbure pourrait être utile pour développer un plugin pour QGIS.

Pour chaque cellule, un polynôme de quatrième ordre de la forme:

entrez la description de l'image ici

Z = Ax²y² + Bx²y + Cxy² + Dx² + Ey² + Fxy + Gx + Hy + I

s'adapte à une surface composée d'une fenêtre 3x3. Les coefficients a, b, c, etc. sont calculés à partir de cette surface.

Les relations entre les coefficients et les neuf valeurs d'élévation pour chaque cellule numérotée comme indiqué sur le diagramme sont les suivantes: Diagramme des valeurs de courbure Diagramme des valeurs de courbure

A = [(Z1 + Z3 + Z7 + Z9) / 4 - (Z2 + Z4 + Z6 + Z8) / 2 + Z5] / L4

B = [(Z1 + Z3 - Z7 - Z9) / 4 - (Z2 - Z8) / 2] / L3

C = [(-Z1 + Z3 - Z7 + Z9) / 4 + (Z4 - Z6)] / 2] / L3

D = [(Z4 + Z6) / 2 - Z5] / L2

E = [(Z2 + Z8) / 2 - Z5] / L2

F = (-Z1 + Z3 + Z7 - Z9) / 4L2

G = (-Z4 + Z6) / 2L

H = (Z2 - Z8) / 2L

I = Z5

La sortie de l'outil Courbure est la dérivée seconde de la surface - par exemple, la pente de la pente - telle que:

Courbure = -2 (D + E) * 100

Informations complètes et source:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00q90000000t000000


2
C'est un excellent résumé des calculs, mais il peut être simplifié d'utiliser un polynôme à 6 termes sans perte de qualité perceptible, si vos données ont une résolution inférieure à 3 mètres.
sgrieve

5
Parce que la "courbure" ESRI ne dépend que de D + E, tout le reste est inutile. Le calcul de -2(D+E)*100as (100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])montre comment obtenir cette valeur trois fois la valeur d'origine Z5, moins une somme de voisinage Z2+Z4+Z6+Z8+Z5(en utilisant un cercle de rayon 1), le tout redimensionné par 100/L2. Ce ne sont que trois opérations de grille simples.
whuber

@whuber: Quelqu'un peut-il me dire ce que sont x et y? et Z représente la valeur de la courbure? alors qu'est-ce que -2 (D + E) * 100? Est-il possible que si j'ai un fichier vectoriel contenant autant de polygones et que je souhaite connaître la météo à l'intérieur du polygone est concave ou convexe (plan et courbure de profil)?
Hardik

Z = valeur d'élévation et -2 (D + E) * 100 = valeur de courbure en.wikipedia.org/wiki/Curvature (Osculating_Circle)
Mapperz

6

La courbure pourrait être calculée en utilisant le module de SAGA 'Analyse du terrain - Morphométrie ---> Pente, Aspect, Courbure'

Le calcul pourrait être effectué sur la base de l'un de ces algorithmes:

  • Pente maximale (Travis et al. 1975)
  • Pente maximale du triangle (Tarboton 1997)
  • Avion équipé des moindres carrés (Horn 1981, Costa-Cabral & Burgess 1996)
  • Ajustement 2. Degré Polynom (Bauer, Rohdenburg, Bork 1985)
  • Fit 2. Degré Polynom (Heerdegen & Beran 1982)
  • Fit 2. Degré Polynom (Zevenbergen & Thorne 1987)
  • Fit 3.Degré Polynom (Haralick 1983)

3

LandSerf peut le faire. Vous pouvez définir la taille des fenêtres (3 * 3, 5 * 5, 7 * 7, 11 * 11, ...) mais ce doit être un nombre impair. analyses multi-échelles. vous pouvez considérer la dépendance à l'échelle de la pente, de l'aspect et de la courbure. http://www.landserf.org/ LandSerf adaptera l'équation polynomiale co quadratique à des fenêtres prédéfinies spécifiques, mais si vous définissez une grande taille de fenêtre comme 50 * 50, cela prend beaucoup de temps. Cela dépend de la taille de votre raster et de la taille des fenêtres que vous définissez. Jo Wood a écrit Landserf pour sa thèse de doctorat. Il est écrit en Java.

  • Courbure du profil
  • Courbure du plan
  • Courbure de longitude
  • Courbure transversale
  • Courbure moyenne
  • Courbure min
  • Courbure max

Peut être calculé à différentes échelles dans LandSerf


2

Vous pouvez également essayer gratuitement SAGA GIS (http://sourceforge.net/apps/trac/saga-gis/wiki) ou TAS (http://www.uoguelph.ca/~hydrogeo/TAS/index.html).


Pouvez-vous fournir plus de détails sur le fonctionnement de ces packages pour calculer la courbure? Les liens que vous avez publiés sont des liens généraux vers deux progiciels SIG et n'ont aucun lien direct avec la question posée.
sgrieve

1
Désolé pour la réponse très courte. Dans SAGA, vous pouvez trouver le module Analyse de terrain - Analyses composées -> Analyse de terrain standard. Là, vous pouvez calculer la courbure, la courbure du profil, le plan de la courbure (il n'y a pas de description détaillée dans l'aide du logiciel). Vous pouvez importer des données dans SAGA facilement depuis asc, flt, ...
Rok

@sgrieve Dans TAS, vous pouvez calculer le profil, le plan et la courbure tangentielle (menu: Analyse du terrain -> Attributs du terrain principal -> Dérivés de surface). Encore une fois, il y a peu de description de son fonctionnement.
Rok
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.