QGis para LIDAR: modelo digital de terreno (DTM) com CloudCompare.

QGis para LIDAR: modelo digital de terreno (DTM) Neste artigo, você encontrará a definição de um modelo digital de terreno e, passo a passo, como criar um DTM a partir de uma nuvem LIDAR não classificada e classificada, usando o CloudCompare e o QGis.

Tutorial Processamento de dados HD LIDAR com o QGis.

1- Dados LIDAR no QGis 3.32

2- Descarregar os dados do IGN HD LIDAR e carregá-los no QGis

3- Ferramentas para dados LIDAR no QGis 3.32

4-colorir a partir de uma imagem

5-colorir a partir de uma imagem com LAStools

6- modelo de superfície digital (MDS) com CloudCompare e LAStools

7- Créer un Modèle Numérique de Terrain avec CloudCompare

Um Modelo Digital de Terreno (DTM) e um Modelo Digital de Superfície (DSM) são dois tipos de representação digital de um ambiente, geralmente baseados em dados LiDAR. Embora muitas vezes sejam usados de forma intercambiável, eles capturam informações diferentes sobre a paisagem. No artigo anterior, vimos como gerar um DSM usando o CloudComapre ou o LAStools. Aqui, veremos como gerar um DTM com o CloudCompare e, no próximo artigo, como fazer isso com o LAStools.

Modelo Digital do Terreno (DTM):

Um modelo digital de terreno (DTM) representa a topografia real do solo sob todas as características presentes na superfície, como vegetação, edifícios ou objetos feitos pelo homem. É essencialmente o terreno natural, sem todas as estruturas e recursos elevados que não fazem parte da topografia subjacente. Um DTM geralmente é obtido filtrando ou classificando os pontos LiDAR para reter apenas aqueles que correspondem ao solo. Dessa forma, o DTM fica mais próximo da topografia real, fornecendo informações valiosas para análise geomorfológica, hidrologia, mapeamento de declives etc.

Modelo Digital de Superfície (DSM):

Um modelo digital de superfície (DSM) representa a superfície visível da paisagem, incluindo recursos acima do solo, como edifícios, vegetação, veículos etc. Ao contrário dos DTMs, os DSMs não filtram os objetos acima do solo e, portanto, capturam toda a topografia, incluindo estruturas e recursos elevados. Os dados LiDAR usados para criar um DTM incluem, portanto, todos os recursos presentes, tornando-os uma representação mais completa da paisagem vista de cima.

Diferenças entre DTM e DSM :

  • Conteúdo: o DTM inclui apenas pontos que correspondem ao solo, enquanto o DTM inclui todos os pontos acima do solo, inclusive objetos e estruturas.
  • Usos: Os DTMs são frequentemente usados para análises geomorfológicas, hidrológicas, geológicas e de planejamento do uso da terra. O DTM é usado para modelagem visual, mapeamento urbano, gerenciamento de recursos naturais e outras aplicações que exigem uma visão completa da superfície.
  • Análise: o DTM pode fornecer informações precisas sobre a topografia real do solo, enquanto o DTM permite que os recursos acima do solo, como edifícios e vegetação, sejam visualizados e analisados.

Em resumo, o Modelo Digital de Terreno (DTM) concentra-se no terreno natural e elimina os recursos acima do solo, enquanto o Modelo Digital de Superfície (DSM) inclui todos os recursos de elevação. Cada um desses modelos tem seus próprios usos específicos, dependendo dos requisitos de análise e visualização.

Criação de um DTM a partir de uma nuvem classificada com o QGis

Em uma nuvem classificada, já temos as informações necessárias para gerar um DTM: classe 2 – Solo. De fato, todos os pontos correspondentes à superfície (edifícios, vegetação, etc.) pertencem a outras classes.

Portanto, podemos criar uma camada raster selecionando apenas os pontos da classe 2.

Usaremos uma nuvem de pontos classificados pelo IGN LIDAR HD:

nuage lidar hd classé de l'IGN

Onde manteremos apenas os pontos classificados como “Solo”:

classe "sol" du lidar IGN classé

Para fazer isso, usaremos uma das novas ferramentas aplicáveis às camadas de nuvem de pontos: Exportar para raster (usando triangulação).

export raster using triangulation de QGis

Em Resolution of the density raster (Resolução do raster de densidade), escolha o tamanho da malha de saída.

Em Advanced parameters -> Filter expression, selecionamos Classification = 2, para reter apenas os pontos da classe 2.

Digite um nome para o arquivo de saída (aqui groundIGN.tif) e execute o comando.

mnt du nuage lidar classé de l'IGN

A maneira visual mais eficaz de determinar a qualidade do DTM é usar a Elevation Profile View:

vue élévation avec le nuage lidar ign et le mnt calculé

A área azul mostra o DTM que acabamos de calcular.

Criando um DTM a partir de uma nuvem não classificada com o QGis.

Para esta parte do artigo, vamos trabalhar com a mesma nuvem de pontos de antes, mas com a classificação removida. Acabamos com todos os pontos em uma única classe 0.

Portanto, precisamos de uma ferramenta que nos permita separar os pontos correspondentes ao solo do restante dos pontos. Existem várias, mas vamos começar com o CloudCompare, que considero a “melhor”, pois nos permite realizar essa tarefa visualizando as diferentes etapas dos testes. Esses testes são necessários porque os parâmetros de tratamento precisam ser adaptados a cada nuvem de acordo com vários critérios.

Cálculo de DTM com o CloudCompare.

O CSF (Cloth Simulation Filter, filtro de simulação de tecido) é um algoritmo de filtro usado no software CloudCompare para processar nuvens de pontos lidar. Ele é usado principalmente para remover ruídos e discrepâncias das nuvens de pontos, especialmente em áreas onde há superfícies complexas, como árvores, mas também para distinguir entre pontos terrestres e aéreos.

O nome do filtro CSF vem da simulação de tecido, devido à maneira como ele modela a estrutura da nuvem de pontos. A ideia básica por trás do filtro CSF é modelar os pontos como se estivessem presos a “tecidos” virtuais que se dobram e se deformam de acordo com a densidade de pontos nas áreas circundantes. As áreas em que os “tecidos” são altamente deformados são consideradas como tendo superfícies complexas, como vegetação ou edifícios.

Veja a seguir como o filtro CSF geralmente funciona no CloudCompare:

  1. Cálculo de normais: o filtro CSF começa calculando as normais dos pontos na nuvem. As normais são vetores perpendiculares às superfícies locais dos pontos.
  2. Criação de “tecidos”: o filtro divide o espaço em uma grade 3D e atribui cada ponto a um “tecido” virtual de acordo com sua posição e suas normais.
  3. Simulação de tecido: o filtro simula como esses “tecidos” reagiriam sob forças como a gravidade. Os “tecidos” se dobram e se deformam de acordo com a densidade dos pontos ao redor deles.
  4. Detecção de ruído: As áreas em que os “tecidos” estão altamente deformados são consideradas áreas de ruído ou superfícies complexas. Os pontos associados a essas áreas são rotulados como fora do solo.
  5. Filtragem: os pontos marcados como fora do solo são removidos da nuvem de pontos, deixando para trás uma versão filtrada e limpa da nuvem.

O filtro de simulação de tecido (CSF) no CloudCompare pode ser usado para separar os pontos do solo de outros pontos em uma nuvem de pontos LiDAR. Isso é particularmente útil para isolar a verdadeira topografia do terreno de recursos elevados, como edifícios, vegetação ou outras estruturas.

É importante observar que o sucesso do uso do filtro CSF para separar pontos de solo de outros dependerá dos parâmetros escolhidos e da complexidade da paisagem. Pode ser necessário ajustar os parâmetros do filtro várias vezes para obter os melhores resultados.

É importante observar que o sucesso do uso do filtro CSF para separar os pontos de solo de outros dependerá dos parâmetros escolhidos e da complexidade da paisagem. Pode ser necessário ajustar as configurações do filtro várias vezes para obter os melhores resultados.

Começamos carregando nossa nuvem de pontos não classificada no CloudCompare:

nuage de points non classé dans cloudcompare

Abra a janela do filtro CSF no menu Plugins->Filtro CSF.

menu csf filter de cloudcompare

Você tem a janela do plug-in com um primeiro parâmetro a ser determinado, o tipo de inclinação do terreno. Há três tipos:

  • terreno plano
  • terreno montanhoso
  • terreno muito acidentado

dialogue plugin csf filter de cloudcompare

Em nosso caso, temos um terreno montanhoso.

Em seguida, vá para a guia Advanced parameters settings (Configurações de parâmetros avançados)

advanced parameters du filtre csf de cloudcompare

Os dois parâmetros a serem definidos são

Cloth resolution

O parâmetro “Cloth resolution” no CSF (Filtro de simulação de tecido) do CloudCompare refere-se ao tamanho da grade tridimensional usada para modelar o “tecido” virtual no processo de simulação.

Quando você aplica o filtro CSF para filtrar uma nuvem de pontos, ele divide o espaço em regiões menores usando uma grade 3D. Cada região é tratada como um “tecido” virtual que reage às forças aplicadas, simulando o movimento e a deformação de um tecido real. O parâmetro “Cloth resolution” (Resolução do tecido) controla o tamanho dessa grade.

Uma resolução mais alta significa que a grade será mais fina, permitindo que o filtro CSF capture melhor os detalhes sutis e as variações na nuvem de pontos. Entretanto, uma resolução mais alta também pode aumentar o tempo de computação e o consumo de recursos.

Uma resolução mais baixa significa que a grade será mais grosseira, o que pode acelerar o processo de cálculo, mas pode perder alguns dos detalhes mais finos da nuvem de pontos.

A escolha da resolução dependerá da complexidade de seus dados, do tamanho da nuvem de pontos e da finalidade de sua análise. Se estiver trabalhando com áreas complexas, pode ser desejável uma resolução mais alta para capturar detalhes. Se você tiver uma nuvem de pontos grande e precisar de resultados mais rapidamente, uma resolução mais baixa pode ser adequada.

Como sempre, é aconselhável fazer experiências com diferentes valores de resolução e verificar visualmente os resultados para determinar qual resolução funciona melhor para seus dados específicos.

Classification threshold

O parâmetro “Classification threshold” no Filtro de simulação de tecido (CSF) do CloudCompare é usado para especificar um limite de deformação além do qual os pontos na nuvem de pontos serão considerados não classificados, ou seja, serão atribuídos a fora do solo.

Quando o filtro CSF é aplicado, ele simula a deformação de uma grade tridimensional (representando “tecidos” virtuais) com base nos pontos da nuvem. As áreas em que os tecidos são altamente deformados são interpretadas como áreas com recursos complexos, como vegetação ou objetos elevados.

O parâmetro “Classification threshold” é usado para controlar a deformação máxima tolerada antes que um ponto seja considerado acima do solo. Em outras palavras, se a deformação de um ponto exceder o limite especificado, ele não será atribuído à classe de solo “particular”, marcando-o como potencialmente “fora do solo”.

O ajuste do parâmetro “Classification threshold” pode controlar o nível de detalhes que o filtro CSF usará para diferenciar as características complexas do solo. Um valor mais alto tornará o filtro mais sensível a características complexas. Um valor mais baixo tornará o filtro menos sensível e poderá ser usado para filtrar apenas características muito pronunciadas.

Como sempre, é recomendável que você experimente diferentes valores de limite e verifique visualmente os resultados para determinar qual valor funciona melhor para seus dados específicos.

De modo geral, consideramos que o valor do limite de classificação deve ser o dobro do valor definido para a resolução Cloth.

Então, vamos ao teste. Um bom ponto de partida é definir a resolução Cloth como 0,2 metro e os Classification threshold como 0,4 metro.

Executamos o filtro e encontramos uma nova camada de resultados no CloudCompare com duas subcamadas:

A primeira contém os pontos classificados como “solo” pelo filtro CSF.

premier passage csf, couche ground

A segunda contém os pontos classificados como “acima do solo” pelo filtro CSF.

premier passage filtre csf couche off-ground

Vamos tentar uma nova combinação de parâmetros para refinar a detecção de pontos acima do solo. Para isso, vamos ativar a camada “solo” que acabamos de calcular e aplicar o filtro CSF a ela, com os parâmetros Cloth resolution (Resolução de tecido) em 0,4 metro e Classification thresholds (Limites de classificação) em 0,8 metro.

Teremos então duas novas camadas, uma com pontos que são considerados “solo” e outra com pontos que foram considerados “solo” pela primeira passagem do filtro CSF, mas que agora são considerados “acima do solo” com os novos parâmetros.

Temos a camada “solo”

deuxième filtre csf couche ground

E temos os pontos que agora estão “acima do solo”.

deuxième filtre csf couche off-ground

Visualmente, já podemos dizer que nosso resultado deve ser satisfatório. Mas, para ter certeza, repetiremos a operação uma terceira vez, desta vez com a resolução Cloth em 0,8 metro e os limites de classificação em 1,6 metro.

Teremos então duas novas camadas, uma com pontos que são considerados “solo” e outra com pontos que foram considerados “solo” pela segunda passagem do filtro CSF, mas que agora são considerados “acima do solo” com os novos parâmetros.

Temos a camada “solo”

troisième filtre csf couche ground

Onde agora você vê áreas bastante extensas sem nenhum ponto.

E a camada “acima do solo”

troisième filtre csf couche off-ground

Para poder validar a combinação correta de parâmetros, salvamos as camadas de “solo” obtidas como nuvens de pontos. Você pode salvar a nuvem de pontos filtrada selecionando “File” (Arquivo) > “Save As” (Salvar como) no menu para salvar uma nova cópia com as modificações feitas pelo filtro CSF.

Portanto, temos três novas nuvens de pontos, ground02… para o resultado do primeiro filtro CSF, ground04… para o segundo e ground08… para o terceiro, que carregamos no QGis. Também carregamos a nuvem de pontos original não classificada, nc…

les trois nuages de points en sortie de cloudcompare

Intuitivamente, o resultado do filtro 0.4 parece ser o melhor. O filtro 0.2 tem um pouco mais de “solo” e o filtro 0.8 não é suficiente em algumas áreas.

Agora podemos criar os três DTMs e comparar o resultado com a nuvem de pontos original.

Para fazer isso, como no primeiro exemplo, usamos a ferramenta Exportar para raster (usando triangulação). Entretanto, como aqui só temos pontos correspondentes ao solo, não precisamos aplicar um filtro. Basta definir o espaçamento da grade do DTM de saída e o nome do arquivo de saída.

export to raster using triangulation

Temos então três rasters com os DTMs correspondentes

les trois mnt calculés avec qgis

Como você pode ver, no DTM 0.2 ainda podemos ver as pegadas dos edifícios classificados como “solo”. Para ver a diferença entre os DTMs 0.4 e 0.8, usamos a Elevation Profile View.

Exibimos a nuvem de pontos original e o DTM calculado a partir da classe “ground” do IGN. Consideraremos esse DTM como o melhor DTM.

vue de profil du mnt de référence

Nesse perfil, temos características do terreno, vegetação baixa e alta e edifícios.

Se exibirmos o DTM 0.2 em amarelo, teremos:

vue de profil du résultat du filtre csf 0.2

A vegetação baixa e alta foram classificadas como “acima do solo”, mas as edificações ainda estão incluídas nos pontos do “solo”.

Se exibirmos o DTM 0.4 em azul, teremos:

vue de profil du résultat du filtre csf 0.4

Os edifícios agora são excluídos e o resultado se funde com o do IGN.

Finalmente, se exibirmos o DTM 0.8 em vermelho, teremos:

vue de profil du résultat du filtre csf 0.8

Ao excluir pontos que fazem parte do terreno, criamos zonas vazias que são interpoladas usando apenas as bordas das zonas. Ainda temos um bom cálculo do terreno em áreas de vegetação e edifícios, mas alguns recursos do terreno desaparecem.

Concluindo, nossos parâmetros com Cloth resolution de 0,4 metro e Classification thresholds de 0,8 metro, que nos pareceram ser a melhor combinação, já que o filtro CSF foi calculado no CloudCompare, acabaram sendo os melhores. Eles nos permitem obter um DTM equivalente ao calculado a partir dos dados classificados do IGN.

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *