基础软件国产化:不仅要坚持做,还要做好 ——《XSTAR:时空轨迹大数据处理与分析系统》(三期)发布了
The following article is from 大数据攻城狮 Author 大数据攻城狮
点击图片上方蓝色字体“慧天地”即可订阅
特别说明:《XSTAR:时空轨迹大数据处理与分析系统》由华东师范大学地理科学学院李响博士开发完成,“大数据攻城狮”为李响博士个人公众号。新版的《时空轨迹大数据处理与分析系统》是对同名旧版软件的重写和优化,基于李响博士开发的底层GIS控件 “XGIS”。
XSTAR三期功能快览,详情如下,获取方法见文末
*前 言*
时空轨迹大数据的一个共同特征就是数据中的每项或大多数记录除了包含描述对象的属性信息之外,还带有时空标签,保存了该对象在特定时间的空间位置,因此,其可被称为“轨迹数据”。
当可采集的移动对象数量较大时,则称之为“时空轨迹大数据”。
利用已有的轨迹大数据,很多学者在城市地理学、交通地理学、时间地理学、健康地理学等领域都开展了大量的研究和应用工作。
比如出租车轨迹数据,其在每个城市都已经成为实实在在保有的重要分析源,它在客观上反应了城市每日的动态变化。
来自交通、城市规划、商业分析等领域的研究者对此喜爱有加。
然而,他们却往往不具备处理如此巨大数据量的能力,因为,通常,在这样的大数据面前,常规的数据管理和分析方法,比如Excel、SQL Server等是低效或者是无效的。流行的大数据处理工具或平台虽然已相当成熟,如Hadoop,MapReduce,HBase,Spark等,但搭建起来举步维艰,而且,要将其定制成面向时空轨迹大数据的工具也似乎颇费周折。
这是我们开发这个软件的初衷。我们希望提供一个有针对性的、小巧的、高效的数据分析工具,于是,它诞生了。目前,它的体量小于3MB,包含所有的程序文件。
利用该工具,用户可以以一种我们认为非常便捷和易于理解的方式从多个维度对数据进行探索性分析。比如,我们可以发现任意车辆在任意时刻的位置、在任意时段的轨迹、任意时刻或时段载客行程的空间分布、任意起止点在任意时刻或时段的目的地或客源地等等。
本系统需要运行在Windows操作系统下,运行时,它可能要求你下载“.net Framework”,不必担心,只要按照提示进行即可。通常,此系统会是一个64位的应用程序,当然,如果用户的电脑及操作系统仅支持32位,那么请致信bigdatalion@yeah.net,软件作者会尝试生成一个32位的程序。但是显然,32位应用程序的数据量适用性会远低于64位应用程序。
如上图所示,XSTAR由两部分构成,“轨迹数据处理”与“轨迹数据分析”。各部分又包含四大功能模块。前者主要用于完成对原始轨迹数据的理解、排序和索引,后者可根据构建的排序或索引文件,实现各种分析功能。
处理部分包括:生成字段描述,提取移动对象标识,按照标识及时间排序,构建索引结构;分析部分包括:可视化排序后的轨迹,轨迹时刻分析,轨迹时段分析,相关工具箱。
各个功能模块简要介绍如下。
用户可以打开原始轨迹数据(文本文件),看到部分样本数据,设定结构参数,为相关字段完成匹配指定。
完成上述字段设定后,可点击“验证”,检查设定的合理性。
如设定合理,可点击“保存”,留作后用。
针对之前的数据结构描述文件,可以点击“打开”,实现查看和编辑。
轨迹数据结构描述文件的扩展名是“.rds”。
此功能模块的目的是提取原始轨迹数据文件中移动对象的标识列表,也就是搞清楚该文件具体包含了哪些移动对象。
用户需要打开原始轨迹数据以及对应的数据结构描述文件,然后选择并行线程数量(如果电脑不错,可选择四线程或八线程),最后,点击“提取”,完成对象识别。
该项操作可能有一定耗时,针对10GB的轨迹数据文件,恐需要几分钟时间。
移动对象标识文件的扩展名是“.oid”。
*按照标识及时间排序*
此功能模块的目的是完成针对原始轨迹数据的排序,首先按照对象标识排序,针对同一对象标识,按照时间升序排序。
同样,请用户打开原始轨迹数据文件、数据结构描述文件及移动对象标识文件,设定并行线程数量、时间跨度(可以接受默认的设定或选择特定时段)及坐标转换选项,布朗点参数。
由于系统提供的分析功能均是采用“近似火星坐标”,因此建议在坐标转换时,选择转换目的形式为“***->近似火星坐标”,当然,前提是用户需要事先知道当前轨迹数据的坐标系统是什么,也即“***”。通常来说是“WGS84”。
关于布朗点参数,请参阅【XSTAR更新】与布朗点的战斗
然后,点击“排序”,完成数据排序工作。
该项操作可能有一定耗时,针对10GB的轨迹数据文件,恐需要几分钟时间。
轨迹数据排序文件的扩展名是“.sdf”。
*构建索引结构*
此功能模块的目的是针对排序后的轨迹数据,建立基于时空立方体(ST-Cube)的索引,以加快数据分析速度。
用户需要打开排序后的轨迹数据文件,确定轨迹点间隔、索引时间粒度、最短载客时间、线程数量。
轨迹点间隔:如果连续两个轨迹点之间超过此时长,则认为其中间轨迹无效,比如通常来说,轨迹点(位置点)采集间隔可能是几秒或十几秒,而如果说一辆汽车在上午10点采集了一个位置点,到11点才采集了下一个位置,那么这中间的一个小时,恐怕很难确认其移动位置,因此,可以考虑认为是无效的而舍弃。当然,用户也可以认为再大的间隔也是有效的,如果是这样,那么请给出一个小于或等于0的数值。
索引时间粒度:这里的时间粒度指的是最小的时间分析单元,比如说,如果我们定义时间粒度为5秒,则我们在今后的分析中,将仅能将移动目标定位在5秒、10秒、15秒......,小于5秒的位置将无法获得。较小的时间粒度可能获得更精致的分析结果,但同时也可能快速增大索引文件数据量。索引时间粒度最好应与原始轨迹点采集间隔一致或稍小。比如说,如果原始间隔为10秒,那么,这里的时间粒度可以是5秒、10秒等,如果过大或过小则分析精度可能不够。原始轨迹点采集时间间隔并不一定是固定的,平均的采集间隔可能从数据提供者处获知,或者利用功能4打开排序后的轨迹数据,目测理解。
最短载客时间:针对出租车或有类似特征的移动目标,有明确出行目的的轨迹通常是载客行程,显然,太短的载客行程可能不与现实相符,而由于数据采集错误,可能会在轨迹数据中出现特别短的载客行程,比如20秒,这时,通过设置最短载客行程时长,可部分的解决此类问题。
并行线程数量:这通常取决于电脑的配置,用户可以自行尝试,一般来说,选择多个线程构造索引结构的运行时间会更短。针对10GB的轨迹数据,运行时间大概需要几分钟。
生成的索引文件扩展名为“idf”。
*可视化排序后的轨迹*
这应该是个相当简洁的原始轨迹数据浏览工具,左侧为移动对象标识列表,选中一个或多个移动对象后,其轨迹将显示在地图中,其轨迹线颜色和移动对象标识的对应关系显示在左上角。
通过拉动上方的小球,可以设定查询时段,点击时间线上的空白处,可实现最小时间索引粒度的微调。
点击时间标签,还可直接设置数值。
通过勾选不同的显示开关,可以改变显示内容;针对底图,也可设定图源;还可“导出”成Shapefile或高清大图片。
关于如何操作地图,如缩放、平移、选择等,请点击地图控制按钮中的“?”。
*轨迹时刻分析*
时刻分析指的是在分析轨迹数据时,我们设定的时间分析条件是一个时间点,而非一个时间段。
这里有一定数量的功能或时空条件的组合,我们在相应的控件下方给出了提示,但仍需用户不断熟悉后才可能熟练掌握。一个不变的原理是,通过设定时空条件,在地图窗口中会实时显示满足当前条件的所有移动目标位置以及当前行程的路线和起止点。如果存在聚合分析区,则也会实时显示聚合的数值结果。
左上角这几个按钮分别用于
清空当前地图上的轨迹数据显示
打开动画模式,实现自动调整时间点,让移动目标动起来
向前调整一个时间粒度单位
向后调整一个时间粒度单位
上述界面显示了
当前的分析时刻:通过拖动时间进度条或微调按钮可修改此值,在动画模式下,此值会自动修改。
动画模式下的模拟速度:从左到右,会提高对象的移动速度。
红色的线代表载客行程,绿色的线代表空载行程。
针对红色载客线,其红色小圈圈端点代表起点,绿色小圈圈端点代表终点。
针对绿色空载线,其绿色小圈圈端点代表起点,红色小圈圈端点代表终点。
除了“车”,我们还可以选择“人”,“船”,“飞机”,“图标”来代表移动对象,其中人、车、船、飞机的图标是可缩放的,因此,当比例尺太小时,是看不到的,而“图标”图标是不会缩放的,保证随时显示。
添加一个分析区
删除一个分析区
编辑一个分析区
保存当前所有分析区至一个文件
加载已保存的分析区文件
添加一个分析区。就是在地图上绘制一个多边形。
当添加或编辑一个分析区的时候,可以设定分析区的属性,如下:
Shapefile:这显然是最通行的空间数据格式。
GIS:这是攻城狮开发的XGIS控件支持的一种数据格式,其更加高效,但仅能在攻城狮所开发的软件工具间实现数据交换。
GeoJson:这也是目前流行的一个空间数据格式,但其由于标准尚在逐步修改中,本工具不保证输出的数据文件可在其它系统中有效打开。
CSV:是一个记录二进制表格的文本文件,其前面两列包含经纬度,或者XY。
*轨迹时段分析*
时段分析指的是在分析轨迹数据时,我们设定的时间分析条件是一个时间段。
可以通过设定类似时刻分析中的起止点分析区设定空间分析条件。
通过拉动上方的时间轴小球,可以实现时间段的定义。时间段与行程的重叠关系可以通过设定时间段定义下方的复选框来实现。可以认为选中的行程均为设定时间段范围以内的,或者是与设定时间段重叠的。
聚合分析区也同样适用于时段分析,并具有与时刻分析同样的操作方法。
时段分析提供更多的分析功能,每一项功能均可分别针对载客或空载行程
进行分析。
分析结果可以自由导出成矢量图层,整个分析界面可以导出高清图片。
各个分析结果图层可设置可视、标注等开关。
主要分析功能如下:
起点/终点分析
针对载客或空载行程,以及设定的时空条件,可快速提取相关行程的起点或终点。而且,如果有聚合分析区存在,则同时会计算聚合结果。
行程分析
针对载客或空载行程,以及设定的时空条件,可快速提取相关行程,行程路径可以是实际的路径,也可以是连接起止点的直线路径。
OD分析
OD分析是专门基于聚合分析区的,可以是全部的聚合分析区,也可以是选中的聚合分析区。通过OD分析,可以发现各个聚合区之间在给定时间条件下的行程数量,快速发现 并可导出。在OD分析时,起止点分析区的设定暂不被考虑。
断面分析
断面分析可发现在给定时空条件下,经过某一个或多个断面的行程数量以及经过时的平均速度。通过以上工具栏,可以构建断面。
一个断面在空间上就是一条直线或折线。而且根据绘制方向可确定相关行程经过该断面时的方向,系统会用一个小箭头代表相关行程方向。
如果是直线,那它经常代表的是在某个路段上,经过某个断面的行程数量及速度。
如果是一个折线,则可代表行程进入或离开某个区域的数量和速度。
*工具箱*
为支撑用户分析,系统还提供了多个辅助工具,比如地址定位器、空间聚类生成器、热力图生成器、地图文件生成工具、绘制多边形工具等。经过上述分析后导出的结果可以进一步利用这些工具实现空间聚类、热力图生成等。绘制多边形可以用来制作聚合分析区。
上述工具的使用方法请参照如下相关文章:
XGIS工具分享 | 这一次,我们为DBSCAN添加了参数定义工具:K-Distance分析图
XGIS工具分享 | ToXY:把文本形式的坐标转成空间数据
XGIS工具分享 | 可能是最便捷的海量POI地址匹配及修正工具
*最后的提醒*
攻城狮正在撰写关于XSTAR原理、功能和操作方法的详细介绍,即将出版,欢迎持续关注,并提供相关建议。
软件获取方法
在此文章下方,点击“喜欢作者”,并支付任意额度的费用(就不要自定义金额了,攻城狮不需要惊人的额度),之后,会自动通过微信公众号消息发送软件下载地址。
关注公众号“大数据攻城狮”。
在公众号中,输入“xstar”,获得软件授权码
下载软件,首次运行,需要给出注册信息,如下:
!!!除了软件下载,你还可能在下载文件夹中看到难得的样本数据 > 10GB
关于有偿使用该软件的目的及说明
确认狮友是一个严肃的软件工具使用者。
部分承担软件工具网络存储与分发费用。
此项费用并非软件购买费用,因此攻城狮无义务保证软件可正常运行,但狮友的建议或意见会被攻城狮所认真考虑。
软件工具可能因任何原因而停用,攻城狮对此无责任和说明义务。
版权声明
该软件工具版权归属微信公众号“大数据攻城狮”及开发者李响博士所有,其仅可用于非商业用途,如有商业用途需求,请致信 bigdatalion@yeah.net。
点击文末“阅读原文”即可了解软件开发者。
内容转载、商务活动、投稿等合作请联系
微信号:huitiandi321
邮箱:geomaticshtd@163.com
欢迎关注慧天地同名新浪微博:
ID:慧天地_geomaticser
《慧天地》敬告
《慧天地》公众号聚焦国内外时空信息科技前沿、行业发展动态、跨界融合趋势,探索企业核心竞争力,传播测绘地理信息文化,为测绘、地信、遥感等相关专业的同学提供日常学习、考研就业一站式服务,旨在打造政产学研用精准对接的平台。《慧天地》高度重视版权,对于原创、委托发布的稿件,会烦请作者、委托方亲自审核通过后才正式推发;对于来自网站、期刊、书籍、微博、微信公众号等媒介的稿件,会在作者栏或者文章开头显著标明出处,以表达对作者和推文引用平台版权的充分尊重和感谢;对于来源于网络作者不明的优质作品,转载时如出现侵权,请后台留言,我们会及时删除。感谢大家一直以来对《慧天地》的关注和支持!