最小边界几何 (数据管理)

描述

创建包含若干面的要素类,用以表示封闭单个输入要素或成组的输入要素指定的最小边界几何。

插图

Minimum Bounding Geometry tool illustration

使用方法

  • 输出面要素及其属性将因指定的几何类型和分组情况而异。

  • 许可:

    几何类型 选项 Convex hullCircleEnvelope 仅在具有 ArcGIS Desktop Advanced 级别许可的情况下可用。

  • 选项组参数(Python 环境下的 group_option 参数)将以如下方式影响输出面和属性:

    • 如果选择 None,则所有输入要素均不会被分组。为每个输入要素分别创建一个输出面要素;生成的面可以重叠。输入要素的属性将保留在输出要素类中。向输出要素类添加新字段 ORIG_FID,并设置为输入要素 ID。
    • 如果选择 All,则将为所有输入要素只创建一个输出面要素。输入要素的属性并不会保留在输出要素类中。
    • 如果选择 List,指定分组字段中字段值相同的每个输入要素集都将视为一个组。为每组分别创建一个输出面要素;生成的面可以重叠。用作分组字段的输入要素属性将保留在输出要素类中。
  • 每种几何类型均可将一个或多个唯一的测量值作为特征;如下所示,您可以选择将这些测量值作为新字段添加到输出中。宽度、长度和直径的值将采用要素单位;方向的角度值将采用十进制度,以北为基准方向顺时针进行测量。前缀 MBG_ 表示最小边界几何字段。

    • 对于 Rectangle by areaRectangle by width,新字段和测量值分别为:
      • MBG_Width - 生成矩形的短边长度。
      • MBG_Length - 生成矩形的长边长度。
      • MBG_Orientation - 生成矩形的长边方向。
    • 对于 Envelope,新字段和测量值分别为:
      • MBG_Width - 生成矩形的短边长度。
      • MBG_Length- 生成矩形的长边长度。
    • 对于 Convex hull,新字段和测量值分别为:
      • MBG_Width - 凸包中相距最近的任意两折点间的距离。(距离最近的折点可能不只一对,但将使用最先找到的那对。)
      • MBG_Length - 凸包中相距最远的任意两折点间的距离;这些折点称为对映体对或对映点。(距离最远的折点可能不只一对,但将使用最先找到的那对。)
      • MBG_APodX1 - 对映体对中第一个点的 x 坐标。
      • MBG_APodY1 - 对映体对中第一个点的 y 坐标。
      • MBG_APodX2 - 对映体对中第二个点的 x 坐标。
      • MBG_APodY2- 对映体对中第二个点的 y 坐标。
      • MBG_Orientation - 连接对映体对的假想线的方向。
    • 对于 Circle,新字段和测量值分别为:
      • MBG_Diameter - 生成圆的直径。
  • 在一些特殊情况下,输入要素可能会导致输出面无效(面积为零)。此时,根据输入要素的 XY 容差得出的较小值将用作创建输出面时的宽度、长度或直径。这些面仅充当用于追踪要素的“占位符”。在 ArcMap 中,如果使用默认面轮廓宽度时,生成的面“不可见”,则需要更换为使用较粗的轮廓线符号进行显示。此类情况的示例包括:

    • 如果某多点要素中仅包含一个点或者一组这样的要素互相重合,那么对于几何类型 Rectangle by areaRectangle by widthConvex hullEnvelope,将在该点的周围创建一个非常小的方形面;而对于几何类型 Circle 将创建一个非常小的圆形。MBG_WidthMBG_LengthMBG_OrientationMBG_Diameter 的值将设为零以便指示出上述情况。
    • 如果某输入要素或一组输入要素完全对齐(例如一条水平线或垂直线或一个两点多点要素),那么将在该要素的周围创建一个宽度非常小的矩形面。这一点适用于几何类型 Rectangle by areaRectangle by widthConvex hullEnvelope;生成的 MBG_Width 值将设为零以便指示出上述情况。

语法

MinimumBoundingGeometry(in_features, out_feature_class, {geometry_type}, {group_option}, {group_field}, {mbg_fields_option})
参数说明数据类型
in_features

点、多点、线、面或多面体等输入要素。

Feature Layer
out_feature_class

输出面要素类。

Feature Class
geometry_type
(可选)

指定输出面代表何种类型的最小边界几何。

  • RECTANGLE_BY_AREA封闭某输入要素的面积最小的矩形。这是默认设置。
  • RECTANGLE_BY_WIDTH封闭某输入要素的宽度最小的矩形。
  • CONVEX_HULL封闭某输入要素的最小凸面
  • CIRCLE封闭某输入要素的最小圆形。
  • ENVELOPE某输入要素的包络矩形
许可:

Convex hullCircleEnvelope 选项仅在具备 ArcGIS Desktop Advanced 级别许可的情况下可用。

String
group_option
(可选)

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

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

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

Field
mbg_fields_option
(可选)

指定在输出要素类中是添加几何属性还是忽略几何属性。

  • NO_MBG_FIELDS在输出要素类中忽略所有输入属性。这是默认设置。
  • MBG_FIELDS在输出要素类中添加几何属性。
Boolean

代码示例

MinimumBoundingGeometry 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 MinimumBoundingGeometry 函数。

import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.MinimumBoundingGeometry_management("parks.shp",
                                         "c:/output/output.gdb/parks_mbg",
                                         "RECTANGLE_BY_AREA", "NONE")
MinimumBoundingGeometry 示例 2(独立脚本)

以下独立脚本是演示如何在脚本环境中应用 MinimumBoundingGeometry 函数的简单示例。

# Name: MinimumBoundingGeometry.py
# Description: Use MinimumBoundingGeometry function to find an area 
#              for each multipoint input feature.

# import system modules 
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Create variables for the input and output feature classes
inFeatures = "treeclusters.shp"
outFeatureClass = "forests.shp"

# Use MinimumBoundingGeometry function to get a convex hull area
#         for each cluster of trees which are multipoint features
arcpy.MinimumBoundingGeometry_management(inFeatures, outFeatureClass, 
                                         "CONVEX_HULL", "NONE")

许可信息

  • Basic: 受限
  • Standard: 受限
  • Advanced: 是

相关主题