摘要
分类激光雷达数据中的地面点。
用法
仅考虑将类代码值为 0、1 或 2 的 LAS 点的最近返回结果重新分类为地面。如果您的 LAS 文件使用不同的类代码值来表示未分类或地面测量值,则考虑使用更改 LAS 类代码工具对其进行相应的重新分配。分类过程还将忽略分配有重叠或噪点分类标记的点。
如果希望查看 LAS 点子集上分类算法的结果,可考虑应用处理范围或边界。
考虑查看桥梁和坡道所处的位置,因为分类算法可能会将此类地点误分类为地面。
-
LAS 格式支持根据美国摄影测量与遥感协会 (ASPRS) 制定的规范对每个点进行分类。ArcGIS 平台应用为 LAS 文件版本 1.4 指定的分类方案:
类别值 分类类型 0
从不分类
1
未分配
2
地面
3
低植被
4
中等植被
5
高植被
6
建筑
7
低噪音
8
模型关键点/保留
9
水
10
铁路
11
路面
12
重叠/保留
13
钢丝护网
14
导线
15
输电塔
16
线 - 连接器
17
桥板
18
高噪音
19 – 63
为 ASPRS 定义保留(LAS 1.1 至 1.3 最高支持类代码 31)
32 – 255
可由用户定义(仅 LAS 1.0 和 1.4 的特定版本支持)
语法
ClassifyLasGround_3d (in_las_dataset, {reuse_ground}, method, {dem_resolution}, {compute_stats}, {extent}, boundary, {process_entire_files})
参数 | 说明 | 数据类型 |
in_las_dataset | 待处理的 LAS 数据集。仅评估类代码值为 0、1 或 2 的 LAS 点的最近返回结果。 | LAS Dataset Layer |
reuse_ground (可选) | 指定现有地面点是否应重新分类或重新使用。
指定是否应接受或重新评估现有地面点。
| Boolean |
method | 用于检测地面点的方法
| string |
dem_resolution (可选) | 指定距离后,将仅评估分类为地面的点子集,这加快了分类的过程。需要更迅速地生成 DEM 表面时可考虑使用该方法。最小距离为 0.3 米,但指定距离必须至少为激光雷达数据平均点间距的 1.5 倍,否则该过程将无法生效。 | Linear Unit |
compute_stats (可选) | 指定是否应计算 LAS 数据集引用的 LAS 文件的统计数据。统计数据的存在允许 LAS 数据集图层使用过滤和符号系统选项,以便仅显示 LAS 文件中存在的 LAS 属性值。
| Boolean |
extent (可选) | 指定将由此工具进行评估的数据的范围。 | Extent |
boundary | 定义将由此工具进行处理的感兴趣区的面要素。 | Feature Layer |
process_entire_files (可选) | 指定处理范围的应用方式。
| Boolean |
代码示例
ClassifyLasGround 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasGround_3d('metro.lasd', 'CONSERVATIVE',
boundary='study_area.shp',
process_entire_files='PROCESS_ENTIRE_FILES')
ClassifyLasGround 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Classify Ground & Vegetation in Forest Environment
Description: Classify points representing vegetation with LAS class code values
of 3, 4, and 5. The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
try:
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
# Make an initial pass of ground classifier
arcpy.ddd.ClassifyLasGround(lasd, method="Conservative")
# Make a secondary pass to capture ridges
arcpy.ddd.ClassifyLasGround(lasd, method="Aggressive",
reuse_ground="REUSE_GROUND")
# Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, ground_source='GROUND',
height_classification=[[3, 5],
[4, 17],
[5, 120]],
noise='HIGH_NOISE', compute_stats="COMPUTE_STATS")
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
环境
许可信息
- ArcGIS Desktop Basic: 需要 3D Analyst
- ArcGIS Desktop Standard: 需要 3D Analyst
- ArcGIS Desktop Advanced: 需要 3D Analyst