赞
踩
T-Drive trajectory data sample - Microsoft Research
- 图1显示了两个连续点之间的时间间隔和距离间隔的分布情况。
- 平均采样间隔约为177秒,平均距离为623米。
- 该数据集的每个文件以出租车ID命名,每个文件包含了一辆出租车的轨迹数据。
图2可视化了该数据集中GPS点的密度分布情况。
出租车id,时间,经度,维度
- import os
- os.chdir(数据所处的路径)
- files=os.listdir()
-
- import pandas as pd
- gps_data=pd.read_csv(files[0],names=['taxi_id','time','latitude','longitude'])
-
-
- for file in files[1:]:
- tmp=pd.read_csv(file,names=['taxi_id','time','longitude','latitude'])
- gps_data=pd.concat([gps_data,tmp])
-
-
- gps_data
- gps_data1=gps_data.sort_values(by=['taxi_id','time'],ignore_index=True)
- gps_data1
- gps_data1.drop_duplicates(inplace=True,ignore_index=True)
- gps_data1
我们先看一下目前数据经纬度的最大最小值
- max(gps_data1.latitude),min(gps_data1.latitude)
- #(116.69568, 0.0)
-
- max(gps_data1.longitude),min(gps_data1.longitude)
- #(255.3, 0.0)
0这种显然不合理
——>我们只保留一定经纬度范围内的数据
- gps_data1=gps_data1[(gps_data1['latitude']>39.83)&
- (gps_data1['latitude']<40.05)&
- (gps_data1['longitude']>116.17)&
- (gps_data1['longitude']<116.62)]
- gps_data1
- import osmnx as ox
-
- beijing_road=ox.graph_from_bbox(40.05,39.83,116.62,116.17,network_type='drive')
ox.plot_graph(beijing_road,figsize=(15,15),show=False,close=False,node_size=4)
- import matplotlib.pyplot as plt
- latitude = gps_data1.latitude.to_list()
- longitude = gps_data1.longitude.to_list()
- #将gps点的经纬度提取出来
-
-
- fig,ax = ox.plot_graph(beijing_road,figsize=(15,15),show=False,close=False,node_size=4)
- #可视化路网
- ax.scatter(longitude[:100000],latitude[:100000],s=0.5,alpha=1,c='red')
- #在路网中投影10万个坐标点
- plt.show()
- for i in set(gps_data1.taxi_id):
- latitude = gps_data1[gps_data1.taxi_id==i].latitude.to_list()
- longitude = gps_data1[gps_data1.taxi_id==i].longitude.to_list()
-
- #投影
- fig,ax = ox.plot_graph(beijing_road,figsize=(15,15),show=False,close=False,node_size=1)
- ax.scatter(longitude,latitude,s=5,alpha=1,c='red')#投影10万个坐标点
- plt.title('Trajectory for taxi '+str(i))
- plt.show()
。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。