Wygładzanie DEM za pomocą GRASS?

45

Mam SRTM DEM i chcę stworzyć z niego cień. Stworzyłem zacieniony relief w GRASS, a wynik jest bardzo ładny, ale trochę szorstki, ponieważ obszar jest prawie płaski, a DEM ma rozdzielczość 90 m.

Chcę, aby DEM był bardziej wygładzony, aby uzyskać gładką cieniowaną ulgę. Czy istnieje algorytm lub metoda interpolacji, aby to zrobić?

Oto zacieniona ulga, aby uzyskać pomysł, chcę spłaszczyć te małe nierówności:

Wizerunek

Pablo
źródło
Zobacz także: Jak zainstalować mdenoise w GRASS?
Hugolpz

Odpowiedzi:

43

A co z Johnem Stevensonem r.denoisez wiki GRASS AddOns :

r.denoise denoises (Wygładza / despeckles) dane topograficzne, szczególne Dems pochodzące z danych radarowych (w tym SRTM), stosując algorytm denoising Xianfang Sun . Został zaprojektowany w celu zachowania ostrych krawędzi i odszumiania przy minimalnych zmianach oryginalnych danych.

Mdenoise

Przeczytałem dalej z tej strony (że również przypisuję powyższą animację), że bardziej ogólną metodą byłoby użycie pliku siatki Esri ASCII. Położenie mdenoise(pobrać ze strony internetowej firmy Sun ) musi znajdować się w zmiennej PATH (np użytkowników Windows: spadek MDenoise.exew binfolderze ze swoim OSGeo4w lub FWTools zainstalować). Następnie można na przykład użyć następującego polecenia powłoki do przetworzenia pliku siatki ASCII:

# gdal_translate -of AAIGrid my_dem.tif my_dem.asc      # convert to .asc
mdenoise -i my_dem.asc -n 5 -t 0.99 -o my_dem_DN.asc    # denoise
# gdal_translate -of GTiff my_dem_DN.asc my_dem_DN.tif  # convert back to .tif

Denoise jest na licencji GNU, patrz tutaj

Mike T.
źródło
Jakieś portage python / gdal?
Hugolpz
1
Zawsze możesz uruchomić dowolne polecenie z Pythona.
Mike T
Mam na myśli odpowiednik pytona, który nie potrzebuje R.
Hugolpz
1
To nie wymaga R. Z Pythona, użyj os.system('mdenoise ...')do uruchomienia pliku wykonywalnego.
Mike T
Aby wyjaśnić: r. tutaj oznacza raster. Polecenie pochodzi z GRASS GIS, a nie od R.
bugmenot123
11

Tom Patterson, główny kartograf w US National Parks Service, ma kilka doskonałych samouczków na temat pracy z danymi DEM w celu uzyskania pięknych cieniowanych płaskorzeźb. Część jego pracy polega na korzystaniu z Natural Scene Designer i Adobe Photoshop.

Dla własnego przepływu pracy lubię używać GDAL do ponownego próbkowania rozmiaru DEM przed renderowaniem zacieniowanego reliefu. Często pomaga to w zmniejszeniu ilości szczegółów i szumów, nie wspominając o rozmiarze pliku. Mam tutorial na temat Github, który pokazuje, jak to zrobić.

Zasadniczo proces polega na określeniu nowej szerokości i / lub wysokości (w pikselach) dla wyjściowego DEM, który jest mniejszy niż pierwotny rozmiar pliku. Na przykład robienie:

gdalwarp -ts 3000 0 -r bilinear kings_canyon_2228.tif kings_canyon_2228_rs.tif

Zmniejszy szerokość DEM do 3000 pikseli z pierwotnej szerokości 3800 pikseli. Ustawienie wysokości na 0 pozwoli GDAL ustalić najlepszą wysokość nowego pliku na podstawie proporcji oryginału.

Clhenrick
źródło
7

Użyłem narzędzia do redukcji szumów falkowych wtyczki GIMP i uzyskuję dobre wyniki i szybko:

Wtyczka GIMP Redukcja szumów falkowych

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

SamTux
źródło
Wygładziłem raster (Hillshade), jednak plik (tiff) utracił odniesienie przestrzenne. Tak więc, kiedy umieściłem go w moim projekcie qgis, ten nie nakładał się poprawnie na inne warstwy. Czy zdarzyło Ci się to z tobą?
Diogo Caribé,
Istnieją sposoby na ponowne wprowadzenie geolokalizacji.
Hugolpz
Tak, w QGIS wyeksportuj cień w menu rastrowym i przejdź do PNG.
SamTux,
6

Możesz uruchomić prosty filtr na DEM - powiedzmy, filtr średniej ruchomej okna 5x5.

Radar
źródło
3

W ArcMap lubię korzystać z narzędzia Spatial Analyst> statystyki ogniskowej, aby wygładzić lidar przed wykonaniem konturów ... może to również pomóc w przypadku cieniowania wzgórza. Wierzę, że jest to podobna funkcja do powyższego postu.

sierpień
źródło
ups, po prostu przeczytaj część GRASS ... cóż, jestem pewien, że istnieje podobna operacja ...
aug_aug