描述
对与输入要素的二维范围相交的 LAS 点进行分类。
使用方法
将对与输入点、线和面的二维范围相交的所有 LAS 点以及可能应用的所有缓冲区进行重分类。如果重分类 LAS 点需要距 3D 要素的三维距离,请考虑使用 按邻域查找 LAS 点工具。
-
缓冲距离对于点和线尤为重要,因为给定 LAS 点不可能准确落在线上或者与输入点具有相同的坐标。应用于缓冲区的距离单位基于 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 的特定版本支持)
语法
arcpy.ddd.SetLasClassCodesUsingFeatures(in_las_dataset, feature_class, {compute_stats})
参数 | 说明 | 数据类型 |
in_las_dataset | 待处理的 LAS 数据集。 | LAS Dataset Layer |
feature_class [[features, buffer_distance, new_class, synthetic, key_point, withheld, overlap],...] | 可以采用由多个列表组成的列表的形式输入将用于定义分类操作的每个要素及其相关联的选项,例如 [['feature1', 6, 9, 'NO_CHANGE', 'SET', 'CLEAR', 'NO_CHANGE'], ['feature 2', 0, 6, 'NO_CHANGE', 'NO_CHANGE', 'NO_CHANGE', 'NO_CHANGE']]。每个要素均具有以下选项:
| Value Table |
compute_stats (可选) | 指定是否应计算 LAS 数据集引用的 LAS 文件的统计数据。计算统计数据时会为每个 LAS 文件提供一个空间索引,从而提高了分析和显示性能。统计数据还可通过将 LAS 属性(如分类代码和返回信息)显示限制为 LAS 文件中存在的值来提升过滤和符号系统体验。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
derived_las_dataset | 更新后的 LAS 数据集。 | LAS 数据集图层 |
代码示例
SetLasClassCodesUsingFeatures 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.SetLasClassCodesUsingFeatures_3d("test.lasd", [["lake.shp 0 9"],
["outliers.shp", 5, "NO_CHANGE",
"NO_CHANGE", "NO_CHANGE", "SET"]],
"COMPUTE_STATS")
SetLasClassCodesUsingFeatures 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''**********************************************************************
Name: Assign Withheld Classification Flag to Outlier Points in LAS Files
Description: Uses Locate Outliers to identify points in LAS files that
should be assigned the 'withheld' classification flag.
Designed for use as a script tool.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
lasD = arcpy.GetParameterAsText(0)
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(lasD, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute SetLasClassCodeUsingFeatures
arcpy.ddd.SetLasClassCodesUsingFeatures(lasd, [["outliers.shp", 5,
"NO_CHANGE", "NO_CHANGE",
"NO_CHANGE", "SET"]])
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
环境
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst