python处理出租车轨迹数据_基于出租车GPS轨迹数据的研究:出租车行程的数据分析...

数据

Reddit用户imjasonh和fhoffa解析了原始数据 ,该模式如下所示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE5NjAwMjkx,size_16,color_FFFFFF,t_70wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

每次骑行都有非常具体的上/下车位置以及开始/结束时间的详细信息。 下面显示了一个示例 :

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE5NjAwMjkx,size_16,color_FFFFFF,t_70wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

我们留下了158,320,608个出租车行程的数据集,分为32,654个不同的起点/终点。

自1987年以来,位于东79街和约克大街的出租车站一直

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,给您提供基于转弯角度的出租车轨迹数据划分的 Python 代码示例,代码如下: ``` import numpy as np import pandas as pd def compute_turn_angles(df): angles = np.zeros(len(df) - 2) coords = df[["Longitude", "Latitude"]].values for i in range(1, len(coords) - 1): p0 = coords[i - 1] p1 = coords[i] p2 = coords[i + 1] v1 = p0 - p1 v2 = p2 - p1 dot = np.dot(v1, v2) det = np.linalg.det([v1, v2]) angles[i - 1] = np.arctan2(det, dot) angles = np.abs(angles) * 180 / np.pi angles = np.insert(angles, 0, 0) angles = np.append(angles, 0) return angles def segment_by_angles(df, angles, angle_threshold): segments = [] coords = df[["Longitude", "Latitude"]].values start_idx = 0 for i in range(1, len(coords) - 1): if angles[i - 1] > angle_threshold: end_idx = i segment = coords[start_idx:end_idx + 1] segments.append(segment) start_idx = end_idx if start_idx < len(coords) - 1: segments.append(coords[start_idx:]) return segments # 示例代码的使用 df = pd.read_csv("taxi_data.csv") angles = compute_turn_angles(df) segments = segment_by_angles(df, angles, angle_threshold=30) ``` 上述示例代码中,compute_turn_angles 函数首先计算了每个时间步态的出租车坐标系以及转弯角度。这里采用的方法是计算每个相邻时间步态之间形成的向量,并且通过叉积和点积的乘积来计算转弯的角度。segment_by_angles 函数根据提供的阈值,将车辆行驶的具有强烈转弯的轨迹划分成多个段,并最终返回轨迹段的集合列表。 值得注意的是,这里的示例代码可能会因为 Excel 或 CSV 文件的格式不同,而无法直接运行。但是,您可以按照示例代码的思路和方法,根据您自己的数据格式来修改代码适用于您自己的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值