标注 | 说明 | 数据类型 |
输入点云 | 将用于检测对象的分类 LAS 数据集、点云场景图层包或点云 I3S 服务。 | LAS Dataset Layer; Scene Layer; File |
要提取的类代码 | 要处理以识别对象的类代码。 可以将共用组 ID 分配给多个类代码,以将其分组为同一对象。 | Value Table |
聚类距离 | 将用于识别属于同一对象的点的三维距离。 | Linear Unit |
输出对象要素 | 根据输出几何类型参数值,要素几何可能是点、面或多面体。 | Feature Class |
输出几何类型 (可选) | 指定将为每个对象创建的几何类型。 指定的类型将确定对象是表示为点、面还是多面体要素。
| String |
最小点数 (可选) | 对象生成输出所需的最小点数。 默认值为 10。 | Long |
垂直聚类比例因子 | 将应用于 z 值的比例因子将影响如何沿 z 轴应用聚类距离以及如何将点聚类为对象。 默认值为 1,有效值范围为 0.0 到 10.0。 比例因子为 0 将导致二维聚类;小于 1 但大于 0 的比例因子将导致每个对象的 z 范围更大。 同样,大于 1 的垂直比例因子将导致沿 z 轴的点在较短的距离内聚集。 垂直比例因子仅适用于点的聚类方式。 点的几何不会被修改,z 单位也不会改变。 | Double |
计算每个对象的唯一 alpha 半径 (可选) | 指定是否为每个对象计算 Alpha 半径,或者是否将相同的 Alpha 半径应用于所有对象。 仅当输出几何类型参数设置为 2D 凹包或 3D 凹包时,此参数才可用。
| Boolean |
Alpha 半径 (可选) | 构造对象要素时将用于定义 alpha 形状的 alpha 半径。 当未选中计算每个对象的唯一 alpha 半径参数且输出几何类型参数设置为 2D 凹包或 3D 凹包时,适用此参数。 较大的 alpha 半径将创建一个更统一的对象要素,其具有更简单的边界,直到到达凸包的点,而较小的值将包含更详细的对象点,同时也会增加生成断开部分的可能性。 如果未定义 alpha 半径,则该值源自聚类距离和垂直聚类比例因子参数。 有关如何派生出默认 alpha 半径的详细信息,请参阅工具帮助中的“使用方法”部分。 | Linear Unit |
摘要
将分类的点云中的不同对象提取为点、面或多面体要素。
插图
使用情况
此工具使用聚类距离来确定属于同一对象的点。 如果多个类别代码可能表示相同的对象,请分配一个共用组 ID,在聚类操作期间将类别代码链接起来。 例如,一个大树可能具有分配了值为 3、4 或 5 的类别代码的点。 可以为这三个类别代码分配一个共用组 ID,以确保正确识别该树。
提取对象提供了可量化的数据集,可用于创建可在地图或场景中可视化的资产清单。 该工具生成的 3D 形状有助于进行可见性或阴影影响评估。 简化几何表示也可以为在庞大的点云中可视化对象提供有用的制图抽象。
使用最小点数参数来消除由少量点定义的对象,这可能不会产生有意义的输出。
当使用输出几何类型参数的 2D 凹包或 3D 凹包选项时,可以为每个对象计算用于定义输出几何的 alpha 半径,也可以在所有对象上使用相同的 alpha 半径。 当提取具有高度不同特征的多个对象时,计算每个对象的 alpha 半径可能会很有用。 当对所有对象应用相同的 Alpha 半径时,请使用 Alpha 半径参数指定所需的半径。 如果未提供值,则用于 2D 凹包选项的半径将与聚类距离参数值相同。 使用 3D 凹包选项时,只要比例因子大于 0,则将通过聚类距离参数值除以垂直聚类比例因子参数值来得出半径。 当比例因子为 0 时,将创建凸包。
输出要素将具有以下属性:
- ObjectCode - 用于标识对象类型的类别代码或组 ID。
- COUNT - 与对象相关联的点的数量。
- ALPHA— 用于构建输出形状的 alpha 半径。 仅当输出几何类型参数设置为 2D 凹包或 3D 凹包时,才会添加此字段。
以下属性仅适用于面几何类型:
- MIN_Z - 属于对象的点的最低 Z 值
- MAX_Z - 属于对象的点的最高 Z 值
可以使用添加 Z 信息工具计算多面体输出的表面积和体积等属性。
参数
arcpy.ddd.ExtractObjectsFromPointCloud(in_point_cloud, class_codes_to_extract, clustering_distance, out_features, {geometry_type}, {min_points}, vertical_scale_factor, {alpha_calculation}, {alpha_radius})
名称 | 说明 | 数据类型 |
in_point_cloud | 将用于检测对象的分类 LAS 数据集、点云场景图层包或点云 I3S 服务。 | LAS Dataset Layer; Scene Layer; File |
class_codes_to_extract [class_codes_to_extract,...] | 要处理以识别对象的类代码。 可以将共用组 ID 分配给多个类代码,以将其分组为同一对象。 | Value Table |
clustering_distance | 将用于识别属于同一对象的点的三维距离。 | Linear Unit |
out_features | 根据 geometry_type 参数值,要素几何可能是点、面或多面体。 | Feature Class |
geometry_type (可选) | 指定将为每个对象创建的几何类型。 指定的类型将确定对象是表示为点、面还是多面体要素。
| String |
min_points (可选) | 对象生成输出所需的最小点数。 默认值为 10。 | Long |
vertical_scale_factor | 将应用于 z 值的比例因子将影响如何沿 z 轴应用聚类距离以及如何将点聚类为对象。 默认值为 1,有效值范围为 0.0 到 10.0。 比例因子为 0 将导致二维聚类;小于 1 但大于 0 的比例因子将导致每个对象的 z 范围更大。 同样,大于 1 的垂直比例因子将导致沿 z 轴的点在较短的距离内聚集。 垂直比例因子仅适用于点的聚类方式。 点的几何不会被修改,z 单位也不会改变。 | Double |
alpha_calculation (可选) | 指定是否为每个对象计算 Alpha 半径,或者是否将相同的 Alpha 半径应用于所有对象。 仅当将 geometry_type 参数设置为 CONCAVE_HULL_2D 或 CONCAVE_HULL_3D 时,才会启用此参数。
| Boolean |
alpha_radius (可选) | 构造对象要素时将用于定义 alpha 形状的 alpha 半径。 当 alpha_calculation 参数设置为 ALL_OBJECTS 且 geometry_type 参数设置为 CONCAVE_HULL_2D 或 CONCAVE_HULL_3D 时,适用该参数。 较大的 alpha 半径将创建一个更统一的对象要素,其具有更简单的边界,直到到达凸包的点,而较小的值将包含更详细的对象点,同时也会增加生成断开部分的可能性。 当未定义 alpha 半径时,该值来自 clustering_distance 和 vertical_clustering_scale_factor 参数。 有关如何派生出默认 alpha 半径的详细信息,请参阅工具帮助中的“使用方法”部分。 | Linear Unit |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
arcpy.env.workspace = r"C:/GIS_Data"
arcpy.ddd.ExtractObjectsFromPointCloud("Terrestrial_Scan.lasd", [(4, 5), (5, 5)],
"60 Centimeters", "Trees.shp",
"CONCAVE_HULL_2D", 50)