DEM mit GRASS glätten?

45

Ich habe ein SRTM-DEM und möchte daraus ein schattiertes Relief erstellen. Ich habe das schattierte Relief in GRASS erstellt und das Ergebnis ist sehr schön, aber etwas rau, da der Bereich nahezu flach ist und das DEM eine Auflösung von 90 m hat.

Ich möchte das DEM glatter machen, um ein glattes, schattiertes Relief zu erzeugen. Gibt es dafür einen Algorithmus oder eine Interpolationsmethode?

Hier ist das schattierte Relief, um einen Eindruck zu bekommen, ich möchte diese kleinen Unebenheiten abflachen:

Bild

Pablo
quelle

Antworten:

43

Wie wäre es mit John Stevenson's r.denoiseaus dem GRASS AddOns Wiki :

r.denoise denoises (glättet / despeckles) topographische Daten, insbesondere von DHM Radardaten abgeleitet (einschließlich SRTM), unter Verwendung von Xianfang Sun Entrauschen Algorithmus . Es wurde entwickelt, um scharfe Kanten zu bewahren und mit minimalen Änderungen an den Originaldaten zu entstören.

mdenoise

Ich habe weiter unten auf dieser Website gelesen (ich gebe auch Anerkennung für die obige Animation), dass eine allgemeinere Methode darin besteht, eine Esri ASCII-Grid-Datei zu verwenden. Der Speicherort von mdenoise(von der Sun-Website heruntergeladen ) muss sich in Ihrer PATH-Variablen befinden (z. B. Windows-Benutzer: Legen Sie MDenoise.exeden binOrdner mit Ihrer OSGeo4w- oder FWTools-Installation ab). Dann können Sie zum Beispiel den folgenden Shell-Befehl verwenden, um die ASCII-Rasterdatei zu verarbeiten:

# 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 steht unter der GNU-Lizenz, siehe hier

Mike T
quelle
Irgendeine Python / GDAL-Portierung?
Hugolpz
1
Sie können jederzeit einen beliebigen Befehl in Python ausführen.
Mike T
Ich meine ein Python-Äquivalent, das R. nicht benötigt
Hugolpz
1
Dies erfordert kein R. Verwenden Sie os.system('mdenoise ...')in Python, um die ausführbare Datei auszuführen.
Mike T
Zur Verdeutlichung: Die r. Hier steht für Raster. Der Befehl stammt von GRASS GIS, nicht von R.
bugmenot123
11

Tom Patterson, der leitende Kartograf beim US National Parks Service, hat einige hervorragende Tutorials zum Arbeiten mit DEM-Daten, um wunderschöne schattierte Reliefs zu erstellen. Ein Teil seines Workflows besteht aus der Verwendung von Natural Scene Designer und Adobe Photoshop.

Für meinen eigenen Workflow verwende ich gerne GDAL, um die Größe des DEM neu abzutasten, bevor ich ein schattiertes Relief rendere. Dies hilft oft bei der Reduzierung der Detailgenauigkeit und des Rauschens, ganz zu schweigen von der Dateigröße. Ich habe ein Tutorial über Github , das zeigt, wie man das macht.

Grundsätzlich wird eine neue Breite und / oder Höhe (in Pixel) für ein Ausgabe-DEM angegeben, das kleiner als die ursprüngliche Dateigröße ist. Zum Beispiel machen:

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

Reduziert die Breite des DEM auf 3000 Pixel von der ursprünglichen Breite von 3800 Pixel. Wenn Sie die Höhe auf 0 setzen, ermittelt GDAL die beste Höhe der neuen Datei basierend auf dem Seitenverhältnis des Originals.

Clhenrick
quelle
7

Ich habe das Wavelet-Rauschunterdrückungs-Tool des GIMP-Plugins verwendet und erhalte gute Ergebnisse und das schnell:

GIMP Plugin Wavelet Rauschunterdrückung

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

SamTux
quelle
Ich habe mein Raster (Hillshade) geglättet, aber die Datei (TIFF) hat den räumlichen Bezug verloren. Also, wenn ich es in mein QGIS-Projekt stecke, überlagert es sich nicht richtig mit anderen Ebenen. Ist dir das passiert?
Diogo Caribé
Es gibt Möglichkeiten, die Geolokalisierung erneut zuzulassen.
Hugolpz
Ja, in QGIS exportieren Sie den Schatten im Raster-Menü und exportieren Sie ihn nach PNG.
SamTux
6

Sie könnten einen einfachen Filter für das DEM ausführen, z.

Radar
quelle
3

In ArcMap verwende ich gerne das Tool Spatial Analyst> Focal Statistics, um das Lidar zu glätten, bevor Konturen erstellt werden. Es ist eine ähnliche Funktion wie der obige Beitrag, glaube ich.

aug_aug
quelle
Hoppla, lies einfach den GRASS-Teil ...
Nun,