Suppression de la tendance d'élévation sur les surfaces en pente?


16

Existe-t-il une méthodologie connue pour supprimer la tendance d'une surface DEM?

Par exemple, si j'avais un DEM d'une rivière, cette rivière coulerait de haute altitude (en amont) à des altitudes plus basses (en aval). Même si la distance entre le sommet de la surface de l'eau et le fond du lit de la rivière était la même sur l'ensemble de la rivière, la partie en aval du raster aurait toujours des valeurs d'élévation plus faibles dans le DEM. Est-il possible d'égaliser ces valeurs afin que les zones de profondeur égale possèdent également des élévations égales?

En supprimant cette tendance, il serait idéal de préserver les caractéristiques générales du DEM, telles que les immersions dans le lit de la rivière.entrez la description de l'image ici

Réponses:


9

@jul a raison: "vous devez calculer une surface de tendance, puis la soustraire de votre DEM initial pour obtenir celui" détendu "", mais il semble que des procédures plus simples soient nécessaires dans ce cas pour "préserver les creux". Si la «surface de tendance» suit de trop près le DEM d'origine, les résidus ne conserveront pas les caractéristiques locales de la surface. Ainsi, parmi les techniques à éviter figurent toutes les locales (splines, filtres, et - surtout - le krigeage) et celles à privilégier sont globales.

Une approche simple, robuste et directe consiste à adapter un avion au DEM à proximité de la rivière. Cela ne nécessite aucune technologie sophistiquée ou calcul lourd, car (selon Euclid) un plan est déterminé par trois points (non colinéaires) dans l'espace. En conséquence, sélectionnez un point (x1 ', y1', z1 ') = (coordonnées, élévation) à la tête de la rivière, un autre point (x2', y2 ', z2') à l'extrémité aval et un troisième point à (x0 ', y0', z0 ') de votre choix loin du segment de ligne reliant les deux premiers points. (Ces coordonnées sont indiquées par des nombres premiers parce que nous allons bientôt les changer.) Ce dernier point ne pasdoivent correspondre à un point sur ou même près de la surface du sol! En fait, un bon choix initial pourrait être de fixer son élévation à la moyenne des élévations amont et aval, z0 '= (z1' + z2 ') / 2.

Les calculs sont facilités en adoptant le point (x0 ', y0', z0 ') comme origine d'un système de coordonnées local. Dans ces coordonnées, les deux autres points sont à

(x1,y1,z1) = (x1'-x0',y1'-y0',z1'-z0') 
(x2,y2,z2) = (x2'-x0',y2'-y0',z2'-z0'). 

Tout emplacement arbitraire, en (x ', y') dans le système de coordonnées d'origine, a les coordonnées (x, y) = (x'-x0 ', y'-y0') dans ce nouveau système. Étant donné que tout plan passant par l'origine (0,0,0) doit avoir une équation de la forme z = a * x + b * y, cela réduit le problème comme suit:

Trouvez une équation sous la forme z = a * x + b * y pour le plan passant par les points (0,0,0), (x1, y1, z1) et (x2, y2, z2).

La solution unique est de calculer

u = z1 y2 - z2 y1
v = x1 z2 - x2 z1
w = x1 y2 - x2 y1

en quels termes

a = u/w, b = v/w.

Après avoir trouvé ces deux nombres a et b, et en rappelant les deux coordonnées d'origine x0 'et y0', un calcul matriciel de la forme

[DEM] - a * ([X'] - x0') - b * ([Y'] - y0')

supprime le "tilt" du DEM . Dans cette expression, [X '] fait référence à la grille de coordonnées x dans les coordonnées d'origine et [Y'] fait référence à la grille de coordonnées y d'origine. Le DEM résultant est garanti d'avoir la même élévation (à savoir, z0 ') à chacun des trois points que vous avez choisis à l'origine; ce qu'il fait ailleurs dépend du DEM lui-même!


(J'espère que certains lecteurs apprécient à quel point cette approche évite toute référence à la trigonométrie ou aux moindres carrés. :-)


N'oubliez pas d'ajouter votre référence à l'inclinaison d'un raster sur forums.arcgis.com/threads/22904-Trouble-with-Hillshading

@Dan Bon point: le post précédent sur gis.stackexchange.com/questions/10959/… semble étroitement lié à celui-ci.
whuber

La question précédente était aussi la mienne - je pensais que j'aurais dû l'affiner afin de poser plus succinctement les questions (par exemple, besoin de préserver les trempettes). J'ai cherché du code pour effectuer ce type d'analyse, mais je n'ai pas réussi. Connaissez-vous quelque chose qui utilise ArcObjects qui serait utile, ou devrais-je recommencer à zéro? Merci pour l'aide - cela a été inestimable.
Radar le

@Radar Essayez d'abord cette analyse à la main. Cela nécessite un certain jugement (vous devez choisir ces trois points avec soin) et, souvent, une certaine itération pour bien faire. Cette expérience vous donnera une meilleure idée du fonctionnement des calculs. Vous pouvez également comparer cette approche avec l'ajustement de surface de tendance linéaire proposé dans ArcGIS.
whuber

Assez juste - j'ai déjà automatisé la dérivation des points en amont et en aval. J'imagine que la partie la plus délicate obtiendra ce 3e point. Merci encore!
Radar le

3

J'ai trouvé la décroissance avec l'analyse des tendances insatisfaisante pour les rivières. Il peut fonctionner dans des régions comme le Midwest, mais à l'ouest, une seule surface linéaire ou polynomiale ne semble jamais très bien se rapprocher du gradient de la rivière en raison de la topographie complexe. Ce que j'ai utilisé à la place est une moyenne pondérée où je compare l'élévation d'un pixel de montagne à une moyenne pondérée de la rivière en utilisant une densité de noyau (voir l'article dans Winter 2010 ArcUser). Cela produit un résultat plus "localisé". Il est toujours possible d'obtenir des valeurs négatives, mais j'ai trouvé que ces valeurs semblent se limiter au chenal de la rivière et sont les plus courantes dans les zones à fort gradient. Plus récemment, j'ai expérimenté des approches à distance de trajet pour cartographier la «hauteur d'inondation», mais cela ne gagnera pas »


Merci pour tes remarques Tom. Bienvenue sur notre site - c'est bon de vous voir ici!
whuber

2

Vous devez calculer une surface de tendance, puis la soustraire de votre DEM initial pour obtenir celui "détendu".

Pour calculer une surface de tendance, toute fonction de simplification de surface peut être utilisée (filtrage, lissage spline, krigeage, etc.). Ce choix dépend de l'apparence de cette surface tendance.

Voici un exemple sur la façon d'utiliser le krigeage dans arcGIS 10.0 pour cela.


1
Pour mon exemple, existe-t-il une méthode préférée pour obtenir la surface de tendance (par exemple, type de simplification de surface)?
Radar le

Telle est la question! Cela dépend des variations de terrain que vous souhaitez considérer comme "tendance" et supprimées, et de celles que vous souhaitez conserver. Plus la simplification est forte, moins vous conservez les variations locales de votre terrain. Comme l'a dit whuber, une surface de tendance composée de plans locaux peut même être satisfaisante.
julien
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.