¿Cómo calcular la curvatura del terreno?

29

Tengo un ráster de elevación y me gustaría obtener algunas variables básicas del terreno, como pendiente, rugosidad, aspecto o curvatura.

El problema es que no parece tener la posibilidad de calcular la curvatura con el analista del terreno:

ingrese la descripción de la imagen aquí

¿Alguien puede decirme por qué este indicador no está en la lista? ¿Cómo puedo calcularlo de otra manera?

Damien
fuente

Respuestas:

20

La curvatura es una derivada del terreno compleja para calcular, la ecuación que utiliza depende de la resolución de sus datos de entrada, ya que debe asegurarse de que los resultados de curvatura que calcula puedan distinguirse del ruido en los datos.

Recientemente se ha realizado una gran cantidad de investigaciones sobre los cálculos de curvatura en datos LiDAR de alta resolución que mostraron que existe una ruptura de escala a una resolución de alrededor de 2 o 3 metros y, sobre este punto, es necesario utilizar algoritmos más diferentes (con los que no estoy tan familiarizado) . La mejor información sobre el cálculo de la curvatura topográfica probablemente proviene de Hurst et al 2012 y las referencias allí.

El principio básico del cálculo de la curvatura, como con la pendiente y el aspecto, es pasar una ventana en movimiento sobre la superficie de elevación y ajustar los valores de elevación a una función polinómica de 6 términos, cuyos coeficientes producirán la pendiente, el aspecto y la curvatura del centro. Celda de la ventana móvil.

ArcGIS utiliza una ventana de búsqueda 3x3 que solo arrojará buenos resultados en áreas completamente desprovistas de vegetación, lo que hace que la herramienta sea bastante inútil a menos que las personas sean conscientes de esta limitación, esto puede sugerir por qué no está presente en QGIS.

Las matemáticas se derivaron originalmente (creo) en Evans (1980) y se simplificaron en unas pocas páginas en Principios de sistemas de información geográfica (enlace de Amazon) que puedo recomendar como una buena guía para este tipo de análisis de terreno a nivel básico.

Una forma de calcular la curvatura de un DEM es convertir el DEM en un ráster ascii, leerlo en una matriz numpy y luego realizar el ajuste polinómico en una ventana en movimiento que pasa a través de los datos. Esto es bastante fácil de hacer, pero es muy lento de ejecutar y necesita una buena cantidad de optimización (este tipo de operaciones a menudo se transfieren a c ++ para acelerarlas).

Para realizar la operación en QGIS, puede usar el complemento GRASS r.slope.aspect, que también está limitado por la ventana fija 3x3.

Me doy cuenta de que esta no es la respuesta simple que sin duda esperaba, pero espero que comprenda que la curvatura es compleja de derivar de manera significativa. Todo lo mejor.

Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.
sgrieve
fuente
¡Gracias por todo el desarrollo! Sin embargo, me intrigó el hecho de que la opción "Curvatura" falta en la lista del analista de terreno ráster de QGIS. Es normal? Reinstalé mi versión de QGIS 1.8 para estar seguro, pero todavía no está allí: - /
Damien
1
tenga en cuenta que en GRASS puede usar 'r.param.scale' que calcula las derivadas del terreno, como la curvatura, con un tamaño definido por el usuario para el operador de la ventana (no solo el valor predeterminado de 3x3).
user1013346
12

La versión de ESRI de Raster Analysis para calcular la curvatura podría ser útil para desarrollar un complemento para QGIS.

Para cada celda, un polinomio de cuarto orden de la forma:

ingrese la descripción de la imagen aquí

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

se ajusta a una superficie compuesta por una ventana de 3x3. Los coeficientes a, b, c, etc. se calculan a partir de esta superficie.

Las relaciones entre los coeficientes y los nueve valores de elevación para cada celda numerada como se muestra en el diagrama son las siguientes: Diagrama de valores de curvatura Diagrama de valores de curvatura

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 salida de la herramienta Curvatura es la segunda derivada de la superficie, por ejemplo, la pendiente de la pendiente, de modo que:

Curvatura = -2 (D + E) * 100

Información completa y fuente:

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

Mapperz
fuente
2
Este es un gran resumen de las matemáticas, pero se puede simplificar el uso de un polinomio de 6 términos sin pérdida apreciable de calidad, si sus datos tienen una resolución inferior a 3 metros.
sgrieve
55
Debido a que la "curvatura" de ESRI depende solo de D + E, todo lo demás es innecesario. Calcular -2(D+E)*100como (100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])muestra cómo obtener este valor como tres veces el valor original Z5, menos una suma de vecindario Z2+Z4+Z6+Z8+Z5(usando un círculo de radio 1), todo reescalado por 100/L2. Eso es solo tres operaciones de cuadrícula simples.
whuber
@whuber: ¿Alguien puede decirme qué es x e y? y es Z representa el valor de la curvatura? entonces, ¿qué es -2 (D + E) * 100? ¿Es posible que si tengo un archivo vectorial que tiene tantos polígonos y quiero saber el clima, el área dentro del polígono es cóncava o convexa (curvatura de plan y perfil)?
Hardik
Z = Valor de elevación y -2 (D + E) * 100 = Valor de curvatura en.wikipedia.org/wiki/Curvature (Osculating_Circle)
Mapperz
6

La curvatura podría calcularse utilizando el módulo SAGA 'Análisis del terreno - Morfometría ---> Pendiente, Aspecto, Curvatura'

El cálculo podría hacerse en base a uno de estos algoritmos:

  • Pendiente máxima (Travis et al. 1975)
  • Pendiente máxima del triángulo (Tarboton 1997)
  • Plano ajustado de mínimos cuadrados (Horn 1981, Costa-Cabral & Burgess 1996)
  • Ajuste 2.Grado Polynom (Bauer, Rohdenburg, Bork 1985)
  • Fit 2.Degree Polynom (Heerdegen y Beran 1982)
  • Fit 2.Degree Polynom (Zevenbergen y Thorne 1987)
  • Ajuste 3.Grado Polynom (Haralick 1983)
Vladimir
fuente
3

LandSerf puede hacer esto. Puede definir el tamaño de las ventanas (3 * 3, 5 * 5, 7 * 7, 11 * 11, ...) pero debe ser un número impar. Análisis multiescala. puede considerar la dependencia de escala de pendiente, Aspecto y curvatura. http://www.landserf.org/ LandSerf ajustará la ecuación polinómica cuadrática co a ventanas predefinidas específicas, pero si define el tamaño de las ventanas grandes como 50 * 50, lleva mucho tiempo. Depende del tamaño de la trama y del tamaño de las ventanas que defina. Jo Wood escribió Landserf para su tesis doctoral. Está escrito en Java.

  • Curvatura del perfil
  • Plan de curvatura
  • Curvatura de longitud
  • Curvatura de sección transversal
  • Curvatura media
  • Curvatura mínima
  • Curvatura máxima

Se puede calcular en una escala diferente en LandSerf

ramin orkide
fuente
2

También puede probar gratis SAGA GIS (http://sourceforge.net/apps/trac/saga-gis/wiki) o TAS (http://www.uoguelph.ca/~hydrogeo/TAS/index.html).

Rok
fuente
¿Puede proporcionar más detalles sobre cómo operan estos paquetes para calcular la curvatura? Los enlaces que ha publicado son enlaces generales a dos paquetes SIG, y no tienen relevancia directa con la pregunta formulada.
sgrieve
1
Perdón por una respuesta muy corta. En SAGA puede encontrar el módulo Análisis de terreno - Análisis compuestos -> Análisis de terreno estándar. Allí puede calcular la curvatura, la curvatura del perfil, la curvatura del plan (no hay una descripción detallada dentro de la ayuda del software). Puede importar datos en SAGA easy desde asc, flt, ...
Rok
@sgrieve En TAS puede calcular el perfil, el plan y la curvatura tangencial (menú: Análisis de terreno -> Atributos de terreno primario -> Derivados de superficie). Nuevamente, hay poca descripción de cómo funciona.
Rok