Come calcolare la curvatura del terreno?


29

Ho un raster di elevazione e vorrei ottenere alcune variabili di base del terreno, come pendenza, robustezza, aspetto o curvatura.

Il problema è che non sembro avere la possibilità di calcolare la curvatura con l'analista del terreno:

inserisci qui la descrizione dell'immagine

Qualcuno può dirmi perché questo indicatore non è nell'elenco? Come posso calcolarlo altrimenti?

Risposte:


20

La curvatura è una derivata del terreno complessa da calcolare, l'equazione che si utilizza dipende dalla risoluzione dei dati di input, poiché è necessario assicurarsi che i risultati di curvatura calcolati possano essere distinti dal rumore nei dati.

Recentemente sono state fatte molte ricerche sui calcoli della curvatura sui dati LiDAR ad alta risoluzione che hanno dimostrato che esiste una rottura del ridimensionamento a una risoluzione di circa 2 o 3 metri e sopra questo punto è necessario utilizzare algoritmi più diversi (che non conosco) . Le migliori informazioni sul calcolo della curvatura topografica probabilmente provengono da Hurst et al 2012 e dai relativi riferimenti.

Il principio di base del calcolo della curvatura, come per la pendenza e l'aspetto, è di passare una finestra mobile sulla superficie di elevazione e adattare i valori di elevazione a una funzione polinomiale a 6 termini, i cui coefficienti produrranno la pendenza, l'aspetto e la curvatura del centro cella della finestra mobile.

ArcGIS utilizza una finestra di ricerca 3x3 che produrrà buoni risultati solo in aree completamente prive di vegetazione, il che rende lo strumento abbastanza inutile a meno che le persone non siano consapevoli di questa limitazione, questo può suggerire perché non è presente in QGIS.

La matematica è stata originariamente (penso) in Evans (1980) ed è stata semplificata in alcune pagine in Principi di sistemi di informazione geografica (link Amazon) che posso raccomandare come una buona guida per questo tipo di analisi del terreno a livello base.

Un modo per calcolare la curvatura di un DEM è convertire il DEM in un raster ascii, leggerlo in un array intorpidito e quindi eseguire l'adattamento polinomiale su una finestra mobile che passa attraverso i dati. Questo è abbastanza facile da fare, ma è molto lento da eseguire e necessita di una discreta ottimizzazione (questo tipo di operazioni viene spesso portato su c ++ per velocizzarle).

Per eseguire l'operazione in QGIS è possibile utilizzare il plug-in GRASS r.slope.aspect che è anche limitato dalla finestra fissa 3x3.

Mi rendo conto che questa non è la semplice risposta che speravi senza dubbio, ma spero che tu capisca che la curvatura è complessa da derivare in modo significativo. Ti auguro il meglio.

Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.

Grazie per tutto lo sviluppo! Tuttavia, sono rimasto incuriosito dal fatto che l'opzione "Curvatura" non sia presente nell'elenco dell'analista del terreno raster di QGIS. È normale? Ho reinstallato la mia versione di QGIS 1.8 per essere sicuri, ma non è ancora presente: - /
Damien,

1
si noti che in GRASS è possibile utilizzare 'r.param.scale' che calcola le derivate del terreno, come la curvatura, con una dimensione definita dall'utente per l'operatore della finestra (non solo il 3x3 predefinito).
user1013346

12

La versione di Raster Analysis di ESRI per il calcolo della curvatura potrebbe essere utile per sviluppare un plug-in per QGIS.

Per ogni cella, un polinomio del quarto ordine della forma:

inserisci qui la descrizione dell'immagine

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

si adatta a una superficie composta da una finestra 3x3. I coefficienti a, b, c e così via vengono calcolati da questa superficie.

Le relazioni tra i coefficienti e i nove valori di elevazione per ogni cella numerata come mostrato nel diagramma sono i seguenti: Diagramma dei valori di curvatura Diagramma dei valori di 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

L'output dello strumento Curvatura è la seconda derivata della superficie, ad esempio la pendenza della pendenza, tale che:

Curvatura = -2 (D + E) * 100

Informazioni complete e fonte:

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


2
Questo è un ottimo riassunto della matematica, ma può essere semplificato utilizzare un polinomio di 6 termini senza alcuna perdita evidente di qualità, se i tuoi dati hanno una risoluzione inferiore a 3 metri.
sgrieve,

5
Poiché la "curvatura" ESRI dipende solo da D + E, tutto il resto non è necessario. Il calcolo -2(D+E)*100come (100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])mostra come ottenere questo valore come tre volte il valore originale Z5, meno una somma di quartiere Z2+Z4+Z6+Z8+Z5(usando un raggio di 1 cerchio), tutti riscalati da 100/L2. Sono solo tre semplici operazioni sulla griglia.
whuber

@whuber: Qualcuno può dirmi cos'è xey? e Z rappresenta il valore della curvatura? allora che cosa è -2 (D + E) * 100? È possibile che se ho un file vettoriale con così tanti poligoni e voglio sapere che tempo l'area all'interno del poligono è concava o convessa (curvatura del piano e del profilo)?
Hardik

Z = Valore di elevazione e -2 (D + E) * 100 = Valore di curvatura en.wikipedia.org/wiki/Curvature (Osculating_Circle)
Mapperz

6

La curvatura può essere calcolata usando il modulo SAGA "Analisi del terreno - Morfometria ---> Pendenza, Aspetto, Curvatura"

Il calcolo potrebbe essere effettuato in base a uno di questi algoritmi:

  • Pendenza massima (Travis et al. 1975)
  • Pendenza massima del triangolo (Tarboton 1997)
  • Aereo montato sui minimi quadrati (Horn 1981, Costa-Cabral e Burgess 1996)
  • Fit 2.Degree Polynom (Bauer, Rohdenburg, Bork 1985)
  • Fit 2.Degree Polynom (Heerdegen & Beran 1982)
  • Fit 2.Degree Polynom (Zevenbergen & Thorne 1987)
  • Fit 3.Degree Polynom (Haralick 1983)

3

LandSerf può farlo. Puoi definire la dimensione di Windows (3 * 3, 5 * 5, 7 * 7, 11 * 11, ...) ma deve essere un numero dispari. analisi multiscala. puoi considerare la dipendenza in scala di pendenza, aspetto e curvatura. http://www.landserf.org/ LandSerf si adatta all'equazione polinomiale quadratica a specifiche finestre predefinite, ma se si definiscono dimensioni di finestre grandi come 50 * 50 ci vorrà molto tempo. Dipende dalle dimensioni del raster e dalle dimensioni di Windows definite. Jo Wood ha scritto Landserf per la sua tesi di dottorato. È scritto in Java.

  • Curvatura del profilo
  • Plan Curvature
  • Curvatura della longitudine
  • Curvatura trasversale
  • Curvatura media
  • Curvatura minima
  • Curvatura massima

Può essere calcolato nella diversa scala in LandSerf


2

Puoi anche provare SAGA GIS gratuito (http://sourceforge.net/apps/trac/saga-gis/wiki) o TAS (http://www.uoguelph.ca/~hydrogeo/TAS/index.html).


Potete fornire maggiori dettagli su come funzionano questi pacchetti per calcolare la curvatura? I collegamenti che hai pubblicato sono collegamenti generali a due pacchetti GIS e non hanno rilevanza diretta per la domanda posta.
sgrieve

1
Ci scusiamo per la risposta molto breve. In SAGA puoi trovare il modulo Analisi del terreno - Analisi dei composti -> Analisi del terreno standard. Qui puoi calcolare la curvatura, la curvatura del profilo, la curvatura del piano (non c'è una descrizione dettagliata nella guida del software). Puoi importare dati in SAGA facilmente da asc, flt, ...
Rok

@sgrieve In TAS è possibile calcolare il profilo, il piano e la curvatura tangenziale (menu: Analisi del terreno -> Attributi del terreno primario -> Derivati ​​della superficie). Ancora una volta, c'è una piccola descrizione di come funziona.
Rok,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.