最小边界几何 (Data Management)
摘要
创建包含若干面的要素类,用以表示封闭单个输入要素或成组的输入要素指定的最小边界几何。
插图
用法
-
输出面要素及其属性将因指定的几何类型和分组情况而异。
-
对话框中的选项组参数(脚本环境下的 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 值将设为零以便指示出上述情况。
几何类型 (geometry_type) 选项 CONVEX_HULL、CIRCLE 和 ENVELOPE 仅在具有 ArcGIS for Desktop Advanced 级别许可的情况下可用。
语法
参数 | 说明 | 数据类型 |
in_features |
点、多点、线、面或多面体等输入要素。 | Feature Layer |
out_feature_class |
输出面要素类。 | Feature Class |
geometry_type (可选) |
指定输出面代表何种类型的最小边界几何。
许可: CONVEX_HULL、CIRCLE 和 ENVELOPE 选项仅在具备 ArcGIS for Desktop Advanced 级别许可的情况下可用。 | String |
group_option (可选) |
指定如何对输入要素进行分组;每组都会通过一个输出面来封闭。
| String |
group_field [group_field,...] (可选) |
将选项组指定为 LIST 时用于对要素进行分组的输入要素的字段。对于 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.
# Author: ESRI
# 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")