Mesclando DEM e DSM em um único raster

Sep 18 2020

Em primeiro lugar, eu sou completamente novo nisso, então, por favor, descubra comigo se isso não está claro, pois não tenho o vocabulário.

Eu tenho duas camadas raster (um DEM e um DSM). A camada DEM cobre uma grande região retangular, enquanto o DSM cobre apenas uma parte da mesma região (a parte Urbana) e a forma da área é um polígono complicado.

Eu quero produzir um único raster que terá todas as informações do DEM e do DSM. Quando tento mesclar os dois, obtenho um resultado válido (tudo se alinha bem), no entanto, parece que o DSM está sendo projetado no DEM e isso resulta em lacunas.

Tenho grandes esperanças de que a imagem anexada esclareça a situação. Abaixo você pode ver o resultado da fusão dos rasters DEM e DSM na visualização 3D (superior) e na visualização 2D (inferior).

PS: Tentei usar o GRASS, r.patchmas infelizmente sua UI não permite escolher a ordem das camadas no QGIS 3.10.

Respostas

2 LuisPerez Sep 18 2020 at 04:06

Acho que, como diz @MrXsquared, você deve primeiro resolver o problema de não dados ou nulos. Isso é muito comum, depende do tipo de dado e de como o raster foi gerado.

Você pode pesquisar neste site para descobrir como resolvê-lo.

Se seu valor nulo for reconhecido por QGis , por exemplo -9999 (usado por SAGA ). Você pode executar o procedimento Raster Calculatorcom uma simples soma de ambos os rasters. Algo parecido:

(@dsm > 0 ) * (@dem + @dsm)

Explicação da operação :

Leia da esquerda para a direita, a primeira coisa é uma condicional que exclui valores nulos, então, o operador de multiplicação faz uma atribuição, aos pixels que cumprem a condição atribui o resultado da soma de ambos os rasters.

Para cobrir o que não atende à condição, você pode concatenar outra operação com o sinal de soma, ficaria assim:

(@dsm > 0) * (@dem + @dsm) + (@dsm < 0) * @dem

Na calculadora raster, você atribui a extensão do DEM. Dependendo do valor de no data, você pode variar esta operação.

Mas se o valor de no data não permite que você execute a operação, você deve primeiro alterá-lo com o processo de tradução ou outra opção como eu disse no início.

1 Dimitris Sep 18 2020 at 23:17

Solução 1:

r.patchresolveu o problema se os arquivos DSM e DEM foram inseridos corretamente no algoritmo. Infelizmente, a alteração da ordem dos arquivos na IU não é clara. Você precisa arrastá-los em ordem na janela de seleção antes de clicar em OK.

Solução 2:

Como @MrXsquared descreveu em um comentário na postagem inicial, esse problema ocorre quando "áreas nodata" são descritas como dados (no meu caso com zeros). Nesse caso, r.nulltambém resolve o problema, mas requer conhecimento prévio do valor dos dados que você deseja remover. Tive que descobrir isso por tentativa e erro (-9999, NULL, 0 etc)

Com meu conhecimento limitado dos dados GIS, a solução r.null parece melhor, pois ela realmente corrige os dados, enquanto o r.patch está apenas resolvendo o problema. No entanto, se você estiver trabalhando no nível do mar, isso pode causar alguns problemas!

Resultado de r.null

Resultado da final merge

Obrigado a todos!