Skip to main content

重新构建轨迹 (GeoAnalytics Server 工具)

汇总

基于启用时间的输入数据创建线或面轨迹。

旧版本:

即将在 ArcGIS Enterprise 中弃用 ArcGIS GeoAnalytics Server 扩展模块。 GeoAnalytics Server 的最终版本已随 ArcGIS Enterprise 11.3 一同发布。 可通过 ArcGIS Enterprise 11.3 及较早版本获取此地理处理工具。

插图

Reconstruct Tracks tool illustration

用法

  • 将针对点要素或面要素运行重新构建轨迹。 输入图层必须已启用时间,并具有用于表示时刻的要素。

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

  • 应用了缓冲区的要素将生成面轨迹。 未应用缓冲区的输入点要素将生成折线轨迹。

  • 输入要素将由已启用时间、且能够表示时刻的要素组成。 结果为可表示时间间隔的线或面要素。 间隔的开始和结束由轨迹中第一个和最后一个要素的时间决定。

    Input features with two distinct tracks (green and red) showing time type instant (left) and resulting tracks (right) or time type interval

    显示了具有两条不同轨迹(绿色和红色)且时间类型为时刻的输入要素(左),以及生成的轨迹(右)或时间类型为间隔的要素。
  • 针对线性结果,仅会返回包含多个点的轨迹。 如果应用了缓冲区,则将返回所有要素。

  • 您可以选择为您的输入要素应用缓冲区。 应用缓冲区时,生成的轨迹将为面要素。

    Input points with a buffer applied reconstructed into tracks

    应用了缓冲区的输入点重新构建为轨迹。
  • 缓冲输入要素时,每个输入要素都会被缓冲。 随后将生成凸包,以创建面轨迹。

    Input points (green), intermediate buffer for visualization (blue hatching), and the resulting polygonal track (blue)

    将显示输入点(绿色)、可视化中间缓冲区(蓝色影线)以及生成的面轨迹(蓝色)的示例。
  • 缓冲区表达式中使用的字段必须为数值字段,且必须采用输入空间参考的单位进行应用。 有关详细信息,请参阅 ArcGIS Enterprise 10.5 和 10.5.1 的缓冲区表达式示例ArcGIS Enterprise 10.6 及更高版本的缓冲区表达式示例。 在 ArcGIS Enterprise 10.6.1 或更高版本中,可以使用轨迹感知型方程。

  • 默认情况下,系统仅会计算轨迹中的点或面计数。 其他统计数据可通过指定 汇总字段参数值进行计算。

  • 默认情况下,需使用测地线方法创建轨迹。 该方法适用于以下两个分析的组件:

    • 跨越国际日期变更线的轨迹 - 当使用测地线方法时,越过国际日期变更线的输入图层将具有正确跨越国际日期变更线的轨迹。 这是默认设置。 必须将您的输入图层或处理空间参考设置为支持环绕国际日期变更线的空间参考,例如“世界圆柱等积”等全球投影。

    • Buffers—可对输入要素进行缓冲(可选)。 要了解有关何时应用测地线或平面缓冲区的详细信息,请参阅创建缓冲区

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

    • 时间分割 - 基于输入之间的时间。 当输入数据之间的间隔超过指定时间时,应用时间分割将中断任何轨迹。 例如,如果您拥有 5 个轨迹标识符相同的要素,时间分别为 [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]) 小于当前值的两倍时对轨迹进行分割。

  • 可以同时应用一个、两个、三个或四个分割选项或者均不应用。 以下所有示例都使用间隙分割。 假设您应用 6 小时的时间分割、1 天的时间界限和 16 千米的距离分割,则会得到如下结果:

    Five examples of input points (green) with varying time and distance splits

    有关输入点(黄色)与多个不同时间和距离分割的 5 个示例。

    “分割”选项

    描述

    6 个具有时间和位置的输入点

    具有相同标识符的输入点。 点之间的距离标记在虚线的顶部,各点测量的时间标记在点的下方。 时间轴上有 4 处分割。 红色分割代表 1 天的时间界限分割,从 12:00 a.m. 开始 蓝色分割代表两点之间的距离大于 16 千米的距离分割。 紫色分割代表两个连续点之间的时态距离大于 6 小时的时间分割。

    Example with no time split and no distance split

    没有时间分割和没有距离分割的示例。

    Example with a time split of 6 hours

    时间分割为 6 小时的示例。 任何时间间隔超过 2 小时的要素都会分割成单独的轨迹。

    Example with a time boundary of 1 day

    时间界限为 1 天(从午夜开始)的示例。 从指定时间(此处为 12:00 a.m.)开始,以 1 天为时间间隔创建轨迹。

    Example with a distance split of 16 kilometers

    距离分割为 16 千米的示例。 任何相距大于 16 千米的要素(05:00 a.m. 和 06:00 a.m. 时的要素)都会分割成独立的轨迹。

    Example with a time split of 6 hours and a time boundary split of 1 day at 12:00 a.m.

    时间分割为 6 小时和时间界限为 1 天(从 12:00 a.m. 开始)的示例。任何相差超过 6 小时或与从 12:00 a.m. 开始的持续时间分割相交的要素都会分割成独立的轨迹。

    Example with a time split of 6 hours and a distance split of 16 kilometers

    时间分割为 6 小时和距离分割为 16 千米的示例。 任何相差大于 6 小时(06:00 a.m. 和 7:00 p.m. 时的要素)或相距大于 16 千米的要素都会分割成独立的轨迹。

    Example with a distance split of 16 kilometers and a time boundary of 1 day starting at 12:00 a.m.

    距离分割为 16 千米和时间界限为 1 天(从 12:00 a.m. 开始)的示例。任何相距大于 16 千米或与从 12:00 a.m. 开始的持续时间分割相交的要素都会被分割成独立的轨迹。

    Example with a distance split of 16 kilometers, a time split of 6 hours, and a time boundary of 1 day starting at 12:00 a.m.

    距离分割为 16 千米、时间分割为 6 小时和时间界限为 1 天(从 12:00 a.m. 开始)的示例。任何相距大于 16 千米、相差超过 6 小时或与从 12:00 a.m. 开始的持续时间分割相交的要素都会被分割成独立的轨迹。

  • 使用时间分割、距离分割或分割表达式对轨迹进行分割时,可确定将如何在分割之间创建段。 轨迹分割选项适用于 ArcGIS Enterprise 10.9 或更高版本。 您具有以下几种选项:

    • 间隙 - 在分割的两个要素之间创建间隙。

    • 之后结束 - 创建在分割之后结束的段。

    • 之前开始 - 创建在分割之前结束和开始的段。

    下图显示了此分割类型的示例:

    Three types of time splits

    三种类型的时间分割显示了相同输入点(黄色)上时间分割的 3 个示例。

    “时间分割”选项

    描述

    5 个具有时间和位置的输入点

    5 个具有相同标识符的输入点。 将在虚线下方标记每个点的时间。 对于所有示例,2:00 a.m. 和 5:00 a.m. 之间存在一个分割。 每个轨迹将在轨迹上的第三个点和第四个点之间被分割为两段。 第一个轨迹为绿色,第二个轨迹为紫色。 分割轨迹的方式将由分割类型参数定义。

    间隙

    Gap split

    在分割的两个点之间存在间隙的示例。 第一个轨迹将在第三个点处结束,第二个轨迹将从第四个点处开始。 这是默认设置。

    之后完成

    Finish After split

    轨迹在分割后的第 4 个点处结束的示例。 第二个轨迹将从第四个点处开始。 此选项适用于 ArcGIS Enterprise 10.9 或更高版本。

    之前开始

    Start Before split

    轨迹在分割前的第 3 个点处分割的示例。 第二个轨迹将从第三个点处开始。 此选项适用于 ArcGIS Enterprise 10.9 或更高版本。

  • 以下是使用分割参数和字段标识符参数可能对定义轨迹有意义的示例,以航班飞行为例:

    • 飞机要素包括 aircraft IDflight IDpilot namestart timeflight_maneuver 字段。 flight_maneuver 字段表示飞机是在陆地上、在上升、在下降还是位于恒定高度。

      • 要查看每架飞机的飞行路线,请使用 aircraft ID 字段作为标识符。

      • 要比较不同的路径,请使用 aircraft IDflight ID 字段作为标识符。

      • 要一次性检查每架飞机一年的飞行情况,请使用 aircraft ID 字段和时间界限 1 年。

      • 要查看每位飞行员的飞行,请使用 pilot nameaircraft IDstart time 字段。

      • 可以使用 aircraft ID 字段作为标识符,并使用大于 1000 千米的距离分割来确定新的轨迹(已知 1000 千米的测量跳跃点不应属于同一轨迹)。

      • 可以使用 aircraft ID 字段作为标识符,然后当 flight_maneuver 字段中的值发生变化时使用表达式进行分割。 例如,var flight_manuever = TrackFieldWindow("maneuver", -1, 1); flight_maneuver[0] != flight_maneuver[1] 将检查轨迹中的当前值与上一个值是否匹配。 如果不匹配,则将分割轨迹。

  • 输出轨迹将返回用作轨迹标识符的字段、轨迹内的要素计数 (count)、各个轨迹的开始和结束时间(start_datetimeend_datetime)、以毫秒为单位的轨迹持续时间 (duration) 以及任何其他可选统计数据(格式为 statisticstype_fieldname)。

  • 您可以通过执行以下一项或多项操作来提升 重新构建轨迹工具的性能:

    • 设置范围环境,以便仅分析感兴趣的数据。

    • 请使用平面方法,而非测地线方法。

    • 请勿应用缓冲区。

    • 可以使用 时间分割时间界限分割距离分割分割表达式参数来分割轨迹。 时间界限分割参数将实现最大的性能提升。

    • 本地数据用于分析运行的位置。

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

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

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

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

  • 您也可以使用以下工具完成类似分析:

    • “数据管理”工具箱中的点转线工具。

参数

标注 说明 数据类型

输入图层

要重新构建为轨迹的点或面。 输入必须为启用时间的图层,用于表示时刻。

Feature Set

输出名称

输出要素服务的名称。

String

轨迹字段

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

Field

方法

指定将用于重新构建轨迹的条件。 如果使用了缓冲区,则 方法参数将用于确定缓冲区的类型。

  • 测地线如果可以平移空间参考,则轨迹将在适当的时候穿过日期变更线。 如果无法平移空间参考,则轨迹将被限制在坐标系的范围之内且不可环绕。

  • 平面将创建平面缓冲区。

String

缓冲区类型

指定缓冲距离将如何定义。

  • 字段将使用单个字段来定义缓冲距离。

  • 表达式将使用包含字段和数学运算符的方程来定义缓冲区距离。

String

缓冲字段

(可选)

将用于缓冲输入要素的字段。 字段值采用输入空间参考的单位,除非您所使用的是地理坐标系,在这种情况下,单位将为米。

Field

缓冲区表达式

(可选)

将用于缓冲输入要素的表达式。 字段必须为数字形式,并且表达式可以包含 [+ - * / ] 运算符和多个字段。 将应用经计算的值,且采用输入空间参考的单位,除非您所使用的是地理坐标系,在这种情况下,单位为米。

ArcGIS Enterprise 10.5 和 10.5.1 的表达式格式为 as_kilometers(distance) * 2 + as_meters(15)。 在 ArcGIS Enterprise 10.6 或更高版本,请使用 Arcade 表达式,例如 as_kilometers($feature.distance) * 2 + as_meters(15)

Calculator Expression

时间分割

(可选)

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

Time Unit

汇总字段

(可选)

将根据指定字段进行计算的统计数据。

值表列:

  • 字段将计算统计数据的字段。

  • 统计数据将根据指定字段进行计算的统计数据。

    • 计数非空值的数目。 可用于数值字段或字符串。 [null, 0, 2] 的计数为 2。

    • 总和字段内数值的总和。 [null, null, 3] 的总和为 3。

    • 平均值数值的平均值。 [0,2, null] 的平均值为 1。

    • 最小值数值字段的最小值。 [0, 2, null] 的最小值为 0。

    • 最大值数值字段的最大值。 [0, 2, null] 的最大值为 2。

    • 标准差数值字段的标准差。 [1] 的标准差为空。 [null, 1,1,1] 的标准差为空。

    • 方差轨迹中数值字段的方差。 [1] 的方差为空。 [null, 1,1,1] 的方差为空。

    • 范围数值字段的范围。 其计算方法为最大值减去最小值。 [0, null, 1] 的范围为 1。 [null, 4] 的范围为 0。

    • 任何字符串型字段中的示例字符串。

    • 第一个轨迹中指定字段的第一个值。 此选项适用于 ArcGIS Enterprise 10.8.1。

    • 最后一个轨迹中指定字段的最后一个值。 此选项适用于 ArcGIS Enterprise 10.8.1。

Value Table

数据存储

(可选)

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

  • 时空大数据存储输出将存储在时空大数据存储中。 这是默认设置。

  • 关系数据存储输出将存储在关系数据存储中。

String

距离分割

(可选)

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

Linear Unit

时间界限分割

(可选)

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

Time Unit

时间界限参考

(可选)

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

Date

分割表达式

(可选)

基于值、几何或时间值分割轨迹的表达式。 当表达式的验证结果为 true 时,将进行分割。 此参数仅适用于 ArcGIS Enterprise 10.9 及更高版本。

Calculator Expression

分割类型

(可选)

指定当分割轨迹时,将如何在两个要素之间创建轨迹段。 分割类型应用于分割表达式、距离分割和时间分割。 此参数仅适用于 ArcGIS Enterprise 10.9 及更高版本。

  • 间隙将不会在两个要素之间创建段。 这是默认设置。

  • 之后完成将在两个要素之间创建一个段,该段在分割后结束。

  • 之前开始将在两个要素之间创建一个段,该段在分割前结束。

String

派生输出

标注 说明 数据类型

输出要素类

输出线或面轨迹。

Feature Set

环境

输出坐标系, 范围, 当前工作空间

特殊情况

输出坐标系

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

许可信息

  • 基本: 需要 ArcGIS GeoAnalytics Server
  • 标准: 需要 ArcGIS GeoAnalytics Server
  • 高级: 需要 ArcGIS GeoAnalytics Server