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

摘要

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

插图

最小边界几何工具图示

使用情况

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

  • 组选项参数(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 值将设为零以便指示出上述情况。

参数

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

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

Feature Layer
输出要素类

输出面要素类。

Feature Class
几何类型
(可选)

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

  • 按面积矩形封闭某输入要素的面积最小的矩形。 这是默认设置。
  • 按宽度矩形封闭某输入要素的宽度最小的矩形。
  • 凸包封闭某输入要素的最小凸面。
  • 圆形封闭某输入要素包络矩形的最小圆形。
  • 包络矩形输入要素的包络矩形。
String
组选项
(可选)

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

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

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

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

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

  • 未选中 - 在输出要素类中忽略几何属性。 这是默认设置。
  • 选中 - 在输出要素类中添加几何属性。
Boolean

arcpy.management.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输入要素的包络矩形。
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")

相关主题