使用shapefile多边形和开源软件剪切LAS数据?


10

我正在尝试使用包含多个多边形的shapefile剪辑或过滤激光雷达文件(.las,.xyz)。

是否有可以执行这种空间操作的开源软件?

我的.las文件非常大,我应该说我对DEM数据和分析非常陌生,因此非常欢迎您提供任何帮助。


1
SAGA GIS还提供了一些处理LiDAR数据集的工具,但是我没有直接的经验。SAGA是完全免费和开源的,所以只需尝试一下:-)
Juhele 2014年

1
+1为SAGA。我完全想念那个。在SAGA中,有一个称为点云切割器的模块,该模块还可以按形状范围进行裁剪: “此模块允许从点云中提取子集。关注区域是由边界框坐标,网格系统或形状图层,或由形状图层的多边形组成。” 也有其他过滤任务的模块。
lavarider 2014年

1
根据您的时间和时间,我的最终目标是编辑那些剪裁的点并建立新的文件。
Allen Bustenai 2014年

根据您的回应,所有人都给了我很大的帮助,正如michal和Andre所说,FUSION起到了作用。
Allen Bustenai 2014年

Answers:


7

我第二个@Michal Mackiewicz的答案(关于Fusion / LTK),所以我希望这个例子可以帮助您理解它。

这是PolyCLipData语法命令(请参见手册第110页):

PolyClipData [switches] PolyFile OutputFile DataFile

在运行命令之前,请使用文本编辑器来编写命令(例如NotePad ++)。保存带有扩展名的文件.bat(批处理文件)。在运行文件之前,请不要忘记保存文件。

假设您有:

  1. C:驱动器下的Fusion / LTK。
  2. C:\ shapefile下的shapefile文件(shapefile.shp)
  3. C:\ las下的las数据集(lasdata.las)

写以下内容:

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

multifile如果要将多边形生成的las文件存储在单独的文件中,请使用此开关。例如:

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

shape开关与一起使用multifile,可以用PolyFile的dbf列之一中嵌入的值来命名多个OutputFiles。例如,如果您想使用ID信息来命名文件(假设ID在shapefile的第一列中)。写:

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

有关PolyClipData与多个单个零件shapefile一起使用的las文件的剪切,请参见以下文章:
使用多个shapefile剪切LAS数据

有关将多个las文件作为PolyClipData.file文件的参数嵌入到.txt文件中的信息,请参见以下文章:
使用FUSION将多个.las文件数据裁剪为多边形shapefile

有关使用(与LAStools Production工具箱)一起使用shapefile剪切多个las文件的信息,请参阅以下文章:
使用LASTools从拼贴的LAS数据集中剪切(对于ArcGIS)


9

FUSION LiDAR Toolkit具有剪切功能(PolyClipData工具),与LASTools不同,它的使用不受限制。但是,尽管存在SourceForge上的某些SVN存储库,但已发布的源代码不完整且非常旧。如果您可以在不知道代码的情况下继续进行操作,而仅使用编译后的二进制文件,那么FUSION应该可以完成此任务。


这是一个非常有趣的软件,但是,您可以提供您提到的SVN或源代码的链接吗?我找不到有关来源许可信息的任何通知。在开发人员的页面,其手册上或任何其他促进FUSION的网站(例如美国森林服务,遥感应用中心)上都没有。
lavarider 2014年


ty michal,我将尝试将其发回。
Allen Bustenai 2014年

3

WhiteboxTools可以使用该ClipLidarToPolygon工具将LAS文件裁剪为Shapefile中包含的多个多边形。使用Python脚本,可以按以下方式使用该工具:

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")

或者,如果您更喜欢GUI,则可以使用基于QGIS的插件或WhiteboxTools Runner,它随库的二进制下载一起分发(wb_runner.py):

WhiteboxTools Runner ClipLidarToPolygon工具


2

各种不同的滤波任务通常应用于LiDAR数据集(按点密度滤波,低通滤波,植被滤波,平滑任务等)。当您要求进行空间运算(涉及shapefile)时,我假设您正在寻找一种裁剪数据集的方法,即排除由shapefile定义的多边形边界之外的点

通常,LAStools是用于点数据处理的功能强大的软件包。它是一组命令行工具,但还带来了一个简单的GUI并与QGIS(顺便说一下,也与ArcGIS)集成。您可以免费下载和评估该工具箱-但是,其中只有一部分是开放源代码的(LGPL 2.1许可证)-封闭源代码的部分需要根据您的用途进行许可。您必须检查适合您的条件。

使用LASTools的lasclip (封闭源,检查许可)

一种封闭源代码工具lasclip可以精确执行一个shape-by-shapefile任务:

lasclip:输入具有一个或多个多边形(例如建筑物轮廓)的LAS / LAZ / TXT文件和SHP / TXT文件作为输入,剪掉落在所有多边形之外(或在某些多边形内部)的所有点,并存储剩余的点指向输出LAS / LAZ / TXT文件。

用法很简单:

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

(有关使用的更多详细信息,更多示例和shapefile要求,请参见lacclip 自述文件)

使用LASTools中的las2las (开源;仅基本剪辑任务)

如果不能使用封闭源软件:las2las工具也可以执行简单的剪切任务 -但是,您不能剪切到shapefile定义的多边形。例如,您可以裁剪矩形,圆形,高程,扫描角度,分类或数据质量。(有关用法示例和详细信息,请参见其自述文件。)
不幸的是,我不知道有任何等同于lasclip功能的开源工具。

使用libLAS以自制脚本访问LAS文件

LASTools基于开放源代码,BSD许可的libLAS库。您可以使用libLAS访问LAS文件,并使用自定义脚本(例如,使用Python)过滤它们。

当然,如果您更改处理流程(例如,稍后将LAS转换为栅格和剪辑),还有其他可能性,但是我认为最方便的方法是保持LAS尽可能长时间工作,并对点云数据执行所有过滤本身。


ty lavarider用于响应,即使看到lasclip,这也是我正在寻找的东西,但封闭源不是一种选择,las2las迫使我检查shapefile上的形状,使我留有liblas,在这里我将检查其他解决方案它
并发

2

我编写了逐步的PDAL教程,演示了如何在该环境中执行此任务。请参阅PDAL剪辑教程以获取更多信息。


我现在无法访问超链接(之前已经访问过),但是即使是由于我的设备所致;至少在执行剪裁的代码的相关部分中进行编辑。当然,在PDAL的网站上提供丰富的教程非常好,但是答案不应该仅基于外部资源。
安德烈·席尔瓦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.