标注 | 说明 | 数据类型 |
输入集成网格 | 要处理的集成网格 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 |
摘要
基于已分类的点云,从集成的网格中提取代表对象的多面体要素。
使用情况
本工具利用点云中已分类的点来识别集成网格中对应的对象。 因此,用于分类的点云应从集成网格生成。 可以使用网格转 LAS 工具创建点云,然后对点云进行分类,从网格中提取对象。
每个类代码都将对应一个组 ID。 可以将多个类代码分配给同一个组 ID,确保将描述同一对象各个部分的点视为一个对象。
对象提取过程将已分类的点聚合为聚类,并基于其与聚类点集的接近程度来识别集成网格中的对象。 距离小于聚类距离参数值的点将被视为属于同一个对象。 此参数值应大于数据的平均点间距。
最大三角形面积参数会细分网格三角形,从而支持一个三角形中存在多个对象的情况。 因此,多面体三角形与网格三角形可能不完全匹配。
如果点云或集成网格来源于索引的 3D 场景图层服务,则该服务必须启用要素导出功能才能用作此工具的输入。
参数
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 |
代码示例
下面的示例演示了如何在 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