| 标注 | 说明 | 数据类型 | 
| 输入图层 | 将对点、线或面要素进行分组。 | Feature Layer | 
| 输出 | 具有分组要素的输出要素类将由新命名的 group_id 字段表示。 | Feature Class | 
| 空间关系 | 指定要素分组所依据的关系类型。 
 | String | 
| 空间邻近距离 (可选) | 该距离将用于对邻近要素进行分组。 仅当空间关系参数值为邻近平面或邻近测地线时,使用此参数。 | Linear Unit | 
| 时态关系 (可选) | 指定将用于匹配要素的时间条件。 当将该参数设置为相交或邻近且当空间和时间条件都满足时,要素将被分组。 要支持此功能必须在输入上启用时间。 
 | String | 
| 时态邻近距离 (可选) | 时间距离将用于对邻近要素进行分组。 仅当空间关系参数值为邻近时,使用此参数。 | Time Unit | 
| 属性关系 (可选) | 此 ArcGIS Arcade 表达式将用于对要素进行分组。 例如,当 Amount 字段具有相同的值时,$a["Amount"] == $b["Amount"] 将对要素进行分组。 | String | 
摘要
可对空间或时空上彼此接近的要素进行分组。
以下是可通过按邻近性分组工作流回答的问题示例:
- 连接哪些道路?
- 在临近距离和时间内出现的犯罪集团位于哪里?
- 是否存在相互重叠的面组?
插图

使用情况
- 输出结果是带有名为 group_id 的新字段的输入副本。 该 group_id 字段表示要素的分组。 具有相同 group_id 值的要素在同一组中。 组号表示特定组中的成员身份,并不表示值。 重复使用工具时,组号可能不连续或相同。 结果将用八组符号表示。 如果结果中的组数超过 8 个,则默认情况下所有组都将使用八种颜色进行符号化。 您可以修改符号系统以通过在 group_id 字段上使用唯一符号进行符号化来显示每个唯一组。 
- 该工具支持以下关系组合: - 空间关系
- 空间关系和时态关系
- 空间关系和属性关系
- 空间关系、时态关系和属性关系
 
- 受支持的空间关系和输入几何将如下表所述: - 输入几何类型 - 相交 - 接触 - 测地线邻近 - 平面邻近 - 点    - 折线     - 面     - 叠加方法 - 描述 - 相交 - 当某些要素或其中的部分重叠时,则这些要素相交。 这是默认设置。 - 接触 - 如果要素与另一个要素具有相交折点,但两者不重叠,则目标要素与连接要素接触。 - 测地线邻近 - 如果顶点或边在另一个要素的给定测地线距离内,则这两个要素邻近。 - 平面邻近 - 如果顶点或边在另一个要素的给定平面距离内,则这两个要素邻近。 
- 支持的时间关系和时间类型如下表所述: - 输入时间类型 - 相交 - 邻近 - 无 - 时刻   - 间隔   - 时间关系方法 - 描述 - 相交 - 当要素时间的任何部分与另一要素重叠时,要素就会相交。 - 邻近 - 如果要素的时间在另一要素的给定时间距离内,则这两个要素彼此邻近。 
- 要使用时间关系,您必须在输入上启用时间。 您可以通过以下操作启用时间: - 启用多文件要素连接 (MFC) 输入上的时间。
- 在地图的图层上启用时间。 您可以选择将启用时间的图层另存为 .lyrx 文件。
 
- 属性表达式是一种对称运算。 该工具将采用在分组时会与自身进行比较的单个输入图层。 正因为如此,该输入图层在 ArcGIS Arcade 表达式中将同时以 a 和 b 表示,并且所有的表达式都需要同时包含 a 和 b。 例如,要在 Amount 字段具有相同值时对所有记录进行分组,请使用以下表达式:$a["Amount"] == $b["Amount"]。 
- 可执行以下一项或多项操作来提高按邻近性分组工具的性能: - 设置范围环境,以便仅分析感兴趣的数据。
- 使用空间关系参数的邻近平面或邻近测地线选项时,请使用较小的空间邻近距离参数值。
- 使用空间关系参数时,邻近平面比邻近测地线选项快。
- 使用时间关系参数的邻近选项时,请使用较小的时间邻近距离参数值。
- 将本地数据用于分析运行的位置。
 
- 此地理处理工具由 Spark 作为支持。 可在台式计算机上并行使用多个核来完成分析。 要了解有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项。 
- 运行 GeoAnalytics Desktop 工具时,将在台式计算机上完成分析。 为获得最佳性能,应在桌面上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果您的数据不是本地数据,则运行工具需要更长时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools。 
参数
arcpy.geoanalytics.GroupByProximity(input_layer, output, spatial_relationship, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship})| 名称 | 说明 | 数据类型 | 
| input_layer | 将对点、线或面要素进行分组。 | Feature Layer | 
| output | 具有分组要素的输出要素类将由新命名的 group_id 字段表示。 | Feature Class | 
| spatial_relationship | 指定要素分组所依据的关系类型。 
 | String | 
| spatial_near_distance (可选) | 该距离将用于对邻近要素进行分组。 仅当 spatial_relationship 参数值为 NEAR_PLANAR 或 NEAR_GEODESIC 时,使用此参数。 | Linear Unit | 
| temporal_relationship (可选) | 指定将用于匹配要素的时间条件。 当将该参数设置为 INTERSECTS 或 NEAR 且当空间和时间条件都满足时,要素将被分组。 要支持此功能必须在输入上启用时间。 
 | String | 
| temporal_near_distance (可选) | 时间距离将用于对邻近要素进行分组。 仅当 temporal_relationship 参数值为 Near 时,使用此参数。 | Time Unit | 
| attribute_relationship (可选) | 此 ArcGIS Arcade 表达式将用于对要素进行分组。 例如,当 Amount 字段具有相同的值时,$a["Amount"] == $b["Amount"] 将对要素进行分组。 | String | 
代码示例
以下 Python 窗口脚本演示了如何使用 GroupByProximity 函数。
# Name: GroupByProximity.py
# Description: Group roads together that touch
#
# Requirements: An advanced license
# Import system modules
import arcpy
# Set local variables
inFeatures = "C:\myData\cities.gdb\roads"
outname = "groupedRoads"
overlayType = "TOUCHES"
# Run Group By Proximity
result = arcpy.gapro.GroupByProximity(inFeatures, outname, overlayType)