Suavizando o DEM usando GRASS?

45

Eu tenho um SRTM DEM e quero criar um alívio sombreado a partir dele. Criei o relevo sombreado no GRASS e o resultado é muito bom, mas um pouco áspero, porque a área está próxima do plano e o DEM tem uma resolução de 90m.

O que eu quero é tornar o DEM mais suave para gerar um relevo sombreado suave. Existe um algoritmo ou método de interpolação para fazer isso?

Aqui está o alívio sombreado para se ter uma idéia, quero aplainar essas pequenas protuberâncias:

Imagem

Pablo
fonte
Veja também: Como instalo o mdenoise no GRASS?
Hugolpz

Respostas:

43

Que tal John Stevenson's r.denoise, do wiki GRASS AddOns :

r.denoise denoises (Suaviza / despeckles) dados topográficos, dems particulares derivadas de dados de radar (incluindo SRTM), usando algoritmo denoising de Xianfang Sun . Ele foi projetado para preservar arestas vivas e suavizar com o mínimo de alterações nos dados originais.

mdenoise

Li mais adiante neste site (que também dou crédito pela animação acima) que um método mais genérico seria usar um arquivo Esri ASCII Grid. O local mdenoise(baixado do site da Sun ) precisa estar na sua variável PATH (por exemplo, usuários do Windows: solte MDenoise.exea binpasta com a instalação do OSGeo4w ou FWTools). Então, por exemplo, você pode usar o seguinte comando shell para processar o arquivo de grade 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 está sob licença GNU, veja aqui

Mike T
fonte
Algum portage python / gdal?
Hugolpz
1
Você sempre pode executar qualquer comando do Python.
Mike T
Eu quero dizer um equivalente python que não precisa de R. #
239 Hugolpz
1
Isso não requer R. No Python, use os.system('mdenoise ...')para executar o executável.
Mike T
Para esclarecer: O r. aqui significa raster. O comando é do GRASS GIS, não de R.
bugmenot123
11

Tom Patterson, o cartógrafo líder do Serviço de Parques Nacionais dos EUA, oferece excelentes tutoriais sobre como trabalhar com dados do DEM para obter belos relevos sombreados. Parte de seu fluxo de trabalho envolve o uso do Natural Scene Designer e do Adobe Photoshop.

Para meu próprio fluxo de trabalho, eu gosto de usar o GDAL para redefinir o tamanho do DEM antes de renderizar um relevo sombreado. Isso geralmente ajuda a reduzir a quantidade de detalhes e ruídos, sem mencionar o tamanho do arquivo. Eu tenho um tutorial no Github que demonstra como fazer isso.

Basicamente, o processo é especificar uma nova largura e / ou altura (em pixels) para um DEM de saída menor que o tamanho do arquivo original. Por exemplo, fazendo:

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

Reduzirá a largura do DEM para 3000 pixels a partir da largura original de 3800 pixels. Definir a altura como 0 permitirá que o GDAL determine a melhor altura do novo arquivo com base na proporção do original.

Clhenrick
fonte
7

Usei a ferramenta de redução de ruído de wavelet do plugin GIMP e obtenho bons resultados e rápido:

GIMP Plugin Wavelet redução de ruído

insira a descrição da imagem aqui

insira a descrição da imagem aqui

SamTux
fonte
Eu alisei minha varredura (colina), no entanto, o arquivo (tiff) perdeu a referência espacial. Então, quando eu o coloquei no meu projeto qgis, ele não se sobrepôs corretamente a outras camadas. Já aconteceu isso com você?
Diogo Caribé
Existem maneiras de reinjetar a geolocalização.
Hugolpz
Sim, no QGIS exporte a colina no menu raster e exporte para PNG.
SamTux 3/04
6

Você pode executar um filtro simples no DEM - digamos, um filtro médio de janela móvel de 5x5.

Radar
fonte
3

No ArcMap, eu gosto de usar a ferramenta de estatísticas focais do Spatial Analyst> para suavizar o lidar antes de fazer contornos ... isso também pode ajudar no seu caso de sombreamento. É uma função semelhante ao post acima, acredito.

aug_aug
fonte
oops, basta ler a parte GRAMA ... bem, eu tenho certeza estou há uma operação semelhante ...
aug_aug