精华内容
下载资源
问答
  • 由于时空数据量的激增,基于位置的服务和应用的普及,以及从时空数据中提取知识以解决广泛的现实问题的重要性,在过去十年中,在空间和时空数据分析领域进行了大量的研究和开发工作。现有作品的主要目标是开发算法和...
  • 该项目的目的是研究时空数据的多步提前预测中的两个方面: 动态模型与静态模型:我们将比较几种静态模型和动态模型的性能。 动态模型都具有递归神经网络作为其体系结构的一部分。 在这些模型中,先前时间步长中的...
  • 时空数据分析算法及其应用研究 空间和时间是现实世界最基本 最重要的属性 许多空间应用系统都需要表 达地学对象的时空属性 例如在地理位置变更 环境监测 城市演化等领域都需 要管理历史变化数据以便重建历史跟踪变化...
  • 针对联合作战对多维战场环境数据的需求,提出基于网格剖分的地空一体化战场时空数据组织模型。采用圈层网格剖分思路实现空间剖分,向时间维扩展,设计时空一体的网格编码;设计场和对象相结合的战场时空数据网格化组织...
  • 基于校园时空数据的朋友关系特征挖掘,张凤,吴旭,高速发展的校园网络提供了海量的隐含时空属性的学生行为特征数据,然而现有的挖掘方法大多只针对校园消费数据特征进行低维度分析
  • 时空 R类和时空数据的方法。 看: Pebesma,E.,2012年。时空:R。Ratio时空数据统计软件杂志 。 包
  • 时空数据模型是研究地学时空过程的基础数据设施条件。在介绍时空数据模型的研究进展的同时也讨论了当前主要时空数据模型的优缺点。时空数据模型根据其建模思路主要地可分为4类,即着重于描述时空状态序列的过程模型...
  • 地理信息的超图时空数据挖掘探究.pdf
  • 通过对土地利用时空对象变更的考察,指出纯粹以事件或事件序列方式构建的时空数据模型在时空要素关联和事件因果关系表达上存在的不足,提出以过程为核心的时空数据模型PBSTDM。该模型能反映时空对象的演变过程,以及在...
  • 按照时空数据模型对时间和空间的表达方式,将时空数据模型分为基于时间的时空数据模型和基于空间的时空数据模型。提出了一种新的基于时空数据预测用户社交联系的模型,该模型将基于时间的时空数据集的特征和基于空间...
  • 时空数据挖掘的相关技术点汇总和分析,可以参考一下,
  • 时空数据集 收集时空数据集以用于网络科学,深度学习和通用机器学习研究。 内容 匈牙利的水痘病例 描述 匈牙利每周水痘(儿童疾病)病例的时空数据集。 该数据集由一个县级邻接矩阵和2005年至2015年之间的县级报告...
  • MATLAB函数,用于对时间间隔均匀的时空数据执行动态模式分解(DMD)。 简单来说,它将数据分解为具有固定频率和增长率/衰减率的振荡时空模式。 资料来源 该脚本基于Steven L. Brunton和J. Nathan Kutz在“数据驱动的...
  • 时空数据模型简介分析.ppt
  • 智慧城市空间信息服务平台技术规范——时空数据建库.pdf
  • 时空数据模型概念及分类。 课程设计论文,部分摘抄,引用已说明。 仅供参考,内容正确与否自己判断。
  • 大数据 进行数空数据挖掘 可以参考一下, 还可以
  • 机器学习—时空数据

    千次阅读 2018-11-30 16:39:51
    机器学习—时空数据 @(数据)[机器学习] 背景 早期的数据挖掘主要针对字符、数值型的商业数据,随着信息技术的不断提高以及移动设备和网络的广泛使用,数据产生的速度越来越快,数据的手机频率越来越高,数据密度的...

    机器学习—时空数据

    @(数据)[机器学习]

    背景

    早期的数据挖掘主要针对字符、数值型的商业数据,随着信息技术的不断提高以及移动设备和网络的广泛使用,数据产生的速度越来越快,数据的手机频率越来越高,数据密度的增长越来越显著,这些因素都使得大数据问题成为一种必然的趋势。而在大数据时代下很多商业数据都包干有时间和空间信息,比如设备、建筑、机构等的管理,能力的产生,分布及预测等。

    Alt text


    第一部分:背景

    • 1-面向大数据的时空数据挖掘的重要性:

    20世纪90年代中后期,数据挖掘领域的一些较成熟的技术,如关联规则挖掘、分类、预测与聚类等逐渐用于时间序列挖掘数据和空间结构数据挖掘,以及发现与时间或空间相关的有兼职的模式,并且得到了快速发展。信息网络和手持移动设备等的普遍应用,以及遥感卫星和地理信息系统等的显著进步,使人们前所未有的获得了大量的地理科学数据。这些地理科学数据通常与时间序列相互关联,并且隐含许多不易发现的、又潜在有用的模式。从这些非线性、海量、高纬和高噪音的时空数据中提取出有价值的信息并用于商业应用,使得时空数据挖掘具有额外的特殊性和复杂性。因此,虚招有效的时空数据分析技术对于时空数据中有价值的时空模式的自主抽取与分析具有重要意义。
    近年来,时空数据已成为数据挖掘的研究热点,在国内外赢得了广泛关注。同时,时空数据挖掘也在许多领域得到应用,如交通管理、犯罪分析、疾病监控、环境监测、公共卫生与医疗健康等。时空数据挖掘作为一个新兴的研究领域,正致力于开发和应用信息的计算技术来分析海量、高纬的时空数据,发掘时空数据中有价值的信息。

    • 2-面向大数据的时空数据的挑战。

    尽管时空数据挖掘研究在近几年引起人们的广泛关注并得到快速发展,但与传统数据挖掘相比,时空数据挖掘研究还远未成熟。随着时空数据采集效率的不断提高,时空数据积累越来越大,时空数据挖掘也面临诸多挑战。

    • 3-理论框架

    相较于传统的数据挖掘技术,时空数据挖掘研究还远未成熟。对于结构复杂且形式多样的时空数据,如何寻找合适的数据挖掘算法或者技术,可以挖掘什么有价值的模式,如何对这些模式进行分析?这些问题的解决都迫切需要构建一个时空数据挖掘的理论框架。清晰定义的理论框架将会给该研究领域带来理论上的指导,一方面可更好地理解时空模式需要具备的表达能力,另一方面有助于剔除更有效的实现技术。

    • 4-大户数管理

    近年来,传感器网络、移动互联网、射频识别、全球定位系统等设备的快速发展和广泛应用,造成数据量的爆炸式增长,数据增加的速度远远超过现有的处理能力。虽然以MapReduce和Hadoop为代表的大规模并行计算平台的出现,为学术界提供了一条研究大数据问题的新思路,单这些技术也有其固定的局限性。一方面,时空数据本质上是非结构化数据,不仅包含时间序列模型,还存在地图模型,例如城市网络、道路网络等。基于地图模型的算法时间复杂度通常比较大,对时空数据的存储管理和索引技术要求比较高。另一当面,MapReduce计算模型的组织形式和数据处理方法不适合处理时空数据模型;Hapoop技术也无法有效支持数据挖掘中监督学习所用的迭代式计算方法,因此无法完全满足时空数据分析的需求。这些对学术界和工业界来说都是一项巨大的挑战。因此,为了分析处理时空大数据,迫切需要更可靠、更有效和更实用的数据管理和处理技术。

    • 5-时空数据融合

    社交网络、遥感和传感器等设备的普遍应用产生了海量的时空数据,并且每种设备生成的数据和数据形式各不相同,形成了时空数据结构复杂且来源多样性的特性。此外,互联网的蓬勃发展,在文字、音频和视频等多媒体数据中同样包含了丰富的时空数据。例如,广泛覆盖城市的监控摄像头,记录了道路车辆的轨迹信息,从视频中可以还原出被监控车辆的移动轨迹,所以,对时空数据进行有效整合、清晰、转换和提取是时空数据预处理面临的严重问题。

    • 6- 时空推理和数据挖掘的深度结合

    **时空数据中的事件关系和空间关系通常比较复杂,尤其很多课度量的和不可度量的事件关系和空间关系都是隐含在时空数据中,这就需要在数据挖掘系统中介个时空推理加以考虑这些复杂的时空关系。**时空推理和数据挖掘的深度结合,一方面可以发掘更多的时空模式及信息,增强时空模式的可理解性;另一方面可以显著提高挖掘的效率和质量。但有利亦有弊:挖掘数据中隐含的时空关系必然会引入某种程度的不确定性和模糊性,这将很大程度上影响数据挖掘的结果。因此,结合时空推理和数据挖掘需要适当折中模型表达能力和时空推理能力。

    如上所述,时空数据的挖掘的应用非常广泛,如交通运输、地址灾害监测与预防、气象研究、竞技体育、犯罪分析、公共卫生与医疗及社交网络应用等。这里我们简单介绍两个时空数据的应用案例,借此了解一下时空数据挖掘在现实生活中的实际应用。

    案例一

    第一个案例是关于亚特兰大某地区如何根据1997年到2005年的人口普查数据从而选择2006年需要新建银行分行的地点。我们收集的数据包括:
    1)、该滴入的地理信息
    2)该地区从1997年到2005年已有银行的分布的位置情况,包括每个分行的具体地址等;
    3)、该地区从1997年到2005年的人口统计信息,包括区域ID,人口密度,家庭收入,男女比例,人种该比例等。
    通过时空数据预测分析,我们可以根据往年银行分布的发展趋势预测数该城市银行分行在下一年及2006年的分布密度,同时可以根据该城市家庭收入预测出2006年的客户需求,从而得出基于时空数据的银行分行的供求关系,继而确定需要在下一年新建银行分行的准确地点,即选择供不应求的地点进行银行新建。

    案例二

    第二个案例是基于意见发生在US-DC的一个真实的犯罪历史的犯罪模型分析。这则犯罪事故共发生犯罪事件816起,犯罪类型包括吸毒(167起),抢劫(97起)和车辆盗窃(552)起,发生事件从2009年1月到2010年3月,涉及10个区域和23条主要街道。我们得到的数据包括地图信息,三种犯罪类型的统计信息以及该地区的人口统计信息,包括人口密度,家庭收入,男女比例,人种比例等。通过时空数据关联规则分析,我们可以根据每种犯罪事件发生的时间和地点得出该种犯罪类型和特定时间段和地理位置的关联关系,比如周末在公路附近多发生吸毒事件等。同时我们还可以从时空数据分析中得到非时空数据的关联关系,比如人口密度小的地区多发生抢劫时间等。

    第二部分:理解

    时空数据理解

    与传统的数据挖掘一样,不管时空数据分类预测,时空数据关联规则挖掘还是时空聚类,获取足够的时空数据并充分理解这些数据的特征及属性是时空数据挖掘的先决条件。时空数据,顾名思义,必然包括与时间序列相关的数据以及与空间地理位置相关的数据,另外时空数据挖掘还必须包含要分析预测或者虚招关联规则的事件数据,也就是在特定时间和空间下发生的具体事件。

    • 1-时间数据的理解

    时间数据是指和时间序列相关的数据,表述了目标事件随时间的不同而发生的变化。现实中数据常常与时间有关,按时间顺序取得的一系列观测值就被称为时间序列数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。如我国国内生产总值从1949到2009的变化就是时间序列数据。对时间序列数据进行更深一步的分析和处理,对人类社会、科技和经济的发展有重大意义。时间序列数据可作年度数据、季度数据、阅读数据等细分,甚至以周、天、时、分、秒为周期,其中很有代表性的季度时间序列模型就是因为其数据具有四季一样变化规律,虽然变化周期不尽相同,但是整体的变化趋势都是按照周期变化的。

    从上述案例一种,该地区从1997到2005年已有银行分行的位置分布情况和人口统计信息就是时间序列数据,找出该地区银行分行从1997到2005年之间随时间的发展趋势,从而预测下一年的分布情况是时空数据分析预测的重点之一。在案例二中,从2009年一月到2010年3月发生的犯罪事件也包含了时间数据,我们需要进一步分析犯罪事件发生的事件周期(以月为周期,还是以周甚至是天为周期),从而更准确地挖掘出该犯罪事件的发生和时间的关联关系。

    • 2-空间数据的理解

    空间数据是指用来表示空间实体的地理位置和分布特征等方面信息的数据,表述了空间实体或目标事件随地理位置的不同而发生的变化。空间数据是数据的一种特殊类型,他是指带有空间坐标的数据,这类数据通常是地图文件,用点、线、面以及实体等基本空间数据结构来表示。一个地图文件通常只包含一种类型的空间数据结构,比如面(代表国家或地区),线(代表道路或河流)或点(代表特定的地址)。如果想要比较复杂的地图文件,其中包含多种空间数据结构的话,通常需要多个地图文件叠加来获得。除了地图信息,空间数据还包括地图信息的背景数据,用来描述地图文件上的对象属性。比如,一个地图文件包含街道,那么久需要相应的背景数据来描述该街道的大小,名字或者一些分类信息(分行道、单行道、双行道等)
    上述案例一种,亚特兰大某地区的地理信息及地图文件就是空间数据,描述了该地区的拓扑结构,以多边形来表示该地区的不同区域。同样,在案例二中,地图信息就是空间数据,描述了该市的空间地理分布情况,用多边形表示该市的10个不同地区,用线表示该市的23条主要街道。

    • 3-事件数据的理解

    事件数据是指事务性的数据,表述了在某个时间区间某个地理范围之内所发生的事件。事件数据通常和时间数据相关,甚至时间数据本身同时也是事件数据,都是某个时间序列上发生的一系列时间。不同的是,事件数据的关注点是目标事件发生的时间。或者说是时间序列数据中的时间变量,而事件数据的关注点是某个时间序列发生的事件。事件数据一般不会和地图文件直接相关,而是包含坐标值来关联时间数据和地图文件。事件数据的每一条记录通常都指的是某个特定的人或事,并且包含和该人或事相关的其他信息,比如该人或事的具体地理位置。
    上述案例一中,该地区从 1997 年到 2005 年已有银行分行的位置分布情况就是事件数据,描述银行分行的地理位置,并包含坐标值和该地区的地图文件相关联。在案例二中,从 2009 年 1 月到 2010 年 3 月发生的犯罪事件同时也是事件数据,描述不同的犯罪类型,吸毒、抢劫和车辆盗窃,分别发生在斯波坎市的不同区域。

    第三部分:数据预处理

    时空数据预处理

    时空数据结构复杂且来源多样,在充分理解了时间数据,空间数据和事件数据的特征、属性及他们之间的关联关系的基础上,整合、清洗和转换不同来源的时空数据,使得他们符合特定时空数据挖掘算法的要求,是时空数据预处理面临的重要问题。本节我们将结合 IBM SPSS Modeler 详细介绍时空数据预处理的方法和步骤。

    • 1-时间数据预处理

    时间序列数据结构复杂且来源多样,如何将不同来源的时间序列数据合并并用于时空数据分析,是时空数据预处理面临的首要问题。不同时间序列数据的时间起点及时间间隔都不尽相同,想要合并多个时间序列数据就必须要求每个时间序列数据具有相同的时间间隔,这就需要对各个时间变量的时间间隔进行构建。在 IBM SPSS Modeler 中,时间间隔的构建有两种方法,汇总和填充。
    汇总是一个经常用于减小数据集大小的数据准备手段。执行汇总之前,应该花一些时间来清理数据,尤其要关注缺失值。一旦完成汇总,或许会丢失可能有用的缺失值信息。我们可以选择基于指定的汇总函数来汇总时间间隔较小的数据,不同类型的数据可以用不同的汇总函数。连续性时间变量可以通过均值、合计、众数、最小值和最大值来汇总,而离散型变量则可以通过众数、第一个和最后一个汇总组中的非空值来汇总。
    填充是用于替换字段值的一种方法,也可以用来将空白值或空值指定为特定值。我们也可以选择基于指定的填充函数来替换字段值,同样,不同类型的数据可以用不同的填充函数。连续性时间变量可以使用"最近点的平均值",即将要创建的时间周期之前的三个最近非空值的均值来替换或者填充新的字段值,而离散型时间变量则可以用将要创建的时间周期之前的最近非空值来替换或者填充新的字段值。
    在将多来源的时间序列数据合并的过程中,我们需要根据指定的时间间隔来选择汇总或者填充时间字段。例如,如果有以周和月为单位的混合数据,则可以对周值进行汇总或"累计",以获得均匀的月间隔。或者,也可以将间隔设置为周,并通过为所有缺失周插入空白值或使用指定的填充函数外推缺失值来填充序列。

    • 2-空间数据的预处理

    我们已经知道,空间数据是数据的一种特殊类型,它是指带有空间坐标的数据,用点、线、面以及实体等基本空间数据结构来表示。但是空间坐标有不同的表达方式,有些空间数据的坐标是多个单维坐标形式,如用三个单独的字段 x, y, z 分别表示三维坐标; 有些空间数据的坐标是一个多维坐标形式,如用一个列表[x, y, z]来表示三维坐标。既然涉及坐标,就必然会关系到坐标系,而不同空间数据的坐标系往往不同。另外,和时间数据一样,空间数据来源多样,每个空间数据的基本数据结构都不尽相同,如何关联多种类型的数据结构同样是空间数据预处理面临的重要问题。
    首先来看多个单维坐标字段和一个多维坐标字段之间的转换,这个过程通常比较简单。在 IBM SPSS Modeler 中,这个过程只需要组合多个单维坐标字段即可实现,例如,直接用组合单独的坐标字段 x, y, z,返回的派生字段即为列表[x, y, z]。
    任何一个空间数据,不管是地图,坐标还是经纬度值,都会关联一个坐标系。坐标系定义了坐标值的原点,单位,正方向等,是坐标值的参照系。坐标系的种类很多,大体可以归纳为两大类,地理坐标系和投影坐标系。地理坐标系,是球面坐标系统,以经纬度为地图的存储单位的。投影坐标系,是平面坐标系统,其地图单位通常为米。要得到投影坐标就必须得有一个"拿来"投影的球面坐标,然后才能使用算法去投影,即每一个投影坐标系统都必须要求有地理坐标系参数。坐标转换是空间实体的位置描述,是从一种坐标系统变换到另一种坐标系统的过程,通过建立两个坐标系统之间一一对应关系来实现。在 IBM SPSS Modeler 中,我们可以选择一个或者多个坐标转换的地理字段,指定要转换的坐标系,从而实现多个地理字段统一坐标系的目的。
    如上所述,一个空间数据或地图文件通常只包含一种类型的空间数据结构,如果想要比较复杂的地图文件,其中包含多种空间数据结构的话,通常需要多个地图文件迭加来获得。比如,我们有面图表述某地区的不同区域和线图表述该地区的河流街道,那么如何得到不同的河流街道和各个地区之间的位置关系呢?在 IBM SPSS Modeler 中,我们可以通过位置函数来获得不同类型的空间数据结构之间的位置关系。例如,用 close_to()来确定某条河流是否靠近某个地区,用 distance()来获得两个地区或者两条街道之间的距离等。

    • 3-事件数据的预处理

    事件数据是时空数据挖掘的主题,它的每一条记录都是特定的人或事,并且包括该人或事的相关信息,特别是发生的地理位置。事件数据的预处理通常是指和时间数据或者空间数据的整合,以便获得最终可以直接应用于时空数据挖掘算法的数据。具体内容详见下节时空数据的融合。

    时空数据的融合

    上文我们已经了解了时空数据来源多样且结构复杂,不管是时间数据、空间数据还是事件数据都有其自身的特征和属性,如何融合各种数据并把结果展示出来对时空数据挖掘至关重要。

    • 1-时空数据的融合

    时空数据的融合通常是通过合并时间数据、空间数据和事件数据来完成的。数据合并的方法很多,可以按记录顺序合并,可以通过多个数据共有的关键字来合并,还可以根据自定义的条件进行合并。按关键字或者自定义条件合并又可分为内连接,全外连接,部分外连接等。
    事件数据和时间数据的融合可以通过关键字,譬如区域 ID 号,邮政编码,事件发生时间等来实现。例如,在上述案例一中,我们可以设置区域 ID 号或者时间字段为关键字来融合从 1997 年到 2005 年的银行分行分布数据和人口统计数据。
    由于涉及空间地理位置,事件数据和空间数据的融合通常按照事件数据进行左外连接。在 IBM SPSS Modeler 中,这种左外连接还结合位置函数来获得事件发生的地点和空间数据结构之间的位置关系。例如,在上述案例二中,我们要融合犯罪事件文件和斯波坎市的地图文件,可以选择犯罪事件为主数据对犯罪事件和地图文件进行左外连接,用位置函数 close_to()来查找某种犯罪事件发生的地点和斯波坎市街道在某个特定范围内的临近关系,或者用位置函数 within()来定位某种犯罪事件是否发生在某个特定区域。

    第四部分:结束语

    大数据时代下,随着数据收集效率的不断提高和时空数据挖掘的快速发展,很多不同来源的商业数据都包含有时间和空间信息,比如设备,建筑,机构等的管理,能量的产生,分布及预测等。如何结合时空数据和其他商业数据,并且通过对时间和空间属性的观测分析获得决定性的认知从而优化决策就显得至关重要。本文通过介绍面向大数据的时空数据挖掘的重要性及面临的挑战,详细描述了运用数据挖掘工具 IBM SPSS Modeler 对时空数据的理解、预处理,融合及展示,为下一步进行时空数据的建模预测以及关联规则的挖掘奠定了基础。

    引用

    http://bigdata.51cto.com/art/201611/520751.htm

    展开全文
  • 在计算机视觉领域,对抗网络(GANs)在生成逼真图像方面取得了巨大的成功。最近,基于GAN的技术在基于时空的应用如轨迹预测、事件生成和时间序列数据估算中显示出了良好的前景。
  • 在NoSQL技术专场,京东智能城市研究院的李瑞远博士给大家带来了《京东城市时空数据引擎JUST的架构设计与应用实践》的主题报告,受到了大家的广泛关注。 李瑞远博士的个人简介:李瑞远,博士,京东城市时空数据组...

    受疫情影响,第十一届中国数据库技术大会(DTCC 2020)从原定的5月份,推迟到了8月份,再推迟到了12月份。尽管如此,依然没有减退国人对数据库技术的热情。2020年12月21日-12月23日,北京国际会议中心人头攒动,各大厂商争奇斗艳。在NoSQL技术专场,京东智能城市研究院的李瑞远博士给大家带来了《京东城市时空数据引擎JUST的架构设计与应用实践》的主题报告,受到了大家的广泛关注。

    李瑞远博士的个人简介:李瑞远,博士,京东城市时空数据组负责人,京东智能城市研究院研究员,京东智能城市事业部数据科学家,负责时空数据平台架构设计、时空索引与分布式相结合研究、时空数据产品的研发、以及时空数据挖掘在城市场景的落地等工作。加入京东之前,在微软亚洲研究院城市计算组实习/工作4年。研究兴趣包括:时空数据管理与挖掘、分布式计算和城市计算。在国内外高水平期刊和国际会议上发表论文20余篇,包括:KDD、Artificial Intelligence、ICDE、AAAI、TKDE、WWW、UbiComp、软件学报等。申请专利20余项。现为中国计算机学会(CCF)会员、CCF数据库专委会通讯委员、IEEE会员。先后担任多个国内外顶级会议或期刊的论文审稿人。

    JUST简介:时空数据蕴含着丰富的信息,能够应用于各种城市应用。但时空数据更新频率高、数据体量大、结构复杂,难以被高效存储、管理和分析。单台机器显然无法应对海量数据的场景,而分布式查询处理框架例如Spark、Hadoop等,由于缺乏有效的时空索引和时空分析算法,因此难以高效地处理时空数据。京东城市时空数据引擎JUST采用先进的数据建模方法、数据存储技术、分布式索引技术和分析技术,预置了多种有效的时空挖掘算法,能够帮助人们便捷高效地管理海量时空数据。基于JUST连续两次获得了ACM SIGSPATIAL十年影响力大奖,发表了国际顶级论文20余篇,申请了专利30余项。JUST已为多个智能城市项目提供支持,在新冠防疫中也发挥了重要作用;在京东内部,JUST在双十一亿万级订单和海量物流轨迹场景下得到了验证。

    下面对本次演讲内容做出整理,内容已经获得了演讲者的确认。

    各位朋友们大家好!非常感谢大家参加本次的汇报,也非常感谢大会的举办方对我的邀请。我叫李瑞远,来自于京东智能城市研究院,大家可以通过百度直接搜索我的名字,第一个链接应该就是我。今天给大家带来一个小众但又非常普遍的数据库——京东城市时空数据引擎JUST。说它小众,是因为大家可能没有听过时空数据库,在此我做一个调研,大家知道有哪些厂商都在做时空数据库吗?(现场只有一两人举手)其实,一些GIS厂商在做时空数据库,一些互联网厂商也在做时空数据库。说它普遍,是因为它的的确确能够解决我们身边的很多问题,与每个人的生活息息相关。严格意义上讲,JUST目前还不能叫时空数据库,因此我们称之为时空数据引擎。

    我的汇报将从以下四个方面进行展开。

    随着5G、IoT技术的发展,产生了海量的时空数据。时空数据简而言之,就是具有时间属性和空间属性的数据。这些时空数据大体可分成三类。第一类是我们打开手机地图看得到的地图矢量数据;第二类是卫星遥感影像的数据;第三类就是城市的感知数据,包括车上的GPS数据、手机跟基站进行交互的信令数据、以及我们在社交媒体上的签到数据。大家进入咱们的会议中心时,使用北京健康宝扫描了二维码,其实也是一种签到数据。这些时空数据能够应用到很多城市应用中。由于时间关系,我只举一个例子。在疫情防控中,如果某地发现了新冠确诊病例,我们就可以通过北京健康宝的签到数据,找到所有在这段时间范围内到过该地的那些人,并重点对这些人进行排查,实行保护措施,防止疫情的扩散。

    时空数据具有以下四个特点:

    首先,时空数据的体量非常大。大家都说,现在是大数据时代,而现实世界中,80%的数据都与地理位置相关。这就要求咱们的时空数据引擎具有很强的扩展性。

    第二,时空数据的数据结构非常复杂。这表现在两方面。1)时空数据的类型是多种多样的,像北京国际会议中心,在地图上就是以点的形式存在;道路是以线的形式存在;而一个小区,在地图上是以面的形式存在;还有以时序的形式存在,比如空气质量站点,每隔一小时就会有一个读数;甚至还有以网状的形式存在,比如一个车联网,两辆车之间很近就能形成一条边。2)时空数据是一个高维的数据,它至少有3维:时间,经度和纬度。这就要求咱们的时空数据引擎能够支持各种类型的时空数据。

    第三,时空数据的查询模式非常独特。不同于关系型数据库很多查询是以值作为过滤条件那样,时空数据的查询模式通常是空间范围查询,例如,找到过去一个小时经过北京国际会议中心周围1公里范围内的那些车;或者是最近邻查询,例如,找到离我最近的出租车。这就要求咱们的时空数据引擎拥有特殊的索引结构。

    第四,时空数据的更新频率很高。例如,GPS点每隔2秒就可能产生一个新的读数,手机信令也是连续不断地产生数据。这就要求咱们的时空数据引擎能够实时接入数据,并且能够支持数据更新。

    现在其实涌现了很多时空数据平台。

    第一类是现有关系型数据库的扩展,例如PostGIS、Oracle Spatial、MySQL Spatial等,能够支持时空数据的管理和查询。但这类时空数据平台最初是面向单机版进行设计的,当数据量很大例如超过1T时,系统往往就难以工作了,因此它们面临着扩展性的问题。

    为解决海量数据的问题,涌现了很多分布式的平台,例如Hadoop、Spark以及HBase。但是这些平台本身并没有时空索引,在没有时空索引的情况下,如果执行一个KNN查询,例如找到与我最近的出租车,系统将会扫描所有的记录,计算每条记录与我的距离,然后按照距离排序,返回与我最近的k条记录,这样效率将会非常低下,面临着严重的效率问题。

    于是,我们就想,能否在这些分布式平台中构建时空索引呢?主要有三类代表。Spatial Hadoop在Hadoop之上构建了时空索引,能够管理海量的时空数据。但是,大家都知道,即使对一个Job来说,Hadoop都会触发多次的磁盘读写,导致效率比较低下。为解决Hadoop的问题,Spark尝试着将数据尽量缓存到内存中,GeoSpark正是在Spark上构建了时空索引。但是实际情况中,内存资源是非常宝贵的,通常情况下,项目可能就只有3台机器,要求你管理海量的时空数据,因此,GeoSpark也会面临着扩展性的问题。另一类代表是基于Key-Value的分布式时空数据平台,将数据还是存储到了磁盘,并通过一些索引组件,例如GeoMesa,对时空数据进行索引。我们的系统JUST也是属于这类的。但是,原生的GeoMesa + NoSQL比较难使用,开发人员需要深入了解它的开发手册,才能对时空数据进行管理;另一方面,GeoMesa + NoSQL也缺乏一些时空分析函数,需要开发人员自己来从头开始编写很多时空分析函数,因此这类时空数据管理系统面临着易用性的问题。

    最后一类系统是对时空数据进行可视化。现在有很多前端组件,例如Leaflet和Mapbox,能够将时空数据在地图上进行展示;还有很多后端组件,例如GeoServer,能够发布一些GIS服务。但是对时空数据的可视化,不仅仅是说要展示数据本身,还要展示数据的深层含义,这就要求与底层的时空分析联动起来。例如,当我们有2000多辆车,我们首先需要实时接入每辆车的轨迹数据,然后通过地图匹配技术确定每辆车在哪条道路上,当某条道路上有很多数据时,可能还需要自动地进行聚合,否则前端非常容易造成卡顿。现有的GIS可视化平台缺乏与底层算法进行联动的功能,因此会面临着分析渲染的问题。

    为了解决上述问题,我们提出了京东城市时空数据引擎JUST,JUST正是英文名字JD Urban Spatio-Temporal Data Engine各单词的首字母缩写。JUST提供了一个集时空数据存储、管理、挖掘、可是分析、服务提供等一体化解决方案。 图中展示了JUST的基本框架,最下面是JUST-DB,可以理解为数据库,它对时空数据进行建模、存储、索引,以高效支持查询;JUST-DM中封装了很多时空数据挖掘的算法;JUST-TS对时序数据进行分析可视化;JUST-GIS对GIS数据进行分析可视化;右边的任务管理模块,统一管理JUST的任务,包括实时任务和定时任务;为了更好地对外提供服务,我们还有JUST-Service模块;最右边是部署运维监控模块,保障我们系统的稳定运行。与前面所说的现有的时空数据平台的四点不足对应,JUST平台具有扩展性强、效率高、易用性好、分析渲染快等特点。接下来,我将详细介绍我们是如何实现的。

    前面提到,时空数据结构非常复杂,种类非常繁多,如果我们对每种时空数据单独构建一张表,采用独立的存储分析方法,这将造成我们的设计成本非常大,维护也非常困难。为此,我们将按时空数据之间是否有关系将时空数据分成点数据和网数据;进一步,对于点数据和网数据,按照时间、空间的动态、静态特性划分成三类数据,因此共划分成了2×3=6种数据类型,所有的时空数据都可以用其中的一种进行建模。我们对每种时空数据,设计了最佳的索引结构,封装了完备的分析挖掘算法,这大大地降低了我们对时空数据的管理成本。这体现了JUST对时空数据种类的扩展性强方面。

    另一方面,JUST原生使用了多种分布式框架,这里列出了几个重要的框架,例如:我们采用HBase作为底层的存储引擎,Spark作为执行引擎,GeoMesa作为索引工具。

    这是我们JUST-DB的技术框架图,由图可知,我们还用到了很多其他的分布式组件,并且把它们有机地整合在了一起(注:标记有问号的模块是规划中的模块)。采用了分布式组件,能够让JUST支持海量的时空数据,扩展性很强。

    我们还为时空数据设计了新的存储模式。以轨迹数据为例,前面提到,我们使用HBase作为底层存储,HBase是一种Key-Value的数据库。传统使用Key-Value数据库存储轨迹的方法是,每个GPS点存储为一条记录,一条轨迹由很多GPS点组成,从形态上看,轨迹是竖着存储的,我们称这种存储方式为垂直存储。垂直存储方式有几个不好的地方:首先,每个GPS点存储为一条记录,记录的数目与GPS点的个数相同,会造成数据的条目数非常多;其次,轨迹的GPS点分散了存储,难以对轨迹进行压缩,最终造成空间的占用会很大,从而导致查询的效率变慢;第三,对于每条记录而言,一条记录并没有表示轨迹的完整信息,这不利于后来的轨迹查询和分析,例如我们想要查询相似轨迹,需要考虑整条轨迹的信息,而非只是一个GPS点。为了解决这三个问题,我们提出了一种新的轨迹存储方案,我们称为水平存储方案。如右边表所示,我们首先对轨迹进行分段,得到很多子轨迹,然后将每条子轨迹的所有GPS点存储在Key-Value数据库中的一个网格中。这样做的好处包括:首先,记录的条目数不再与GPS点的数目直接相关,而是与子轨迹的数据相同,大大的减少了数据条目数;其次,一条子轨迹的GPS点存放在了一起,便于我们对数据进行压缩,减少数据的存储空间;第三,每条记录包含了完整的轨迹信息,这就方面我们对轨迹的分析和查询。这里,我们需要注意的是,在Key-Value数据库中,索引是指对键的设计,而非关系型数据库中类似于B+树等结构。我们采用了空间换时间的策略,每张逻辑表在底层存储了多张物理表,每张物理表的值相同,但键不一样,以高效支持不同类型的查询。此外,键至于当前的记录有关,而与其他的记录无关,也就是说,当轨迹进行插入时,我们无需修改现有的记录,能够高效支持轨迹的插入更新。

    注意有一列叫Signature,我们称之为轨迹签名。通常情况下,我们是用轨迹的最小包围盒子(也就是MBR)来表示轨迹的位置信息的。但这会造成一些问题。如图所示,轨迹其实穿过了它的最小包围盒子的很小的一部分,也就是说,最小包围盒子其实不能完整的表示其位置信息。为了解决这个问题,我们对最小包围盒子进一步平均划分成n×n的网格,同时对应于一个n×n的二进制序列。当轨迹中至少有一个GPS点落在了其中的网格中,那么对应的二进制位设为1,否则设为0。这样,我们就能够更加精确地表示轨迹的位置信息。更精确的位置信息也为我们提供了更多的查询优化空间。

    总而言之,我们为轨迹设计的新的存储模式,空间占用更少,能够更好地支持各种时空查询,而且效率更高。

    此外,我们还为时空数据设计了新的时空索引结构。前面提到,我们采用的是NoSQL的Key-Value数据库。Key-Value数据库只能存储一维的索引,但是咱们的时空数据至少有三维的属性:经度,纬度,时间。这就需要将三维的信息转化到一维。在GeoMesa中,采用的是空间填充曲线,其实也就是GeoHash。假设我们有一个纬度40.78和经度-73.97。对于纬度而言,其取值范围为-90到90,我们采用一个类似于二分查找的策略,当在搜索空间的左边时,我们得到一个0,在搜索空间右边时,我们得到一个1,直到达到一个特定的层级,我们就停止,这样,40.78就转化成了一个二进制序列:101。同样,我们对经度-73.97执行类似的操作,得到另一个二进制序列:010。我们再将这两个二进制序列交叉编码,这样就将一个二维的信息转化到了一位。如果有时间维度怎么办呢?因为时间是无限延长的,我们首先将时间划分成了多个时间区间,我们可以称之为时间桶,例如1天。对于若在每个桶内的时间,我们采用一个同样的编码策略,例如10点钟,我们再0到24小时中,不断进行二分查找,得到一个序列011。最后,将时间、纬度、经度三个二进制编码进行交叉,得到一个一维的二进制编码。如果我们想要找到1点到2点间经过一个1公里乘以1公里区间范围内的GPS点轨迹,我们很有可能会得到一个这样的键的范围,然后将这个键的范围去Key-Value数据库中扫描。我们注意到,这个键的范围是非常大的,覆盖了大多数的数据。究其原因,我们发现,时间尺度与空间尺度是不一样的。在这个例子中,1小时的跨度,相对于1年(这里假设时间桶长度为1年)来说的比例,远远大于1公里乘以1公里范围相对于地球表面积的比例,这会造成空间过滤效果失效!

    为了解决这个问题,我们提出了一些新的索引方式,我们不再对时间、空间统一编码,而是先对时间进行分桶,在每个桶里面,单独对空间进行编码。查询时,我们首先找到那些对应的时间区域,然后在每个时间区域中,生成一个空间编码范围。通过这样的改动,我们可以将30秒以上的时空范围查询加快到5秒以内。

    前面提到,我们使用Spark作为我们的执行引擎,传统使用Spark的方式为,客户端向服务器发起请求,然后服务端向Yarn集群发起资源申请,Yarn集群接收到资源申请后,会经历请求Resource Manager、启动APP Master、申请Container、启动Executor、分发任务等一系列过程,才会创建一个SparkContext,处理用户的查询。这里我们注意到,请求资源是非常耗时的。为了解决这个问题,我们JUST事先在Yarn集群上创建了两个SparkContext,并用SparkJobServer进行管理。当用户发起请求时,我们直接选择其中一个SparkContext来处理。使用两个SparkContext是为了保证系统的高可用,当其中一个SparkContext崩溃时,另一个SparkContext能够及时地响应用户的请求。总之,我们在线多活的SparkContext方式,能够减少资源的申请时间,进一步加快查询效率,同时还能够提高系统的稳定性。

    我们采用真实的轨迹数据集做了大量实验。上面两张图是关于存储性能的对比,对比方法就是纵向的轨迹存储方法,由图可知,对于136GB的原始轨迹数据,我们仅花了30GB的存储空间,相对于纵向存储方法,我们的空间利用率提升了85%,存储索引的效率提升了超过7倍。下面两张图是关于轨迹空间范围查询和KNN查询的对比实验,对比方法也是业界非常先进的两款基于Spark的轨迹管理系统,由于Spark尽量会把数据存储在内存中,在我们的实验环境下(5台机器),他们的效率远远低于我们的方法,注意到,当轨迹数据大于100GB时,对比方法直接崩溃了,但是我们的方法仍然能够很好地支持。这充分表明了,我们的系统效率高,扩展性强!我们的论文也被国际数据库顶级会议ICDE 2020成功接收,大家感兴趣可以搜索阅读。

    前面主要介绍我们JUST为扩展性强、效率高作的努力。为了让JUST更加易用,我们封装了很多开箱即用的时空数据挖掘算法。包括:轨迹数据挖掘算法,路网数据挖掘算法,以及其他数据挖掘算法。目前我们仍然在不断地完善更多的算法。所有这些算法,我们暴露了很多参数接口,开发人员可以根据不同的业务需求指定不同的参数。

    另一个为易用性做的努力是,我们提供了一个便捷的交互界面和交互方式。现在不同的开发人员使用的开发语言可能不一样,例如,做后端服务开发的同事可能使用Java进行开发,做数据分析的同事可能使用Python进行开发,但所有这些同事的普通话,就是SQL。JUST提供了SQL的交互方式,能够减少大家的学习成本。此外,SQL为我们定义好了统一的输入输出格式,这样也方便开发人员自由组合我们的功能,例如是先对轨迹进行过滤,再对轨迹进行分段,还是先对轨迹进行分段,再对轨迹进行过滤,都可以由开发人员自由指定,这提高了咱们系统的灵活性。我们的目标就是,我们所有的操作,包括数据查询、数据定义、数据处理、数据分析,都可以用一句简单的SQL语句进行实现。我们自己实现了一套完整的SQL优化器,能够实现过滤、投影等谓词下推、常量的计算,还能对查询进行重写。为了让开发人员能够像使用MySQL数据那样使用我们的JUST,我们还实现了一个符合JDBC标准的DB Driver。这极大地提高了我们系统的易用性。我们系统的论文,也被今年数据库顶级会议ICDE 2020成功接收。

    我们发现,目前为外部提供JUST服务时,后端开发人员大多数只是转发前端的请求到JUST-DB中,但是需要他们单独部署一个后端服务,同时还要考虑鉴权、限流、缓存、日志等功能,造成后端开发工程师工作量极大,而且容易出错,维护成本很高。为了减少后端的开发工作量,我们JUST-Service模块,提供了配置化的API服务,用户只需要在系统中配置一些参数,即可对外提供API服务接口,真正实现了零代码量。同时,JUST-Service模块还提供了统一鉴权、流量限制、自动缓存、日志监控等功能,无需后端开发工程师再单独开发。这些进一步提高了JUST系统的易用性。

    对时空数据的管理,绕不开对时空数据的可视化分析。传统的GIS引擎提供了地图可视化能力。但传统的GIS引擎主要面向的是静态为主、动态为辅的空间数据,例如,路网和POI数据,一般都是按照季度或者半年度进行更新,数据量也不是非常大,一般就是几百G。现在已经进入了5G和IoT时代,分分钟就会产生上TB的数据,传统的GIS引擎首先难以高效地接入这些数据,其次可视化效果也不足。如图所示,当我们的数据点超过5000时,使用Leaflet技术进行前端渲染,就会造成明显的卡顿,甚至有可能造成浏览器的崩溃。此外,现有的GIS引擎难以跟底层的分析算法进行联动,而我们对数据的可视化,并不是简单的有什么数据就展示什么数据,而是希望能够通过展现出数据背后的含义。

    为此,我们提供了一个JUST-GIS模块,主要面向的是动态为主、静态为辅的时空数据,借助于底层的JUST-DB模块,能够实时快速地接入海量的时空数据;借助于JUST-DM模块,我们能够与一些分析算法进行联动。我们也实现了一些分布式时空数据的编码、压缩策略,能够加快渲染效果。中间的图展示的是使用我们JUST-GIS引擎,对16万个城市部件的展示效果,可以看到,我们的引擎能够丝滑地放大、缩小、拖动地图。右边的图是一个实际案例,我们实时接入了城市中的车辆GPS轨迹数据,对轨迹数据进行地图匹配操作,分析出每条道路的速度和车流量信息。同时,我们也对GPS点实时聚类,减少前端的渲染压力。

    这是我们的JUST-GIS的基本功能框架,中间基础服务和应用服务是JUST-GIS-Server,封装了各种GIS分析功能,能够发布GIS服务;JUST-Studio和JUST-GIS GL JS是前端展示模块和SDK包。

    这是我们的JUST-Studio用户界面。它能够对地图上的所有要素进行可视化编辑,比如一条路显示的颜色、粗细。通过JUST-Studio,用户可以自定义自己的地图样式。未来,JUST-Studio将会成为所有JUST能力的可视化输出窗口,用户甚至不要写SQL语句了,通过它能够直接调用我们底层的能力,所见即所得地生成上层的解决方案。

    接下来,我们介绍几个基于JUST的实际落地应用案例。

    受疫情影响,我们中国数据库技术大会,从今年的5月份推迟到了8月份,后来又推迟到了12月份。经过咱们政府部门的不懈努力,咱们国内的疫情终于基本得到了控制,我们现在才能够在这里欢聚一堂。但是现在国外的疫情仍然不容乐观。在疫苗出来之前,早发现仍然是防控疫情最有效的手段。传统手段来发现密接人群,主要是依靠人的回忆和线下人工排查,这种方法非常慢,容易出错,也会漏掉很多密接接触人群。而一旦潜在感染者晚一天被发现,他将会感染更多的人。我们必须采用新的方法来快速找到那些与确诊病例密切接触的人。人的轨迹信息能够反映人与人之间的接触信息,因此,我们可以通过对轨迹数据进行分析,来快速找到那些潜在的易感人群。右边是我们的系统框架,我们的系统部署在了多个部门,实时接入了多种时空数据,使用我们预置的多种时空处理算法,构建了有效的时空索引,以高效支持关联人查询分析。在疫情最严重的前20天,我们的系统帮助北京市找到了500多名高危密切接触者,帮助宿迁市找到了全市范围内四分之一的新冠肺炎确诊人员,在全国范围内帮助广州、南京、成都等18个省市做了高危人群态势分析,能够从海量的轨迹数据中秒级挖掘出易感人群。相关的论文已经发表在了ArXiv上,大家感兴趣的话可以下载阅读。

    第二个例子是JUST助力危化品监管。大家可能还记得,在今年的6月13日,浙江温岭发生了一场严重的危化品爆炸事故,造成了20多人的死亡,170多人的受伤。因此,危化品的监管事关人民的生命财产安全,受到了政府部门的极大关注。我们JUST目前在危化品监管上主要做了两件事情:1)危化品车辆是否按照了报备的路线行驶?因为如果危化品车辆驶入了居民区,会造成严重的安全威胁;2)是否存在非法的化工厂?比如,有些居民可能会将自己的民房腾出来,用来存储一些化工用品,我们称之为“黑化工”,另外,一些不符合要求的化工厂,被政府勒令关停后,还可能偷偷进行生产。对危化品的监管是非常困难的,以南通为例,危化品监管涉及到6个环节,7个要素,需要9个不同的政府部门协同,12个软件系统的联动,而南通共有2000多家危化品企业,3000多辆危化品车辆,1000多艘船舶,一线的危化品监管人员只有20多人,如果只是通过人工进行排查,是非常困难的。我们JUST部署到了南通,很好地解决了上述两个问题。我们的系统实时接入了危化品车辆的轨迹数据。针对第一个问题,当某辆危化品车辆偏离了原来报备的路线,我们的系统会实时拉响警报;同时,快速分析出这辆危化品车辆在当前交通状况下未来15分钟内能够到达的区域范围,结合路网信息,推荐交警部门设置路障的位置,对该车辆进行拦截,防止其驶入居民区,对社会造成安全威胁。针对第二个问题,我们对危化品车辆的GPS点轨迹信息进行分析,找到它们经常停留的地点,再结合POI分布信息,如果发现某些停留的地点周围没有危化品工厂,或者是已经关停的危化品工厂,那么这些停留的地方很有可能存在非法化工厂。我们把这些位置推荐给监管部门,他们再在实地进行核查。此外,我们还可以通过危化品的行驶路径和停留地点,分析出一些风险较高的区域,告诉居民不要去那些风险较高的区域,也提醒政府部门要特别关注那些风险较高的区域。

    这是我们在南通部署的危化品全流程管理平台,右边的视频展示的是,通过我们的系统找到了一个“黑化工”企业真实案例。我们的系统极大地减少了委办局工作人员的地勤排查工作量,提高了他们的人效。上线几个月的试运行期间,我们的系统快速地检测到了危化品车辆异常行驶行为410项,精准地匹配违法小化工64家。

    最后一个案例是利用JUST的能力恢复小区路网。现在所有的地图厂商,他们主路上的路网数据都比较全,因为主路上的信息采集可以通过汽车较容易地采集,但是他们关于小区内部的道路数据往往是不全的,因为有些小区不允许外部的车辆进入,光靠人工采集非常耗时耗力。然而,小区内部的路网数据对于快递、外卖场景来说是非常重要的,它能够更好地帮助系统对快递员和外卖小哥进行调度。我们京东有好几万的快递小哥,他们的足迹遍布了中国的大街小巷,而每个快递员手上都有一个PDA手持设备,每2秒产生一个GPS点。鲁迅真的说过,世界上本没有路,走的人多了,也便成了路。于是乎,我们利用快递小哥的GPS轨迹点信息,恢复出小区内部的细粒度路网,以及每条路上是否能够开车,还是走路,进而推断每条道路上的通行时间。

    这是我们系统的基本框架。JUST平台接入海量快递员的轨迹信息以及粗粒度的路网信息,然后对轨迹信息进行去噪、分段和地图匹配,提供高效的时空查询给上层模型。我们训练了一些深度学习模型,能够很好地修复小区内的路网。相关工作也被国际顶级人工智能会议AAAI成功接收,大家感兴趣的话可以去看一下。

    我们的系统还在更多的智能城市项目中成功落地,包括:雄安新区块数据平台、江苏园博园智慧园博项目、南通雪亮工程项目、广汉国家农业产业园项目、战疫金盾项目、南通市域治理现代化项目等,大家可以看到,我们的战疫金盾受到了央视1台的新闻报道。未来,JUST将会在更多的项目中落地,帮助国家解决难题,帮助社会创造价值。

    最后介绍的是基于我们JUST,所创造的学术成果。

    我们一直要求自己做“顶天立地”的事情,除了真真切切地解决实际问题,还积极沉淀理论知识。过去不到3年的时间,我们JUST有十余项技术通过了国际顶级会议或者期刊的评审,我们JUST也开创了历史,是世界上首次连续两年获得国际时空数据领域十年影响力大奖的团队。到目前为止,我们为25个省市公安局提供了技术服务,并收到了他们的感谢信。基于JUST,我们提交了30余项发明专利,并获得了公安部的权威认证。截止到目前,我们通过了6项软著。

    我们的目标是,做世界上最好用的时空数据管理和分析平台。大家可以关注一下我们的公众号,也可以通过二维码访问我的个人主页。本次汇报的PPT,可以通过公众号进行下载。我的汇报完了,再次感谢大家!

    欢迎点击京东智联云,了解开发者社区

    更多精彩技术实践与独家干货解析

    欢迎关注【京东智联云开发者】公众号

    展开全文
  • 时空数据

    2019-10-23 19:31:02
    第一章 第二章 什么是GCN 第三章 第三章中的方法解释 单位根检验
    展开全文
  • ,已经将以上这么多类型数据归类成6大类时空数据模型,所有的时空数据我们都可以按照6大类数据模型进行入库管理。这6种数据类型的分类方式为:一方面,世间万事万物都可以由实体对象以及实体对象之间的关系组成。若...

        2014年跨年夜上海外滩灾难性踩踏事件,使得公共安全问题受到了全体社会的广泛关注。解决这一问题的很重要一项工作就是:如何实时监控快速预测城市中每个地方的人流量。当某个地方的人流量超过给定的值或者有超过给定值的趋势时,相关部门能及时地采取相关措施,例如:疏散人群,交通引流等,这样才能防止悲剧的再次发生。为避免类似2014年跨年夜上海外滩灾难性踩踏事件,某市公安局提出需要搭建城市实时人流监控预测系统,为解决因人流问题造成的交通、社会治安等问题提供决策意见。

     

    图1 上海外滩的踩踏事件

        京东智能城市作为系统建设中标单位,对整个系统的需求进行了初步分析,发现一个区域的人流量与多种数据相关,如图2所示。比如:(1)手机基站数据。当一个地方的手机信令数据越多时,说明周围的人也越多;(2)视频监控数据。从视频的画面中,能够识别出大约有多少人;(3)交通流量数据。某条路的交通流量直观的反映了某个区域的流入流出人数。(4)出行轨迹数据。轨迹数据能够反映出人的流向;(5)天气数据。人的出行受天气的影响,比如下雨天,人们都很少出门,因此天气数据也有助于人流量的预测;(6)不同的地点所能承载的最大人流量是不同的。比如大型火车站,2万的人其实不会造成公共安全威胁,但是如果一个小区突然有2万人,那就需要注意了。因此,每个区域的建筑类型(我们称之为兴趣点或POI)、建筑密度、道路结构等都可以帮助人流的预警。(7)最后,如果事先了解到诸如举行演唱会等事件信息,也有助于人流量的预测。

     

    图2业务数据

        上面说的这些数据,单从一项数据是无法实时监测和有效预测某个区域的人流量的,因为一项数据仅仅反映某一方面的信息。必须综合利用尽可能多的数据,才能有效地实现人流量的监控与预警,确保公共安全。

        经过认真严谨的分析论证之后,京东城市AI部门很快就确定整体解决方案。大体思路是:(1)利用上述的多种数据计算出某个时间段每个区域的流入、流出的人流量;(2)采用AI算法模型对城市中每个区域的人流量进行建模;(3)利用建立好的模型,根据最近一段时间各区域的人流量,快速预测未来一段时间内每个区域的人流量,并给出潜在的预警。

     

    图3 人流监控与预测的基本步骤

        整体解决思路确定之后,AI部门算法小伙伴就开始紧锣密鼓地研究数据、敲定建模方法。然而摆在AI部门算法小伙伴面前的问题就是:(1)这么多种类的数据需要如何有效管理?(2)如何从各种类型数据中快速地提取特征指标,例如人流量?(3)如何方便快速地构建模型,并对模型进行有效性验证? 如果上面三个问题都解决不了那人流监控预误测根本无法保证实时性。实时性在我们这个场景中非常重要,只有快速监控和预测人流量,才能有效地施行交通管制、人流疏散,防止类似于踩踏事件的公共安全事故发生。

        AI部门算法工程师小艾同学之前有MySQL等关系型数据库的经验,主动承担起了业务数据管理、维护工作;刚开始创建业务库,小艾同学就崩溃了:同类型的不同来源业务数据,数据格式可能不一样,没法统一建表。只能为每一份数据单独设计一张表,而且当入库数据量达到1T的时候,MySQL数据库直接崩溃。最后好不容易把数据导入到MySQL数据库,然而由于缺乏更深入的MySQL数据库调优经验,一个简单的数据查询过程,耗时费力。

    小艾同学突然觉得自己太难了,这些业务数据利用MySQL已经不知道该怎么管理了。就在小艾同学一筹莫展的时候,数据管理平台部的小D同学刚好找小艾同学咨询AI算法模型问题。小D同学看着一脸生无可恋的小艾同学,询问发了什么事情。小艾同学给小D同学复述了一下目前在制定实时人流预测算法模型上的各种疑难杂症。

        小D同学听完小艾同学诉苦之后,对小艾同学语重心长地说了句:“小艾同学,这你就不对了,你说的这些问题对于我们新上线的京东城市时空数据引擎(JUST引擎)来说都是小菜一碟,不是事儿。”

        “首先,刚才你描述的这些业务数据,其实都是明显带有时间、空间位置属性的数据。我们JUST引擎把这类数据统称为时空数据,并且JUST引擎强大的数据建模能力,已经将以上这么多类型数据归类成6大类时空数据模型,所有的时空数据我们都可以按照6大类数据模型进行入库管理。这6种数据类型的分类方式为:一方面,世间万事万物都可以由实体对象以及实体对象之间的关系组成。若实体对象之间不存在关联,我们称之为点数据;若实体之间存在关联,我们称之为网数据。另一方面,根据数据的时间和空间的动态特性,我们可以将数据分成4类:时空静态数据、空间静态时间动态数据、空间动态时间静态数据、时空动态数据。但是由于同一物体在同一时刻智能出现在一个地方,空间动态时间静态数据不会存在。因此,根据时空动态特性,我们将时空数据最终分成了3类,即:时空静态数据、空间静态时间动态数据和时空动态数据。综上,根据城市数据的时空特性以及实体间的关联性,我们可以将城市数据划分成(4-1)×2 = 6类,如图4所示。(1)时空静态点数据:以空间点的形式存在,空间位置和读数都不随时间变化。你用到的数据中,兴趣点就是这类数据,例如,火车站一旦建好,它的位置、大小、分类等信息将不再随时间变化。(2)空间静态时间动态点数据:以空间点的形式存在,其位置信息不随时间变化,但会连续不断地产生读数。你用到的数据中,监控视频数据、天气数据就是这类数据。(3)时空动态点数据,以空间点的形式存在,但位置和读数均随时间变化。你用到的数据中,事件数据就是典型的时空动态点数据。生活中的打车数据、订单数据也是这类数据。(4)时空静态网数据,以网络的形式存在,位置和读数均不变化。你用到的数据中,路网数据就属于此类。(5)空间静态时间动态网数据,是指空间网络上产生的一系列读数。例如交通流量,每条路上每隔一段时间都会产生一条读数。(6)时空动态网数据,以网的形式存在,且空间位置和读数不断变化。你说的轨迹数据就是一种特殊的时空动态网数据。”

     

    图4六大类时空数据模型

        “回到人流预测场景,计算某个区域的绝对流出人数,就是计算出某个时刻的总人数相对于上一时刻的总人数的差值。这是典型的时空范围查询的问题。传统的关系型数据库,例如MySQL、Oracle以及PostGIS,虽然整合了时空数据管理的模块,能够满足小数据量的时空范围查询。但是一旦数据量很大,正如你遇到的问题一样,系统就会崩溃。”

        “针对海量数据,目前采用的主流方法是分布式非关系型数据库,例如HBase。然而,原生的HBase是一个键值(key-value)数据库,只能根据一维的键值快速找到记录,没有有效的时空索引(时空数据可以看成是3维的:经度、纬度、时间),无法高效实现时空范围查询等查询分析。此外,HBase本身没有对时空数据进行优化存储,因此占用的磁盘空间非常大。以轨迹数据为例,传统的存储方式如图5所示,每个GPS点占用一行数据,造成数据条目数与GPS点的数目相同,导致存储空间开销很大。”

     

    图5 传统HBase轨迹数据存储方式

        “JUST引擎为HBase创建了多种高效时空索引,将多维的时空信息编码到一维的键当中,能够快速定位诸如时空范围查询等查询的数据。当前JUST支持的时空索引如图6所示,分别对应不同的数据查询场景。这就好比你在图书馆的书架上找书的过程 。没有创建时空索引的HBase,需要你在书架上一本一本地查找你要的书。而拥有时空索引的JUST会告诉你,你所需要的书在哪个书架、第几层、第几本中,大大减少你的查找时间。”

     

    图6 JUST时空索引策略

        “除此之外,JUST还对6种时空数据类型的每种数据类型设计了最佳的索引存储方式以及数据分析方法。还是以轨迹数据为例,我们预置了多种开箱即用的轨迹处理方法,包括轨迹异常值过滤、轨迹分段、轨迹地图匹配、轨迹插值等;对于每条分段后的轨迹,我们将这条轨迹的GPS点存储在同一条数据记录中,并采用GZip压缩方式,这样能够大大减少数据的条目数和占用空间,如图7所示。通过我们的实验,采用JUST的轨迹存储方法与原来传统的非关系型数据库的存储方法相比,磁盘空间缩小至1/8。更小的存储空间不仅节约磁盘空间,在有限的网络带宽下还加速了查询效率。好比一扇不大的门,对于胖子们来说,一次只能一个人穿过,而对于瘦子来说,可以允许两个人同时经过。我们还提出了更为精确描述轨迹形状的方法。如图8所示。传统的描述轨迹形状的方法是使用一个矩形框,该矩形框很大空间都与轨迹位置无关。因此我们提出了采用多个小格子来描述轨迹形状的方法。更精确的轨迹形状描述允许我们设计出了更好的过滤方法,更进一步的提高了查询效率。”

     

    图7 JUST中轨迹数据存储方式

     

    图8 精确描述轨迹形状

        “正是我们先进的索引方法和存储方法,JUST的计算效率有了巨大的提升。其中,存储和索引效率相较于原生HBase提升超过7倍,查询效率相对于其他时空查询框架有了上100倍的提升,如图9所示。我们的相关研究工作申请了多项国家专利,相关论文也已被国际顶尖会议ICDE 2020接收 ,受到了国际同行的认可。”

       

    图9性能对比

        小艾惊叹到:“这么厉害!”随后又发愁道:“可是我目前对JUST的使用非常不熟悉。由于我们项目工期非常紧,如果我要学习JUST的使用,并且将它应用到我们人流监控和预测项目中,我担心时间来不及了……”

        小D安慰道:“别担心,JUST提供了JUST SQL模块,以上所有的操作都可以通过SQL语句简单到实现。只要你熟悉任何一种关系型数据库,熟悉SQL语句,那几乎能够零学习成本地玩转JUST。此外,我们还为AI算法工程师量身定做了一套Notebook,所有的数据处理和模型训练,都可以在JUST Notebook上一站式进行。我们还预置了丰富的开箱即用的数据预处理、数据分析、特征提取方法,你可以随意进行组合。这正是JUST不断追求的系统的易用性。”

        小艾听了喜笑颜开,毅然决定使用JUST进行底层数据管理。借助于JUST,京东城市圆满地完成了城市实时人流监控预测系统项目。后来,小艾利用JUST还完成了多个项目的交付,包括:利用配送轨迹修复电子地图项目、基于位置的商品排行、联通营业厅选址项目等,如图10所示。

     

    图10 更多的项目使用了JUST

        目前,JUST已经推出了公测版本,准备以PaaS的形式对外提供服务,让更多的人能够享受到JUST的高扩展性、高效率以及强易用性。关于JUST的产品主页和产品门户分别如图11和图12所示。

     

    图11 JUST产品主页(网址:http://just.urban-computing.cn/

     

     图12 JUST产品门户(网址:http://portal-just.urban-computing.cn/

        中国的其他计算机厂商也逐渐开始研究时空数据管理平台。它们与JUST平台的对比如图13所示。传统GIS厂商的时空大数据管理平台可以理解为一个数据集市,提供各类空间数据的可视化服务,查询能力仅局限于空间查询,并不是真正意义上的时空数据管理平台,可以理解为大数据量空间数据管理平台。相较阿里的HBase Ganos以及华为CloudTable,JUST提供了丰富的时空数据模型,能够全面覆盖所有时空数据;同时设计了高效的索引存储管理方法,为每一种数据类型封装了丰富的开箱即用的处理分析函数;此外,JUST还提供了完整的SQL引擎,所有的操作都可以简单的使用SQL语句实现;为AI算法工程师准备了完备的Notebook,方便一站式地模型构建。总之,相较于其他的平台,JUST帮助用户能够更方便、更快捷地管理更大规模的时空数据

     

    图13 JUST与其他厂商对比

     

    相关论文:Ruiyuan Li, Huajun He, Rubin Wang, Sijie Ruan, Yuan Sui, Jie Bao, Yu Zheng. TrajMesa: A Distributed NoSQL Storage Engine for Big Trajectory Data. Accepted. (ICDE 2020)

    展开全文
  • 空数据语义理解正成为时空数据挖掘领域的研究热点.本文从技术和应用两个层面,对近些年来国内外研究者在该 领域的研究成果进行了系统的归类和总结.技术层面上,本文依据语义理解的不同任务,提出了时空数据语义理解的 ...
  • 提出从特征提取参数、模型参数对隐马尔可夫声调模型进行区分型训练,来提高声调识别率;提出模型相关的权重对谱特征模型和声调模型的概率进行加权,并根据最小音子错误区分性目标函数对权重进行训练,来提高声调模型...
  • 随着定位设备的快速发展,我们可以获得大量的时空数据。从时空数据中挖掘有用的信息对于智慧交通、城市规划等很多应用非常重要。
  • 用于常规时空数据分析的Spark扩展。 该项目旨在为专业GIS运营充分利用最新框架。 与以前的框架(如GeoSpark,SpatialHadoop等)不同,我们希望我们的框架的语义更符合GIS的世界观。 该存储库仍在开发中。 层的...
  • 按照时空数据模型对时间和空间的表达方式,将时空数据模型分为基于时间的时空数据模型和基于空间的时空数据模型。提出了一种新的基于时空数据预测用户社交联系的模型,该模型将基于时间的时空数据集的特征和基于空间的...
  • 描述了目前时态数据模型和时空数据模型的发展,现已共识时态是任何信息的一个重要属性,但是时态数据库中时态关系代数的基本思路是通过在关系模式上显式化时变语义来进行简单结构的时态数据建模,而时空数据建模中...
  • 近日,京东城市通过自研的时空数据引擎—JUST,解决的正是“路径优化”缺少基础信息的难题,即在主干道电子地图趋于完善的同时,如何对小区内相对欠缺的路网电子地图进行修复,呈现出地图上缺失的道路,以得到精准的...
  • ● 第二,我们以前查询文本的时候,可以把包含关键词的文本拿出来,但是我们做时空数据查询的时候,往往是靠一个时空范围,比如说查找我周边最近2分钟内空驶的出租车,查找过去两分钟所有这个楼周边的摩拜单车哪个是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,156
精华内容 18,862
关键字:

时空数据