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

Neste artigo, você encontrará instruções passo a passo sobre como criar um DTM a partir de uma nuvem LIDAR não classificada e classificada, usando o LAStools e o QGis. Examinaremos as ferramentas LASground e LASground_new, las2dem e lastile.

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

8- Criação de um modelo digital de terreno com o LAStools

O processo de criação de um DTM a partir de uma nuvem de pontos LIDAR não classificada é o mesmo descrito no artigo anterior:

1- Os pontos da nuvem devem ser classificados em pontos “terrestres” e pontos “não terrestres”.

2- Precisamos interpolar um raster a partir dos pontos “terrestres”

Se você leu o artigo anterior e pensou que a geração de um DTM era bastante simples, pense novamente! Aqui, a simplicidade não é a ordem do dia.

  • Você tem duas ferramentas para classificar pontos que são semelhantes, mas diferentes
  • Há mais de uma dúzia de parâmetros possíveis para cada ferramenta
  • Os melhores resultados são obtidos com a execução das ferramentas duas vezes, com parâmetros diferentes
  • Independentemente de você ter ou não uma licença LAStools, uma nuvem IGN LIDAR não pode ser processada sem ser dividida em nuvens menores

É impossível ver todas as possibilidades aqui. Cabe a você tomar coragem com as duas mãos e explorar todas aquelas que não mostraremos a você.

Classificação de pontos no solo e acima do solo com o LAStools

O LASGround e o LASGround_New são duas ferramentas da caixa de ferramentas do LAStools usadas para extrair pontos de solo de uma nuvem de pontos LiDAR. No entanto, há diferenças significativas entre essas duas ferramentas em termos de métodos e funcionalidade.

  1. LASGround:
    O LASGround é uma ferramenta que identifica e classifica pontos de solo em uma nuvem de pontos LiDAR. Ela usa principalmente algoritmos baseados em operações morfológicas para detectar pontos de solo. O LASGround usa uma grade de células e uma janela de tamanho variável para identificar pontos de solo com base na densidade dos pontos vizinhos. Ele é eficaz para extrair pontos de solo em áreas planas ou levemente inclinadas.
    Essa ferramenta funciona muito bem em ambientes naturais, como montanhas, florestas, campos, colinas ou qualquer outro terreno com poucos objetos feitos pelo homem.
  2. LASGround_New :
    O LASGround_New é uma versão aprimorada do LASGround, introduzida para oferecer melhor desempenho e extração mais precisa de pontos de solo. Ao contrário do LASGround, o LASGround_New usa uma abordagem de aprendizado de máquina. Ele pode usar métodos como o Random Forest para classificar pontos de solo com base em características como altura, densidade etc. O LASGround_New foi projetado para lidar com ambientes mais complexos, incluindo áreas com declives mais acentuados e características topográficas variadas.
    É uma versão completamente reprojetada do lasground que faz um trabalho muito melhor ao lidar com terrenos complicados onde há montanhas íngremes perto de áreas urbanas com muitos edifícios.

LASground

Essa é uma ferramenta de extração de terra nua: ela classifica os pontos LIDAR em pontos no solo (classe = 2) e pontos acima do solo (classe = 1). Essa ferramenta funciona muito bem em ambientes naturais, como montanhas, florestas, campos, colinas ou qualquer outro terreno com poucos objetos feitos pelo homem.

A ferramenta também produz excelentes resultados para cidades, mas edifícios maiores que o tamanho da etapa podem causar problemas.

Step size

  • O tamanho padrão do passo é de 5 metros, o que é bom para florestas ou montanhas.
  • Para cidades ou terrenos planos, o parâmetro “-town” aumenta o tamanho do passo para 10 metros.
  • Para cidades ou armazéns, ‘-city’ aumenta o tamanho do passo para 25 metros. Para cidades muito grandes, use ‘-metro’ e o tamanho do passo será aumentado para 50 metros.
  • Você também pode defini-lo diretamente com ‘-step 35’.

Usuários experientes podem refinar o algoritmo especificando o limite em metros acima do qual os picos são suprimidos. O parâmetro ‘-spike 0.5+5’ suprimirá os picos ascendentes maiores que 50 centímetros e os picos descendentes menores que 5 metros no TIN mais grosseiro.

Outro parâmetro interessante é o ‘-bulge 1.0’, que especifica o quanto o TIN pode aumentar quando inclui pontos à medida que se torna mais refinado. A protuberância padrão é um décimo do passo para tamanhos de passo maiores que 5 metros e um quinto do passo em outros casos.

O desvio padrão máximo para amostras planas em centímetros pode ser definido com ‘-stddev 10’. O deslocamento máximo em metros até o qual os pontos acima da estimativa atual do solo são incluídos pode ser definido com ‘-offset 0.1’.

LASground_new

Essa é uma ferramenta para extrair solo descoberto: ela classifica os pontos LIDAR em pontos de solo (classe = 2) e pontos não-terreno (classe = 1). Essa é uma versão completamente reformulada do lasground que lida muito melhor com terrenos complicados com montanhas íngremes próximas a áreas urbanas com muitos edifícios.

O tamanho padrão do passo foi aumentado para 25 metros, o que significa que a maioria dos edifícios em cidades normais pode ser removida (com exceção de armazéns ou fábricas muito grandes, que exigem um passo maior).

Para cidades pequenas ou áreas com poucos edifícios, use a opção ‘-town’, que reduz o tamanho do passo para 10 metros. Para cidades muito grandes, use a opção “-metro” e o tamanho do passo será aumentado para 50 metros.

Você também pode fazer experiências definindo diretamente o tamanho do passo usando ‘-step 35’.

Há ainda a opção “-nature”, que usa um tamanho de passo de 5 metros para terrenos sem construções, e a opção “-wilderness”, que usa 3 metros se você estiver interessado em características menores no solo em LiDAR de alta resolução.

Usuários experientes podem refinar o algoritmo especificando o limite em metros acima do qual os picos são suprimidos. O parâmetro ‘-spike 0.5’ suprime os picos ascendentes acima de 50 centímetros e o parâmetro ‘-spike_down 2.5’ suprime os picos descendentes abaixo de 2,5 metros no TIN mais grosseiro.

O deslocamento máximo em metros até o qual os pontos acima da estimativa atual do solo são incluídos pode ser definido com ‘-offset 0.1’. Você também pode, se quiser experimentar um grande número de parâmetros, brincar com ‘-bulge 1.5’ que, por padrão, é definido como um décimo do tamanho da etapa e, em seguida, é reforçado no intervalo de 1,0 a 2,0.

Isso se aplica a ambas as ferramentas

Você pode usar classificações diferentes do padrão ASRPS com ‘-ground_class 10’ ou ‘-non_ground_class 25’. Todos os pontos não classificados como solo podem ser deixados inalterados com ‘-non_ground_unchanged’.

Se desejar excluir determinadas classificações do cálculo de terra nua, você pode fazê-lo com ‘-ignore_class 7’. Para colinas muito íngremes, você pode intensificar a busca por pontos de solo iniciais com ‘-fine’, ‘-extra_fine’, ‘-ultra_fine’ ou ‘-hyper_fine’. Da mesma forma, para terrenos muito planos, você pode simplificar a busca com ‘-coarse’ ou ‘-extra_coarse’, mas tente primeiro a configuração padrão.

Por fim, você pode solicitar que lasground ou lasground_new calcule a altura acima do solo para cada ponto (para que você possa usar lasclassify depois sem precisar executar lasheight primeiro) com ‘-compute_height’ ou até mesmo solicitar que a altura calculada substitua o valor de elevação com a opção ‘-replace_z’. Em seguida, você obterá um arquivo LAS/LAZ normalizado em termos de altura que pode ser usado, por exemplo, com as ferramentas lascanopy ou lasgrid ou com o algoritmo CHM (modelo de altura do dossel) sem um poço. Se lasground ou lasground_new não funcionar corretamente, tente desativar determinadas otimizações usando os sinalizadores ‘-no_clean’ ou ‘-no_bulge’.

Se houver muito poucos pontos para fazer uma classificação confiável do terreno, os arquivos serão simplesmente copiados (e, no caso de ‘-replace_z’, todas as elevações serão definidas como zero). Esses arquivos também podem ser ignorados usando a opção de linha de comando ‘-skip_files’.

Pré-processamento da nuvem de exemplo com o LAStile

Vamos usar a mesma nuvem de pontos LIDAR do artigo anterior, uma nuvem classificada da qual removemos a classificação. Isso nos permite comparar os resultados das ferramentas com o DTM feito diretamente com a classificação IGN ‘ground’.

O primeiro problema que temos é que essa nuvem de pontos contém 28 milhões de pontos. Se usarmos as ferramentas LAStools deste artigo nessa nuvem, receberemos uma mensagem:

ERROR processing file 'C:\telechargements\ncLHD_FXX_0722_6403_PTS_C_LAMB93_IGN69.laz'. maybe out of memory?

Portanto, precisamos dividir nossa nuvem em nuvens menores (menos de 1,5 milhão se você não tiver uma licença) e usar ferramentas de “diretório” em vez de ferramentas de “arquivo”. Reconstruiremos uma única saída no final do processamento.

Para criar os blocos, criamos um diretório vazio e, em seguida, abrimos a ferramenta LAStile

lastools diálogo da ferramenta lastile no QGis

Você precisará calcular o tamanho do bloco de modo que os blocos tenham o número desejado de pontos. Nossa nuvem de entrada tem 1000mx1000m e contém 28 milhões de pontos. Se quisermos menos de 1,5 milhão de pontos por bloco, 25 blocos medindo 200mx200m terão cerca de 1,1 milhão de pontos. Então, inseriríamos 200 no tamanho do bloco.

Por outro lado, o campo Output LAS/LAZ, que está marcado como opcional, não é nada opcional, caso contrário, você terá de procurá-lo nos recessos de /Users/username/AppData/Local/Temp/. Você precisa inserir um diretório para os blocos e um nome, por exemplo, “tile.las”. Os blocos serão nomeados como “tile_coordinateX_coordinateY.las”.

diretório de tiles produzidos pelo lastile no QGis

Nosso tratamento desses blocos inclui interpolações entre pontos. Se tivéssemos um ladrilho clássico, de borda a borda, teríamos efeitos de borda: os pontos localizados nas bordas não teriam seus vizinhos localizados no ladrilho adjacente. Para evitar isso, o LAStools adiciona uma zona de buffer ao redor de cada bloco. Quando a nuvem resultante for reconstituída, eles serão removidos automaticamente, mas não haverá efeitos de borda no processamento intermediário.

áreas de tiles gerados pelo lastile no Qgis

Extração de pontos do solo

Carregamos a nuvem de pontos a ser processada, em sua versão colorida, pois isso será mais prático para analisar os resultados.

nuvem de pontos lidar a serem processados no qgis

Temos uma área urbana cercada por áreas naturais. Vamos usar a ferramenta LASground, configurando-a com os parâmetros -city para o tipo de terreno e -ultra_fine para o pré-processamento. Essa é a configuração clássica de processamento LIDAR para arqueologia e corresponde muito bem à nossa nuvem LIDAR. Não se esqueça de marcar a caixa executável de 64 bits.

diálogo da ferramenta lasgroundpro no QGis

diálogo da ferramenta lasgroundpro no QGis

O resultado é uma série de nuvens com duas classes:

  • 1- não classificada (pontos acima do solo)
  • 2- solo

É aqui que temos a maior diferença em relação ao processamento com o CloudCompare. Para avaliar o resultado, temos dois problemas:

  • o primeiro é o fato de termos dividido nossa nuvem em vários lotes de dados, o que dificulta a obtenção de uma visão geral.
  • O segundo é a falta de uma verdadeira interface 3D que permita que você veja o resultado de todos os ângulos. A visualização 3D no QGis é muito grosseira para ver o resultado corretamente.

A única maneira que resta é usar a visualização do Perfil de elevação, mas isso exige que desenhemos vários transectos para detectar qualquer problema.

perfil de elevação no QGis para validar a saída do lasground

Dependendo dos tipos de terreno presentes em nossa nuvem inicial, será necessário verificar vários blocos.

Em nosso exemplo, vamos parar por aqui. Mas é bastante comum precisar de uma segunda passagem de lasground. O caso clássico é o da pesquisa arqueológica. Vamos supor que temos uma área interessante na parte natural da imagem em nossa nuvem de pontos. Usamos a opção -city para classificar os edifícios acima do solo. Essa opção usa um tamanho de passo de 25 metros. Se tivermos estruturas pequenas, há uma boa chance de que elas não sejam classificadas como acima do solo. Uma segunda execução do lasground, dessa vez com a opção -wilderness (área natural sem construções), aplicando-a exclusivamente aos pontos classificados como “solo” pela primeira execução, poderia remover as estruturas pequenas.

Cálculo de DTM com LAS2dem

Essa ferramenta lê pontos LIDAR, triangula-os temporariamente em um TIN e, em seguida, coloca o TIN em camadas em um raster DTM. A ferramenta pode usar os valores ‘-elevation’, ‘-slope’, ‘-intensity’, ‘-rgb’ ou a coloração ‘-hillshade’ ou ‘-gray’ ou ‘-false’. A saída pode ser em formato BIL, ASC, IMG, FLT, XYZ, DTM, TIF, PNG ou JPG. O intervalo específico de valores a serem exibidos pode ser limitado usando ‘-set_min_max 10 100’ ou pode ser definido usando ‘-compute_min_max’. Ao usar filtros como ‘-last_only’ ou ‘-keep_class 2’, você pode usar a opção ‘-extra_pass’ para determinar primeiro o número de pontos a serem triangulados. Isso economiza memória.

Por padrão, o tamanho do raster gerado é baseado na extensão da caixa delimitadora. Se o arquivo LAS/LAZ tiver sido gerado usando lastile, como no nosso exemplo, sua extensão poderá ser definida como a do bloco usando a opção ‘-use_tile_bb’. Qualquer “buffer de borda” que o bloco possa ter tido não será rasterizado. Isso evita artefatos de borda durante a criação de blocos correspondentes em paralelo.

Um arquivo KML é gerado automaticamente para que o DEM possa ser exibido no Google Earth (para TIF/PNG/JPG). Como o arquivo LAS/LAZ contém informações de projeção, elas são usadas para fazer a georreferência do arquivo KML.

Para o nosso exemplo, aqui está a janela de diálogo las2dem:

diálogo las2dempro no QGis

O filtro keep_class 2 significa que somente os pontos classificados como “solo” (código 2) serão processados.

Definimos o passo do DTM para 0,5 metro.

Marcamos a caixa “use tile bounding box” para que a saída raster de cada tile seja cortada para manter apenas o tile original, sem a zona de buffer criada pelo lastile.

A opção -extra_pass é usada para otimizar a alocação de memória.

O resultado é a criação de três arquivos por bloco: o arquivo tif, o arquivo world associado e o arquivo kml.

Diretório de saída las2dempro no QGis

Observe que os blocos de saída são unidos (sem transbordamento):

tiles de saída do las2dempro no QGis

O LAStools possui uma ferramenta para ladrilhar a nuvem de pontos inicial, mas não possui uma ferramenta para reconstruir o DTM final. Precisamos usar a ferramenta padrão do QGis: menu-> raster -> vários -> mesclar

reconstituição do raster DTM final no Qgis

Selecione todos os blocos, nomeie o arquivo tif de saída e execute o comando.

Resultado DTM com lastools

Por fim, podemos ver o resultado completo e compará-lo com o MNT de referência feito a partir da classificação IGN.

Na parte natural de nossa zona LIDAR, os dois resultados coincidem:

Validação do resultado DTM do lastools

Entretanto, na área urbanizada, há diferenças:

Validação do resultado DTM do lastools

Logicamente, teríamos que voltar à primeira passagem de lasground e alterar o passo para um valor de 10 metros (-town) e fazer tudo de novo…

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 *