Como calcular a curvatura do terreno?

29

Eu tenho uma varredura de elevação e gostaria de obter algumas variáveis ​​básicas do terreno, como declividade, robustez, aspecto ou curvatura.

O problema é que parece que não tenho a possibilidade de calcular a curvatura com o analista de terreno:

insira a descrição da imagem aqui

Alguém pode me dizer por que esse indicador não está na lista? Como posso calcular de outra forma?

Damien
fonte

Respostas:

20

A curvatura é uma derivada complexa do terreno para calcular, a equação que você usa depende da resolução dos dados de entrada, pois você precisa garantir que os resultados da curvatura que você calcula possam ser diferenciados do ruído nos dados.

Recentemente, muita pesquisa foi feita sobre cálculos de curvatura em dados de alta resolução LiDAR, que mostraram que existe uma quebra de escala em torno de 2 ou 3 metros de resolução e, acima desse ponto, algoritmos diferentes (com os quais não estou familiarizado) precisam ser usados . As melhores informações sobre o cálculo da curvatura topográfica provavelmente vêm de Hurst et al. 2012 e suas referências.

O princípio básico do cálculo da curvatura, como com a inclinação e o aspecto, é passar uma janela em movimento sobre a superfície da elevação e ajustar os valores de elevação a uma função polinomial de 6 termos, cujos coeficientes produzirão a inclinação, o aspecto e a curvatura do centro célula da janela em movimento.

O ArcGIS usa uma janela de pesquisa 3x3 que só produz bons resultados em áreas completamente desprovidas de vegetação, o que torna a ferramenta bastante inútil, a menos que as pessoas estejam cientes dessa limitação, isso pode sugerir por que ela não está presente no QGIS.

A matemática foi derivada originalmente (acho) em Evans (1980) e foi simplificada em algumas páginas em Princípios de sistemas de informação geográfica (link Amazon), que posso recomendar como um bom guia para esse tipo de análise de terreno em um nível básico.

Uma maneira de calcular a curvatura de um DEM é convertê-lo em uma varredura ascii, lê-lo em uma matriz numpy e, em seguida, executar o ajuste polinomial em uma janela móvel que passa pelos dados. Isso é bastante fácil de fazer, mas é muito lento para executar e precisa de uma quantidade razoável de otimização (esse tipo de operação geralmente é portado para c ++ para acelerar).

Para executar a operação no QGIS, você pode usar o plug-in GRASS r.slope.aspect, que também é limitado pela janela fixa 3x3.

Sei que essa não é a resposta simples que você sem dúvida esperava, mas espero que você entenda que a curvatura é complexa para derivar de maneira significativa. Muito bem sucedida.

Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.
lamentar
fonte
Obrigado por todo o desenvolvimento! No entanto, fiquei intrigado com o fato de a opção "Curvatura" estar ausente da lista no analista de terreno raster do QGIS. É normal? Reinstalei minha versão do QGIS 1.8 para ter certeza, mas ainda não está lá: - /
Damien
1
observe que no GRASS você pode usar 'r.param.scale' que calcula derivadas do terreno, como curvatura, com um tamanho definido pelo usuário para o operador de janela (não apenas o padrão 3x3).
user1013346
12

A versão da Raster Analysis da ESRI para calcular a curvatura pode ser útil para desenvolver um plug-in para o QGIS.

Para cada célula, um polinômio de quarta ordem do formulário:

insira a descrição da imagem aqui

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

é ajustado a uma superfície composta por uma janela 3x3. Os coeficientes a, b, ce etc. são calculados a partir dessa superfície.

As relações entre os coeficientes e os nove valores de elevação para cada célula numerada, como mostrado no diagrama, são as seguintes: 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

A saída da ferramenta Curvatura é a segunda derivada da superfície - por exemplo, a inclinação da inclinação - de modo que:

Curvatura = -2 (D + E) * 100

Informações completas e fonte:

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

Mapperz
fonte
2
Este é um ótimo resumo da matemática, mas pode ser simplificado o uso de um polinômio de 6 termos sem perda perceptível de qualidade, se seus dados tiverem uma resolução abaixo de 3 metros.
sgrieve
5
Como a "curvatura" da ESRI depende apenas de D + E, todo o resto é desnecessário. Computação -2(D+E)*100como (100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])mostra como obter este valor como três vezes o valor original, Z5, menos uma soma vizinhança Z2+Z4+Z6+Z8+Z5(usando um círculo de raio 1), tudo por redimensionados 100/L2. São apenas três operações simples da rede.
whuber
@ whuber: Alguém pode me dizer o que é x e y? e Z representa o valor da curvatura? então o que é -2 (D + E) * 100? É possível que, se eu possua um arquivo vetorial com tantos polígonos e deseje saber o tempo, a área dentro do polígono é côncava ou convexa (curvatura do plano e do perfil)?
Hardik
Z = Elevação Valor e -2 (D + E) * 100 = curvatura Valor en.wikipedia.org/wiki/Curvature (Osculating_Circle)
Mapperz
6

A curvatura pode ser calculada usando o módulo da SAGA 'Análise de terreno - Morfometria ---> Inclinação, Aspecto, Curvatura'

O cálculo pode ser feito com base em um destes algoritmos:

  • Inclinação máxima (Travis et al. 1975)
  • Inclinação Máxima do Triângulo (Tarboton 1997)
  • Avião equipado com mínimos quadrados (Horn 1981, Costa-Cabral & Burgess 1996)
  • Fit 2.Degree Polynom (Bauer, Rohdenburg, Bork 1985)
  • Fit 2.Degree Polynom (Heerdegen & Beran 1982)
  • Polynom (Zevenbergen & Thorne 1987)
  • Fit 3.Degree Polynom (Haralick 1983)
Vladimir
fonte
3

O LandSerf pode fazer isso. Você pode definir o tamanho das janelas (3 * 3, 5 * 5, 7 * 7, 11 * 11, ...), mas deve ser um número ímpar. análises multiescala. você pode considerar a dependência da escala da inclinação, aspecto e curvatura. http://www.landserf.org/ LandSerf ajustará a equação polinomial co-quadrática a janelas predefinidas específicas, mas se você definir o tamanho de janelas grandes como 50 * 50, leva muito tempo. Depende do tamanho do raster e do tamanho das janelas que você definir. Jo Wood escreveu Landserf para sua tese de doutorado. Está escrito em Java.

  • Curvatura do perfil
  • Curvatura do plano
  • Curvatura da longitude
  • Curvatura em seção transversal
  • Curvatura média
  • Curvatura mínima
  • Curvatura máxima

Pode ser calculado em diferentes escalas no LandSerf

ramin orkide
fonte
2

Você também pode experimentar o SAGA GIS gratuito (http://sourceforge.net/apps/trac/saga-gis/wiki) ou o TAS (http://www.uoguelph.ca/~hydrogeo/TAS/index.html).

Rok
fonte
Você pode fornecer mais detalhes sobre como esses pacotes funcionam para calcular a curvatura? Os links que você postou são links gerais para dois pacotes GIS e não têm relevância direta para a pergunta.
sgrieve
1
Desculpe pela resposta muito curta. No SAGA, você encontra o módulo Análise de terreno - Análises compostas -> Análise padrão de terreno. Lá você pode calcular curvatura, curvatura do perfil, curvatura do plano (não há descrição detalhada na ajuda do software). Você pode importar dados para SAGA fácil de asc, flt, ...
Rok
@sgrieve No TAS, você pode calcular o perfil, o plano e a curvatura tangencial (menu: Análise do Terreno -> Atributos do Terreno Primário -> Derivados da Superfície). Novamente, há pouca descrição de como funciona.
Rok