广州网页设计网站建设,成都手机网站开发,一般通过中间人转账是否违法,现在比较好的营销平台TransBigData是一个为交通时空大数据处理、分析和可视化而开发的Python包。本文就来用它实现个人手机定位分析#xff0c;感兴趣的小伙伴可以了解一下
但其实交通时空大数据并不仅仅局限于交通工具产生的数据#xff0c;我们的日常生活中也会产生大量的数据。比如我们的手机…TransBigData是一个为交通时空大数据处理、分析和可视化而开发的Python包。本文就来用它实现个人手机定位分析感兴趣的小伙伴可以了解一下
但其实交通时空大数据并不仅仅局限于交通工具产生的数据我们的日常生活中也会产生大量的数据。比如我们的手机记录了我们到访过的地点使用城市公交IC卡、共享单车等服务时服务供应商可以知道这些出行需求的时间和地点等等 本文作者依托《交通时空大数据分析、挖掘与可视化》一书中所介绍的相关技术开发了Python开源库TransBigData进行一次对手机信令数据的处理、分析和挖掘。 TransBigData简介
TransBigData是一个为交通时空大数据处理、分析和可视化而开发的Python包。TransBigData为处理常见的交通时空大数据如出租车GPS数据、共享单车数据和公交车GPS数据等提供了快速而简洁的方法。 目前TransBigData主要提供以下方法
(1)数据预处理对数据集提供快速计算数据量、时间段、采样间隔等基本信息的方法也针对多种数据噪声提供了相应的清洗方法。
(2)数据栅格化提供在研究区域内生成、匹配多种类型的地理栅格快学Python矩形、三角形、六边形及geohash栅格的方法体系能够以向量化的方式快速算法将空间点数据映射到地理栅格上。 (3)数据可视化基于可视化包keplergl用简单的代码即可在Jupyter Notebook上交互式地可视化展示数据。
(4)轨迹处理从轨迹数据GPS点生成轨迹线型轨迹点增密、稀疏化等。
(5)地图底图、坐标转换与计算加载显示地图底图与各类特殊坐标系之间的坐标转换。
(6)特定处理方法针对各类特定数据提供相应处理方法如从出租车GPS数据中提取订单起讫点从手机信令数据中识别居住地与工作地从地铁网络GIS数据构建网络拓扑结构并计算最短路径等。
TransBigData可以通过pip或者conda安装在命令提示符中运行下面代码即可安装 1 pip install -U transbigdata
安装完成后在Python中运行如下代码即可导入TransBigData包。 1 import transbigdata as tbd 手机信令数据读取
手机信令数据是指手机与通信基站之间交换的信息包括位置、通信时长、通信频次等数据。这些数据可以用于分析用户的出行行为、生活习惯等也可以用于城市交通管理、商业营销等领域。
使用Python开源库TransBigData可以快速高效地处理、分析、挖掘手机信令数据识别出行和停留、居住地与工作地等信息并绘制活动图以便于分析。 ▲ 手机信令数据的采集原理
首先我们将使用Python的pandas库来读取数据。Pandas是一款功能强大的数据处理库它提供了灵活的数据结构和数据分析工具可以轻松地对各种数据进行操作和分析。我们将使用Pandas读取包含手机信令数据的CSV文件并将其存储在一个Pandas的数据框中。
我们需要将时间字段转换为正确的格式以便进行后续的数据处理。我们使用Pandas的to_datetime函数将时间字段转换为datetime格式。然后后我们按照时间顺序对数据进行排序以便进行后续的数据处理 1 2 3 4 5 6 7 import pandas as pd import transbigdata as tbd data pd.read_csv(rdata/mobiledata_sample.csv) #确保时间列准确识别很重要 data[stime] pd.to_datetime(data[stime], format%Y%m%d%H%M) data data.sort_values(by [user_id,stime]) data.head()
结果如下图所示。 ▲ 手机信令数据概况 识别出行和停留
在处理手机数据时识别出行和停留是很重要的一步。基于手机识别出行和活动可以进一步进行路径分析、出行模式分析、人群分析等工作。
活动手机数据通过连续地追踪个体的出行轨迹可以构建出个体的出行链信息一般来说如果一个手机用户在某个位置停留了超过30分钟我们可以认为用户在这里发生了活动。 出行用户产生的连续两个活动如果产生的地理位置不同则可以认为用户发生了出行行为。出行的起点为连续两个活动中前一个活动的地理位置出行的开始时间为前一个活动结束的时间出行的终点则为后一个活动的地理位置出行的结束时间则为后一个活动开始的时间。简而言之用户在活动点与活动点之间的移动视为用户的出行。 ▲ 活动与出行识别思路
使用TransBigData提供的手机信令数据处理方法可以先将数据对应至栅格将同一个栅格内的数据视为在同一个位置以避免数据定位误差导致同一位置被识别为多个。然后可以使用tbd.mobile_stay_move函数从手机数据中识别出行和停留: 1 2 3 4 #获取栅格参数 params tbd.area_to_params([121.860, 29.295, 121.862, 29.301], accuracy500) #从手机数据中识别出行和停留 stay,move tbd.mobile_stay_move(data,params,col [user_id,stime,longitude, latitude])结果如下所示。 ▲ 停留识别结果 ▲ 出行识别结果 识别居住地与工作地
通过移动通信数据识别出用户的职住信息是研究的基础工作之一。TransBigData中以停留活动点为依据用tbd.mobile_identify_home方法可以识别居住地用tbd.mobile_identify_work则可以识别工作地。具体规则为
居住地识别规则为夜晚时段停留最长地点工作地识别规则为工作日白天时段停留最长地点每日平均时长大于minhour。
具体使用方法如下 1 2 3 #识别居住地 home tbd.mobile_identify_home(stay, col[user_id,stime, etime,LONCOL, LATCOL,lon,lat], start_hour8, end_hour20 ) home.head()
结果输出 ▲ 居住地识别 1 2 3 #识别工作地 work tbd.mobile_identify_work(stay, col[user_id, stime, etime, LONCOL, LATCOL,lon,lat], minhour3, start_hour8, end_hour20,workdaystart0, workdayend4) work.head() ▲ 工作地识别结果 绘制活动图
为了加深对手机用户的具体活动情况的理解我们可以用TransBigData提供的tbd.mobile_plot_activity方法将用户的每日活动情况绘制出来观察具体代码如下 1 2 3 #绘制某一用户的活动图不同颜色代表不同活动 uid fcc3a9e9df361667e00ee5c16cb08922 tbd.mobile_plot_activity(stay[stay[user_id]uid],figsize (20, 5))
输出结果 ▲ 单个用户的活动图
上图中绘制的是一个手机用户在观测时间段内每一天的活动情况横坐标为日期纵坐标为时间同一个位置的活动则以同样的颜色显示。从活动图中我们可以很清晰地看到这个用户每一个活动的开始与结束时间。
到此这篇关于基于Python实现个人手机定位分析的文章就介绍到这了。 50G学习视频教程 100Python初阶、中阶、高阶电子书籍 点击拿去