测绘地理信息   2017, Vol. 42 Issue (6): 16-20
0
多维度轨迹数据的SQL时空查询方法[PDF全文]
叶文娟1, 艾廷华1    
1. 武汉大学资源与环境科学学院,湖北 武汉,430079
摘要: 轨迹数据包含了时间、空间和身份属性等要素信息,数据量大且复杂,分析难度高。面对如此多维度并且数据量庞大的数据,分析前的数据抽稀、检索是必要的。通过SQL时空查询的方法进行轨迹数据的检索,选择合适的可视化方法,尽可能精准地筛选出兴趣轨迹数据,可以更大程度地支持大众用户对轨迹数据的分析需求。
关键词: 轨迹数据     STSQL     时空查询     可视化    
SQL Spatiotemporal Query Method for Multidimensional Trajectory Data
YE Wenjuan1, AI Tinghua1    
1. School of Resource and Environmental Sciences, Wuhan University, Wuhan 430079, China
Abstract: Tracking data include temporal information, spatial information, attribute information and so on. The data is large, complex and high difficulty in analysis, so data compression and retrieval are necessary. This paper makes the retrieval of tracking data by using SQL spatiotemporal query method, chooses appropriate visualization method, selects interest trajectory data as accurately as possible.It can be more supportive the requirements of users to Tracking data.
Key words: trajectory data     spatiotemporal structured query language     spatiotemporal search     visualization    

随着3S技术渐渐进入大众视野,在便利生活的同时也产生相关的大数据的研究。现在,全球定位系统(global positioning system,GPS)技术的覆盖性发展使得大量的出行工具以及手机都安装有GPS定位系统,因此,产生了海量的轨迹数据。目前,轨迹数据的挖掘工作主要集中在时空模式发现[1-3]、时空聚类[4]、时空异常检测[5]、时空预测和分类[6, 7]等方面,并已产生了相关的应用。

轨迹数据是具有时间信息、空间信息的数据类型,并带有相关附属信息,例如, 区分自己与其他轨迹数据的ID属性信息、GPS信息等。这里将轨迹数据的信息组成分为时间信息、空间信息以及属性信息三部分,其中,属性信息还可以细分为ID属性信息和其他信息。无论轨迹线还是轨迹点均携带这些信息,不同的是轨迹线是根据时间信息将轨迹点数据连接的线,轨迹线和轨迹点是两种轨迹数据的表现形式,本文根据不同的检索需求使用不同的轨迹数据类型。轨迹数据存在多维度的信息,信息结构复杂,同时数据量极大,分析有难度。但由于手持GPS、车载GPS等多种轨迹数据采集工具的采集规格不相同以及仪器记录轨迹点信息的频率不一致,导致轨迹数据存在数据疏密不均[8]、信息碎片化[9]等现象,增加了轨迹数据信息挖掘的难度。因此,对轨迹数据的检索筛选工作成为必须。本文使用结构化查询语言(structured query language,SQL)对轨迹数据进行查询,以期有效地检索出兴趣轨迹数据,降低数据冗余度。

1 SQL时空查询

轨迹数据是在时空情境下对一个或多个运动物体的信息采集,包括轨迹点的位置、时间以及速度、散布情形等信息[10, 11], 数据的复杂性使得轨迹数据不能直接使用传统的数据分析方法,需要对轨迹数据进行筛选。由于SQL语言简单清晰,接近人类语言,更方便用户用于制定查询[12]。时空数据库中实现时空分析功能的查询语言的设计普遍采用扩充关系数据库中标准SQL语言的方法[13]。在以往的SQL时空数据库查询设计中,经常将点线面要素作为主要查询内容,设计时需要更多地考虑拓扑关系,但由于轨迹数据是行动轨迹产生的数据,并不需要过多地考虑拓扑关系,故而检索语言设计只需要考虑一些空间叠置以及时间操作的设计。根据上文将轨迹数据线信息分为三类,使用SELECT-FROM-WHERE查询语句,确定空间、时间、属性三类查询条件。

SQL时空数据查询语句也称为STSQL(spatiotemporal structured query language),是在标准SQL语言中扩充时空数据以及时空数据项的表示方法中形成的时空数据查询语言,是通过时空抽象数据类型(abstract data type,ADT)存储时空数据,并将传统的时空数据模型进行沿用或者改造定义出新的基本谓词,使其可使用SQL表示的[14]。本文中使用的基本操作谓词参考于PostgreSQL,主要覆盖的是空间操作,如ST_Clip是空间裁剪操作,ST_Intersects是空间相交操作,ST_MakeEnvelope是获取裁剪框范围等。

本文使用C1C2C3(Condition)对应三类查询条件。C1对应空间查询条件,空间查询需要获得用户选择的查询空间范围ST_MakeEnvelope以及数据裁剪操作谓词ST_Clip;C2对应时间查询条件,控制时间范围,可表示为{tt1 and tt2}, t1t2为用户选择的起止时间,为date类型数据;C3是属性查询条件,属性查询内容是除了时空属性的其他轨迹数据属性,如类别、速度、加速度、方向等, 这里的属性查询条件主要针对轨迹点的属性。可直接通过获取属性列名称筛选属性信息, 如通过trajectory.speed获取轨迹线的速度。轨迹点定义为pi(xi, yi, ti, ai), 其中(xi, yi)代表的是轨迹点的地理位置,ti存储轨迹点的时间信息,ai对应轨迹数据的属性内容,ai={ai1, ai2, ai3, …},其中ai1ai2ai3等对应轨迹数据属性信息, 如对象ID、速度、行驶方向等。定义查询条件C3={ai1A1, ai2A2, ai3A3, …},其中A1A2A3等对应属性查询条件。在检索过程中,三类条件还可以相互组合,产生符合用户检索条件的复合条件。

轨迹线是按时间序列串联的轨迹点连成的折线,定义polyline数据类型表示轨迹线数据。由于轨迹线是由轨迹点串联而成的,故轨迹点不仅存储轨迹点的时空信息,还应该携带对应轨迹线的检索信息。在时空数据库的设计中,将轨迹点和轨迹线的数据信息分开存储,存储的属性表如表 1所示。

表 1 轨迹数据属性表 Table 1 Property Sheet of Trajectory Data

直接对轨迹数据线进行SQL检索,即根据检索条件(WHERE)在(FROM)轨迹数据线集合L(l1, l2, l3, …)中选择(SELECT)兴趣子集P(l1, l2, l3, …)。本文通过C1C2C3三类条件及其组合查询条件从轨迹线集合L所对应的轨迹点中选择出轨迹数据点子集P的过程便是轨迹数据的SQL时空查询。

2 轨迹数据SQL时空查询可视化

C1:对空间属性的检索,主要是为了获得兴趣空间发生的事件。如想知道某一兴趣空间的出租车分布情况,空间检索可使用空间截选或者选取道路的方式进行。使用矩形空间截选的方式实现空间选取,由于是规则的矩形截取,可以用空间的左下Slb和右上Sru两个点的坐标表示用户空间截选操作返回的空间,将返回的截面数据与检索轨迹数据发生裁剪(ST_Clip)操作。而道路选择则是为道路创建缓冲区,截取落入缓冲区内的轨迹线。检索实现之后,在所有的检索语句前面需要加上对选中要素高亮的操作语句,以对检索结果可视化。检索结果如图 1所示。

图 1 空间(C1)条件下的检索 Figure 1 Query in Condition C1: Space

C2:对时间属性的检索,是对携带时间信息的数据进行操作,如轨迹线数据。轨迹线是根据轨迹数据点携带的属性信息、时间信息按时间顺序组织产生的。轨迹线的时间信息一般是指首尾的轨迹点的时间信息,因此是时间段信息。若对轨迹线的时间信息进行检索,便存在时间检索语句的逻辑问题,时段对时段的检索可以是“与”操作(轨迹线的整个时段包括在时间检索的时段内),也可以是“或”操作(轨迹线的部分时段在时间检索的时段内),这就存在二义性,不利于大众检索。时间检索操作对象是轨迹线上的轨迹点。通过STSQL选择出符合要求的新轨迹点集合cp,根据轨迹点携带的轨迹线信息point.SearchID将点重新连接成折线polyline, 命为集合cpLine。

在将轨迹点重新组合成线时,由于时间信息不可视的特性,需要借用其他方式显示,这里借用了时间轴工具。在ArcGIS软件中就有可以动态展示轨迹数据在不同时刻状态的工具时间轴动画,这一工具主要针对有时间属性的数据[15]。动态显示不仅能表示某个时刻的轨迹在空间上的分布情况,还能反映轨迹的变化过程,对轨迹数据的时间信息检索结果展示有一定帮助。在2012-11-01T12:00:00至12:04:00下的检索结果如图 2所示。

图 2 时间(C2)条件下的检索 Figure 2 Query in Condition C2: Time

C3:对属性信息的检索,是确定行为主体属性的情境,即获取某一个或者同一属性轨迹发布者的所有轨迹数据。属性信息检索可用于研究轨迹发布者的针对性信息,一般在研究个体或者特殊群体的活动轨迹时使用,可以是某类轨迹,如在文献[16]中,使用GPS定位系统跟踪驼鹿,意于寻找动物的活动轨迹和栖息地选择的规律;也可以是轨迹的某一运动特性,如运动速度v、加速度a、速度方向direction等,最简单的是对不同类型轨迹的选择。

将不同属性的轨迹点使用不同的色系表示,并根据速度设置颜色的渐变。如对图 3(a)进行分析,具体兴趣对象需要详尽的信息展示,但是涉及到他人信息问题,仅使用一小段某出租车轨迹做演示,如图 3(c)所示,根据当时记录的速度分级显示轨迹点。

图 3 属性信息(C3)下的检索 Figure 3 Query in Condition C3: Property

C1C2检索:控制空间条件和时间条件,在此检索基础上对筛选出来的轨迹数据信息进行分析。如某些租车软件可实现的预约某条道路上某时段的某类出租车的功能。又如,在选择兴趣街道研究兴趣时段的轨迹数据,对街道这类线状空间进行的研究主要反映在道路勘察和导航分析等方面,如微软的T-Drive系统[17]。这种复合检索条件只需要将其中一种检索条件的检索结果数据集合作为另外一个检索条件的数据源便可以实现。如时间条件和空间条件同时进行的检索是将时间条件检索(C2)的结果的重组轨迹线集合cpLine作为空间检索(C1)的数据源,结果如图 4所示。

图 4 矩形框选取+时间条件(C1C2)检索轨迹数据可视化 Figure 4 Visibility of the Query in Condition C1C2: Choice of Space+Time

C1∩C3检索:控制空间和属性条件检索之后,可获取轨迹数据的兴趣时间信息。如想知道某一空间内某一轨迹发布者的轨迹行踪,类似图 3(c)。查询语句与C1C2思路相似,只需将查询的数据源换成属性检索(C3)结果的轨迹线数据集即可。

这类检索除了获取具体时间信息,还可以预测某一兴趣事件的发生。检索结果可以使用时间序列图(time-series graph)进行可视化。时间序列图上可展示某地区兴趣车辆的系列轨迹点的速度。如果结合多天同时段的数据,可对该时段的拥堵概率进行预测,同时由于速度是定量数据,这有助于对拥堵情况的定量描述。图 5给出了某空间选取的四辆出租车轨迹数据的时间序列图。

图 5 四辆出租车轨迹数据时间序列图 Figure 5 Time Series Graph of Trajectory Data About Four Taxis

C2C3检索:通过时间和属性的检索,寻找兴趣空间发生的事件或兴趣空间之间发生的事件,如寻找兴趣车辆在兴趣时间上所在的空间位置。检索思路同C1C3检索方法,先找到符合时间段的数据集,在该数据集基础上检索出符合属性要求的轨迹线,同时时间和属性的检索结果可以用来比较两个兴趣空间之间某段时间的拥堵情况等问题。本文尝试使用速度场模型对检索结果进行可视化。

速度场模型在GIS上已有了相关应用,如文献[18]通过地壳运动创建地区垂直速度场模型监控地质下沉等问题。本文通过道路上承载的车辆速度创建道路速度场模型,用于C2C3检索结果的可视化,并尝试分析道路拥堵情况。由于使用轨迹数据计算的道路速度场是一个粗略估算模型,因此选择计算速度时段至少为0.5 h以上,又由于速度的方向性,为防止道路速度出现正负抵消,影响道路的速度场结果,应限定速度方向。实验选择2012年11月1日12点到13点(C2)运行方向为0°~180°(C3)的轨迹数据进行C2C3的检索,并对查询结果提取空间信息以及速度,将查询结果的空间信息与剖分过的OSM(OpenStreetMap)提供的北京道路信息进行匹配,并对道路承载轨迹速度计算出当前剖分道路段的平均速度,渐变显示速度值,得到道路的速度场图。速度场可用于分析两个兴趣空间之间的交通情况。通过分级显示选择的道路速度分布情况,使用红色表示速度低的路段,蓝色表示速度较高的道路,如图 6(a)所示。通常来说,速度越小,说明地段越拥堵,从图 6(a)可以看出,在这一时段内,速度的拥堵情况由市中心往外扩展,越到外围,拥堵情况越轻。后期尝试使用卡尔曼滤波对道路进行了插值[19],尽可能多地完善道路的速度场,如图 6(b)所示。速度场是一个粗略估计道路速度的结果图,并不能精准测定道路的拥堵情况,因此,它并不一定需要具备充足的专业知识,适合普通大众用户使用。

图 6 时间+属性条件(C2C3)的检索可视化 Figure 6 Visibility of the Query in Condition C2C3: Choice of Time+Property

3 结束语

由于轨迹数据内容的复杂性,以及大众对轨迹数据分析的能力有限,相关的工具设计也没有很好的交互性,专业知识要求较高,并不适用于大众式分析,在这种情况下对轨迹数据进行降维检索可以降低轨迹分析的难度,同时,对于轨迹要素的认识和规律发现会更加容易,正确使用轨迹数据降维检索和对检索要素可视化不仅可以获得感兴趣的轨迹信息,还可能得到一些美丽的地图展现形式,满足大众的视觉享受。这也将成为地图发展的另一个方向,将地图应用于大数据非空间信息的可视化上[20]。本文主要讨论了将轨迹数据降维检索的几种常见的检索组合,并对组合情况尽可能地进行可视化,使轨迹降维之后能够最好地展示结果,实现大众化分析要求。

但是由于大众分析轨迹的原因和职业生活需求各不相同,所以就存在一个问题,要能达到适合大众式的轨迹分析要求,平台的交互性功能要求将会极高。而在目前状态下并不是特别好实现,对于交互实现也是建立在经验知识上的,如通过实验寻找适合的轨迹要素检索和相关的可视化配套策略。以上均是笔者做出的假设性实验,有些是依托于已经在市场发行的软件交互功能。

在后续的研究中,会继续挖掘轨迹数据的潜在信息,尽可能多地使用大众用户可以理解接受的表现形式对轨迹数据可视化,并且相信,随着大众用户素质的不断提高,专业人员和大众用户可以共同合作。

参考文献
[1] Mamoulis N, Cao H, Kollios G, et al. Mining, Indexing, and Querying Historical Spatiotemporal Data[C]. Tenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Seattle, Washington, USA, 2004
[2] Celik M, Shekhar S, Rogers J P, et al. Mixed-Drove Spatiotemporal Co-Occurrence Pattern Mining[J]. IEEE Transactions on Knowledge & Data Engineering, 2008, 20(10): 1 322–1 335
[3] Tao Y, Kollios G, Considine J, et al. Spatio-Temporal Aggregation Using Sketches[C]. The 20th International Conference on Data Engineering, Boston, MA, Unite States, 2004
[4] Gaffney S, Smyth P. Trajectory Clustering with Mixtures of Regression Models[C]. The 5th ACM SIGMOD International Conference on Knowledge Discovery and Data Mining, San Diego, California, 1999
[5] Birant D, Kut A. Spatio-Temporal Outlier Detection in Large Databases[J]. Journal of Computing & Information Technology, 2006, 14(4): 291–297
[6] Scellato S, Musolesi M, Mascolo C, et al. NextPlace: A Spatio-Temporal Prediction Framework for Pervasive Systems[C]. International Conference on Pervasive Computing, San Francisco, USA, 2011
[7] Min W, Wynter L. Real-Time Road Traffic Prediction with Spatio-Temporal Correlations[J]. Transportation Research Part C Emerging Technologies, 2011, 19(4): 606–616 DOI: 10.1016/j.trc.2010.10.002
[8] 袁晶. 大规模轨迹数据的检索、挖掘和应用[D]. 合肥: 中国科学技术大学, 2012
[9] 刘经南, 方媛, 郭迟, 等. 位置大数据的分析处理研究进展[J]. 武汉大学学报·信息科学版, 2014, 39(4): 379–385
[10] 百度百科. 轨迹数据词条[DB/OL]. [2017-07-23]. https://baike.baidu.com/item/%E8%BD%A8%E8%BF%B9%E6%95%B0%E6%8D%AE/5338223?fr=aladdin
[11] 谢邦昌, 斯介生. 大数据分析中轨迹数据挖掘的现状与挑战[J]. 中国统计, 2016, (8): 13–15
[12] Huang B, Lin H. Design of a Query Language for Accessing Spatial Analysis in the Web Environment[J]. Geoinformatica, 1999, 3(2): 165–183 DOI: 10.1023/A:1009803811153
[13] 任家东, 高伟, 任东英. 时空数据库中时空查询语言的设计与实现[J]. 计算机工程, 2003, 29(9): 98–99
[14] Erwig M, Schneider M. Developments in Spatio-Temporal Query Languages[J]. International Workshop on Database and Expert Systems Applications, 2002, 29(3): 441–449
[15] ArcGIS帮助10. 1. 使用时间滑块窗口[DB/OL]. [2017-07-23]. http://resources.arcgis.com/zh-CN/help/main/10.1/#/na/005z0000000z000000/
[16] Moen R, Pastor J. Effects of Moose Movement and Habitat Use on GPS Collar Performance[J]. Journal of Wildlife Management, 1996, 60(3): 659–668 DOI: 10.2307/3802085
[17] Ashfaq M, Tahir A, Orakzai F M, et al. Using T-Drive and BerlinMod in Parallel SECONDO for Performance Evaluation of Geospatial Big Data Processing[M]. New York: Springer Singapore, 2017
[18] 刘强, 姚宜斌, 胡在凰. 利用多面函数双调和法建立中国三维速度场模型[J]. 测绘地理信息, 2014, 39(3): 11–14
[19] Welch G, Bishop G. An Introduction to the Kalman Filter[R]. Department of Computer Science, University of North Carolina at Chapel Hill, NC, USA, 1995
[20] 艾廷华. 大数据驱动下的地图学发展[J]. 测绘地理信息, 2016, 41(2): 1–7