基于手机信令数据研究交通出行特征具体实现

这篇具有很好参考价值的文章主要介绍了基于手机信令数据研究交通出行特征具体实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        这学期期末智慧交通大作业,我选择使用手机信令数据研究人类交通出行特征,期间我也查阅了许多资料,但绝大多数帖子只有手机信令数据的应用方向,没有具体实现做法。经过一两周的探索,我大概根据数据和应用方向实现了具体的方法。但本人才学疏浅,也只能提供一些简单的解决思路与简单的处理数据方法,但我还是很愿意和大家一起分享,为同样被大作业折磨的同学提供一些思路和经验。

        我先测试一下能不能追更, 因为我一天肯定更不完~

        测试完成,可以编辑~好的,我先将我接下来要实现的方法目录放在下方,后续会慢慢更新具体的实现方法。

1.数据预处理

        老师给的数据很多,毕竟手机信令数据真的太庞大了,每个人每天能产生几十上百条数据都很正常,我使用的数据一共1048576条,这也是我电脑wps表格所能载入的最多的数据量。数据特征如下图。我将停留时间(秒)转换为停留时间(小时),多增加了一列,便于后续筛选。start_time是进入基站的开始时间。

基于移动信令数据,交通大数据,python

        以上是贵州省2017.2.26日的部分用户信令数据,数据量有限,所以并不完整。我主要介绍处理方法。 

1.1 数据清洗

        数据清洗:①字段有空的数据;②重复的记录;③数据标记为不正常数据;④事件类型错误的数据;⑤用户字段异常数据;⑥其他错误数据。

        我的数据无以上缺失现象,但有不完整用户出行点,需要删除。

        不完整用户出行点:删除只有一条居民记录并且时长小于4小时的用户数据记录,(用户仅有1条记录但停留时长大于4小时的说明用户在家,并未出行),如果用户仅有1条记录但停留时长小于4小时的说明用户出行但出行信息缺失了,这是无用数据,删除就行了,数据量也不大。

1.2 “乒乓切换”数据修正

        “乒乓切换”:用户没有移动但上传的数据连续使用周边两个或多个经纬度基站扇区。 数据特点:(1)单点停留时长较小;(2)前一次与后一次位置变更附着的基站位置与当前位置的夹角较小。

        处理方法:(1)对于已生成的未修正的数据轨迹,去除停留时长小于5秒的轨迹点;(2)对于同一用户的连续轨迹,若某一个轨迹点与其前一个出现的轨迹点以及后一个出现的轨迹点所构成的夹角均小于30度,则删除该轨迹点。

        第一步就直接用excel就可以完成。将筛选处理后的数据保留,接下来使用python代码进行处理30度夹角修正。

import numpy as np
import pandas as pd# 读取数据
from geographiclib.geodesic import Geodesic #计算夹角的库
excel_data=pd.read_csv('数据1.csv',header = None) 
print(excel_data.shape)
data_dataframe = pd.DataFrame(excel_data)
data_numpy = np.array(data_dataframe)
print(data_numpy.shape)
data_final = data_numpy[:,6:8]#经纬度数据 矩阵,根据经纬度的所在列适当修改就行

for i in range(2,541493):#根据行数目修改数据
    geodict1 = Geodesic.WGS84.Inverse(float(data_final[i-1][1]), float(data_final[i-1][0]), 
                                     float(data_final[i][1]), float(data_final[i][0]))
    #点1纬度、经度,点2纬度、经度
    geodict2 = Geodesic.WGS84.Inverse(float(data_final[i][1]), float(data_final[i][0]), 
                                     float(data_final[i+1][1]), float(data_final[i+1][0]))
    az1 = geodict1['azi1']
    az2 = geodict2['azi1']
    if az1<30 and az2<30:#30度角修正
        data_final[i]=['0' '0']

pandas_data1=pd.DataFrame(data_final,columns=['1','2'])
pandas_data1.to_excel('30度乒乓数据修正.xlsx',sheet_name='sheet1')

        运行代码后,若如果某一个轨迹点与其前一个出现的轨迹点以及后一个出现的轨迹点所构成的夹角均小于30度,表中会显示00。将运行后的数据替换原经纬度数据,删除包含00的数据点即可。

(这里没有区分不同用户的夹角,因为根据结果我发现,不同用户间的夹角都大于30度,所以就不存在这种误差了)

基于移动信令数据,交通大数据,python

1.3 异常漂移点数据修正

        基于常规轨迹算法计算后的轨迹数据,通常还会出现异常漂移点,再次运行30度夹角修正代码,删除异常漂移点数据即可。代码和上述代码相似。(这种方法虽然不够精确的识别出异常飘逸点数据,但也能够使用。更精确的方法可以自行查找论文和资料)

        数据量变化:

基于移动信令数据,交通大数据,python

         最终处理后,可用数据就是466221条。将此文件和后续文件都保存为csv文件,便于后续图表制作处理。

(由于excel最大行数限制,导入的原始数据并不完整,这些数据并不能覆盖整个贵州省,只有贵阳、遵义、安顺、黔南、黔东南、铜仁这几个城市的部分居民数据)

2.数据分析

        数据分析需要用到Arcgis软件,(Arcgis10.2版本链接我放在文章最后可自行选择下载),首先需要根据分析地区下载对应的shp地图。(下载shp地图可观看视频全国、省市区县shp下载_哔哩哔哩_bilibili 进行下载)

2.1 职驻地分析

        根据手机信令数据的接收信号时间与用户停留时间筛选分析,可识别居民常住地、固定工作地:(1)选择工作时段9:00- 11:30与14:00-17:00,筛选停留时间在2小时以上的数据整理成表,导入Arcgis,可制作居民工作地热力图;(2)选择夜间休息时段 0:00-5:00,筛选停留时间在4小时以上的数据整理成表,导入Arcgis软件,可制作居民常住地热力图。

        1.在arcgis中连接表所在的文件夹,拖入shp文件和两个csv文件,右击csv文件进行xy数据转换,根据经纬度转换即可。 

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

         2.在ArcToolbox内点击Spatial Analyst工具\密度分析\核密度分析,选择下图的按绘制顺序列出即可调换图层顺序,双击密度结果图层选择符号系统即可更改颜色,调节适当的分类颜色,最终结果如下图(数据结果仅供参考)。

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

         3.居住地人口热力图操作步骤与上述一致。获得结果图后可进行对比分析。

2.2 居民就业岗位分析

        选择某居民连续工作日的出行点进行分析,可大致分析居民的工作岗位,结合地图导航等工具,甚至能定位居民的工作地点、公司等。我的数据只有一天,所以就简陋进行猜测分析。

        在最终数据表中根据user id筛选出某位居民的出行数据,导入arcgis,即可得到该居民的出行点地图。右击csv文件进行xy数据转换,根据经纬度转换即可。根据始末出行点的经纬度标出始末点,然后调整颜色。

        1.更改背景颜色。在背景图地方右击选择数据框属性,点击框架更改背景颜色。

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

        2.标红始末点。导入仅含有始末两个点的数据表将其颜色设置为红色就行。再次导入此居民的全部出行点,注意图层位置。

基于移动信令数据,交通大数据,python

        根据该居民出行轨迹点图可大致推测,该居民工作为长途汽车司机,或者在该天出行旅游。

2.3 出行活动强度空间分析

        分别筛选白天与夜晚居民出行数据进行分析。白天时段为7:00-17:00,夜晚时段为0:00-5:00,并选择停留时间小于2小时的数据。分别将白天时段出行点与夜晚时段出行点数据导入arcgis,进行核密度分析。

        这里需要注意的是数据颜色的分段值,因为晚上出行人数比白天少很多,它自动分类的分割值是等分的,这样就没办法和白天的出行数据点进行对比,所以要根据白天的出行密度分割值,来改变夜晚密度颜色的分割值。

        双击要更改的数据,在图层属性界面点击分类,即可更改分割值。

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

         结果图如下。左图夜晚,右图白天。可据此进行分析。

基于移动信令数据,交通大数据,python基于移动信令数据,交通大数据,python

2.4 居民通勤/非通勤OD分析

2.4.1 居民通勤OD分析

        从数据集筛选出在上下班时间段(7-9点与17-19点)有出行记录的用户数据点,并将停留时长大于2小时的轨迹点作为起点和终点。 然后对用户的单个出行轨迹点进行起始与到达点合并。有两个轨迹点的用户即为一次出行,有3个轨迹点的用户即为2次出行,以此类推。

        所以我们需要居民把下一个基站记录的经纬度作为上一次出行的终点,需要先使用excel筛选出有重复值的居民出行点,再合并OD。这里合并用代码处理,用excel处理的话会使用户OD混乱。代码和结果如下。

#向OD表中写入终点信息
import pandas as pd
data= pd.read_csv(r"od.csv")
data_dataframe = pd.DataFrame(data)
data_numpy = np.array(data_dataframe)
print(data_numpy.shape)

for i in range(0,100957):     #注意自己的行数和列数进行修改
    if data_numpy[i+1][1]==data_numpy[i][1]:
        data_numpy[i][11]=data_numpy[i+1][6]
        data_numpy[i][12]=data_numpy[i+1][7]

#将矩阵写入excel表格
pandas_data1=pd.DataFrame(data_numpy)
pandas_data1.to_excel('od1.xlsx',sheet_name='sheet1')

基于移动信令数据,交通大数据,python

         将上表结果复制到OD表中,删除有空白的行,就可以得到完整的居民出行OD了。

        将上述表导入arcgis中,打开ArcToolbox——数据管理工具——要素——XY转线。根据信息选择OD点,线类型处可以选GREAT_CIRCLE,这样有些线可以自动换为弧形。

基于移动信令数据,交通大数据,python

         最后主要是对成果图进行美化。首先对线条按照流动量进行分级符号的设置。方法:右键图层—属性—符号系统—数量—分级符号。可根据自己需求选择分类的数量。(网上还有很多博主的帖子制作更好看的od图,可以自行搜索)

基于移动信令数据,交通大数据,python

基于移动信令数据,交通大数据,python

         该OD图根据出行距离进行分级色彩分类,颜色越红代表出行距离越远,颜色越绿代表出行距离越近。可据此进行分析。

2.4.2 非通勤OD分析

        选择不是通勤时段(除通勤时间外)的数据进行上述同样操作即可分析。

2.5 人口流入/流出分析

2.5.1 人口流入

        选出数据集中包含的城市机场(贵阳机场、遵义机场、安顺机场)附近区域,这里可以在机场经纬度附近小范围里进行筛选,如机场(109.87,25.76)可分别筛选经度109.85-109.89,纬度范围25.74-25.79,选择停留时间大于等于15分钟的轨迹点,作为在机场降落的省外人员起始点,并选出其轨迹终点(停留时间大于1小时),运用上面的写入终点经纬度的代码做出OD表格。

        然后就是把筛选出来的数据点导入arcgis制作OD图,操作和上面的OD图制作方法一样,我就不赘述了。这里展示一下结果图。

基于移动信令数据,交通大数据,python

 2.5.2 人口流出

        选出数据集中包含的城市机场(贵阳机场、遵义机场、安顺机场)并筛选出附近区域,选择停留时间大于等于15分钟的轨迹点,作为在机场降落的省外来员轨迹终点,然后选出其起始点(在某地停留时间大于2小时),运用上面的代码运行出OD结果表,导入arcgis制作OD图就可以了。

基于移动信令数据,交通大数据,python

2.6 交通方式识别

        筛选停留时间大于2小时的轨迹点作为某个用户的起始点与终点,计算该居民从O点到D点经历的时间,然后与之前整理的OD表整合,计算OD两点间的距离和平均速度,得到最终OD配速表,根据平均速度可大概分类其出行交通工具。

        (1)在之前整合的OD表里,利用excel计算该居民从O点到D点经历的时间,时间差的单位是小时(我是先换为秒再转换为小时,因为秒可以直接相减计算出来),便于速度的计算。

        (2)根据OD经纬度计算两点间距离。这里用代码解决。

import pandas as pd
import numpy as np
data= pd.read_csv(r"OD.csv")
data_dataframe = pd.DataFrame(data)
data_numpy = np.array(data_dataframe)
print(data_numpy.shape)

#根据经纬度计算距离
import math

R = 6371.393
Pi = math.pi

for i in range(0,7509): #注意修改shape和列数
# A地
    jingduA, weiduA= data_numpy[i][6], data_numpy[i][7]

# B地
    jingduB, weiduB = data_numpy[i][8], data_numpy[i][9]


    a = (math.sin(math.radians(weiduA/2-weiduB/2)))**2
    b = math.cos(weiduA*Pi/180) * math.cos(weiduB*Pi/180) * (math.sin((jingduA/2-jingduB/2)*Pi/180))**2

    data_numpy[i][12] = 2 * R * math.asin((a+b)**0.5)

# 单位是千米

#将矩阵写入excel表格
pandas_data1=pd.DataFrame(data_numpy)
pandas_data1.to_excel('od距离.xls',sheet_name='sheet1')

        运算结果出来后,将其复制整合到筛选的OD表中,利用excel公式计算平均速度。

        (3)我将居民的交通方式划分为7种:(1)0-10km/h:步行 (2)10-20km/h:自行车 (3)20-30km/h:电瓶车 (4)30-50km/h:公交车 (5)50-110km/h:汽车 (6)110-400km/h:火车+其他 (7)400-900km/h:飞机+其他。这里最低速度范围偏小是因为考虑到人还需要走路、赶路等时间,平均速度就慢了些。然后就根据计算的平均速度和这些工具速度筛选就可以知道交通方式了,计算不同交通方式的数量作图就可以分析。

     基于移动信令数据,交通大数据,python

         上面的图是我的结果,其实可以再将交通工具的最低速度范围设置小一些,因为人在路上走路啥的会拉低平均速度,所以我的结果不太准确。

————————————————————————分割线

        接下来的分析方面是我同伴做的分析,因为老师给出的手机信令数据中还含有每个人的移动流量套餐数据,所以她探究了一下影响话费套餐的因素,以及景点受欢迎度分析,大致目录如下。下面的方面我就大概说一下方法,具体过程不详细说明,因为也不是我做的。

2.7 空间自相关分析

        想要判断贵州省每个移动用户的话费套餐是否存在空间自相关(也就是在空间上是否相关联),先要将花费套餐从字符串转化为数值,由于数据中的套餐是一个范围,在这里取平均值将其转化为数值,例如将“150-200元”表达为“175”,将“100-150元”表达为“125”。如图,标记出来的arpu2即为转化后的数据。

基于移动信令数据,交通大数据,python

         为了结果数据的准确性,对用户名即user_id进行去重处理,去重处理之前先筛选出0:00到6:00时段的用户,因为这个时间段的用户极大概率在居住地。将得到的excel表导入ArcGIS进行空间自相关分析即可。空间自相关可自行搜索如何操作,也是arcgis里一个比较简单的步骤就是了。生成报表如下。

基于移动信令数据,交通大数据,python

         从结果图可知,Z为0.824643,P值为0.409574,表明移动话费套餐金额空间分布并不存在显著的空间关系。

2.8 影响话费套餐因素的主成分分析

        由于移动话费套餐金额空间分布并不存在显著的空间关系,这里进一步探讨动话费套餐金额与什么因素有关,本部分用到SPSS进行分析。为方便计算,在之前修改过的分析数据的基础上,再次进行修改。 将性别里的 “男”改为数值“1”,“女”改为数值“2”,年龄同与话费金额的处理方法一样,取平均值,例如将字符串“31到50岁”改为数值“35”。将该excel表导入SPSS软件,进行主成分分析(可自行查找资料)。本步对sex、age、longitude和latitude四个特征进行分析。

        分析结果如下图所示。

基于移动信令数据,交通大数据,python

         再结合碎石图,可知性别和年龄是影响移动话费套餐金额的主要成分。

2.9 x市景点受欢迎度分析

        为方便分析,在规划云网站上选取了贵阳市的景点poi,得到了景点名称、经纬度和地址,将其导入excel表,再导入ArcGIS MAP中。基于移动信令数据,交通大数据,python

      这里选择了人口密度集中的城市进行分析,选择的是贵州省的省会城市贵阳市的六个行政区白云区、乌当区、云岩区、南明区、观山湖区和花溪区。根据年龄将用户分为三个部分(14岁以下和15至20岁的用户数据量较少,故不纳入分析范围):年轻人(21至40岁)、中年人(41至60岁)和老年人(60岁以上)。导入ArcGIS MAP后将各景点表示为红色菱形。基于移动信令数据,交通大数据,python

         (1)对年轻人的聚集程度进行分析:

        利用点密度分析工具(核密度的下面就是点密度了)得到的人口聚集程度结果图,观察结果图可知在花溪区年轻人聚集密度更大,将图层进一步放大就可以得出受年轻人欢迎的景点。

基于移动信令数据,交通大数据,python

         (2)对中年人的聚集程度进行分析:

        利用点密度分析工具得到的人口聚集程度结果图,观察结果图可知在花溪区年轻人聚集密度更大,将图层进一步放大就可以得出受中年人欢迎的景点。

        (3)对老年人的聚集程度进行分析:

        利用点密度分析工具得到的人口聚集程度结果图,观察结果图可知在花溪区年轻人聚集密度更大,将图层进一步放大就可以得出受老年人欢迎的景点。

————————————————————————正文完

        大概分析方面如上述所示,我会在接下来的一段时间里慢慢更新具体的实现方法。如果大家关注到了本篇帖子,并且迫切想知道具体如何实现,可以在评论区催更哦~因为我自己时不时更新的话速度可能会有些慢,毕竟这也快过年了哈哈哈。所以如果有感兴趣的小伙伴记得向我催更!我收到了消息动力也会up的!如果大家有其他的更好的方法实现也欢迎与我在评论区讨论~

Arcgis10.2版本安装包(百度网盘):

链接:https://pan.baidu.com/s/1B8cjBET46aedL4Nq6VoHVA 
提取码:zxsm

        到这里就差不多更新完了!我有些地方说得比较简略,如果有疑问的朋友可以在评论区留言~文章来源地址https://www.toymoban.com/news/detail-603686.html

到了这里,关于基于手机信令数据研究交通出行特征具体实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据毕业设计:智慧交通数据分析系统 python 时间序列预测算法 爬虫 出行速度预测 拥堵预测(源码)✅

    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌ 毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)

    2024年02月22日
    浏览(44)
  • Python | 基于LendingClub数据的分类预测研究Part01——问题重述+特征选择+算法对比

    欢迎交流学习~~ 专栏: 机器学习深度学习 本文利用Python对数据集进行数据分析,并用多种机器学习算法进行分类预测。 具体文章和数据集可以见我所发布的资源:发布的资源 问题一: 在数据集 lending-club 中筛选不同属性,确定至少三组对应训练集及测试集,选用同一种机器

    2023年04月08日
    浏览(29)
  • 公开景区监控——缓解交通拥堵,优化出行体验

    阚昊宇 XXXXXXXXXXXXX 随着疫情时代过去,旅游需求不断增长,节假日热点景区的人流量持续攀高。在节假日调休机制的共同影响下,旅游景区内人群密度不断增加。5月3日,携程发布的《2023年五一出游数据报告》显示,五一假期用户飞行距离达四年巅峰,出游半径较去年同期增

    2024年02月03日
    浏览(40)
  • 从物联网到智慧交通:让城市出行更美好,共创安全、高效的出行新篇章

    目录 一、物联网技术:智慧交通的基石 二、智慧交通系统的优势:提高效率,降低成本 三、物联网在智慧交通中的应用实例 四、物联网与智慧交通的未来展望 五、物联网与智慧交通如何改变我们的生活方式 六、安全、高效的出行:物联网与智慧交通的共同目标 七、智慧交

    2024年01月24日
    浏览(39)
  • “优化”城市出行体验——山海鲸智慧交通解决方案

    随着城市化进程的不断加速,城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。 山海鲸可视化 打造城市智慧交通系列解决方案模板,解决方案以“ 数字 孪生 技术 ”为核心,通过数据分析、人工智能和物联网技术来优化城

    2024年02月07日
    浏览(37)
  • 基于单片机的智能交通控制系统研究

    摘 要:随着汽车保有量不断增加,对交通提出新的要求和挑战,针对愈发拥挤的交通、有限的资源和环境的压力,需积极消 除依附原有滞后方法满足交通需求,选用合理、高效的交通控制手段,优化和改善交通控制运行现状,是当下控制的重点内 容。结合交通实际需求,以

    2024年02月22日
    浏览(38)
  • 智能车辆与人工智能:构建未来出行的智能交通体系

    作者:禅与计算机程序设计艺术 在未来的出行中,智能车辆将成为最具决定性的角色。无论是用在出租汽车、打车还是共享单车,都将越来越多地融入到生活中,促进人们的出行模式的升级换代。未来智能车辆还会涉及各种新的应用场景,如通勤或特殊的交通工具。如此之多

    2024年02月06日
    浏览(50)
  • EI&Scopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)

    会议简介 Brief Introduction 2023年智能交通与未来出行国际会议(CSTFM 2023) 会议时间:2023年7月28日-30日 召开地点:中国长沙 大会官网: CSTFM 2023-2023 International Conference on Smart Transportation and Future Mobility(CSTFM 2023) 由同济大学和CoreShare科享学术交流中心协办的2023年智能交通与未来出行

    2024年02月05日
    浏览(38)
  • 基于数据挖掘技术的手机消费行为分析的研究与实现(论文+源码)_jsp_236

    摘要 本文首先研究并介绍国内外目前的背景和现状,在此基础上给出论文的主要研究内容,其次,对数据挖掘技术手机消费行为系统的需求进行了分析。再次,对数据挖掘技术手机消费行为系统进行了总体设计,根据其总体设计、软件架构和总体功能模块进行了详细设计,作

    2024年02月04日
    浏览(37)
  • 目标检测YOLO实战应用案例100讲-基于深度学习的交通标志小目标检测与识别研究

    目录 前言 目标检测算法相关理论  2.1 深度学习理论基础  2.1.2卷积神经网络 

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包