¿Eliminar la tendencia de elevación sobre superficies inclinadas?

16

¿Existe una metodología conocida para eliminar la tendencia de una superficie DEM?

Por ejemplo, si tuviera un DEM de un río, ese río fluiría desde elevaciones altas (aguas arriba) a elevaciones más bajas (aguas abajo). Incluso si la distancia desde la parte superior de la superficie del agua hasta el fondo del lecho del río fuera la misma en todo el río, la parte aguas abajo del ráster aún tendría valores de elevación más bajos en el DEM. ¿Es posible igualar estos valores para que las áreas de igual profundidad también posean elevaciones iguales?

Al eliminar esta tendencia, sería ideal preservar las características generales del DEM, como las inmersiones en el lecho del río.ingrese la descripción de la imagen aquí

Radar
fuente

Respuestas:

9

@jul está en lo cierto al decir que "necesita calcular una superficie de tendencia y luego restarla de su DEM inicial para obtener la 'desredagada'", pero parece que en este caso se necesitan procedimientos más simples para "preservar las caídas". Si la "superficie de tendencia" sigue muy de cerca el DEM original, entonces los residuos no retendrán las características locales de la superficie. Por lo tanto, entre las técnicas que se deben evitar están todas las locales (splines, filtros y, especialmente, kriging) y las que se prefieren son globales.

Un enfoque simple, robusto y directo es ajustar un avión al DEM en las cercanías del río. Esto no requiere ninguna tecnología sofisticada o cálculos pesados, porque (de acuerdo con Euclides) un plano está determinado por tres puntos (no colineales) en el espacio. En consecuencia, seleccione un punto (x1 ', y1', z1 ') = (coordenadas, elevación) en la cabecera del río, otro punto (x2', y2 ', z2') en el extremo aguas abajo y un tercer punto en (x0 ', y0', z0 ') de su elección lejos del segmento de línea que conecta los dos primeros puntos. (Estas coordenadas se indican con números primos porque pronto los cambiaremos). Este último punto no¡tiene que corresponder a un punto en o incluso cerca de la superficie del suelo! De hecho, una buena opción inicial podría ser establecer su elevación al promedio de las elevaciones aguas arriba y aguas abajo, z0 '= (z1' + z2 ') / 2.

Los cálculos se facilitan adoptando el punto (x0 ', y0', z0 ') como el origen de un sistema de coordenadas local. En estas coordenadas, los otros dos puntos están en

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

Cualquier ubicación arbitraria, en (x ', y') en el sistema de coordenadas original, tiene coordenadas (x, y) = (x'-x0 ', y'-y0') en este nuevo sistema. Debido a que cualquier plano que pase por el origen (0,0,0) debe tener una ecuación de la forma z = a * x + b * y, esto reduce el problema a lo siguiente:

Encuentre una ecuación en la forma z = a * x + b * y para el plano que pasa por los puntos (0,0,0), (x1, y1, z1) y (x2, y2, z2).

La solución única es calcular

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

en que terminos

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

Habiendo encontrado estos dos números a y b, y recordando las dos coordenadas originales x0 'e y0', un cálculo ráster de la forma

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

elimina la "inclinación" del DEM . En esta expresión, [X '] se refiere a la cuadrícula de coordenadas x en las coordenadas originales e [Y'] se refiere a la cuadrícula de coordenadas y original. Se garantiza que el DEM resultante tendrá la misma elevación (es decir, z0 ') en cada uno de los tres puntos que eligió originalmente; ¡lo que hace en otros lugares depende del DEM mismo!


(Espero que algunos lectores aprecien cómo este enfoque evita todas las referencias a la trigonometría o la maquinaria de mínimos cuadrados. :-)

whuber
fuente
No olvide agregar su referencia a la inclinación de una trama en foros.arcgis.com/threads/22904-Trouble-with-Hillshading
@Dan Good point: la publicación anterior en gis.stackexchange.com/questions/10959/… se parece mucho a esta.
whuber
La pregunta anterior también era mía: sentí que debería haberla refinado para hacer las preguntas de manera más sucinta (por ejemplo, la necesidad de preservar las inmersiones). He buscado un código que lleve a cabo este tipo de análisis, pero no he tenido éxito. ¿Está al tanto de algo que hace uso de ArcObjects que podría ser útil, o debería comenzar desde cero? Gracias por la ayuda, ha sido invaluable.
Radar
@ Radar Primero intente este análisis a mano. Requiere un poco de juicio (debe elegir esos tres puntos con cuidado) y, a menudo, una cierta iteración para hacer lo correcto. Esa experiencia le dará una mejor idea de cómo funcionan los cálculos. También puede comparar este enfoque con el ajuste de superficie de tendencia lineal que se ofrece en ArcGIS.
whuber
Es justo: ya he automatizado la derivación de los puntos aguas arriba y aguas abajo. Me imagino que la parte más difícil será conseguir ese tercer punto. ¡Gracias de nuevo!
Radar
3

He encontrado que la tendencia con el análisis de tendencias no es satisfactoria para los ríos. Puede funcionar en regiones como el medio oeste, pero en el oeste una sola superficie lineal o polinómica nunca parece aproximarse muy bien al gradiente del río debido a la compleja topografía. Lo que he usado en su lugar es un promedio ponderado donde comparo la elevación de un píxel de tierras altas con un promedio ponderado del río usando una densidad de kernel (ver artículo en ArcUser de invierno de 2010). Esto produce un resultado más "localizado". Todavía es posible obtener algunos valores negativos, pero he descubierto que esos valores parecen estar confinados al canal del río y son más comunes en áreas de gradiente empinado. Más recientemente, he experimentado con enfoques de distancia de ruta para mapear "altura de inundación", pero esto no ganó '

Tom Dilts
fuente
Gracias por tus comentarios Tom. Bienvenido a nuestro sitio, ¡es bueno verte aquí!
whuber
2

Necesita calcular una superficie de tendencia, y luego restarla de su DEM inicial para obtener la "destendada".

Para calcular una superficie de tendencia, se puede utilizar cualquier función de simplificación de superficie (filtrado, suavizado de spline, kriging, etc.). Esta elección depende de cómo desee que se vea esta superficie de tendencia.

Aquí hay un ejemplo sobre cómo usar kriging en arcGIS 10.0 para eso.

julien
fuente
1
Para mi ejemplo, ¿existe un método preferido para obtener la superficie de tendencia (por ejemplo, tipo de simplificación de superficie)?
Radar
¡Esa es la pregunta! Depende de las variaciones de terreno que desee que se consideren como "tendencia" y se eliminen, y cuáles desea mantener. Cuanto más fuerte sea la simplificación, menos conservará las variaciones locales de su terreno. Como dijo whuber, una superficie de tendencia compuesta por planos locales puede incluso ser satisfactoria.
julien