Smoothing DEM usando GRASS?


45

Ho un DEM SRTM e desidero creare un rilievo ombreggiato da esso. Ho creato il rilievo ombreggiato in GRASS e il risultato è molto bello, ma un po 'ruvido perché l'area è quasi piatta e il DEM ha una risoluzione di 90m.

Quello che voglio è rendere il DEM più fluido per generare un rilievo sfumato uniforme. Esiste un algoritmo o un metodo di interpolazione per farlo?

Ecco il rilievo ombreggiato per avere un'idea, voglio appiattire questi piccoli dossi:

Immagine


Risposte:


43

Che ne dici di John Stevenson r.denoise, dalla wiki di GRASS AddOns :

r.denoise denoises (leviga / despeckles) dati topografici, particolari DEM derivati da dati radar (compresi i SRTM), utilizzando l'algoritmo di denoising Xianfang Sun . È progettato per preservare gli spigoli vivi e denigrare con modifiche minime ai dati originali.

mdenoise

Ho letto ulteriormente da questo sito Web (che do anche credito all'animazione di cui sopra) che un metodo più generico sarebbe quello di utilizzare un file griglia ASCII Esri. La posizione di mdenoise(scaricato dal sito Web di Sun ) deve trovarsi nella variabile PATH (ad esempio, utenti Windows: rilasciare MDenoise.exela bincartella con OSGeo4w o l'installazione di FWTools). Quindi, ad esempio, è possibile utilizzare il seguente comando shell per elaborare il file della griglia 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 è sotto licenza GNU, vedi qui


Qualche portage python / gdal?
Hugolpz,

1
Puoi sempre eseguire qualsiasi comando da Python.
Mike T,

Intendo un equivalente di pitone che non ha bisogno di R.
Hugolpz,

1
Questo non richiede R. Da Python, usa os.system('mdenoise ...')per eseguire l'eseguibile.
Mike T,

Per chiarire: il r. qui sta per raster. Il comando viene da GRASS GIS, non da R.
bugmenot123

11

Tom Patterson, il capo cartografo del National Parks Service degli Stati Uniti, ha alcuni eccellenti tutorial su come lavorare con i dati DEM per realizzare bellissimi rilievi ombreggiati. Parte del suo flusso di lavoro prevede l'utilizzo di Natural Scene Designer e Adobe Photoshop.

Per il mio flusso di lavoro, mi piace usare GDAL per ricampionare le dimensioni del DEM prima di eseguire il rendering di un rilievo ombreggiato. Questo spesso aiuta a ridurre la quantità di dettagli e rumore, per non parlare delle dimensioni del file. Ho un tutorial su Github che dimostra come farlo.

Fondamentalmente il processo consiste nello specificare una nuova larghezza e / o altezza (in pixel) per un DEM di output inferiore alla dimensione del file originale. Ad esempio facendo:

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

Ridurrà la larghezza del DEM a 3000 pixel dalla larghezza originale di 3800 pixel. Impostando l'altezza su 0, GDAL determinerà l'altezza migliore del nuovo file in base alle proporzioni dell'originale.


7

Ho usato lo strumento di riduzione del rumore wavelet del plugin GIMP e ottengo buoni risultati e velocemente:

GIMP Plugin Riduzione del rumore wavelet

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Ho smussato il mio raster (hillshade), tuttavia il file (tiff) ha perso il riferimento spaziale. Quindi, quando l'ho inserito nel mio progetto qgis, quello non si sovrapponeva correttamente con altri livelli. Ti è successo questo?
Diogo Caribé,

Esistono modi per reintegrare la geolocalizzazione.
Hugolpz,

Sì, in QGIS esporta la sfumatura nel menu raster ed esporta in PNG.
SamTux,

6

È possibile eseguire un semplice filtro sul DEM, ad esempio un filtro medio a finestra mobile 5x5.


3

In ArcMap mi piace usare l'analista spaziale> strumento di statistiche focali per appianare il lidar prima di creare contorni ... questo potrebbe anche aiutare nel tuo caso di hillhading. Credo che sia una funzione simile al precedente post.


oops, basta leggere la parte di GRASS ... beh sono sicuro che ci sia un'operazione simile ...
aug_aug
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.