描述
计算启用时间的要素类中点的动态统计数据。
插图
使用方法
此地理处理工具适用于 ArcGIS Enterprise 10.9 或更高版本。
计算动态统计数据的结果为输入点的副本,其中每个计算的统计数据对应一个新字段。
可指定一个或多个字段来识别唯一实体,也称为轨迹。轨迹由一个或多个轨迹字段的唯一组合表示。例如,如果将字段 flightID 和 Destination 用作轨迹标识符,则要素 ID007、Solden 和 ID007、Tokoyo 将分别处于两个独立的轨迹,原因是其 Destination 字段值不同。
默认情况下,将尽可能为每个输入点计算所有受支持的统计数据。或者,可选择一组或多组统计数据,以使用动态统计数据参数进行计算。
将为距离组计算以下统计数据字段:
- Distance - 从先前观测点行驶到当前观测点的距离。
- TotDistance - 轨迹历史记录窗口中观测点之间的行驶距离总和。
- MinDistance - 轨迹历史记录窗口中观测点之间的最小行驶距离。
- MaxDistance - 轨迹历史记录窗口中观测点之间的最大行驶距离。
- AvgDistance - 轨迹历史记录窗口中观测点之间的平均行驶距离。
将为速度组计算以下统计数据字段:
- Speed - 从先前观测点行驶到当前观测点的速度。
- MinSpeed - 轨迹历史记录窗口中观测点之间的最小速度。
- MaxSpeed - 轨迹历史记录窗口中观测点之间的最大速度。
- AvgSpeed - 轨迹历史记录窗口中观测值之间的距离总和除以轨迹历史记录窗口中观测值之间的持续时间总和。
将为加速组计算以下统计数据字段:
- Acceleration - 当前速度与先前速度之差除以当前持续时间。
- MinAcceleration - 轨迹历史记录窗口中计算出的最小加速度。
- MaxAcceleration - 轨迹历史记录窗口中计算出的最大加速度。
- AvgAcceleration - 轨迹历史记录窗口中当前速度与前几个速度之差除以轨迹历史记录窗口中观测值之间的持续时间总和。
将为持续时间组计算以下统计数据字段:
- Duration - 自上次观测以来经过的时间。
- TotDuration - 轨迹历史记录窗口中持续时间的总和。
- MinDuration - 轨迹历史记录窗口中的最小持续时间。
- MaxDuration - 轨迹历史记录窗口中的最大持续时间。
- AvgDuration - 轨迹历史记录窗口中的持续时间总和除以轨迹历史记录窗口中计算的持续时间数。
将为高程组计算以下统计数据字段:
- Elevation - 观测点的当前高程。
- ElevChange - 当前高程与先前高程之差。
- TotElevChange - 轨迹历史记录窗口中点之间的高程变化总和。其必须为负值。
- MinElevation - 轨迹历史记录窗口中的最小高程。
- MaxElevation - 轨迹历史记录窗口中的最大高程。
- AvgElevation - 轨迹历史记录窗口中的高程总和除以轨迹历史记录窗口中的观测点数。
将为坡度组计算以下统计数据字段:
- Slope - 当前观测点和先前观测点之间的高程变化与距离之比。
- MinSlope - 轨迹历史记录窗口中的最小坡度。
- MaxSlope - 轨迹历史记录窗口中的最大坡度。
- AvgSlope - 轨迹历史记录窗口中的坡度总和除以轨迹历史记录窗口中计算的坡度数。
将为空闲组计算以下统计数据字段:
- Idling - 如果当前观测点与先前观测点之间的距离小于空闲距离容差参数值,并且当前观测点与先前观测点之间的持续时间大于空闲时间容差参数,则为 True。False 如果不满足这两个条件之一或全部。
- TotIdleTime - 轨迹历史记录窗口中符合空闲条件的持续时间总和。
- PctIdleTime - 检测到空闲的时间百分比。
将为方位角组计算以下统计数据字段:
- Bearing - 从先前观测点到当前观测点的行驶角度。
将使用由轨迹历史记录窗口参数定义的当前观测点和多个先前观测点计算以 Min、Max、Avg 或 Tot 开头的统计数据。其他统计数据始终仅使用当前观测点和先前观测点进行计算,而不考虑轨迹历史记录窗口值。例如,如果将轨迹历史记录窗口值设置为 5 并请求速度统计数据组,则将使用当前观测点与前 4 个观测点计算每个观测点的 MinSpeed、MaxSpeed 和 AvgSpeed 字段,而仅使用当前观测点与先前观测点计算每个点的 Speed 字段。轨迹历史记录窗口参数值必须大于 1。默认值为 3。
下图显示了具有六个点要素的轨迹。将根据每个要素的高程、距离和时间计算统计数据。
下表汇总了上图的统计数据计算。所有计算均在点 5 处进行,并且轨迹历史记录窗口为 3。如果观测点在 1 分钟内的移动距离小于 32 米,则该观测点视为空闲。
统计 公式 示例 距离
35 m
总距离
80 + 30 + 35 = 145 m
速度
距离/持续时间
35 / 60 = 0.58 m/s
平均速度
总距离/总持续时间
145 / 180 m/s
加速度
(0.58 – 0.5) / 60 = 0.001 m/s2
平均加速度
(速度 (最后一个) – 速度 (第一个)) / (总持续时间)
(0.58 – 1.33) / 60 = -0.01 m/s2
持续时间
60 s
总持续时间
60 + 60 + 60 = 180 s
高程
5 m
高程变化
5 – 4 = 1 m
总高程变化
5 – 0 = 5 m
坡度
高程变化/距离
1 / 35
平均坡度
总高程变化/总距离
5 / 145
Idling
False
总空闲时间
60 s
空闲时间百分比
1 / 3
方位角
0
如果轨迹历史记录中的观测点数小于轨迹历史记录窗口参数值,将使用轨迹历史记录中的所有观测点来计算以 Min、Max、Avg 或 Tot 开头的统计数据。
不会为每个轨迹的第一个要素计算统计数据。不会为每个轨迹中的前两个要素计算加速组中的统计数据。
结果值将采用距离单位、持续时间单位、速度单位、加速单位和高程单位参数指定的单位。
计算大轨迹的统计数据时,可以使用时间界限分割参数将大轨迹分割成较小的轨迹以提高性能。
此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。
当 GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS Pro 到 GeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。
可执行以下任意或全部操作来提高计算动态统计数据工具的性能:
- 设置范围环境,以便仅分析感兴趣的数据。
- 降低轨迹历史记录窗口参数值。
- 使用时间界限分割参数按定义的时间间隔分割大轨迹。
- 将本地数据用于分析运行的位置。
语法
arcpy.geoanalytics.CalculateMotionStatistics(input_layer, output_name, track_fields, {track_history_window}, {motion_statistics}, {distance_method}, {idle_dist_tolerance}, {idle_time_tolerance}, {time_boundary_split}, {time_boundary_reference}, {distance_unit}, {duration_unit}, speed_unit, {acceleration_unit}, {elevation_unit}, {data_store})
参数 | 说明 | 数据类型 |
input_layer | 将计算动态统计数据的启用时间的点要素。 | Feature Set |
output_name | 结果图层的名称。 | String |
track_fields [track_fields,...] | 用于标识不同实体的一个或多个字段。 | Field |
track_history_window (可选) | 将用于汇总统计数据的观测点数(包括当前观测点)。默认值为 3,这意味着将使用当前观测点和前两个观测点在轨迹的每个点上计算汇总统计数据。此参数不会影响瞬时统计数据或空闲分类。 | Long |
motion_statistics [motion_statistics,...] (可选) | 指定包含要计算并写入结果的统计数据的组。如果未提供任何值,则将计算所有组的所有统计数据。
| String |
distance_method (可选) | 指定在计算动态统计数据时将使用的距离测量方法。
| String |
idle_dist_tolerance (可选) | 轨迹中的两个连续点视为空闲时可以分开的最大距离。此参数与 idle_time_tolerance 参数一起用于确定实体是否空闲。如果在 motion_statistics 参数中指定了 IDLE 统计数据组,或者如果要计算所有组中的统计数据,idle_dist_tolerance 参数为必需项。 | Linear Unit |
idle_time_tolerance (可选) | 轨迹中的两个连续点视为空闲时必须彼此靠近的最小持续时间。此参数与 idle_dist_tolerance 参数一起用于确定实体是否空闲。如果在 motion_statistics 参数中指定了 IDLE 统计数据组,或者如果要计算所有组中的统计数据,idle_time_tolerance 参数为必需项。 | Time 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 |
distance_unit (可选) | 指定输出要素类中距离值的测量单位。
| String |
duration_unit (可选) | 指定输出要素类中持续时间值的测量单位。
| String |
speed_unit | 指定输出要素类中速度值的测量单位。
| String |
acceleration_unit (可选) | 指定输出要素类中加速度值的测量单位。
| String |
elevation_unit (可选) | 指定输出要素类中高程值的测量单位。
| String |
data_store (可选) | 指定将用于保存输出的 ArcGIS Data Store。默认为 SPATIOTEMPORAL_DATA_STORE。在时空大数据存储中存储的所有结果都将存储在 WGS84 中。在关系数据存储中存储的结果都将保持各自的坐标系。 | String |
派生输出
名称 | 说明 | 数据类型 |
output | 具有运动统计数据的输出点要素。 | 要素集 |
代码示例
以下 Python 脚本演示了如何使用 CalculateMotionStatistics 函数。
# Name: CalculateMotionStatistics.py
# Description: Calculate speed, acceleration, and bearing for hurricane tracks.
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inFeatures = "https://mydomain.com/server/rest/services/DataStoreCatalogs/bigDataFileShares_Hurricanes/BigDataCatalogServer/all"
out = "Hurricanes_MotionStats"
trackField = "name"
# Execute Calculate Motion Statistics
arcpy.geoanalytics.CalculateMotionStatistics(inFeatures, out, trackField, 5,
["SPEED", "ACCELERATION", "BEARING"],
"GEODESIC")
环境
- 输出坐标系
将用于分析的坐标系。除非由该参数进行指定,否则将基于输入坐标系完成分析。对于 GeoAnalytics 工具,最终结果将存储于 WGS84 中的时空数据存储之内。
许可信息
- Basic: 需要 ArcGIS GeoAnalytics Server
- Standard: 需要 ArcGIS GeoAnalytics Server
- Advanced: 需要 ArcGIS GeoAnalytics Server