一种基于时空信息的城市人口分布预测方法与流程

文档序号:18081484发布日期:2019-07-06 10:07阅读:171来源:国知局
一种基于时空信息的城市人口分布预测方法与流程

本发明属于数据挖掘与城市计算领域,涉及一种基于时空信息的城市人口分布预测方法。



背景技术:

城市人口分布一直是各行各业关注的重点,对于政府部门,掌握人口分布可以科学有效的管理人口,对于投资者可以合理规划产品分布等等。国家对人口的统计是基于人工统计,上级政府机构按照城市分区下发人口统计文书到最底层政府机构,最底层政府机构统计完各自区域人口数量又逐级上报人口数量,上报完成后由上级政府机构合并数据完成人口统计,然而这种方式,时间分辨率低,耗费时间周期长,无法提供城市实时人口数据。

中国专利cn108537265a公开一种基于夜间灯光遥感数据的城镇人口时空分布估计方法,该方法首先提取城镇区域的夜间灯光数据,然后对个城镇逐年人口数据进行建模并建立灯光总值和城镇人口时间上的回归方程并利用该回归方程进行人口数的预测;再根据已提取的城镇区域的夜间灯光数据值得出人口的粗略空间分布;最后对夜间灯光数据进行空间聚类,将空间位置邻近且灯光值相近的点聚为一类,得出聚类结果,统计每一类的灯光架权平均值,其值越高则表示与该类相对应的城镇规模越大。此方法虽然可以很好的预测城镇的人口规模,但是具有空间分辨率低,依赖于遥感灯光信息不够准确等特点。

中国专利cn109189949a公开了一种人口分布计算方法,首先,对待研究区中手机基站和在线人口分布热力图数据进行预处理。其中,对手机基站数据建立泰森多边形集合,记为s。将抓取到相对应区域的在线人口分布热力图的原始点数据,利用核密度法生成人口分布密度的栅格数据;其次,对集合s中每个地块寻找到相应的在线人口分布热力图极大值点;再形成极大值点数据集m;最后,利用点数据集m和点核密度算法生成新的人口热力图,此种方法依赖于手机基站的信令数据,然而基站的位置往往不是实际的位置,需要根据人口热力图计算,这就造成人口分布评估不准确等问题。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供了一种基于时空信息的城市人口分布预测方法,该方法能够实时、准确的预测城市人口的分布,并且成本较低。

为达到上述目的,本发明所述的基于时空信息的城市人口分布预测方法包括以下步骤:

1)设待预测用户分布的地理位置区域范围,根据待预测用户分布的地理位置区域范围获取该地理位置区域范围的电子地图;

2)根据数据资源所在网页数据获取的难易程度,设置爬虫爬取数据规范,所述爬虫爬取数据规范包括伪装头部信息、爬取网页速率及请求头部伪装信息,爬虫程序根据url获取用户信息页面,然后对获取的用户信息页面内容进行解析,以提取数据资源,所述数据资源包括用户id、用户评论日期、产品送达时间、用户购买过的商家id及商家位置坐标,最后将数据资源结构化后保存到数据库中的用户信息表中,并根据商家位置坐标在电子地图上标记出用户购买过的商家;

3)读取用户的id,再从用户信息表中找到与当前用户id相同的记录,并将用户id相同的用户作为一组用户;得一组用户id相同的记录;

读取各组用户曾经消费过的商家id、商家位置坐标及用户购买物品送达的时间,然后以各商家位置坐标为中心点,以用户购买物品送达的时间为圆心,绘制多个圆形区域;

4)设用户所在区域为各圆形区域所围成的公共交集区域,该公共交集区域由若干圆形区域圆周的交点以及弧段组成,其中,用户所在区域的范围坐标值p1包括该交点的经度值、纬度值以及相交的两个圆形区域组成,即p1(纬度坐标,经度坐标,圆形区域1,圆形区域2);

5)获取用户所在区域的最小外包矩形;

6)对步骤5)得到的最小外包矩形进行着色;当当前用户对应的最小外包矩形与其他用户对应的最小外包矩形重叠时,则将重叠区域的颜色加深一次;

7)判断是否遍历用户信息表中的所有用户,当没有遍历用户信息表中的所有用户时,则将用户信息表中没有处理的用户作为处理对象,并转至步骤3),直至遍历用户信息表中的所有用户为止,完成基于时空信息的城市人口分布预测。

步骤5)的具体操作过程为:

51)设有四个圆形区域圆周c1、c2、c3及c4的交点为a、b、c及d,以交点a为起始点作位置预测圆周的切线l1,由于交点a由两个圆形区域圆周相交而成,以a为基准点分别做经过ab、ad及ac的直线方程,设经过ab、ad及ac的直线分别为lab、lad及lac;

52)经过交点b、c及d分别做与l1平行的直线lb1、lc1及ld1,再分别计算直线lb1、lc1及ld1与直线lab、lad及lac的交点,判断计算得到的交点是否在线段ab、ad及ac内,当任一交点在线段ab、ad及ac内,则舍弃该交点对应的直线,当任一交点在线段ab、ad及ac内时,则将该交点作为候选点m,并记录该候选点m以及经过该候选点m的直线lx1,然后通过候选点m找到距离候选点m相邻的左右两个交点,其中,当候选点m为d时,相邻的候选点m相邻的左右两个交点分别为b和c,直线lx1为l2;

53)分别计算经过db和cd的直线方程,并计算圆形区域圆周c1及圆形区域圆周c2与直线l2的交点,其中,先计算圆形区域圆周c1与直线l2的交点,当只存在一个交点d时,则将交点d作为候选点m,该直线l2为外接矩形的另一条边,当存在两个交点n、d时,其中,一个交点d为候选点m,另一个交点n在圆形区域圆周c1上,计算交点n在线段cd上的投影,判断该交点n的投影点是否在线段cd内,当交点n的投影点在线段cd内时,则在线段cd内在圆形区域圆周c1上作平行于l1的切线,该切线即为外接矩形的另一条边;

54)求取与l1和l2垂直的直线的直线方程斜率,再求取直线l3和l4的直线方程,然后将l1、l2、l3和l4所围成的区域作为外接矩形,并求取该外接矩形的面积s;

55)重复步骤51)至54),直至遍历各所有交点为止,得各交点的不同方向切线的外接矩形面积,然后选取外接矩形面积最小时对应的外接矩形作为最小外包矩形。

本发明具有以下有益效果:

本发明所述的基于时空信息的城市人口分布预测方法在具体操作时,基于在线数据资源的获取,即采用网络爬虫技术获取数据资源,其中,所述数据资源包括用户id、用户评论日期、产品送达时间、用户购买过的商家id及商家位置坐标,再以此在电子地图上标记出人口可能出现的范围区域,并对预测的区域进行着色,以便观察电子地图上人口密度的情况,操作方便、简单,实时性及准确性较强,并且成本较低

附图说明

图1为本发明中网络爬虫获取用户数据的流程图;

图2为本发明中计算位置预测圆周交点时的示意图;

图3为本发明中计算相交位置区域最小外接矩形时的示意图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

本发明所述的基于时空信息的城市人口分布预测方法包括以下步骤:

1)设待预测用户分布的地理位置区域范围为(x1,y1),(x2,y1),(x1,y2),(x2,y2),根据待预测用户分布的地理位置区域范围获取该地理位置区域范围的电子地图,并保存到本地;

2)根据数据资源所在网页数据获取的难易程度,设置爬虫爬取数据规范,所述爬虫爬取数据规范包括伪装头部信息、爬取网页速率及请求头部伪装信息,爬虫程序根据url获取用户信息页面,然后对获取的用户信息页面内容进行解析,以提取数据资源,所述数据资源包括用户id、用户评论日期、产品送达时间、用户购买过的商家id及商家位置坐标,最后将数据资源结构化后保存到数据库中的用户信息表中,并根据商家位置坐标在电子地图上标记出用户购买过的商家;

网络爬虫架构如图1所示,共分为爬虫调度器、url管理器、页面加载器、html解析器及数据输出器,爬虫调度器主要负责协调和调度微博爬虫的各个模块,其核心功能有实现爬取微博数据的流程、控制其他模块的执行、模拟浏览器登录为页面请求添加headers信息、控制访问频率,避免反爬虫机制拒绝访问。

url管理器实现的功能主要有维护已经爬取的url列表和等待爬取的url列表,在得到新url之后,首先检查已经爬取的url列表,如果该url列表不在列表中,则将其添加到待爬取的url列表;

页面加载器根据爬虫调度器提供的headers信息以及url管理器提供的url,向数据资源拥有方服务器发出请求,获得所请求的html页面。同时页面加载器控制爬取页面加载频率,防止数据资源拥有方服务器压力过大,无法及时响应,或被服务器反爬虫机制拒绝访问;

html解析器对加载的页面进行解析,获得用户的数据,本发明中需要获得的数据主要有用户id、用户评论日期、产品送达时间、用户购买过的商家id及商家位置坐标等数据资源,在html解析过程中如果遇见用户匿名评论,则跳过此用户信息,不进行采集;

数据输出器输出html解析器解析后的数据,输出的数据被结构化后保存到数据库的用户信息表中。

3)读取用户的id,再从用户信息表中找到与当前用户id相同的记录,并将用户id相同的用户作为一组用户;得一组用户id相同的记录;

读取各组用户曾经消费过的商家id、商家位置坐标及用户购买物品送达的时间,然后以各商家位置坐标为中心点,以用户购买物品送达的时间为圆心,绘制多个圆形区域;

4)设用户所在区域为各圆形区域所围成的公共交集区域,该公共交集区域由若干圆形区域圆周的交点以及弧段组成,其中,用户所在区域的范围坐标值p1包括该交点的经度值、纬度值以及相交的两个圆形区域组成,即p1(纬度坐标,经度坐标,圆形区域1,圆形区域2)。

具体的,以各个商家位置为中心坐标画圆得出的圆的交点计算采用计算几何中的平面扫描方法计算,如图2所示,平面上由四个圆周c1、c2、c3及c4围成的区域,其中,有8个交点分别是p1-p8,使用平面扫描方法可以快速求出这些位置预测圆周相交的交点,具体步骤是,扫描线从左到右进行扫描,事件点由每个位置预测圆周最左侧点c和最右侧的点c1组成,处理方法分为两类,其中,

a)当该点为位置预测圆周最左侧的点,则将其放入存储队列q。

b)若该点为位置预测圆周最右侧的点,则按照次序和队列中的其他位置预测圆周进行求交点运算。

扫描线首先扫描到c1的左端点,因此将该位置预测圆周放入求交队列q中,其次,将c2和c3也依次加入到求交队列中,直到扫描到c1的右端点为止,则c1分别和队列中的其他元素进行求交运算,分别求出交点p1、p2、p3和p4,然后将c1移出队列q。

接着扫描到c2的右端点,则将c2和队列中的c3做求交运算,得出交点p5和p6,再将c2从q中移除。

继续扫描到c4的左端点,c4进入队列,扫描到c3的右端点,此时队列中只剩下c3和c4,则计算c3和c4的交点p7和p8,将c3移除队列,至此队列中剩下c4一个元素,当扫描到c4右端点队列为空扫描结束,通过之前的步骤位置预测圆周上的交点已经全部计算完毕,位置预测圆周区域交点个数num满足0≤num≤位置预测圆周个数。

在上述求位置预测圆周的交点的过程中不仅仅记录位置交点的坐标,同时也记录此交点是由那两个圆相交产生的,如图2所示p1是由c1和c3产生的,则记录交点为p1(lat,lng,c1,c3),其中lat为交点的纬度坐标,lng为交点的经度坐标。

根据观察可以发现,由多个位置预测圆周交点围成的公共区域即是用户最有可能所在的区域,只要求出公共区域由哪些交点围成,即可求出用户在电子地图上的位置,关于交点的求解关键步骤如下:

根据上述步骤依次计算交点到位置预测圆周圆心的距离d,其中,当d满足条件0≤d≤r时,则记录该交点,否则,则排除该交点。例如:如图2所示,已求出c1、c2、c3和c4的8个交点p1-p8,计算开始从p1到p8逐个遍历,交点数据结构中记录了此交点由哪两个圆相交产生,故每次计算可以减少计算量,对于p1直接计算p1到c2和c4圆心距离,两者d都超出0≤d≤r范围排除,接着计算p2,可知p2是由c1、c2和c3围成的区域坐标点,同理可得出c1-c4位置预测圆周相交区域是由p2、p3和p5所围成的区域,同时也可知此区域是由c1-c3圆周所围成的。

5)获取用户所在区域的最小外包矩形;

参考图3,步骤5)的具体操作过程为:

51)设有四个圆形区域圆周c1、c2、c3及c4的交点为a、b、c及d,以交点a为起始点作位置预测圆周的切线l1,由于交点a由两个圆形区域圆周相交而成,以a为基准点分别做经过ab、ad及ac的直线方程,设经过ab、ad及ac的直线分别为lab、lad及lac;

52)经过交点b、c及d分别做与l1平行的直线lb1、lc1及ld1,再分别计算直线lb1、lc1及ld1与直线lab、lad及lac的交点,判断计算得到的交点是否在线段ab、ad及ac内,当任一交点在线段ab、ad及ac内,则舍弃该交点对应的直线,当任一交点在线段ab、ad及ac内时,则将该交点作为候选点m,并记录该候选点m以及经过该候选点m的直线lx1,然后通过候选点m找到距离候选点m相邻的左右两个交点,其中,当候选点m为d时,相邻的候选点m相邻的左右两个交点分别为b和c,直线lx1为l2;

53)分别计算经过db和cd的直线方程,并计算圆形区域圆周c1及圆形区域圆周c2与直线l2的交点,其中,先计算圆形区域圆周c1与直线l2的交点,当只存在一个交点d时,则将交点d作为候选点m,该直线l2为外接矩形的另一条边,当存在两个交点n、d时,其中,一个交点d为候选点m,另一个交点n在圆形区域圆周c1上,计算交点n在线段cd上的投影,判断该交点n的投影点是否在线段cd内,当交点n的投影点在线段cd内时,则在线段cd内在圆形区域圆周c1上作平行于l1的切线,该切线即为外接矩形的另一条边,圆c2计算方式和c1计算方式相同;

54)求取与l1和l2垂直的直线的直线方程斜率,再求取直线l3和l4的直线方程,然后将l1、l2、l3和l4所围成的区域作为外接矩形,并求取该外接矩形的面积s;

55)重复步骤51)至54),直至遍历各所有交点为止,得各交点的不同方向切线的外接矩形面积,然后选取外接矩形面积最小时对应的外接矩形作为最小外包矩形。

6)对步骤5)得到的最小外包矩形进行着色;当当前用户对应的最小外包矩形与其他用户对应的最小外包矩形重叠时,则将重叠区域的颜色加深一次;

7)判断是否遍历用户信息表中的所有用户,当没有遍历用户信息表中的所有用户时,则将用户信息表中没有处理的用户作为处理对象,并转至步骤3),直至遍历用户信息表中的所有用户为止,完成基于时空信息的城市人口分布预测。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1