Geolife数据集基本分析与001轨迹绘图

从一个老师那里第一次了解还有这样的一个数据集,老师给我的任务就是对这个数据集进行一下简单的操作,那我就想着001号人物的运动轨迹画出来吧

Geolife数据集简介(https://www.microsoft.com/en-us/download/details.aspx?id=52367

 这个GPS轨迹数据集是在182名用户(2012年8月)的时间里(2007年4月在(微软亚洲研究)格里夫项目中收集的。该数据集的GPS轨迹由一系列时间戳点表示,每个点都包含纬度、经度和高度的信息。该数据集包含17621条轨迹,总距离为1292951公里,总持续时间为50176小时。这些轨迹是由不同的GPS记录器和GPS电话机记录下来的,并且有各种不同的采样率。91.5百分比的轨迹被记录在一个密集的表示形式中,例如。每1~5秒或每5~10米每点。这个数据集记录了大量用户广泛的户外活动,不仅包括回家上班的生活习惯,还有一些娱乐和体育活动,如购物、观光、餐饮、徒步旅行和骑自行车。该轨迹数据集可以用于许多研究领域,如移动模式挖掘、用户活动识别、基于位置的社交网络、位置隐私和位置推荐。尽管这个数据集被广泛地分布在超过30个数据集中。

数据格式:

此数据集的每个文件夹都存储用户的GPS日志文件,这些文件被转换为PLT格式。 每个PLT文件包含一个轨迹,并以其起始时间命名。 为了避免时区的潜在混淆,我们在每个点的日期/时间属性中使用GMT,这与我们以前的版本不同。

这就是这个数据集的基本内容

对001号人物的运动轨迹进行绘图

创建一个新的项目,名称为geoproject,我的思路是既然这个数据集是记录他们的维度和经度,那就可以画出他们由维度和经度构成的平面图

#数据集的 维度 经度 高度 日期 时间
#
#
import os
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
lat = []#维度
lng = []#经度
#总路径
path = os.getcwd()+"\\Geolife Trajectories 1.3"+"\\Data"+"\\003"+"\\Trajectory"
#001的路径
#print(os.listdir(os.getcwd()+"\\Geolife Trajectories 1.3"+"\\Data"+"\\003"+"\\Trajectory"
plts_001 = os.scandir(path)
#每一个文件的绝对路径
for item in plts_001:
    path_item = path+"\\"+item.name
    with open(path_item,'r+') as fp:
        for item in fp.readlines()[6::600]:
            item_list = item.split(',')
            lat.append(item_list[0])
            lng.append(item_list[1])

lat_new = [float(x) for x in lat]
lng_new = [float(x) for x in lng]
plt.ylim((min(lat_new),max(lat_new)))
plt.xlim((min(lng_new),max(lng_new)))

plt.title("003轨迹测试")
plt.xlabel("经度")#定义x坐标轴名称
plt.ylabel("维度")#定义y坐标轴名称
plt.plot(lng_new,lat_new)#绘图
plt.show()#展示

虽然这是一个简短的代码,由于我长时间没用过python了,导致以前的犯的错误又犯了一次。

打开文件时路径问题

 path = os.getcwd()+"\\Geolife Trajectories 1.3"+"\\Data"+"\\003"+"\\Trajectory"

画图时中文显示乱码

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

字符串和数字的类型搞混了

 lat_new = [float(x) for x in lat]
lng_new = [float(x) for x in lng]

最终的结果还行

但缺陷就是,这个数据集太大了,我的电脑不能一下处理太多的数据,所以,我就利用切片割了600个数据取一个经纬度,最终化成了这个图。

通过这个小例子,这也暴露出自己的弱点,自己python的知识点给忘记了,绘图库也忘记了、numpy也忘记了,总之好多知识都忘记了。从现在开始要慢慢拾起来这些知识,以后的学习肯定能用到。

  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值