使用要素设置 LAS 类代码 (3D Analyst)
摘要
使用点、线和面要素来对 LAS 数据集所引用的 LAS 文件中的数据点进行分类。
用法
根据激光雷达返回时遇到的材料(如地面、建筑或水),可将 LAS 点分为多个类别。美国摄影测量与遥感协会 (ASPRS) 为 LAS 文件版本 1.1、1.2 和 1.3 定义了以下类代码:
类别值
分类类型
0
从不分类
1
未分配
2
地面
3
低植被
4
中等植被
5
高植被
6
建筑物
7
噪点
8
模型关键
9
水域
10
为 ASPRS 定义预留
11
为 ASPRS 定义预留
12
重叠
13–31
为 ASPRS 定义预留
注:LAS 1.0 规范提供从 0 到 255 的类代码,但不具有标准分类方案。1.0 文件中使用的任何类代码通常由数据供应商定义、并通过辅助信息提供。
LAS 数据集图层可用于按类代码或返回值过滤 LAS 点。创建图层的方法是使用创建 LAS 数据集图层工具、通过在 ArcMap 或 ArcScene 中加载 LAS 数据集以及通过图层属性对话框指定所需类代码和返回值。
将对针对输入要素指定的缓冲区的二维区域中的 LAS 数据点进行分类。
-
考虑使用从定位异常值获得的点将 LAS 点分类为“噪点”。
语法
SetLasClassCodesUsingFeatures_3d (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],...] |
指定一个或多个要素类,用于为 LAS 数据集引用的激光雷达文件定义类代码值。每个要素均具有可以指定的下列选项:
| Value Table |
compute_stats (可选) | 指定是否应计算 LAS 数据集引用的 LAS 文件的统计数据。统计数据的存在允许应用 LAS 数据集图层的过滤和符号系统选项,以便仅显示 LAS 文件中存在的 LAS 属性值。
| Boolean |
代码实例
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)
相关主题
许可信息
ArcGIS for Desktop Basic: 需要 3D Analyst
ArcGIS for Desktop Standard: 需要 3D Analyst
ArcGIS for Desktop Advanced: 需要 3D Analyst
5/10/2014