温馨提示:没有设置星标的小伙伴可能会收不到文章的推送信息,欢迎各位新老朋友给【hello trans】加个星标,以便及时获得最新推文,感谢支持。本篇内容主要介绍下如何将手机信令数据进行处理,最后绘制成OD图。一个典型的手机信令数据记录可能包含如下字段:
- Event Type:事件类型(如呼叫开始、位置更新等)。
- Duration:对于通话事件,记录通话持续时间。
- Call/SMS Direction:对于通话或短信事件,记录是发出还是接收。
- Data Volume:对于数据会话事件,记录使用的数据量
由于原始的手机信令数据通常包含敏感的个人信息,因此在进行研究或商业应用之前,通常需要对数据进行脱敏处理,比如去除或加密个人身份信息,以保护用户的隐私。
关于手机信令数据的结构就不多做赘述,简单而言就是身份编号、时间、地点,记录了某个人某个时间在某个地点。
为了便于演示手机信令数据的操作,这里分享一位大佬的个人网站,里面有开源的手机信令数据,同时也包含了出租车、公交车GPS数据。
网址:
https://people.cs.rutgers.edu/~dz220/data.html
这个数据集的手机信令数据结构如下:
第一列是经过处理的唯一标识、第二列是时间、第三列是经纬度信息。数据为txt文件,1.5GB,共16亿行。
这个量级的数据,我的小霸王电脑着实吃不消。为了演示方便,将该文件进行拆分。
定义了一个函数,第一个参数就是要处理的文件名,第二个参数是输出文件的前缀,第三个参数是拆分的份数。拆分后每个文件的大小变为了157MB左右。
然后,以第一个拆分数据为例进行处理。想要得到OD,首先需要提取出行链,先对第一列的编号ID进行排序,然后在第一列排序的基础上再对第二列的时间进行排序。
排序完成后,同一编号,按照时间顺序的经纬度信息就非常明显地体现出出行者的出行轨迹。由于该数据集的时间只记录了一天,因此直接提取同一编号下的开始时间、开始的经纬度、结束的时间、结束的经纬度。
最后结果如下:
第一列是ID,第二列是开始时间,第三、四列是开始的经纬度,第五列是结束的时间,第六、七列是结束的经纬度。
https://ni1o1.github.io/ODview/build/
由B站up主小旭学长开发,可以对OD数据进行快速可视化,效果美观。
需要注意的是,经纬度信息需要设置正确,然后count这里设置为1。以下是可视化的效果:代码获取方式:点击左下角【阅读原文】,即可跳转至下载链接。欢迎大家评论区留言,沟通交流,共同进步。
感谢阅读本期内容,如果您觉得有帮助,动动您的手指头,【点赞】+【在看】,这是对我最大的支持和鼓励,非常感谢!!!