我正在尝试使用包含多个多边形的shapefile剪辑或过滤激光雷达文件(.las,.xyz)。
是否有可以执行这种空间操作的开源软件?
我的.las文件非常大,我应该说我对DEM数据和分析非常陌生,因此非常欢迎您提供任何帮助。
我正在尝试使用包含多个多边形的shapefile剪辑或过滤激光雷达文件(.las,.xyz)。
是否有可以执行这种空间操作的开源软件?
我的.las文件非常大,我应该说我对DEM数据和分析非常陌生,因此非常欢迎您提供任何帮助。
Answers:
我第二个@Michal Mackiewicz的答案(关于Fusion / LTK),所以我希望这个例子可以帮助您理解它。
这是PolyCLipData
语法命令(请参见手册第110页):
PolyClipData [switches] PolyFile OutputFile DataFile
在运行命令之前,请使用文本编辑器来编写命令(例如NotePad ++)。保存带有扩展名的文件.bat
(批处理文件)。在运行文件之前,请不要忘记保存文件。
假设您有:
写以下内容:
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(与LAStools Production
工具箱)一起使用shapefile剪切多个las文件的信息,请参阅以下文章:
使用LASTools从拼贴的LAS数据集中剪切(对于ArcGIS)
FUSION LiDAR Toolkit具有剪切功能(PolyClipData工具),与LASTools不同,它的使用不受限制。但是,尽管存在SourceForge上的某些SVN存储库,但已发布的源代码不完整且非常旧。如果您可以在不知道代码的情况下继续进行操作,而仅使用编译后的二进制文件,那么FUSION应该可以完成此任务。
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):
各种不同的滤波任务通常应用于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尽可能长时间工作,并对点云数据执行所有过滤本身。