计算动态统计数据 (GeoAnalytics Desktop)

摘要

计算启用时间的要素类中点的动态统计数据。

插图

计算动态统计数据工具图示
将使用运动数据丰富启用时间的点。

使用情况

  • 计算动态统计数据的结果为输入点的副本,其中每个计算的统计数据对应一个新字段。

  • 可指定一个或多个字段来识别唯一实体,也称为轨迹。 轨迹由一个或多个轨迹字段的唯一组合表示。 例如,如果将 flightIDDestination 字段用作轨迹标识符,则 ID007SoldenID007Tokoyo 要素将分别处于两个独立的轨迹,原因是其 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 个观测点计算每个观测点的 MinSpeedMaxSpeedAvgSpeed 字段,而仅使用当前观测点与先前观测点计算每个点的 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 开头的统计数据。

  • 不会为每个轨迹的第一个要素计算统计数据。 不会为每个轨迹中的前两个要素计算加速组中的统计数据。

  • 结果值将采用距离单位持续时间单位速度单位加速单位高程单位参数指定的单位。

  • 计算大轨迹的统计数据时,可以使用时间界限分割参数将大轨迹分割成较小的轨迹以提高性能。

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

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

  • 可执行以下任意或全部操作来提高计算动态统计数据工具的性能:

    • 设置范围环境,以便仅分析感兴趣的数据。
    • 降低轨迹历史记录窗口参数值。
    • 使用时间界限分割参数按定义的时间间隔分割大轨迹。
    • 本地数据用于分析运行的位置。

参数

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

将计算动态统计数据的启用时间的点要素。

Table View
输出要素类

包含具有新字段的点的输出要素类或图层,这些新字段对应每个已计算的动态统计数据。

Feature Class
轨迹字段

将用于标识不同实体的一个或多个字段。

Field
追踪历史记录窗口
(可选)

将用于汇总统计数据的观测点数(包括当前观测点)。 默认值为 3,这意味着将使用当前观测点和前两个观测点在轨迹的每个点上计算汇总统计数据。 此参数不会影响瞬时统计数据或空闲分类。

Long
动态统计数据
(可选)

指定包含将计算并写入结果的统计数据的组。 如果未指定任何值,则将计算所有组的所有统计数据。

  • 距离将计算轨迹历史记录窗口中当前观测点和先前观测点之间的距离以及最大距离、最小距离、平均距离和总距离。
  • 持续时间将计算轨迹历史记录窗口中当前观测点和先前观测点之间的持续时间以及最大持续时间、最小持续时间、平均持续时间和总持续时间。
  • 速度将计算轨迹历史记录窗口中当前观测点和先前观测点之间的行驶速度以及最大行驶速度、最小行驶速度和平均行驶速度。
  • 加速将计算轨迹历史记录窗口中当前速度和先前速度之间的加速度以及最大加速度、最小加速度和平均加速度。
  • 高程将计算轨迹历史记录窗口中的当前高程、当前高程和先前高程之间的高程变化以及最大高程变化、最小高程变化、平均高程变化和总高程变化。
  • 坡度将计算轨迹历史记录窗口中当前观测点和先前观测点之间的坡度以及最大坡度、最小坡度和平均坡度。
  • 空闲将确定实体当前是否处于空闲状态,并计算轨迹历史记录窗口中的空闲时间百分比和总空闲时间。
  • 方位将计算先前观测点与当前观测点之间的行驶角度。
String
距离法
(可选)

指定在计算动态统计数据时将使用的距离测量方法。

  • 测地线将使用测地线距离。
  • 平面将使用平面距离。 这是默认设置。
String
空闲距离容差
(可选)

轨迹中的两个连续点视为空闲时可以分开的最大距离。 此参数与空闲时间容差参数配合使用以确定实体是否空闲。 如果为动态统计数据参数指定了空闲统计数据组,或者如果将计算所有组中的统计数据,则空闲距离容差参数为必需项。

Linear Unit
空闲时间容差
(可选)

轨迹中的两个连续点视为空闲时必须彼此靠近的最小持续时间。 此参数与空闲距离容差参数配合使用以确定实体是否空闲。 如果为动态统计数据参数指定了空闲统计数据组,或者如果将计算所有组中的统计数据,则空闲时间容差参数为必需项。

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

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

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

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

Date
距离单位
(可选)

指定将用于输出要素类中距离值的测量单位。

  • 测量单位将为米。 这是默认设置。
  • 千米测量单位将为千米。
  • 美国测量英里测量单位将为美国测量英里。
  • 美国测量海里测量单位将为美国测量海里。
  • 美国测量码测量单位将为美国测量码。
  • 美国测量英尺测量单位将为美国测量英尺。
  • 法定英里测量单位将为法定英里。
  • 国际海里测量单位将为国际海里。
  • 国际码测量单位将为国际码。
  • 国际英尺测量单位将为国际英尺。
String
持续时间单位
(可选)

指定将用于输出要素类中持续时间值的测量单位。

  • 测量单位将为年。
  • 测量单位将为月。
  • 测量单位将为周。
  • 测量单位将为天。
  • 小时测量单位将为小时。
  • 测量单位将为分钟。
  • 测量单位将为秒。 这是默认设置。
  • 毫秒测量单位将为毫秒。
String
速度单位
(可选)

指定将用于输出要素类中速度值的测量单位。

  • 米/秒测量单位将为米/秒。 这是默认设置。
  • 英里/小时测量单位将为英里/小时。
  • 千米/小时测量单位将为千米/小时。
  • 英尺/秒测量单位将为英尺/秒。
  • 海里/小时测量单位将为海里/小时。
String
加速度单位
(可选)

指定将用于输出要素类中加速度值的测量单位。

  • 米/平方秒测量单位将为米/平方秒。 这是默认设置。
  • 英尺/平方秒测量单位将为英尺/平方秒。
String
高程单位
(可选)

指定将用于输出要素类中高程值的测量单位。

  • 测量单位将为米。 这是默认设置。
  • 千米测量单位将为美国测量千米。
  • 美国测量英里测量单位将为美国测量英里。
  • 美国测量码测量单位将为美国测量码。
  • 美国测量英尺测量单位将为美国测量英尺。
  • 法定英里测量单位将为法定英里。
  • 国际码测量单位将为国际码。
  • 国际英尺测量单位将为国际英尺。
String

arcpy.geoanalytics.CalculateMotionStatistics(input_layer, out_feature_class, 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})
名称说明数据类型
input_layer

将计算动态统计数据的启用时间的点要素。

Table View
out_feature_class

包含具有新字段的点的输出要素类或图层,这些新字段对应每个已计算的动态统计数据。

Feature Class
track_fields
[track_fields,...]

将用于标识不同实体的一个或多个字段。

Field
track_history_window
(可选)

将用于汇总统计数据的观测点数(包括当前观测点)。 默认值为 3,这意味着将使用当前观测点和前两个观测点在轨迹的每个点上计算汇总统计数据。 此参数不会影响瞬时统计数据或空闲分类。

Long
motion_statistics
[motion_statistics,...]
(可选)

指定包含将计算并写入结果的统计数据的组。 如果未指定任何值,则将计算所有组的所有统计数据。

  • DISTANCE将计算轨迹历史记录窗口中当前观测点和先前观测点之间的距离以及最大距离、最小距离、平均距离和总距离。
  • DURATION将计算轨迹历史记录窗口中当前观测点和先前观测点之间的持续时间以及最大持续时间、最小持续时间、平均持续时间和总持续时间。
  • SPEED将计算轨迹历史记录窗口中当前观测点和先前观测点之间的行驶速度以及最大行驶速度、最小行驶速度和平均行驶速度。
  • ACCELERATION将计算轨迹历史记录窗口中当前速度和先前速度之间的加速度以及最大加速度、最小加速度和平均加速度。
  • ELEVATION将计算轨迹历史记录窗口中的当前高程、当前高程和先前高程之间的高程变化以及最大高程变化、最小高程变化、平均高程变化和总高程变化。
  • SLOPE将计算轨迹历史记录窗口中当前观测点和先前观测点之间的坡度以及最大坡度、最小坡度和平均坡度。
  • IDLE将确定实体当前是否处于空闲状态,并计算轨迹历史记录窗口中的空闲时间百分比和总空闲时间。
  • BEARING将计算先前观测点与当前观测点之间的行驶角度。
String
distance_method
(可选)

指定在计算动态统计数据时将使用的距离测量方法。

  • GEODESIC将使用测地线距离。
  • PLANAR将使用平面距离。 这是默认设置。
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 日。

Date
distance_unit
(可选)

指定将用于输出要素类中距离值的测量单位。

  • METERS测量单位将为米。 这是默认设置。
  • KILOMETERS测量单位将为千米。
  • MILES测量单位将为美国测量英里。
  • NAUTICAL_MILES测量单位将为美国测量海里。
  • YARDS测量单位将为美国测量码。
  • FEET测量单位将为美国测量英尺。
  • MILES_INT测量单位将为法定英里。
  • NAUTICAL_MILES_INT测量单位将为国际海里。
  • YARDS_INT测量单位将为国际码。
  • FEET_INT测量单位将为国际英尺。
String
duration_unit
(可选)

指定将用于输出要素类中持续时间值的测量单位。

  • YEARS测量单位将为年。
  • MONTHS测量单位将为月。
  • WEEKS测量单位将为周。
  • DAYS测量单位将为天。
  • HOURS测量单位将为小时。
  • MINUTES测量单位将为分钟。
  • SECONDS测量单位将为秒。 这是默认设置。
  • MILLISECONDS测量单位将为毫秒。
String
speed_unit
(可选)

指定将用于输出要素类中速度值的测量单位。

  • METERS_PER_SECOND测量单位将为米/秒。 这是默认设置。
  • MILES_PER_HOUR测量单位将为英里/小时。
  • KILOMETERS_PER_HOUR测量单位将为千米/小时。
  • FEET_PER_SECOND测量单位将为英尺/秒。
  • NAUTICAL_MILES_PER_HOUR测量单位将为海里/小时。
String
acceleration_unit
(可选)

指定将用于输出要素类中加速度值的测量单位。

  • METERS_PER_SECOND_SQUARED测量单位将为米/平方秒。 这是默认设置。
  • FEET_PER_SECOND_SQUARED测量单位将为英尺/平方秒。
String
elevation_unit
(可选)

指定将用于输出要素类中高程值的测量单位。

  • METERS测量单位将为米。 这是默认设置。
  • KILOMETERS测量单位将为美国测量千米。
  • MILES测量单位将为美国测量英里。
  • YARDS测量单位将为美国测量码。
  • FEET测量单位将为美国测量英尺。
  • MILES_INT测量单位将为法定英里。
  • YARDS_INT测量单位将为国际码。
  • FEET_INT测量单位将为国际英尺。
String

代码示例

CalculateMotionStatistics 示例(独立脚本)

以下独立脚本演示了如何使用 CalculateMotionStatistics 函数。


# Name: CalculateMotionStatistics.py
# Description: Calculate speed, acceleration, and bearing for hurricane tracks.

# Import system modules
import arcpy

arcpy.env.workspace = "C:/data/Weather.gdb"

# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties 
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\Hurricanes.lyrx'

# MakeFeatureLayer converts the .lyrx to features
hurricanesInputLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Hurricanes_layer")

# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(hurricanesInputLayer, inputLyrx)

# Set local variables
trackField = "name"
out = "Hurricanes_MotionStats"

# Run Calculate Motion Statistics
arcpy.gapro.CalculateMotionStatistics(hurricanesInputLayer, out, trackField, 5, 
                                      ["SPEED", "ACCELERATION", "BEARING"],
                                      "GEODESIC")