按邻近性分组 (GeoAnalytics Desktop)

摘要

可对空间或时空上彼此接近的要素进行分组。

以下是可通过按邻近性分组工作流回答的问题示例:

  • 连接哪些道路?
  • 在临近距离和时间内出现的犯罪集团位于哪里?
  • 是否存在相互重叠的面组?

插图

按邻近性分组工具图示

使用情况

  • 输出结果是带有名为 group_id 的新字段的输入副本。 该 group_id 字段表示要素的分组。 具有相同 group_id 值的要素在同一组中。 组号表示特定组中的成员身份,并不表示值。 重复使用工具时,组号可能不连续或相同。 结果将用八组符号表示。 如果结果中的组数超过 8 个,则默认情况下所有组都将使用八种颜色进行符号化。 您可以修改符号系统以通过在 group_id 字段上使用唯一符号进行符号化来显示每个唯一组。

  • 该工具支持以下关系组合:

    • 空间关系
    • 空间关系和时态关系
    • 空间关系和属性关系
    • 空间关系、时态关系和属性关系
    当满足所有指定的关系时,系统将对要素进行分组。

  • 受支持的空间关系和输入几何将如下表所述:

    输入几何类型相交接触测地线邻近平面邻近

    复选标记复选标记复选标记

    折线

    复选标记复选标记复选标记复选标记

    复选标记复选标记复选标记复选标记

    叠加方法描述

    相交

    当某些要素或其中的部分重叠时,则这些要素相交。 这是默认设置。

    接触

    如果要素与另一个要素具有相交折点,但两者不重叠,则目标要素与连接要素接触。

    测地线邻近

    如果顶点或边在另一个要素的给定测地线距离内,则这两个要素邻近。

    平面邻近

    如果顶点或边在另一个要素的给定平面距离内,则这两个要素邻近。

  • 要使用空间关系参数的邻近平面选项,必须投影输入图层参数值或将输出坐标系设置为投影坐标系

  • 支持的时间关系和时间类型如下表所述:

    输入时间类型相交邻近

    时刻

    复选标记复选标记

    间隔

    复选标记复选标记

    时间关系方法描述

    相交

    当要素时间的任何部分与另一要素重叠时,要素就会相交。

    邻近

    如果要素的时间在另一要素的给定时间距离内,则这两个要素彼此邻近。

  • 要使用时间关系,您必须在输入上启用时间。 您可以通过以下操作启用时间:

  • 属性表达式是一种对称运算。 该工具将采用在分组时会与自身进行比较的单个输入图层。 正因为如此,该输入图层在 ArcGIS Arcade 表达式中将同时以 a 和 b 表示,并且所有的表达式都需要同时包含 a 和 b。 例如,要在 Amount 字段具有相同值时对所有记录进行分组,请使用以下表达式:$a["Amount"] == $b["Amount"]

  • 可执行以下一项或多项操作来提高按邻近性分组工具的性能:

    • 设置范围环境,以便仅分析感兴趣的数据。
    • 使用空间关系参数的邻近平面邻近测地线选项时,请使用较小的空间邻近距离参数值。
    • 使用空间关系参数时,邻近平面邻近测地线选项快。
    • 使用时间关系参数的邻近选项时,请使用较小的时间邻近距离参数值。
    • 本地数据用于分析运行的位置。

  • 此地理处理工具由 Spark 作为支持。 可在台式计算机上并行使用多个核来完成分析。 要了解有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项

  • 运行 GeoAnalytics Desktop 工具时,将在台式计算机上完成分析。 为获得最佳性能,应在桌面上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果您的数据不是本地数据,则运行工具需要更长时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools

参数

标注说明数据类型
输入图层

将对点、线或面要素进行分组。

Feature Layer
输出

具有分组要素的输出要素类将由新命名的 group_id 字段表示。

Feature Class
空间关系

指定要素分组所依据的关系类型。

  • 相交当某些要素或其中的部分重叠时,则将对这些要素进行分组。 这是默认设置。
  • 接触如果要素与另一个要素具有相交顶点,但两者不重叠,则将对要素进行分组。
  • 平面邻近如果顶点或边在另一个要素的给定平面距离内,则将对要素进行分组。
  • 测地线邻近如果顶点或边在另一个要素的给定测地线距离内,则将对要素进行分组。
String
空间邻近距离
(可选)

该距离将用于对邻近要素进行分组。 仅当空间关系参数值为邻近平面邻近测地线时,使用此参数。

Linear Unit
时态关系
(可选)

指定将用于匹配要素的时间条件。 当将该参数设置为相交邻近且当空间和时间条件都满足时,要素将被分组。 要支持此功能必须在输入上启用时间。

  • 相交当要素时间的任何部分与另一要素重叠时,要素将被分组。 这是默认设置。
  • 邻近如果要素的时间在另一要素的时间范围内,则要素将被分组。
  • 时间将不会用于对要素进行分组。
String
时态邻近距离
(可选)

时间距离将用于对邻近要素进行分组。 仅当空间关系参数值为邻近时,使用此参数。

Time Unit
属性关系
(可选)

ArcGIS Arcade 表达式将用于对要素进行分组。 例如,当 Amount 字段具有相同的值时,$a["Amount"] == $b["Amount"] 将对要素进行分组。

String

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

指定要素分组所依据的关系类型。

  • INTERSECTS当某些要素或其中的部分重叠时,则将对这些要素进行分组。 这是默认设置。
  • TOUCHES如果要素与另一个要素具有相交顶点,但两者不重叠,则将对要素进行分组。
  • NEAR_PLANAR如果顶点或边在另一个要素的给定平面距离内,则将对要素进行分组。
  • NEAR_GEODESIC如果顶点或边在另一个要素的给定测地线距离内,则将对要素进行分组。
String
spatial_near_distance
(可选)

该距离将用于对邻近要素进行分组。 仅当 spatial_relationship 参数值为 NEAR_PLANARNEAR_GEODESIC 时,使用此参数。

Linear Unit
temporal_relationship
(可选)

指定将用于匹配要素的时间条件。 当将该参数设置为 INTERSECTSNEAR 且当空间和时间条件都满足时,要素将被分组。 要支持此功能必须在输入上启用时间。

  • INTERSECTS当要素时间的任何部分与另一要素重叠时,要素将被分组。 这是默认设置。
  • NEAR如果要素的时间在另一要素的时间范围内,则要素将被分组。
  • NONE时间将不会用于对要素进行分组。
String
temporal_near_distance
(可选)

时间距离将用于对邻近要素进行分组。 仅当 temporal_relationship 参数值为 Near 时,使用此参数。

Time Unit
attribute_relationship
(可选)

ArcGIS Arcade 表达式将用于对要素进行分组。 例如,当 Amount 字段具有相同的值时,$a["Amount"] == $b["Amount"] 将对要素进行分组。

String

代码示例

GroupByProximity 示例(独立脚本)

以下 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)