Recortar dados do LAS usando polígonos de shapefile e software de código aberto?

10

Estou tentando recortar ou filtrar arquivos lidar (.las, .xyz) usando um shapefile que contém vários polígonos.

Existe software de código aberto que pode fazer essa operação espacial?

Meus arquivos .las são enormes e devo dizer que sou muito novo nos dados e análises do DEM, portanto qualquer ajuda seria muito bem-vinda.

Allen Bustenai
fonte
1
O SAGA GIS também oferece algumas ferramentas para processar conjuntos de dados LiDAR, mas não tenho experiência direta com eles. SAGA é totalmente gratuito e de código aberto assim apenas experimentá-lo :-)
Juhele
1
+1 para SAGA. Eu perdi completamente essa. No SAGA, existe um módulo chamado cortador de nuvens de pontos , que também pode cortar por extensão da forma: "Este módulo permite extrair subconjuntos de uma nuvem de pontos. A área de interesse é definida pelas coordenadas da caixa delimitadora, a extensão de uma sistema de grade ou camada de formas ou por polígonos de uma camada de formas ". Existem módulos para outras tarefas de filtragem também.
lavarider 11/02
1
Por seu tempo, meu objetivo final é editar esses pontos cortados e construir uma nova las.
Allen Bustenai
Por suas respostas, todos vocês me ajudaram muito e, como Michal e André disseram, a FUSION fez o truque.
Allen Bustenai

Respostas:

7

Segundo a resposta de @Michal Mackiewicz (sobre o Fusion / LTK), espero que este exemplo ajude você a passar por isso.

Este é o PolyCLipDatacomando de sintaxe (consulte a página do manual 110):

PolyClipData [switches] PolyFile OutputFile DataFile

Use um editor de texto para escrever o comando antes de executá-lo (como o NotePad ++). Salve o arquivo com extensão .bat(arquivo em lotes). Não esqueça de salvar o arquivo antes de executá-lo.

Suponha que você tenha:

  1. Fusion / LTK sob a unidade C :.
  2. o arquivo shapefile (shapefile.shp) em C: \ shapefile
  3. o conjunto de dados las (lasdata.las) em C: \ las

escreva o seguinte:

c:\fusion\polyclipdata c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las

use a opção multifilese desejar que os arquivos las gerados a partir de polígonos sejam armazenados em arquivos separados. Por exemplo:

c:\fusion\polyclipdata /multifile c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las 

use a shapeopção junto com multifilepara nomear seus múltiplos OutputFiles com valores incorporados em uma das colunas dbf do PolyFile. Por exemplo, se você deseja nomear os arquivos com as informações de ID (suponha que o ID esteja na primeira coluna do shapefile). Escreva:

c:\fusion\polyclipdata /multifile /shape:1,* c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las 

Para recortar arquivos usando PolyClipDatavários shapefiles de peça única, consulte a seguinte publicação:
Recorte de dados do LAS com vários shapefiles

Para recortar vários arquivos las, incorporando-os a um arquivo .txt como parâmetro do arquivo de dados PolyClipData, consulte a seguinte postagem:
Recorte dados de vários arquivos .las em um shapefile de polígono usando FUSION

Para vários arquivos las com shapefiles usando (com a LAStools Productioncaixa de ferramentas), consulte a seguinte postagem:
Recorte de um conjunto de dados LAS lado a lado com LASTools (para ArcGIS)

Andre Silva
fonte
9

O FUSION LiDAR Toolkit possui recursos de recorte (ferramenta PolyClipData) e, diferentemente do LASTools, seu uso é irrestrito. No entanto, apesar de existir algum repositório SVN no SourceForge, o código fonte publicado é incompleto e muito antigo. Se você pode continuar sem conhecer o código e apenas usar o binário compilado, então FUSION deve ser bom para esta tarefa.

Michal Mackiewicz
fonte
Este é um software muito interessante, no entanto, você pode fornecer um link para o SVN ou o código-fonte que você mencionou? Não encontrei nenhum aviso sobre fontes ou informações de licenciamento . Nem na página do desenvolvedor, nem em seu manual ou em qualquer outro site que promova FUSION (por exemplo, o serviço florestal dos EUA, o centro de aplicativos de sensoriamento remoto ).
lavarider 11/02
1
Aqui são: sourceforge.net/projects/fusion-lidar
Michal Mackiewicz
ty michal, vou tentar e postar de volta os resultados.
Allen Bustenai
3

O WhiteboxTools pode recortar um arquivo LAS para vários polígonos contidos em um Shapefile usando a ClipLidarToPolygonferramenta Usando scripts Python, você pode usar a ferramenta da seguinte maneira:

from WBT.whitebox_tools import WhiteboxTools

wbt = WhiteboxTools()

wbt.work_dir = "/path/to/data/"
wbt.clip_lidar_to_polygon(i="input.las", polygons="polygons.shp", ouput="ouput.las")

Ou, se você preferir uma GUI, poderá usar o plug - in baseado no QGIS ou o WhiteboxTools Runner, que é distribuído ( wb_runner.py ) com o download binário da biblioteca:

Ferramenta ClipLidarToPolygon do WhiteboxTools Runner

WhiteboxDev
fonte
2

Várias tarefas de filtragem diferentes são comumente aplicadas aos conjuntos de dados LiDAR (filtragem por densidade de pontos, passa-baixo, filtragem de vegetação, tarefas de suavização e assim por diante). Como você está solicitando uma operação espacial (envolvendo um shapefile), suponho que você procure uma maneira de recortar seu conjunto de dados , ou seja, exclua pontos que estão fora dos limites do polígono definidos por um shapefile .

Geralmente, o LAStools é um pacote poderoso para processamento de dados pontuais. É um conjunto de ferramentas de linha de comando, mas também traz uma GUI simples e se integra ao QGIS (e ArcGIS, a propósito). Você pode baixar e avaliar livremente a caixa de ferramentas - no entanto, apenas partes dela são de código aberto (licença LGPL 2.1) - as partes de código fechado requerem licenciamento, dependendo do seu objetivo. Você deve verificar quais condições se aplicam a você.

Use o lasclip do LASTools (código fechado, verifique o licenciamento)

Uma das ferramentas de código fechado, o lasclip , executa exatamente uma tarefa de clip-by-shapefile :

lasclip: recebe como entrada um arquivo LAS / LAZ / TXT e um arquivo SHP / TXT com um ou mais polígonos (por exemplo, pegadas de construção), retira todos os pontos que ficam fora de todos os polígonos (ou dentro de alguns polígonos) e armazena os aponta para o arquivo LAS / LAZ / TXT de saída.

O uso é direto:

lasclip -i input_file.las -poly polygons.shp -o output_file.las -verbose

(consulte o LEIA-ME do lasclip para obter mais detalhes sobre o uso, mais exemplos e requisitos de arquivo de forma)

Use las2las da LASTools (código aberto; somente tarefas básicas de recorte)

Se o software de código fechado não for uma opção: a ferramenta las2las também pode executar tarefas simples de recorte - no entanto, você não pode recortar em um polígono definido por shapefile. Você pode recortar por retângulos, círculos, elevação, ângulo de varredura, classificação ou qualidade dos dados, por exemplo. (Veja o README para obter exemplos e detalhes de uso.)
Infelizmente, não conheço nenhuma ferramenta de código aberto que seja igual à funcionalidade do clipe de lasca.

Use libLAS para acessar arquivos LAS em um script criado automaticamente

O LASTools é baseado na biblioteca libLAS de código aberto e licenciada em BSD . Você pode usar o libLAS para acessar seus arquivos LAS e filtrá-los com um script personalizado, por exemplo, usando Python .

É claro que existem outras possibilidades se você alterar o fluxo de processamento (por exemplo, converter o LAS em raster e recortar posteriormente), mas acho que a maneira mais conveniente é continuar trabalhando com o LAS o maior tempo possível e realizar toda a filtragem com os dados da nuvem de pontos em si.

lavarider
fonte
ty lavarider por responder, eu vi lasclip, é o que estou procurando, mas fonte fechada não é uma opção, las2las me força a revisar as formas no meu shapefile, deixa-me com liblas e com as outras soluções aqui vou verificar -lo e voltar pós
Allen Bustenai
2

Eu escrevi um tutorial PDAL passo a passo que demonstra como fazer essa tarefa nesse ambiente. Consulte o tutorial de recorte PDAL para obter mais informações.

Howard Butler
fonte
Não consegui acessar o hiperlink agora (já havia acessado antes), mas mesmo que seja por causa do meu dispositivo; edite pelo menos a parte relevante do código que faz o recorte. É claro que é bom ter um tutorial complente no site da PDAL, mas as respostas não devem se basear apenas em fontes externas.
Andre Silva