@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. :-)