摘要
基于距离地表的高度对激光雷达点进行重分类。
用法
该工具要求使用类代码值 2 或 8 将 LAS 点分类为地面。如果表示地面的点分配有不同的类代码值,则考虑使用更改 LAS 类代码工具使类代码定义与最新的 LAS 文件格式规范保持一致。将仅对类代码值为 0 或 1 的 LAS 点进行重分类。
考虑使用此工具来对激光雷达数据中的植被进行分类,而这些数据收集自建筑物覆盖面积最小的偏远地区。
考虑应用处理范围来查看指定的 Z 范围值是否适用于 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 的特定版本支持)
语法
ClassifyLasByHeight_3d (in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, boundary, {process_entire_files})
参数 | 说明 | 数据类型 |
in_las_dataset | 将要处理的 LAS 数据集。将仅对类代码值为 0 和 1 的 LAS 点进行评估。 | LAS Dataset Layer |
ground_source | 将用于确定距离地面高度的地面测量的资源。
| String |
height_classification [class_code, height_from_ground] | 将要分配给位于值范围内的 LAS 点的类代码值派生自指定的距离地面高度。条目的顺序影响用于定义 LAS 点的重分类的高度范围。第一个条目的 Z 范围将从地表跨越到指定的 height_from_ground 值。后续条目的 Z 范围将从先前条目的上限跨越到其自身的 height_from_ground 值。 | Value Table |
noise (可选) | 表示是否根据点距离地面的邻近性来将点重分类为噪点。激光雷达数据中的噪点伪影可由传感器错误和空中障碍物(如位于激光雷达脉冲路径上的鸟类)的无意拦截引入。
| String |
compute_stats (可选) | 指定是否应计算 LAS 数据集引用的 LAS 文件的统计数据。统计数据的存在允许 LAS 数据集图层使用过滤和符号系统选项,以便仅显示 LAS 文件中存在的 LAS 属性值。
| Boolean |
extent (可选) | 指定将由此工具进行评估的数据的范围。 | Extent |
boundary | 定义评估 LAS 地面点所在区域的面要素。 | Feature Layer |
process_entire_files (可选) | 指定处理范围的应用方式。
| Boolean |
代码示例
ClassifyLasByHeight 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasByHeight_3d('lidar.lasd', 'Ground',
[[3, 5], [4, 17], [5, 120]], 'HIGH_NOISE')
ClassifyLasByHeight 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Classify Vegetation Points
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
import exceptions, sys, traceback
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
extent = arcpy.GetParameter(3)
calcStats = arcpy.GetParameter(4)
try:
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ClassifyLasByHeight(lasd, ground_source='GROUND',
height_classification=[[3, 5],
[4, 17],
[5, 120]],
noise='ALL_NOISE', compute_stats=calcStats,
extent=extent)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
环境
许可信息
- ArcGIS Desktop Basic: 需要 3D Analyst
- ArcGIS Desktop Standard: 需要 3D Analyst
- ArcGIS Desktop Advanced: 需要 3D Analyst