轨迹#
用于从点数据识别和分组轨迹的函数。
- cuspatial.derive_trajectories(object_ids, points: GeoSeries, timestamps)#
从对象ID、点和时间戳推导轨迹。
- 参数:
- object_ids
对象(例如,车辆)ID列
- pointsGeoSeries
轨迹的点
- timestamps
任意分辨率的时间戳列
- 返回值:
- 结果元组 (objects, traj_offsets)
- objectscudf.DataFrame
object_ids, xs, ys 和 timestamps,按
(object_id, timestamp)
排序,用于trajectory_bounding_boxes
和trajectory_distances_and_speeds
- traj_offsetscudf.Series
已发现轨迹的偏移量
示例
计算排序后的对象和已发现轨迹
>>> objects, traj_offsets = cuspatial.derive_trajectories( [0, 1, 0, 1], # object_id [0, 0, 1, 1], # x [0, 0, 1, 1], # y [0, 10000, 0, 10000] # timestamp ) >>> print(traj_offsets) 0 0 1 2 >>> print(objects) object_id x y timestamp 0 0 0.0 0.0 1970-01-01 00:00:00 1 0 1.0 1.0 1970-01-01 00:00:10 2 1 0.0 0.0 1970-01-01 00:00:00 3 1 1.0 1.0 1970-01-01 00:00:10
- cuspatial.trajectory_distances_and_speeds(num_trajectories, object_ids, points: GeoSeries, timestamps)#
计算多组轨迹的行驶距离和速度
- 参数:
- num_trajectories
轨迹数量(唯一对象ID)
- object_ids
对象(例如,车辆)ID列
- points: GeoSeries
一个点序列
- timestamps
任意分辨率的时间戳列
- 返回值:
- 结果cudf.DataFrame
- meterscudf.Series
轨迹距离(单位:公里)
- speedcudf.Series
轨迹速度(单位:米/秒)
示例
计算推导轨迹的距离和速度
>>> objects, traj_offsets = cuspatial.derive_trajectories(...) >>> dists_and_speeds = cuspatial.trajectory_distances_and_speeds( len(traj_offsets) objects['object_id'], objects['x'], objects['y'], objects['timestamp'] ) >>> print(dists_and_speeds) distance speed trajectory_id 0 1414.213562 141.421356 1 1414.213562 141.421356
- cuspatial.trajectory_bounding_boxes(num_trajectories, object_ids, points: GeoSeries)#
计算多组轨迹的边界框。
- 参数:
- num_trajectories
轨迹数量(唯一对象ID)
- object_ids
对象(例如,车辆)ID列
- points: GeoSeries
轨迹点序列
- 返回值:
- 结果cudf.DataFrame
每个轨迹的最小边界框(单位:公里)
- x_mincudf.Series
每个边界框的最小x坐标
- y_mincudf.Series
每个边界框的最小y坐标
- x_maxcudf.Series
每个边界框的最大x坐标
- y_maxcudf.Series
每个边界框的最大y坐标
示例
计算推导轨迹的最小边界框
>>> objects, traj_offsets = cuspatial.derive_trajectories( [0, 0, 1, 1], # object_id [0, 1, 2, 3], # x [0, 0, 1, 1], # y [0, 10, 0, 10] # timestamp ) >>> traj_bounding_boxes = cuspatial.trajectory_bounding_boxes( len(traj_offsets), objects['object_id'], objects['x'], objects['y'] ) >>> print(traj_bounding_boxes) x_min y_min x_max y_max 0 0.0 0.0 2.0 2.0 1 1.0 1.0 3.0 3.0