按邻域查找 LAS 点 (3D Analyst)

描述

用于标识已启用 z 值要素的三维邻域内的 LAS 点,并提供重新分类这些点的选项。

使用方法

  • 此工具使用包含指定搜索半径内的 LAS 点计数的字段更新输入要素。此工具可以生成的点数没有限制,因此请考虑避免使用极大的搜索距离。

  • 您可通过在图层过滤器设置中选择分类代码、分类标记和返回值的任意组合来使 LAS 数据集图层对所显示和处理的 LAS 点进行限制。过滤器的定义可通过图层属性对话或创建 LAS 数据集图层工具实现。

  • 使用单点几何生成输出点要素时,将向该输出中添加名为 DIST3D 的字段(该输出将包含从点到最近输入要素的 3D 距离)。

语法

arcpy.3d.LocateLasPointsByProximity(in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
参数说明数据类型
in_las_dataset

待处理的 LAS 数据集。

LAS Dataset Layer
in_features

将使用其邻域识别 LAS 点的 3D 点、线、面或多面体要素。

Feature Layer
search_radius

用于评估输入要素周围是否存在 LAS 点的距离,可使用线性距离或输入要素属性表中的数值字段提供。如果搜索半径从单位被指定为未知的字段或线性距离得出,则将使用输入要素 XY 空间参考的线性单位。

支持的单位如下:

  • UNKNOWN未知
  • INCHES英寸
  • FEET英尺
  • YARDS
  • MILES英里
  • CENTIMETERS厘米
  • DECIMETERS分米
  • METERS
  • KILOMETERS千米
Linear Unit; Field
count_field

该字段名称将添加到输入要素的属性表中,并将使用每个要素邻域中的 LAS 点数进行填充。默认字段名称为 COUNT

String
out_features
(可选)

表示输入要素指定邻域中检测到的 LAS 点的点要素。

Feature Class
geometry
(可选)

指定输出点要素的几何,这些点要素表示输入要素指定邻域中找到的 LAS 点。

  • MULTIPOINT每一行中都将具有多个点的多点要素。
  • POINT每个识别的 LAS 点都具有唯一行的单点要素。
String
class_code
(可选)

用于对在输入要素搜索半径内发现的点进行重分类的类代码值。

Long
compute_stats
(可选)

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

  • COMPUTE_STATS将计算统计数据。
  • NO_COMPUTE_STATS不计算统计数据。这是默认设置。
Boolean

派生输出

名称说明数据类型
out_las_dataset

已更新的 LAS 数据集。

LAS 数据集图层
derived_features

更新后的输入 3D 要素。

要素图层

代码示例

LocateLasPointsByProximity 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.LocateLasPointsByProximity_3d('lidar.lasd', 'powerlines.shp', 
                                    search_radius="10 Feet", 
                                    count_field="Near_Pts",
                                    out_features="located_pts.shp")
LocateLasPointsByProximity 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''****************************************************************************
Name: Classify Noise Points
Description: Updates classification of version 1.0 LAS files to conform to
             the standardized class codes introduced in the 1.1 specifications.
             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)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)

try:
    # Execute CreateLasDataset
    arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
    # Execute Locate Outliers
    outlier_pts = 'in_memory/outliers'
    arcpy.ddd.LocateOutliers(lasd, out_feature_class=outlier_pts, 
                            apply_hard_limit='Apply_Hard_Limit', 
                            absolute_z_min=-15, absolute_z_max=680, 
                            apply_comparison_filter='Apply_Comparison_Filter',
                            z_tolerance=0, slope_tolerance=150, 
                            exceed_tolerance_ratio=0.5, outlier_cap=3000)
    # Execute ChangeLasClassCodes
    arcpy.ddd.LocateLasPointsByProximity(lasd, in_features=outlier_pts, 
                                         search_radius='0.5 Centimeters', 
                                         class_code=18)
    # Report messages
    arcpy.GetMessages(0)

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

许可信息

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

相关主题