按高度分类 LAS (3D Analyst)

描述

基于距离地表的高度对激光雷达点进行重分类。

使用方法

  • 此工具可基于 LAS 点距离地表的高度对类代码值为 0 或 1 的 LAS 点进行重分类,地表是通过分配了类代码值 2 或 8 的激光雷达回波创建的。如果激光雷达地面回波使用了 2 或 8 以外的值,请使用更改 LAS 类代码工具使类代码定义与 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 的特定版本支持)

    注:

    尽管 LAS 1.4 新引入的大部分类代码分配先前已被指定为“保留”,但类代码 8 和 12 已从“模型关键和重叠”更改为“保留”。

语法

ClassifyLasByHeight(in_las_dataset, ground_source, height_classification, {noise}, {compute_stats}, {extent}, {process_entire_files}, boundary)
参数说明数据类型
in_las_dataset

将要处理的 LAS 数据集。将仅对类代码值为 0 和 1 的 LAS 点进行评估。

LAS Dataset Layer
ground_source

将用于确定距离地面高度的地面测量的源。

  • GROUND将使用通过地面分类代码值 2 和模型关键代码值 8 指定的 LAS 点。
  • MODEL_KEY将仅使用通过模型关键分类代码值 8 指定的 LAS 点。
String
height_classification
[[class_code, height_from_ground],...]

将要分配给 LAS 点的类代码值,这些点位于派生自指定距离地面高度的值范围内。条目的顺序影响用于定义 LAS 点的重分类的高度范围。第一个条目的 Z 范围将从地表跨越到指定的 height_from_ground 值。后续条目的 Z 范围将从先前条目的上限跨越到其自身的 height_from_ground 值。

Value Table
noise
(可选)

表示是否根据点距离地面的邻近性来将点重分类为噪点。激光雷达数据中的噪点伪影可由传感器错误和空中障碍物(如位于激光雷达脉冲路径上的鸟类)的无意拦截引入。

  • ALL_NOISE低噪点和高噪点都将得到分类。
  • HIGH_NOISE只有大于 LAS 分类表中最大高度的点才会被重分类为高噪点。
  • LOW_NOISE只有低于地表的点才会被重分类为噪点。这仅适用于所有地面点都用于定义地表时。
  • NONE没有将被重分类为噪点的点。
String
compute_stats
(可选)

指定是否应计算 LAS 数据集引用的 LAS 文件的统计数据。计算统计数据时会为每个 LAS 文件提供一个空间索引,从而提高了分析和显示性能。统计数据还可通过将 LAS 属性(如分类代码和返回信息)显示限制为 LAS 文件中存在的值来提升过滤和符号系统体验。

  • COMPUTE_STATS将计算统计数据。
  • NO_COMPUTE_STATS不计算统计数据。这是默认设置。
Boolean
extent
(可选)

指定将由此工具进行评估的数据的范围。

Extent
process_entire_files
(可选)

指定处理范围的应用方式。

  • PROCESS_ENTIRE_FILES将仅对处理范围内的 LAS 点进行评估。这是默认设置。
  • PROCESS_EXTENT将对处理范围相交的 LAS 文件中的所有点进行评估。
Boolean
boundary

定义评估 LAS 地面点所在区域的面要素。

Feature Layer

派生输出

名称说明数据类型
out_las_dataset

已修改的 LAS 数据集。

LAS 数据集图层

代码示例

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())

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题