标注 | 说明 | 数据类型 |
输入图层 | 将对点、线或面要素进行分组。 | 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)