注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mister.Hu(巷里人家)

Go abroad!

 
 
 

日志

 
 
关于我

A campus photograph palyer,an enthusiastic reader,a solitary writer,a future traffic engineer.

网易考拉推荐

第二模块实施步骤  

2015-02-10 01:39:47|  分类: Junior |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.  将原始数据导入到ACCESS中。

原始数据有:

1)第一模块得到的一定时间段内一定路段的手机用户信令数据。格式如下图,图中假定这些数据都是8:00-10:00(这里取了两个小时)在武汉-孝感路段上的用户数据。

2)基站相关数据。

2.  导入数据后,生成新表“基站数据”、“手机数据”。切换到表的设计视图,将字段数据类型改好。

3.  对每一个用户对应的信令数据的条数进行计数,并剔除为1的,SQL语句如下:

SELECT 手机数据.手机伪码, Count(*) AS 数目

FROM 手机数据

GROUP BY 手机数据.手机伪码

HAVING (((Count(*))>1));

保存查询为“信令数据条数计数查询”。

4.  建立“基站数据”、“手机数据”、“信令数据条数计数查询”三者之间的关系,如下图:

5.  新建生成表查询得出步骤3中筛选出的数据的其余相关字段。SQL语句如下:

SELECT DISTINCT 手机数据.*, 基站数据.基站经度, 基站数据.基站纬度 INTO 运算数据

FROM (手机数据 INNER JOIN 基站数据 ON 手机数据.基站 = 基站数据.基站) INNER JOIN 信令数据条数计数查询 ON 手机数据.手机伪码 = 信令数据条数计数查询.手机伪码;

保存查询为“得出符合条件的数据集合”,保存生成表为“运算数据”。

6.  建立查询,按时间筛选出最靠近路段起终点的信令数据,SQL代码如下:

SELECT 运算数据.手机伪码, Max(运算数据.时间) AS [时间终点] , Min(运算数据.时间) AS [时间起点] INTO 运算数据时间筛选

FROM 运算数据

GROUP BY 运算数据.手机伪码;

保存查询为“按时间筛选出最靠近路段起终点的信令数据”,保存生成表为“运算数据时间筛选”。

7.  基于“运算数据时间筛选”和“运算数据”两个表,建立查询分别得出两张新表,SQL如下:

SELECT 运算数据.基站经度 as 起点经度, 运算数据.基站纬度 as 起点纬度, 运算数据.基站 as 起点基站, 运算数据时间筛选.手机伪码, 运算数据时间筛选.时间起点 into 起点表

FROM 运算数据时间筛选 INNER JOIN 运算数据 ON 运算数据时间筛选.时间起点 = 运算数据.时间;

SELECT 运算数据.基站经度 as 终点经度, 运算数据.基站纬度 as 终点纬度, 运算数据.基站 as 终点基站, 运算数据时间筛选.手机伪码, 运算数据时间筛选.时间终点 into 终点表

FROM 运算数据时间筛选 INNER JOIN 运算数据 ON 运算数据时间筛选.时间终点 = 运算数据.时间;

两张新表为“起点表”“终点表”,两个查询保存为“得出起点数据表”“得出终点数据表”。

8.  基于手机伪码建立“起点表”“终点表”的关系,然后建立生成表查询生成新表“起终点数据”,查询保存为“得到起终点数据”。SQL语句如下:

SELECT 起点表.手机伪码, 起点表.起点基站, 终点表.终点基站, 起点表.起点经度, 起点表.起点纬度, 终点表.终点经度, 终点表.终点纬度, 起点表.时间起点, 终点表.时间终点 INTO 起终点数据

FROM 终点表 INNER JOIN 起点表 ON 终点表.手机伪码 = 起点表.手机伪码;

9.  对时间进行拆分处理:建立计算字段,使用left()、mid()、right()函数对起终点数据表中的时间起点与时间终点进行截取。得到新的字段“起点时”、“起点分”、“起点秒”以及“终点时”、“终点分”、“终点秒”

10.对时间进行整合:建立计算字段,选择类型为时间/日期,使用TimeSerial([起点时],[起点分],[起点秒])及TimeSerial([终点时],[终点分],[终点秒])得到新字段“起点时间”及“终点时间”。

11.在起终点数据表中增加一个“时间差”的字段,建立更新查询,SQL语句如下:

UPDATE 起终点数据 SET 时间差 = datediff('s',起点时间,终点时间);

得出起终点时间差(S),查询保存为“求时间差”。

12.导出数据到EXCEL表中,利用公式:

6371004*ACOS(1-(POWER((SIN((90-起点纬度)*PI()/180)*COS(起点经度*PI()/180)-SIN((90-终点纬度)*PI()/180)*COS(起点经度*PI()/180)),2)+POWER((SIN((90-终点经度)*PI()/180)

输入到EXCEL表格中,可根据起终点经纬度求出起终点距离。

 

  评论这张
 
阅读(21)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016