生成子集面 (地统计分析)

需要 Geostatistical Analyst 许可。

摘要

从一组输入点生成不重叠的子集面要素。目标是将点划分为紧凑、不重叠的子集,并在每个点子集周围创建面区域。可对每个子集中的最小点数和最大点数进行控制。

生成子集面要素的过程首先是将所有点与线性曲线连接起来,然后将此曲线切分成多个线段。选择这些线段是为了在给定每个子集中所允许的最小和最大点数的情况下,使从线段的中心到线段中每个点的总平方距离最小化。然后移除线段之间的任何重叠,并创建新的线段。经过分割和重叠移除的多次迭代之后,不会有重叠,并且每个线段内的所有点都将被声明为同一子集的一部分。随后为输入点生成泰森多边形,并将属于同一子集的所有泰森多边形都融合为单个面要素。

插图

被分组为具有相似大小的面子集(右)的点(左)
点(左)被分组为具有相似大小的面子集(右)。

使用情况

  • 此工具的主要用途是在EBK 回归预测中创建可用作子集面要素的多边形。由 EBK 回归预测的默认子集算法创建的子集会发生重叠。但是,如果您需要不重叠的子集,则可以使用此工具进行创建。

  • 在概念上,此工具与时空模式挖掘工具箱的聚类工具集中的工具类似。主要区别在于这些工具通过为聚类的每个成员分配唯一的 ID 值来创建点聚类,并且此工具通过在每个子集中的点周围创建面子集区域来定义子集。造成这种差异的原因在于 EBK 回归预测要求子集由面区域定义。

  • 在选择每子集最小点数每子集最大点数时,请考虑输入点要素的数量。如果输入点的数量不支持提供的最小点数和最大点数,则在执行工具时会引发错误。例如,如果您有十个点,并且您要求每个子集至少有六个点,每个子集最多有七个点,则您会收到一条错误消息。这是因为无法将十个点分成包含六个点或七个点的子集。

  • 输出要素类的默认输出范围将为输入点要素的范围,其中包含 10% 的缓冲区。该缓冲可确保所有的输入点默认在输出面内。如果提供了一个输出范围环境,则它不会被缓冲。

  • 位于地理坐标系 (GCS) 中的输入点要素在进行计算时所花费的时间将是位于投影坐标系 (PCS) 中的相同点进行计算时所花费时间的数倍。这是因为以地理坐标表示的数据将根据它们在地球上的位置进行分组,而非根据它们在平面投影地图上出现的位置进行分组。如果您的输入点包含在一个小区域内,建议您在使用此工具之前投影您的数据,

参数

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

将被分组到子集的点。

Feature Layer
输出要素类

定义每个子集区域的面。单个面要素内的所有点都被视为同一子集的一部分。面要素类将包含一个名为 PointCount 的字段,该字段将存储每个面子集中包含的点数。

Feature Class
每子集最小点数
(可选)

可以分组到一个子集中的最小点数。所有子集面将至少包含这么多的点。

Long
每子集最大点数
(可选)

可以分组到一个子集中的最大点数。

无论提供的最大点数为何,每个子集都将始终包含少于两倍的每子集最小点数。这是因为如果一个子集包含至少两倍的最小点数,它将始终被细分为两个或多个新子集。

Long
将重合点视为单个点
(可选)

指定是否将重合点(位于同一位置的点)视为单个点或多个单独的点。

如果您打算在 EBK 回归预测中使用子集面作为子集面要素,您应保持此参数与 EBK 回归预测重合点环境之间的一致性。

如果未选中此参数,则您的输出要素类面可能会重叠。

  • 选中 - 重合点将被视为子集中的单个点。这是默认设置。
  • 未选中 - 重合点将被视为子集中的多个单独点。
Boolean

arcpy.ga.GenerateSubsetPolygons(in_point_features, out_feature_class, {min_points_per_subset}, {max_points_per_subset}, {coincident_points})
名称说明数据类型
in_point_features

将被分组到子集的点。

Feature Layer
out_feature_class

定义每个子集区域的面。单个面要素内的所有点都被视为同一子集的一部分。面要素类将包含一个名为 PointCount 的字段,该字段将存储每个面子集中包含的点数。

Feature Class
min_points_per_subset
(可选)

可以分组到一个子集中的最小点数。所有子集面将至少包含这么多的点。

Long
max_points_per_subset
(可选)

可以分组到一个子集中的最大点数。

无论提供的最大点数为何,每个子集都将始终包含少于两倍的 min_points_per_subset。这是因为如果一个子集包含至少两倍的最小点数,它将始终被细分为两个或多个新子集。

Long
coincident_points
(可选)

指定是否将重合点(位于同一位置的点)视为单个点或多个单独的点。

如果您打算在 EBK 回归预测中使用子集面作为子集面要素,您应保持此参数与您在 EBK 回归预测中为重合点环境所选参数之间的一致性。

如果选中 COINCIDENT_ALL,您的 Out_feature_class 面可能会重叠。

  • COINCIDENT_SINGLE 重合点将被视为子集中的单个点。这是默认设置。
  • COINCIDENT_ALL 重合点将被视为子集中的多个单独点。
Boolean

代码示例

GenerateSubsetPolygons 示例 1(Python 窗口)

将一组点分组为面子集。

arcpy.ga.GenerateSubsetPolygons("myPoints","polygonSubsets",20,30,"COINCIDENT_SINGLE")
GenerateSubsetPolygons 示例 2(独立脚本)

将一组点分组为面子集。

# Name: GenerateSubsetPolygons_Example_02.py
# Description: Groups points into polygon subsets of a similar size.
# Requirements: Geostatistical Analyst Extension
# Author: Esri

# Import system modules
import arcpy

# Set local variables
inPoints = "C:/gapyexamples/input/myPoints.shp"
outFeatureClass = "C:/gapyexamples/output/myPolygons.shp"
minPoints = 50
maxPoints = 75
coincidentPoints = "COINCIDENT_ALL"

# Check out the ArcGIS Geostatistical Analyst extension license
arcpy.CheckOutExtension("GeoStats")

# Execute GenerateSubsetPolygons
arcpy.ga.GenerateSubsetPolygons(inPoints, outFeatureClass, minPoints, maxPoints, coincidentPoints)

许可信息

  • Basic: 需要 Geostatistical Analyst
  • Standard: 需要 Geostatistical Analyst
  • Advanced: 需要 Geostatistical Analyst

相关主题