捕捉轨迹 (GeoAnalytics)

摘要

用于将输入轨迹点捕捉到线。 启用时间的点数据必须包含表示时刻的要素。 分析需要具有指示起始节点和终止节点的字段的可遍历线。

插图

“捕捉轨迹”工具图示
将显示已与线匹配的启用时间的轨迹点。

使用情况

  • 下表列出了捕捉轨迹工具中使用的术语:

    术语描述

    轨迹

    已启用时间且时间类型为时刻的要素序列。 系统将通过使用轨迹标识符字段及其时间顺序来确定要素处于序列中。 例如,某个城市拥有一支扫雪车队,每 30 秒记录一次车辆的位置。 车辆 ID 可以表示不同的轨迹。

    观测

    轨迹中的一个点。

    节点

    节点是线要素的端折点,用于指示线的方向。 线的起点是起始节点,线的终点是终止节点。

    方向

    线的方向。 方向指的是一条线在起始节点和终止节点之间行进的方式。

    连通性

    连通性描述了如何对线进行连接以表示可遍历的网络。 线将根据其起始节点和终止节点值进行连接。 点基于连通性无法到达的线将不被视为匹配。

    可遍历

    如果线由共同节点进行连接,则这些线为可遍历线。 例如,如果线 A 的起始节点与线 B 的终止节点相同,则这些线为可遍历线。

  • 该工具需要以下参数输入图层:

    • 输入点图层 - 输入点图层必须为启用时间的观测点,用于表示时刻。 没有有效时间戳的轨迹观测点将从分析中排除。
    • 输入线图层 - 输入线图层必须包含具有以下连通性信息的字段,并且必须在连通性字段匹配参数中进行指定:
      • Unique ID- 线的唯一标识符
      • From node- 沿线的行程将远离的节点
      • To node- 沿线的行程将移动到的节点

  • 注:

    不支持已授权的 StreetMap Premium 地理数据库要素图层作为 ArcGIS Pro 3.0 的输入。

  • 输入点图层参数值的空间参考必须与输入线图层参数值的空间参考相同。 如果数据集具有不同的空间参考,则请使用输出坐标系环境来指定要在分析中使用的空间参考,或在分析之前对数据集进行投影。

  • 可以指定一个或多个字段用于标识轨迹。 轨迹由一个或多个轨迹字段的唯一组合表示。 例如,如果将 flightIDDestination 字段用作轨迹标识符,则 ID007, SoldenID007, Tokyo 要素将分别处于两个独立的轨迹,原因是其 Destination 字段值不同。

  • 轨迹必须具有多个观测点才能在分析中使用。 只有一个观测点的轨迹将不匹配。

  • 进行点到线匹配时需考虑到以下事项:

    • 观测点需位于距某线的搜索距离内。 此为最低要求。 未满足搜索距离条件的观测点将不匹配。
    • 观测点可以根据线的连通性对线进行遍历。
    • 观测点将沿着线支持的方向行进。 这是一个可选条件,可在您为方向值匹配参数指定值的情况下提供。 符合此可选条件的结果将更加精确。

  • 使用搜索距离参数可指定观测点与线之间所允许存在的最大距离。 例如,如果您知道 GPS 点的精度大约为 100 米,则请将 100 米指定为搜索距离。

  • 距离法参数将指定搜索距离的计算方式。 一共有两种可用的距离法:

    • 测地线 - 如果空间参考可以连续平移穿过对向子午线,则轨迹将在适当的时候穿过对向子午线。 如果空间参考不可连续平移,则轨迹将被限制在坐标系的范围之内且不可环绕。 这是默认设置。
    • 平面 - 轨迹不会穿过对向子午线。 如果输入数据使用投影坐标系,请使用此选项。

  • 要在输出结果中包括其他线属性,请使用要包括的线字段参数指定字段名称。 这些字段不会被用于分析目的,且仅供您自己使用。 您无法将几何字段包括在输出结果中。

  • 使用方向值匹配参数可定义每个线要素的受支持方向。 例如,某线图层具有一个名为 direction 的字段,其值为 T(向后)、F(向前)、B(双向)和 ""(无)。 尽管方向匹配为可选项,但建议使用该选项以获得精确的结果。 如果未指定方向匹配,则应假定该线为双向线。

  • 该工具将返回捕捉到沿匹配线最近位置的点。 系统不会返回线要素。 线数据集的唯一标识符将可用于匹配结果。 唯一标识符字段将使用连通性字段匹配参数进行指定。 您可以通过引用此字段来识别匹配的线。

  • 除了输入点图层中的字段和指定的任何线字段外,输出中还将添加以下字段:

    字段名描述

    MatchStatus

    用于指示观测点是否与线匹配。 值为对应匹配要素的 M 和对应不匹配要素的 U

    OrigX

    输入观测点的 x 坐标。 坐标将以输出空间参考的单位进行存储。

    OrigY

    输入观测点的 y 坐标。 坐标将以输出空间参考的单位进行存储。

    MatchX

    线上匹配结果的 x 坐标。 坐标将以输出空间参考的单位进行存储。

    MatchY

    线上匹配结果的 y 坐标。 坐标将以输出空间参考的单位进行存储。

    MatchDist

    观测点的原始位置与匹配位置之间的距离。 距离将根据指定的距离法(测地线或平面)进行计算。 值将以米为单位记录。

    INSTANT_DATETIME

    观测点的时间戳。

    如果所指定的输出模式参数值为所有要素,则系统将同时返回匹配点和不匹配点。 对于不匹配点,输出结果字段将附加对应数值字段的空值和对应字符串字段的空字符串。 将附加空值的字段为使用要包括的线字段参数指定的线字段、MatchX 字段、MatchY 字段和 MatchDist 字段。

  • 可通过以下方式分割轨迹:

    • 时间分割 - 基于两个输入之间的一段时间。 当输入数据大于指定时间时,可应用时间分割将任何轨迹分解。 例如,如果您有五个轨迹标识符相同的要素,时间分别为 [01:00, 02:00, 03:30, 06:00, 06:30],并将时间分割设置为 2 个小时,则任何经测量间隔超过 2 小时的要素都将被分割。 在本示例中,结果将为 [01:00, 02:00, 03:30] 和 [06:00, 06:30] 的轨迹,因为 03:30 与 6:00 之间的间隔大于 2 小时。
    • 时间界限分割 - 基于定义的时间间隔。 应用时间界限会以定义的间隔对线段轨迹进行分割。 例如,如果您将时间界限设置为 1 天,开始于 1990 年 1 月 1 日上午 9:00,则轨迹会在每天上午 9:00 被截断。 此分割方法可加快计算速度的快速方法,因为它可以创建较小的追踪以进行分析。 如果您的分析更适合按重复的时间边界进行分割,则建议使用大数据处理。
    • 距离分割 - 基于输入之间的距离。 当输入数据大于指定距离时,可应用距离分割将任何轨迹分解。 例如,如果将距离分割设置为 5 公里,则大于 5 公里的连续要素将成为其他轨迹的一部分。
    • 分割表达式 - 基于 Arcade 表达式。 应用分割表达式可根据值、几何或时间值来分割轨迹。 例如,当某个字段值是轨迹中前一个值的两倍以上时,可以分割轨迹。 要实现此目的,利用名为 WindSpeed 的示例字段,您可以使用以下表达式:var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]。 当前一个值 (speed[0]) 小于当前值的两倍时,将分割轨迹。

  • 您可以执行以下一项或多项操作来提高捕捉轨迹工具的性能。

    • 请为搜索距离参数使用较小的值,以便减少匹配过程中需要考虑的点对和线对数量。 建议您使用小于 75 米的值。
    • 可以使用时间分割时间界限分割距离分割分割表达式参数来分割轨迹。 使用时间界限分割参数对性能的提高最大。
    • 请使用方向值匹配参数,这样线将仅与沿线支持的方向行进的点匹配。
    • 请使用一系列感兴趣轨迹而非完整的轨迹数据集。
    • 请为要包括的线字段参数指定较少的字段。
    • 设置范围环境,以便仅分析感兴趣的数据。
    • 请使用平面距离方法 而非测地线方法。
    • 本地数据用于分析运行的位置。

  • 还可使用以下方法完成相似性分析:

    • 使用重新构建轨迹工具将启用时间的轨迹点重新构建为线。
    • 使用捕捉工具将点、多点、线或面捕捉到其他要素。 此工具会修改输入数据。

  • 此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。 分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。

  • GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。 要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。 在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。 这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS ProGeoAnalytics Server 移动数据可能会失败。 失败的阈值取决于网络速度,以及数据的大小和复杂性。 建议您始终共享数据或创建大数据文件共享。

    了解有关将数据共享至您的门户的详细信息。

    了解有关通过 Server Manager 创建大数据文件共享的详细信息

参数

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

将与线匹配的点。 输入必须为启用时间的点图层,用于表示时刻;并且必须包含至少一个用于标识唯一轨迹的字段。

Feature Set
输入线图层

点将匹配到的线。 输入必须包含其值用于指示线的起始节点和终止节点的字段。

Feature Set
输出名称

输出要素服务的名称。

String
轨迹字段

将用于标识唯一轨迹的一个或多个字段。

Field
搜索距离

点与任何被视为匹配的线之间所允许存在的最大距离。 建议您使用小于或等于 75 米的值。 距离较大将导致处理时间较长且结果不够精确。

Linear Unit
连通性字段匹配

将用于定义输入线要素的连通性的线图层字段。

  • Unique ID- 包含每个线要素的唯一 ID 值的线图层字段
  • From Node- 包含起始节点值的线图层字段
  • To Node- 包含终止节点值的线图层字段
Value Table
要包括的线字段
(可选)

输入线图层中将包括在输出结果中的一个或多个字段。

Field
距离法
(可选)

用于指定将用来计算点和线之间距离的方法。

  • 测地线系统将计算测地线距离。 这是默认设置。
  • 平面系统将计算平面距离。
String
方向值匹配
(可选)

将用于定义输入线要素的方向的线图层字段和属性值。 例如,某线图层具有一个名为 direction 的字段,其值为 T(向后)、F(向前)、B(双向)和 ""(无)。 如果未指定任何值,则应假定该线为双向线。

  • Direction Field- 线图层中用于描述行进方向的字段。
  • Forward Value- Direction Field 中用于指示所支持的行进方向为沿线前进的值。
  • Backward Value- Direction Field 中用于指示所支持的行进方向为沿线后退的值。
  • Both Value- Direction Field 中用于指示系统同时支持沿线前进和沿线后退的行进方向的值。
  • None Value- Direction Field 中用于指示沿线不存在受支持的行进方向的值。

Value Table
输出模式
(可选)

用于指定是返回所有输入要素还是仅返回与线要素匹配的输入要素。

  • 所有要素将返回所有输入点要素,不考虑其是否与线要素匹配。 这是默认设置。
  • 匹配要素系统仅会返回与线要素匹配的输入点要素。
String
数据存储
(可选)

指定将用于保存输出的 ArcGIS Data Store。 默认设置为时空大数据存储。 在时空大数据存储中存储的所有结果都将存储在 WGS84 中。 在关系数据存储中存储的结果都将保持各自的坐标系。

  • 时空大数据存储输出将存储在时空大数据存储中。 这是默认设置。
  • 关系数据存储输出将存储在关系数据存储中。
String
时间分割
(可选)

时间差距大于按时间分割的持续时间的要素将被分割成单独的轨迹。

Time Unit
距离分割
(可选)

距离差距大于距离分割值的要素将被分割成单独的轨迹。 此参数仅适用于 ArcGIS Enterprise 10.6 及更高版本。

Linear Unit
时间界限分割
(可选)

用于分割输入数据以进行分析的时间跨度。 您可通过时间界限分析定义的时间跨度内的值。 例如,如果您使用始于 1980 年 1 月 1 日的 1 天的时间界限,则轨迹将在每天开始时被分割。 此参数仅适用于 ArcGIS Enterprise 10.7 及更高版本。

Time Unit
时间界限参考
(可选)

用于分割输入数据以进行分析的参考时间。 将为整个数据跨度创建时间界限,且不需要在开始时产生参考时间。 如果未指定参考时间,则将使用 1970 年 1 月 1 日。 此参数仅适用于 ArcGIS Enterprise 10.7 及更高版本。

Date

派生输出

标注说明数据类型
输出要素类

输出点。

Feature Set

arcpy.geoanalytics.SnapTracks(input_points, input_lines, output_name, track_fields, search_distance, connectivity_field_matching, {line_fields_to_include}, {distance_method}, {direction_value_matching}, {output_mode}, {data_store}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference})
名称说明数据类型
input_points

将与线匹配的点。 输入必须为启用时间的点图层,用于表示时刻;并且必须包含至少一个用于标识唯一轨迹的字段。

Feature Set
input_lines

点将匹配到的线。 输入必须包含其值用于指示线的起始节点和终止节点的字段。

Feature Set
output_name

输出要素服务的名称。

String
track_fields
[track_fields,...]

将用于标识唯一轨迹的一个或多个字段。

Field
search_distance

点与任何被视为匹配的线之间所允许存在的最大距离。 建议您使用小于或等于 75 米的值。 距离较大将导致处理时间较长且结果不够精确。

Linear Unit
connectivity_field_matching
[connectivity_field_matching,...]

将用于定义输入线要素的连通性的线图层字段。

  • Unique ID- 包含每个线要素的唯一 ID 值的线图层字段
  • From Node- 包含起始节点值的线图层字段
  • To Node- 包含终止节点值的线图层字段
Value Table
line_fields_to_include
[line_fields_to_include,...]
(可选)

输入线图层中将包括在输出结果中的一个或多个字段。

Field
distance_method
(可选)

用于指定将用来计算点和线之间距离的方法。

  • GEODESIC系统将计算测地线距离。
  • PLANAR系统将计算平面距离。
String
direction_value_matching
[direction_value_matching,...]
(可选)

将用于定义输入线要素的方向的线图层字段和属性值。 例如,某线图层具有一个名为 direction 的字段,其值为 T(向后)、F(向前)、B(双向)和 ""(无)。 如果未指定任何值,则应假定该线为双向线。

  • Direction Field- 线图层中用于描述行进方向的字段。
  • Forward Value- Direction Field 中用于指示所支持的行进方向为沿线前进的值。
  • Backward Value- Direction Field 中用于指示所支持的行进方向为沿线后退的值。
  • Both Value- Direction Field 中用于指示系统同时支持沿线前进和沿线后退的行进方向的值。
  • None Value- Direction Field 中用于指示沿线不存在受支持的行进方向的值。

Value Table
output_mode
(可选)

用于指定是返回所有输入要素还是仅返回与线要素匹配的输入要素。

  • ALL_FEATURES将返回所有输入点要素,不考虑其是否与线要素匹配。 这是默认设置。
  • MATCHED_FEATURES系统仅会返回与线要素匹配的输入点要素。
String
data_store
(可选)

指定将用于保存输出的 ArcGIS Data Store。 默认为 SPATIOTEMPORAL_DATA_STORE。 在时空大数据存储中存储的所有结果都将存储在 WGS84 中。 在关系数据存储中存储的结果都将保持各自的坐标系。

  • SPATIOTEMPORAL_DATA_STORE输出将存储在时空大数据存储中。 这是默认设置。
  • RELATIONAL_DATA_STORE输出将存储在关系数据存储中。
String
time_split
(可选)

时间差距大于按时间分割的持续时间的要素将被分割成单独的轨迹。

Time Unit
distance_split
(可选)

距离差距大于距离分割值的要素将被分割成单独的轨迹。 此参数仅适用于 ArcGIS Enterprise 10.6 及更高版本。

Linear Unit
time_boundary_split
(可选)

用于分割输入数据以进行分析的时间跨度。 您可通过时间界限分析定义的时间跨度内的值。 例如,如果您使用始于 1980 年 1 月 1 日的 1 天的时间界限,则轨迹将在每天开始时被分割。 此参数仅适用于 ArcGIS Enterprise 10.7 及更高版本。

Time Unit
time_boundary_reference
(可选)

用于分割输入数据以进行分析的参考时间。 将为整个数据跨度创建时间界限,且不需要在开始时产生参考时间。 如果未指定参考时间,则将使用 1970 年 1 月 1 日。 此参数仅适用于 ArcGIS Enterprise 10.7 及更高版本。

Date

派生输出

名称说明数据类型
output

输出点。

Feature Set

代码示例

SnapTracks 示例 1(独立脚本)

以下 Python 窗口脚本演示了如何使用 SnapTracks 函数。

# Name: SnapTracks.py
# Description: Snap delivery vehicle GPS crumbs to a street dataset.

# Requirements: ArcGIS GeoAnalytics Server

# Import system modules
import arcpy

# Set local variables
tracksLayer = "https://sampleserver.arcgisonline.com/arcgis/rest/services/DeliveryTrucks/MapServer/0"
lineLayer = "https://sampleserver.arcgisonline.com/arcgis/rest/services/CityStreets/MapServer/0"
trackIdentifier = "vehicle_id"
out = "trucks_snapped_to_streets"
searchDistance = "30 Feet"
connectivityFieldMatching = "unique_ID from_node to_node"
directionValueMatching = "dir_travel F T B #"

# Run Snap Tracks
arcpy.geoanalytics.SnapTracks(tracksLayer, lineLayer, out, trackIdentifier, 
                       searchDistance, connectivityFieldMatching, None,
                       "GEODESIC", directionValueMatching, "MATCHED_FEATURES", 
                       "SPATIOTEMPORAL_DATA_STORE")

环境

特殊情况

输出坐标系

将用于分析的坐标系。 除非由该参数进行指定,否则将基于输入坐标系完成分析。 对于 GeoAnalytics Tools,最终结果将存储于 WGS84 中的时空数据存储之内。

许可信息

  • Basic: 需要 ArcGIS GeoAnalytics Server
  • Standard: 需要 ArcGIS GeoAnalytics Server
  • Advanced: 需要 ArcGIS GeoAnalytics Server

相关主题