最小包围体 (3D Analyst)

摘要

创建代表一组 3D 要素所占空间体积的多面体要素。

插图

最小包围体

使用情况

  • 球体包络方法(Python 中的 geometry_type="SPHERE"geometry_type = "ENVELOPE")可提供一组 3D 要素所占据的空间体积的快速表示。

  • 凸包选项(Python 中的 geometry_type="CONVEX_HULL")能够提供比球体包络方法更为详细的信息,但不会捕获输入要素中的局部凹陷。

  • 凹包选项(Python 中的 geometry_type="CONCAVE_HULL")可为包围体形状提供最详细的信息,但是运算量很大,不应该与大型输入数据集合一起使用。

  • 如果生成的最小包围体表示的是输入要素组,则用于分隔输入的字段将添加到生成的多面体中。如果最小包围体中包含几何特征,则会将以下字段添加到输出要素中:

    • MBV_Area - 最小包围体的总表面积
    • MBV_Volume - 多面体要素所包含空间的总体积。

参数

标注说明数据类型
输入要素

将评估其最小包围体的 LAS 数据集或 3D 要素。

LAS Dataset Layer; Feature Layer
Z 值

输入数据 z 值的源。

Field
输出要素类

将生成的要素类。

Feature Class
输出要素类类型
(可选)

指定用来确定最小包围体的几何的方法。

  • CONVEX_HULL输入数据周围的最小凸形区域。
  • SPHERE封闭输入数据的最小球体。
  • ENVELOPE输入数据的 XYZ 范围。
  • CONCAVE_HULL包围输入数据的凹包。
String
组选项
(可选)

指定如何对输入要素进行分组;每组都会通过一个输出多面体来封闭。

  • NONE输入要素不会被分组。这是默认设置。此选项不适用于点输入数据。
  • ALL所有输入要素将视为位于一个组中。
  • LIST根据指定字段的公共值或分组字段参数中的字段对输入要素进行分组。
String
分组字段
(可选)

List 指定为组选项时用于对要素进行分组的输入要素的字段(一个或多个)。对于 List 选项,至少需要一个分组字段。指定字段(一个或多个)的值相同的所有要素均将视为位于一个组中。

Field
将几何特征作为属性添加到输出中
(可选)

指定每个要素是否具有最小包围体的体积和表面积属性。

  • 未选中 - 不会向输出要素添加几何属性。这是默认设置。
  • 选中 - 将会向输出要素添加几何属性。
Boolean

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
(可选)

指定用来确定最小包围体的几何的方法。

  • CONVEX_HULL输入数据周围的最小凸形区域。
  • SPHERE封闭输入数据的最小球体。
  • ENVELOPE输入数据的 XYZ 范围。
  • CONCAVE_HULL包围输入数据的凹包。
String
group
(可选)

指定如何对输入要素进行分组;每组都会通过一个输出多面体来封闭。

  • NONE输入要素不会被分组。这是默认设置。此选项不适用于点输入数据。
  • ALL所有输入要素将视为位于一个组中。
  • LIST根据指定字段的公共值或分组字段参数中的字段对输入要素进行分组。
String
group_field
[group_field,...]
(可选)

LIST 指定为 group_option 时用于对要素进行分组的输入要素的字段。对于 LIST 选项,至少需要一个分组字段。指定字段(一个或多个)的值相同的所有要素均将视为位于一个组中。

Field
mbv_fields
(可选)

指定是否向输出多面体要素类添加几何属性。

  • NO_MBV_FIELDS不会向输出要素添加几何属性。这是默认设置。
  • MBV_FIELDS将会向输出要素添加几何属性。
Boolean

代码示例

MinimumBoundingVolume 示例 1(Python 窗口)

下面的示例演示了如何在 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')
MinimumBoundingVolume 示例 2(独立脚本)

下面的示例演示了如何在独立 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())

相关主题