Jak obliczyć krzywiznę terenu?

29

Mam raster wysokości i chciałbym uzyskać podstawowe zmienne terenu, takie jak nachylenie, chropowatość, aspekt lub krzywizna.

Problem polega na tym, że nie mam możliwości obliczenia krzywizny za pomocą analityka terenu:

wprowadź opis zdjęcia tutaj

Czy ktoś może mi powiedzieć, dlaczego tego wskaźnika nie ma na liście? Jak inaczej to obliczyć?

Damien
źródło

Odpowiedzi:

20

Krzywizna jest złożoną pochodną terenu do obliczenia, używane równanie zależy od rozdzielczości twoich danych wejściowych, ponieważ musisz upewnić się, że obliczane krzywizny można odróżnić od szumu w danych.

Ostatnio przeprowadzono wiele badań dotyczących obliczeń krzywizny na danych LiDAR o wysokiej rozdzielczości, które wykazały, że przerwa skalowania występuje przy rozdzielczości około 2 lub 3 metrów, a powyżej tego punktu należy zastosować więcej różnych algorytmów (których nie znam tak dobrze) . Najlepsze informacje na temat obliczania krzywizny topograficznej prawdopodobnie pochodzą z Hurst i in. 2012 i odnośników tam zawartych.

Podstawową zasadą obliczania krzywizny, podobnie jak w przypadku nachylenia i aspektu, jest przejście ruchomego okna nad powierzchnią elewacji i dopasowanie wartości elewacji do 6-członowej funkcji wielomianowej, której współczynniki pozwolą uzyskać nachylenie, aspekt i krzywiznę środka komórka ruchomego okna.

ArcGIS używa okna wyszukiwania 3x3, które da dobre wyniki tylko w obszarach całkowicie pozbawionych roślinności, co czyni narzędzie dość bezużytecznym, chyba że ludzie są świadomi tego ograniczenia, może to sugerować, dlaczego nie jest ono obecne w QGIS.

Matematyka powstała pierwotnie (tak myślę) w Evans (1980) i została uproszczona na kilku stronach w Zasadach Systemów Informacji Geograficznej (link Amazon), które mogę polecić jako dobry przewodnik po tego rodzaju analizach terenu na poziomie podstawowym.

Jednym ze sposobów obliczenia krzywizny DEM jest przekonwertowanie DEM na ascii raster, odczytanie go w tablicy numpy, a następnie wykonanie dopasowania wielomianowego w ruchomym oknie przechodzącym przez dane. Jest to dość łatwe do wykonania, ale bardzo powolne do wykonania i wymaga sporej ilości optymalizacji (tego rodzaju operacje często są przenoszone do c ++, aby je przyspieszyć).

Aby wykonać operację w QGIS, możesz użyć wtyczki GRASS r.slope.aspect, która jest również ograniczona stałym oknem 3x3.

Zdaję sobie sprawę, że nie jest to prosta odpowiedź, na którą bez wątpienia liczyłeś, ale mam nadzieję, że rozumiesz, że krzywizna jest złożona w znaczący sposób. Wszystkiego najlepszego.

Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.
sgrieve
źródło
Dziękujemy za cały rozwój! Zaintrygował mnie jednak fakt, że na liście rastrowej analityka QGIS brakuje opcji „Krzywizny”. Czy to jest normalne Ponownie zainstalowałem moją wersję QGIS 1.8, ale nadal jej nie ma: - /
Damien,
1
zwróć uwagę, że w GRASS możesz użyć „r.param.scale”, który oblicza pochodne terenu, takie jak krzywizna, ze zdefiniowanym przez użytkownika rozmiarem dla operatora okna (nie tylko domyślnym 3x3).
user1013346
12

Wersja analizy rastrowej ESRI do obliczania krzywizny może być pomocna w opracowaniu wtyczki do QGIS.

Dla każdej komórki wielomian czwartego rzędu postaci:

wprowadź opis zdjęcia tutaj

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

pasuje do powierzchni złożonej z okna 3x3. Współczynniki a, b, c itd. Są obliczane z tej powierzchni.

Zależności między współczynnikami a dziewięcioma wartościami wysokości dla każdej komórki ponumerowanej, jak pokazano na schemacie, są następujące: Wykres wartości krzywizny Wykres wartości krzywizny

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

Dane wyjściowe narzędzia Krzywizna to druga pochodna powierzchni - na przykład nachylenie nachylenia - takie, że:

Krzywizna = -2 (D + E) * 100

Pełna informacja i źródło:

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

Mapperz
źródło
2
To świetne podsumowanie matematyki, ale można uprościć użycie 6-terminowego wielomianu bez zauważalnej utraty jakości, jeśli dane mają rozdzielczość poniżej 3 metrów.
sgrieve 18.10.12
5
Ponieważ „krzywizna” ESRI zależy tylko od D + E, cała reszta jest niepotrzebna. Obliczenie -2(D+E)*100jako (100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])pokazuje, jak uzyskać tę wartość jako trzykrotność pierwotnej wartości, Z5minus suma sąsiedztwa Z2+Z4+Z6+Z8+Z5(przy użyciu promienia 1 okręgu), wszystkie przeskalowane przez 100/L2. To tylko trzy proste operacje na siatce.
whuber
@whuber: Czy ktoś może mi powiedzieć, co to jest xiy? i czy Z reprezentuje wartość krzywizny? czym jest -2 (D + E) * 100? Czy to możliwe, że jeśli mam plik wektorowy zawierający tak wiele wielokątów i chcę poznać pogodę, obszar wewnątrz wielokąta jest wklęsły lub wypukły (krzywizna planu i profilu)?
Hardik,
Z = wartość wysokości i -2 (D + E) * 100 = wartość krzywizny en.wikipedia.org/wiki/Curvature (Osculating_Circle)
Mapperz
6

Krzywiznę można obliczyć za pomocą modułu SAGA „Analiza terenu - Morfometria ---> Nachylenie, aspekt, krzywizna”

Obliczenia można wykonać na podstawie jednego z następujących algorytmów:

  • Maximum Slope (Travis i in. 1975)
  • Maksymalne nachylenie trójkąta (Tarboton 1997)
  • Least Squares Fitted Plane (Horn 1981, Costa-Cabral & 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)
Vladimir
źródło
3

LandSerf może to zrobić. Możesz zdefiniować rozmiar okna (3 * 3, 5 * 5, 7 * 7, 11 * 11, ...), ale musi to być liczba nieparzysta. analizy wieloskalowe. można rozważyć zależność skali od nachylenia, kształtu i krzywizny. http://www.landserf.org/ LandSerf dopasuje równanie kwadratowe wielomianu do określonych predefiniowanych okien, ale jeśli zdefiniujesz duże okna, takie jak 50 * 50, zajmie to dużo czasu. Zależy to od zdefiniowanego przez ciebie rozmiaru rastra i rozmiaru okna. Jo Wood napisał Landserf do swojej rozprawy doktorskiej. Jest napisany w Javie.

  • Zakrzywienie profilu
  • Zaplanuj krzywiznę
  • Krzywizna długości geograficznej
  • Krzywizna przekroju
  • Średnia krzywizna
  • Min. Krzywizna
  • Maksymalna krzywizna

Można obliczyć w innej skali w LandSerf

ramin orkide
źródło
2

Możesz także wypróbować bezpłatny SAGA GIS (http://sourceforge.net/apps/trac/saga-gis/wiki) lub TAS (http://www.uoguelph.ca/~hydrogeo/TAS/index.html).

Rok
źródło
Czy możesz podać więcej szczegółów na temat działania tych pakietów w celu obliczenia krzywizny? Linki, które opublikowałeś, są ogólnymi linkami do dwóch pakietów GIS i nie mają bezpośredniego związku z zadanym pytaniem.
sgrieve
1
Przepraszam za bardzo krótką odpowiedź. W SAGA znajdziesz moduł Analiza terenu - Analizy złożone -> Standardowa analiza terenu. Tam możesz obliczyć krzywiznę, krzywiznę profilu, zaplanować krzywiznę (nie ma szczegółowego opisu w pomocy oprogramowania). Możesz importować dane do SAGA easy z asc, flt, ...
Rok
@sgrieve W TAS możesz obliczyć profil, plan i krzywiznę styczną (menu: Analiza terenu -> Podstawowe atrybuty terenu -> Pochodne powierzchni). Ponownie, jest mało opisu, jak to działa.
Rok