重新构建轨迹工具可将连续时间点连接到轨迹中,并汇总轨迹中的要素。根据一个或多个轨迹字段确定轨迹。生成的图层会以线或面的形式显示轨迹、轨迹中已汇总要素的计数,以及已指定的所有附加统计数据。
工作流示意图
使用 GeoAnalytics Tools 进行的分析
通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics Tools 和 ArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别。
术语
术语 | 说明 |
---|---|
测地线 | 在球体上绘制的线。在地球上绘制的测地线表示地球大地水准面的曲率。 |
平面 | 在平面上(即笛卡尔平面)上测量的直线距离。这也被称为欧氏距离。 |
时刻 | 由开始时间表示的单个时间点且无结束时间。 |
间隔 | 由开始时间和结束时间表示的一段时间。 |
示例
在美国,飓风是最具破坏力的风暴之一。您希望了解飓风的行进路径,以确定在过去因飓风造成过巨大财产损失及经济损失的位置,从而评估保险费率。您可以通过单个数据集访问美国各地的飓风位置数据,且每个位置都标有时间戳。您需要汇总所有信息,以查看所有飓风相关值的汇总情况。您可以使用飓风轨迹标识符来汇总数据,以确定各飓风的统计数据。
用法说明
重新构建轨迹会针对点要素或面要素运行。输入图层必须已启用时间,并具有用于表示时刻的要素。
针对线性结果,仅会返回包含多个点的轨迹。如果应用了缓冲区,则将返回所有要素。
输入要素将由已启用时间、且能够表示时刻的要素组成。结果为可表示时间间隔的线或面要素。该间隔的开始和结束由轨迹中第一个和最后一个要素的时间决定。
通过轨迹中最基本的计算,得出经过汇总的要素数量的计数。统计数据(计数、总和、最小值、最大值、范围、平均值、标准差和方差)还可以根据数值字段进行计算;统计数据(计数和任意)可根据字符串字段进行计算。字符串统计数据将从每个轨迹任意返回示例字符串。系统将分别计算每个轨迹的统计数据。
结果中将返回用于标识轨迹的一个或多个字段。
可以指定一个或多个字段用于标识轨迹。轨迹由一个或多个轨迹字段的唯一组合表示。例如,如果将字段 flightID 和 Destination 用作轨迹标识符,则要素 ID007、Solden 和 ID007、Tokoyo 将分别处于两个独立的轨迹,原因是其 Destination 字段值不同。
您可以选择为您的输入要素应用缓冲区。当您应用缓冲区时,生成的轨迹将为面要素。
需使用字段或缓冲区表达式创建缓冲区。要了解有关缓冲区表达式和格式的详细信息,请参阅通过 GeoAnalytics Tools 使用缓冲区表达式。您可以应用追踪感知型表达式。例如,您可以通过轨迹中先前三个要素的 wind_speed 字段,再搭配方程 mean($track.field["wind_speed].history(-4, -1)) 以缓冲当前要素。
缓冲输入要素时,每个输入要素都会被缓冲。随后将生成凸包,以创建面轨迹。
默认情况下,需使用测地线方法创建轨迹。该方法适用于以下两个分析的组件:
- 跨越国际日期变更线的轨迹 - 当使用测地线方法时,越过国际日期变更线的输入图层将具有正确跨越国际日期变更线的轨迹。这是默认设置。必须将您的输入图层或处理空间参考设置为支持环绕国际日期变更线的空间参考,例如“世界圆柱等积”等全球投影。
- 缓冲区 - 可对输入要素进行有选择地缓冲。要了解有关何时应用测地线或平面缓冲区的详细信息,请参阅创建缓冲区。
可通过三种方式分割轨迹:
- 基于输入之间的时间 - 应用时间分割
- 以定义的时间间隔 - 应用时间界限
- 基于输入之间的距离 - 应用距离分割
当输入数据大于指定时间时,可应用时间分割将任何轨迹分开。例如,如果您有五个轨迹标识符相同的要素,时间分别为 [01:00, 02:00, 03:30, 06:00, 06:30],并将时间分割设置为两个小时,则任何经测量间隔超过两小时的要素都将被分割。在本示例中,结果将为 [01:00, 02:00, 03:30] 和 [06:00, 06:30] 的轨迹,因为 03:30 与 6:00 之间的间隔大于两小时。
应用时间界限会以定义的间隔对轨迹进行分割。例如,如果您将时间界限设置为 1 天,开始于 1990 年 1 月 1 日上午 9:00,则轨迹会在每天上午 9:00 被截断。此分割方法是一种可加快计算速度的快速方法,因为它可以快速创建较小的追踪以进行分析。如果按循环的时间界限进行分割对您的分析有意义,则建议用于大数据处理。
当输入数据大于指定距离时,可应用距离分割将任何轨迹分开。例如,如果将距离分割设置为 5 公里,则大于 5 公里的连续要素将成为其他轨迹的一部分。
您可以同时应用一个、两个、三个分割选项或者均不应用。假设我们应用 6 小时的时间分割、1 天的时间界限和 16 公里的距离分割,会产生如下不同的结果:
分割选项 | 说明 |
---|---|
六个具有时间和位置的输入点。 | 具有相同标识符的输入点。点之间的距离标记在虚线的顶部,各点测量的时间标记在点的下方。时间轴上有四段分割。红色分割代表 1 天的时间界限分割,从凌晨 12:00 开始。蓝色分割代表两点之间的距离大于 16 公里的距离分割。紫色分割代表两个连续点之间的时态距离大于 6 小时的时间分割。 |
没有时间分割和没有距离分割的示例。 | |
时间分割为两个小时的示例。任何大于两小时的要素都会分割成单独的轨迹。 | |
时间界限为 1 天(从午夜开始)的示例。以从指定时间(此处为凌晨 12:00)开始的每 1 天为间隔创建新轨道。。 | |
距离分割为 16 公里的示例。任何相距大于 16 公里的要素(上午 05:00 和 06:00 时的要素)会分割成单独的轨迹。 | |
时间分割为 6 小时和时间界限为 1 天(从凌晨 12:00 开始)的示例 。任何相差大于六小时或与从凌晨 12:00 开始的持续时间分割相交的要素会分割成单独的轨迹。 | |
时间分割为 6 小时和距离分割为 16 公里的示例。任何相差大于六小时(上午 06:00 和下午 7:00 时的要素)或相距远于 16 公里的要素会分割成不同的轨迹。 | |
距离分割为 16 公里和时间界限为一天(从凌晨 12:00 开始)的示例。任何相距大于 16 公里或与从凌晨 12:00 开始的持续时间分割相交的要素会分割成不同的轨迹。 | |
距离分割为 16 公里、时间分割为 6 小时和时间界限为一天(从凌晨 12:00 开始)的示例。任何相距大于 16 公里,或相差超过 6 小时,或从凌晨 12:00 开始的持续时间分割相交的要素会分割成不同的轨迹。 |
以下是如何使用分割参数和字段标识符参数可能对定义轨迹有意义的示例,以航班飞行为例:
- 飞机要素包括 aircraft ID、flight ID、pilot name 和 start time 字段。
- 如果您有意了解每架飞机的行程,请将 aircraft ID 用作标识符。
- 如果您有意比较不同的路线,请将 aircraft ID 和 flight ID 字段用作标识符。
- 如果您想要一次性检查每架飞机一年的飞行情况,请使用 aircraft id 和时间界限 1 年。
- 如果您想要查看每个飞行员的飞行情况,请使用 pilot name、aircraft ID 和 start time。
- 使用 aircraft ID 作为标识符并使用距离大于 1000 公里的分割来确定新的轨迹,已知 1,000 公里的测量跳跃点不应属于同一轨迹。
输出轨迹将返回用作轨迹标识符的字段、轨迹内的要素计数 (count)、各个轨迹的开始和结束时间(start_datetime 和 end_datetime)、以毫秒为单位的轨迹持续时间 (duration) 以及任何其他可选统计数据。
如果选中使用当前地图范围,则仅对当前地图范围中可见的要素进行分析。如果未选中,则将分析输入图层中的所有输入要素,包括超出当前地图范围的要素。
限制
输入必须为具有已启用时间的类型时刻要素的点图层或面图层。任何不具备时间的要素都不会包含在输出轨迹中。
重新构建轨迹的工作原理
等式
方差由下列等式计算得出:
标准差由方差的平方根计算得出。
计算
可使用唯一标识符将输入图层汇总到轨迹中。系统将计算每个轨迹中的汇总结果。
针对轨迹内的汇总要素,各个轨迹可选择应用数值统计数据(计数、总和、最小值、最大值、范围、平均值、标准差和方差)或字符串统计数据(计数和任意)。
计数统计数据(针对字符串和数值字段)用于计算非空值的数量。以下值的计数等于 5:[0, 1, 10, 5, null, 6] = 5。该组值的计数等于 3:[Primary, Primary, Secondary, null] = 3。
ArcGIS API for Python 示例
可通过 ArcGIS API for Python 获取重新构建轨迹工具。
本示例可重新构建飓风轨迹。
# Import the required ArcGIS API for Python modules import arcgis from arcgis.gis import GIS from arcgis.geoanalytics import summarize_data
# Connect to your ArcGIS Enterprise portal and check that GeoAnalytics is supported portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False) if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported") exit(1)
# Find the big data file share dataset you're interested in using for analysis search_result = portal.content.search("", "Big Data File Share")
# Look through search results for a big data file share with the matching name bd_file = next(x for x in search_result if x.title == "bigDataFileShares_NaturalDisasters")
# Look through the big data file share for hurricanes hurricanes = next(x for x in bd_file.layers if x.properties.name == "Hurricanes")
# Set the tool environment settings arcgis.env.verbose = True
# Reconstruct the hurricane tracks by their serial_number track_result = summarize_data.reconstruct_tracks(input_layer = hurricanes,
track_fields = "serial_num", method = 'Geodesic', output_name = "hurricane_tracks")
# Visualize the tool results if you are running Python in a Jupyter Notebook processed_map = portal.map('World') processed_map.add_layer(track_result) processed_map
类似工具
使用重新构建轨迹汇总轨迹中的要素。其他工具或许在解决略有差异的类似问题时十分有用。
Map Viewer 分析工具
如果您正在尝试使用不同的空间关系对点、线或面进行汇总,请使用连接要素 GeoAnalytics Tools。
ArcGIS Desktop 分析工具
重新构建轨迹 GeoAnalytics Tools 在 ArcGIS Pro 中同样可用。
要从 ArcGIS Pro 运行工具,则工程的活动门户必须运行 ArcGIS Enterprise 10.5 或更高版本。对于 10.5,您必须使用相应帐户登录到门户,该帐户应具有在门户中执行空间分析的权限。