使用点云提取网格要素 (3D Analyst)

摘要

基于已分类的点云,从集成的网格中提取代表对象的多面体要素。

使用情况

  • 本工具利用点云中已分类的点来识别集成网格中对应的对象。 因此,用于分类的点云应从集成网格生成。 可以使用网格转 LAS 工具创建点云,然后对点云进行分类,从网格中提取对象。

  • 每个类代码都将对应一个组 ID。 可以将多个类代码分配给同一个组 ID,确保将描述同一对象各个部分的点视为一个对象。

  • 对象提取过程将已分类的点聚合为聚类,并基于其与聚类点集的接近程度来识别集成网格中的对象。 距离小于聚类距离参数值的点将被视为属于同一个对象。 此参数值应大于数据的平均点间距。

  • 最大三角形面积参数会细分网格三角形,从而支持一个三角形中存在多个对象的情况。 因此,多面体三角形与网格三角形可能不完全匹配。

  • 如果点云或集成网格来源于索引的 3D 场景图层服务,则该服务必须启用要素导出功能才能用作此工具的输入。

参数

标注说明数据类型
输入集成网格

要处理的集成网格 I3S 服务或场景图层包。

Scene Layer; File
输入点云

包含已分类点的 LAS 数据集、I3S 点云或点云场景图层包,用于从集成网格中提取要素。

LAS Dataset Layer; Scene Layer; File
输出多面体要素

代表从集成网格中检测到的对象的输出多面体要素。

Feature Class
要提取的类代码

用于识别集成网格中对象的点云中的类代码值。 每个代码的默认组 ID 都与其值相同。 可以分配公共组 ID,确保将来自多个类代码的点组合成一个对象。

Value Table
点距离阈值

细分的网格三角形中心与表示给定对象的点之间的最大距离。 将在此距离内的网格元素创建为输出要素类中的对象。

Linear Unit
最大三角形面积
(可选)

细分网格三角形的最大面积。 输入细分输入网格三角形旨在优化输出质量。

Areal Unit
聚类距离
(可选)

将用于对每个对象组内的点进行聚类的距离。 如果未指定值,则将使用点距离阈值参数值作为聚类距离。

Linear Unit
最小聚类面积
(可选)

与给定对象聚类指定邻近距离内的网格三角形的最小表面积。 将忽略小于指定值的任何网格对象聚类。 默认情况下,不使用任何值,这将导致所有对象聚类都被视为有效对象。

Areal Unit
提取边界
(可选)

代表要处理的 2D 区域的边界。 如果预期数据位于集成网格的子集中,则提供边界要素可以通过限制要评估的区域来优化工具的性能。

Feature Layer

arcpy.ddd.ExtractMeshFeaturesUsingPointCloud(in_mesh, in_point_cloud, out_feature_class, class_codes, point_distance_threshold, {maximum_triangle_area}, {cluster_distance}, {minimum_cluster_area}, {boundary})
名称说明数据类型
in_mesh

要处理的集成网格 I3S 服务或场景图层包。

Scene Layer; File
in_point_cloud

包含已分类点的 LAS 数据集、I3S 点云或点云场景图层包,用于从集成网格中提取要素。

LAS Dataset Layer; Scene Layer; File
out_feature_class

代表从集成网格中检测到的对象的输出多面体要素。

Feature Class
class_codes
[class_codes,...]

用于识别集成网格中对象的点云中的类代码值。 每个代码的默认组 ID 都与其值相同。 可以分配公共组 ID,确保将来自多个类代码的点组合成一个对象。

Value Table
point_distance_threshold

细分的网格三角形中心与表示给定对象的点之间的最大距离。 将在此距离内的网格元素创建为输出要素类中的对象。

Linear Unit
maximum_triangle_area
(可选)

细分网格三角形的最大面积。 输入细分输入网格三角形旨在优化输出质量。

Areal Unit
cluster_distance
(可选)

将用于对每个对象组内的点进行聚类的距离。 如果未指定值,则将使用 point_distance_threshold 参数值作为聚类距离。

Linear Unit
minimum_cluster_area
(可选)

与给定对象聚类指定邻近距离内的网格三角形的最小表面积。 将忽略小于指定值的任何网格对象聚类。 默认情况下,不使用任何值,这将导致所有对象聚类都被视为有效对象。

Areal Unit
boundary
(可选)

代表要处理的 2D 区域的边界。 如果预期数据位于集成网格的子集中,则提供边界要素可以通过限制要评估的区域来优化工具的性能。

Feature Layer

代码示例

ExtractMeshFeaturesUsingPointCloud 示例(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data"

lidar = "lidar/NE_neighborhood.lasd"
clusterDist = arcpy.Describe(lidar).pointSpacing * 2.5

arcpy.ddd.ExtractMeshFeaturesUsingPointCloud(in_mesh="NorthEast_Neighborhood_mesh.slpk",
                                             in_point_cloud=lidar,
                                             out_feature_class="NE_data.gdb/trees",
                                             class_codes=[[4, 5], [5, 5]],
                                             point_distance_threshold="25 centimeters",
                                             maximum_triangle_area="",
                                             clustering_distance=clusterDist,
                                             boundary="NE_data.gdb/parks")
)

许可信息

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

相关主题