标注 | 说明 | 数据类型 |
输入要素 | 点、多点、线、面或多面体等输入要素。 | Feature Layer |
输出要素类 | 输出面要素类。 | Feature Class |
几何类型 (可选) | 指定输出面代表何种类型的最小边界几何。
| String |
组选项 (可选) | 指定如何对输入要素进行分组;每组都会通过一个输出面来封闭。
| String |
分组字段 (可选) | 将 List 指定为组选项时用于对要素进行分组的输入要素的字段(一个或多个)。 对于 List 选项,至少需要一个分组字段。 指定字段(一个或多个)的值相同的所有要素均将视为位于一个组中。 | Field |
将几何特征作为属性添加到输出中 (可选) | 指定在输出要素类中是添加几何属性还是忽略几何属性。
| Boolean |
摘要
创建包含若干面的要素类,用以表示封闭单个输入要素或成组的输入要素指定的最小边界几何。
插图
使用情况
输出面要素及其属性将因指定的几何类型和分组情况而异。
组选项参数(Python 环境下的 group_option 参数)将以如下方式影响输出面和属性:
- 如果选择 None,则所有输入要素均不会被分组。 为每个输入要素分别创建一个输出面要素;生成的面可以重叠。 输入要素的属性将保留在输出要素类中。 将向输出要素类添加新字段 ORIG_FID,并设置为输入要素 ID。
- 如果选择 All,则将为所有输入要素只创建一个输出面要素。 输入要素的属性并不会保留在输出要素类中。
- 如果选择 List,指定分组字段中字段值相同的每个输入要素集都将视为一个组。 为每组分别创建一个输出面要素;生成的面可以重叠。 用作分组字段的输入要素属性将保留在输出要素类中。
每种几何类型均可将一个或多个唯一的测量值作为特征;如下所示,您可以选择将这些测量值作为新字段添加到输出中。 宽度、长度和直径的值将采用要素单位;方向的角度值将采用十进制度,以北为基准方向顺时针进行测量。 前缀 MBG_ 表示最小边界几何字段。
- 对于 Rectangle by area 和 Rectangle 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- 生成圆的直径。
- 对于 Rectangle by area 和 Rectangle by width,新字段和测量值分别为:
在一些特殊情况下,输入要素可能会导致输出面无效(面积为零)。 此时,根据输入要素的 XY 容差得出的较小值将用作创建输出面时的宽度、长度或直径。 这些面仅充当用于追踪要素的“占位符”。 在 ArcMap 中,如果使用默认面轮廓宽度时,生成的面“不可见”,则需要更换为使用较粗的轮廓线符号进行显示。 此类情况的示例包括:
- 如果某多点要素中仅包含一个点或者一组这样的要素互相重合,那么对于几何类型 Rectangle by area、Rectangle by width、Convex hull 和 Envelope,将在该点的周围创建一个非常小的方形面;而对于几何类型 Circle 将创建一个非常小的圆形。 MBG_Width、MBG_Length、MBG_Orientation 和 MBG_Diameter 的值将设为零以便指示出上述情况。
- 如果某输入要素或一组输入要素完全对齐(例如一条水平线或垂直线或一个两点多点要素),那么将在该要素的周围创建一个宽度非常小的矩形面。 这一点适用于几何类型 Rectangle by area、Rectangle by width、Convex hull 和 Envelope;生成的 MBG_Width 值将设为零以便指示出上述情况。
参数
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 (可选) | 指定输出面代表何种类型的最小边界几何。
| String |
group_option (可选) | 指定如何对输入要素进行分组;每组都会通过一个输出面来封闭。
| String |
group_field [group_field,...] (可选) | 将 LIST 指定为 group_option 时用于对要素进行分组的输入要素的字段。 对于 LIST 选项,至少需要一个分组字段。 指定字段(一个或多个)的值相同的所有要素均将视为位于一个组中。 | Field |
mbg_fields_option (可选) | 指定在输出要素类中是添加几何属性还是忽略几何属性。
| Boolean |
代码示例
以下 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 函数的简单示例。
# 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")