标注 | 说明 | 数据类型 |
输入要素
| 将评估其最小包围体的 LAS 数据集或 3D 要素。 | LAS Dataset Layer; Feature Layer |
Z 值
| 输入数据 z 值的源。 | Field |
输出要素类 | 将生成的要素类。 | Feature Class |
输出要素类类型
(可选) | 指定用来确定最小包围体的几何的方法。
| String |
组选项
(可选) | 指定如何对输入要素进行分组;每组都会通过一个输出多面体来封闭。
| String |
分组字段 (可选) | 将 List 指定为组选项时用于对要素进行分组的输入要素的字段(一个或多个)。对于 List 选项,至少需要一个分组字段。指定字段(一个或多个)的值相同的所有要素均将视为位于一个组中。 | Field |
将几何特征作为属性添加到输出中
(可选) | 指定每个要素是否具有最小包围体的体积和表面积属性。
| Boolean |
摘要
创建代表一组 3D 要素所占空间体积的多面体要素。
插图
使用情况
球体或包络方法(Python 中的 geometry_type="SPHERE" 或 geometry_type = "ENVELOPE")可提供一组 3D 要素所占据的空间体积的快速表示。
凸包选项(Python 中的 geometry_type="CONVEX_HULL")能够提供比球体或包络方法更为详细的信息,但不会捕获输入要素中的局部凹陷。
凹包选项(Python 中的 geometry_type="CONCAVE_HULL")可为包围体形状提供最详细的信息,但是运算量很大,不应该与大型输入数据集合一起使用。
如果生成的最小包围体表示的是输入要素组,则用于分隔输入的字段将添加到生成的多面体中。如果最小包围体中包含几何特征,则会将以下字段添加到输出要素中:
- MBV_Area - 最小包围体的总表面积
- MBV_Volume - 多面体要素所包含空间的总体积。
参数
arcpy.ddd.MinimumBoundingVolume(in_features, z_value, out_feature_class, {geometry_type}, {group}, {group_field}, {mbv_fields})
名称 | 说明 | 数据类型 |
in_features | 将评估其最小包围体的 LAS 数据集或 3D 要素。 | LAS Dataset Layer; Feature Layer |
z_value | 输入数据 z 值的源。 | Field |
out_feature_class | 将生成的要素类。 | Feature Class |
geometry_type (可选) | 指定用来确定最小包围体的几何的方法。
| String |
group (可选) | 指定如何对输入要素进行分组;每组都会通过一个输出多面体来封闭。
| String |
group_field [group_field,...] (可选) | 将 LIST 指定为 group_option 时用于对要素进行分组的输入要素的字段。对于 LIST 选项,至少需要一个分组字段。指定字段(一个或多个)的值相同的所有要素均将视为位于一个组中。 | Field |
mbv_fields (可选) | 指定是否向输出多面体要素类添加几何属性。
| Boolean |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = 'C:/data'
arcpy.ddd.MinimumBoundingVolume('tree_canopy.shp', 'Shape.Z',
'canopy_volume.shp', 'CONCAVE_HULL',
group='List', group_field='Season'
mbv_fields='MBV_FIELDS')
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Detect Periods of Activity
Description:
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_features = arcpy.GetParameterAsText(0)
out_volume = arcpy.GetParameterAsText(1)
grouping_field = arcpy.GetParameterAsText(2)
try:
arcpy.MinimumBoundingVolume_3d(in_features, 'Shape.Z', out_volume,
'CONCAVE_HULL','LIST', group_field)
except arcpy.ExecuteError:
print(arcpy.GetMessages())