使用要素设置 LAS 类代码 (3D Analyst)

许可等级:BasicStandardAdvanced

摘要

使用点、线和面要素来对 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 属性值。

  • COMPUTE_STATS计算统计数据。
  • NO_COMPUTE_STATS不计算统计数据。这是默认设置。
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