一种面向GNSS应用的数据共享平台实现方法
2017-02-05周帮周维黄文德庞浩金星4刘伟
周帮,周维,黄文德,庞浩,金星,4刘伟,5
(1.湘潭大学信息工程学院,湖南 湘潭 411105;2.国防科技大学机电工程与自动化学院,湖南 长沙 410073;3.导航仪器湖南省工程研究中心,湖南 长沙 410073;4.湖南师范大学物理与信息科学学院,湖南 长沙 410006;5.中南大学物理与电子学院,湖南 长沙 410083)
0 引 言
IGS(International GNSS Service)是提供高质量的GPS、GLONASS数据和产品来支持地球科学相关研究、跨学科应用和教育事业等组织进行研究,其GPS跟踪站点遍布全球,由200多个组织的400多个GPS、GLONASS跟踪站组成,并在互联网上无偿面向全球用户提供GPS、GLONASS信息:如高精度的卫星星历、IGS站的观测数据、对流层数据等,为大地测量、地球动力学、包括电离层研究、气象、参考框架、电离层、精密时间传递、地球自转速率、高分辨的地球自转速率及其变化研究、地壳运动等研究提供了数据支持[1]。
国际上目前通用的全球卫星导航系统观测数据文件格式是RINEX,该格式存储数据采用文本文件形式[2]。IGS提供的各类数据产品均采用RINEX数据格式[3]。
随着GNSS技术不断发展,基于GNSS的应用和科学研究也不断深入,人们对实时动态定位的需求更加广泛。因此一个能够提供动态数据面向GNSS应用的数据共享平台将给GNSS用户及研究者带来极大的便利。平台依靠其在长沙地区的三个基站、安装有测量型接收机的移动站和U-blox低成本模块,独立向广大用户提供RINEX格式的包括北斗系统数据在内的静态数据和动态数据。同时该平台为那些愿意将自己数据分享出来的用户提供数据质量分析和共享的功能并且用户可以通过平台链接对IGS上的数据进行下载。通过采集用户和平台自身数据最终将极大地丰富GNSS数据。
1 数据共享体系架构
面向GNSS应用的数据共享平台逻辑结构分离出了数据存储、业务逻辑、应用需求,分离后各部分结构清晰,极大地降低了模块间的耦合度,有利于系统的扩展和维护[4]。平台采用面向对象的编程思想,整个体系架构分为4层。分别为提供数据采集功能的采集层,对采集的数据进行存储的存储层,对数据质量进行分析和处理的数据分析与处理层和为用户提供下载功能的数据分享层。以上各层又包含多个功能子模块。下面将对各层进行详细介绍。
联系人: 周帮 E-mail:izhoubang@qq.com
1.1 数据采集层
数据采集层包括采集本地数据和采集用户公开数据两个部分。采集本地数据主要是通过导航仪器湖南省工程研究中心(参与单位)的三个基站、一个移动站和U-blox接收机获取观测数据,其中三个基站和一个移动站的数据是通过上海司南卫星导航技术有限公司自主研发的北斗卫星导航定位系统(BDS)+GPS三星八频GNSS M300接收机和AT300天线进行采集,通过室外携带U-blox NEO-M8T接收机采集供用户进行低成本实时动态(RTK)研究的数据。采集用户公开数据是在用户选择共享上传数据的条件下,平台对用户的公开数据分类整理后供其他用户下载使用。采集的数据最终都以RINEX格式存储在服务器中。通过数据的采集可以极大地提高用户下载数据的多样性进而提高用户试验用例的完整性。图1为数据采集层设计示意图。
图1 数据采集层设计示意图
1.2 数据存储层
数据存储层的主要功能包括两方面: 一方面对采集层采集的数据进行存储,另一方面是对用户上传数据的简要信息诸如采样时长、采样间隔等信息和用户的个人信息进行存储。从数据库的优化设计和数据的归档方式对数据的采集层进行详细的分析。
1.2.1 数据库的优化设计
平台使用MySQL2005数据库对各类信息进行存储。为了给用户提供安全可靠的数据服务,平台主要从数据库的设计和查询优化对数据库进行了优化。下面以用户信息表为例。在描述优化之前先对用户信息表进行简单的描述。
用户信息表(tb-user)存储的是平台用户的个人简要信息,方便用户登录网站、找回密码。主键是userid自动递增,作为用户信息的唯一标记。为了提高用户信息和数据的安全系数用户密码进行了MD5加密,MD5自身是不可逆的,但是目前网络上有很多数据库支持反查询。盐值就是在密码hash过程中添加额外的随机值从而增加了反查询的复杂度。
不难看出以上表的在设计方面都具有如下特点:1) 所有的“对象”都在它自己的table中,没有冗余。2) 简洁,更新属性通常只需要更新很少的记录。根据标准化的设计规则创建表并在这些表间建立关系;通过取消冗余度与不一致相关性,该设计规则可以同时保护数据并提高数据的灵活性。
由于平台是面向GNSS应用的所有用户,有大量结构化的信息需要存储。为了使用户信息表在磁盘上占据的空间尽可能小,能在数据库性能上带来非常大的提升。本文采取了以下措施对数据库进行改进:1) 使用正确合适的类型,可以使用数字存储的方法避免使用字符串。2) 使用较小的整数类型使用户信息表更小。将MEDIUMINT代替INT,因为MEDIUMINT列使用的空间要少25%.
因为在数据库的CRUD操作(create 添加数据read读取数据 update 修改数据delete删除数据)经常会使用到数据的查询(SELECT)。有效的使用索引是提高SELECT操作的性能并且实现了数据库的物理分页方式,有效提高了对数据库各种操作的效率。在使用索引时我们避免了变化很小的列,比如:性别列、婚姻状况列;对可以不建立索引的列避免建立;消除所有在已有索引的前缀上建立的索引。
1.2.2 数据归档方式
一种简单而又清晰的归档方式将给用户查找和编程实现带来极大的方便。服务器上,具体的目录组织结构如下所述,Data表示平台用于存储所有数据的文件夹,BaseStation表示存储平台接收机采集的数据,BaseStation-one表示第一台接收机,yyyy表示年份的四位数,mm表示月份,dd表示一个月中的第几天,扩展名.yyt中的yy表示两位年号, 00~79表示2000~2079年。最后一位t表示文件类型,O表示观测值,C表示北斗星历,N表示GPS星历, G表示GLONASS星历,省略号表示省去了一些目录[5-6].
1.3 数据分析与处理层
数据质量分析与处理层是通过JNI使Java调用C语言编写的动态链接库实现的。用有强大的服务器计算能力的服务器来完成数据分析与处理的过程,极大地提高了用户体验。各个检测项的值输出到对应文档,一方面可以给用户提供数据质量分析的参考,另一方面可以在网页上以图形的形式进行展示。
数据分析与处理的流程大致包括对观测数据和星历数据的读取,计算卫星的位置,将观测数据和卫星坐标以时间、卫星类型、卫星号进行匹配,获取接收机的位置,对数据质量的各个指标进行测试。其中数据质量指标包括多路径效应、顾及TGD双频观测值求解的电离层延迟、卫星高度角和方位角等。最后将结果以文件形式输出。
1.3.1 多路径效应
地面接收机的接收到的信号中不仅包括直接信号,而且包含被建筑物、地面反射或散射形成的多路径信号。由于多路径引起的伪距误差一般为1~5 m,载波相位的误差为1~5 cm.为了检测、抑制和消除多路径,可以在卫星信号设计、接收天线的设计和选址、数字信号处理和定位导航计算着四个环节采取不同策略[7].该平台实现了CMC模型在定位导航环节对多路径进行估计生成报表。用户可直观地对数据质量进行评判。
1.3.2 顾及TGD的GNSS双频观测值求解电离层延迟
当卫星信号穿过电离层时其传播方向和速度会受到电离层的影响而发生改变,这种改变引起的误差被称为电离层延迟。本文通过实现了顾及TGD的GNSS双频观测值求解电离层延迟模型[8],可以对被检测数据进行电离层延迟分析,检测结果以文件形式保存在服务器。用户可以直观了解数据的质量。
1.3.3 卫星方位角和高度角
通过测量卫星方位角及高度角的变化可以帮助用户分析单颗卫星在观测时段的情况也可以分析天线的可视卫星的情况,若某颗卫星在整个观测时段中都处于较低的截止角,则可以考虑剔除该卫星的数据[9]。若天线的可视卫星少或者卫星的高度角过低则可以考虑更换天线的位置。事后数据处理可以避开该段数据,提高数据的有效性。
1.3.4 伪距单点定位
伪距单点定位是通过接收机收到的伪距观测值,并结合从卫星星历中得到的卫星瞬时位置及速度,根据空间后方交会原理,确定空间坐标系中单个点位绝对位置的定位方法[10],其定位速度快,解算方法简便,精度也足以满足部分用户对米级精度的定位需求。
1.4 数据共享层
数据共享层的总体技术架构是基于SSM框架,即SpringMVC,Spring,MyBatis框架组合。在表示层(VIEW)采用了HTML5新特性对页面进行展示;在效果以及渲染方面,采用大量的jQuery[11]插件和CSS技术;在数据质量分析的结果展示中,使用ECharts 丰富了可视化图表,极大缩短了用户与数据的距离;使用百度地图的大数据可视化开源库mapv对数据的动静态定位结果进行展示;使用SpringMVC实现了视图层的逻辑分离;用Spring对MyBatis的支持以及MyBatis的数据持久化功能;使用shiro安全框架简化了身份验证和授权并且实现了单点登录功能;使用Ecache避免了从关系数据管理系统中取数据出来的高花费、高延迟;使用Maven工具对项目进行管理能够很方便地管理项目报告、生成站点、管理JAR文件,版本管理;数据库采用MySQL2005数据库。
通过Eclipse开发平台对以上功能和技术进行了实现,将代码打成.war包部署在Tomcat服务器上。为了使平台能承受更大并发用户数取得更好的性能。我们从Tomcat启动行参数和Tomcat容器内对Tomcat进行了优化。例如:
1) 在Tomcat启动行参数配置中,因为tomcat默认配置下是以client(客户端)的运行模式,但是如果选择server(服务器)意味着tomcat是production模式运行,以该模式运行时tomcat将拥有更强的并发处理能力和更快的JVM垃圾回收机制,进而可以大幅度提高其负载与吞吐量。
2) 优化Tomcat容器内,在其安装目录:confserver.xml文件,定位到 3) 为了防止DDOS形式的攻击,把在一个按钮或者是一个请求在一秒内连续执行150次视为是攻击。把这个请求相关联的IP封锁20分钟防止DDOS攻击。 把Tomcat优化的项目都加上,结合前面的数据库优化、结构化查询语言以及网站代码的优化。我们使用预测系统行为和性能的负载测试工具loadrunner,通过模拟上千万用户实施并发负载及实时性能监测的方式来对系统性能进行评估。对比优化前后的各项指标如表1所示。 表1 优化前后结果对照表 通过分析上表的数据可以看出,参考目标值并且对比优化前和优化后的实际值可看出,经过Tomcat优化、数据库优化、结构化查询语言以及网站代码的优化各方面的调优后测试在总体上可以达到预期的性能指标。优化后在业务的响应时间和成功率等各方面都有较大的提高。达到了优化预期效果。 在平台投入使用之前进行了多方面的测试工作,包括: 1) 不同类型接收机接收到的不同格式的转化; 2) 相同接收机动态数据和静态数据的质量检测; 3) 数据共享平台界面友好性和操作流畅性的检测。静态数据是CUTC站TRIMBLE NETR9接收机从2016年1月10日0时0分0.000 000 0秒起一天的数据;动态数据是用户提供ComNav接收机的2015年9月28日2点31分54.000 000秒到2015年9月28日3点37分 12.000 000 0秒起点到终点折回起点的一个小时数据。下面将对各结果进行详尽分析。 结果展示界面作为数据质量分析结果的一个直观的展示工具,展示了高度角如图2所示、多路径如图3所示、信噪比随时间的变化如图4所示。对于多GNSS数据的结果展示,用户可以通过控件对系统进行选择这样就可以对单颗卫星的上述几个指标进行查看。用户可以点击截图按钮、缩放按钮、还原按钮、下载按钮对图片进行操作。通过拉动时间轴下的时间选择条可以查看某一时间段的放大图片。 通过平台的数据处理算法以经纬度的形式输出接收机的位置数据。数据处理结果通过匹配百度地图后可以直观地查看静态数据的定位位置和动态数据的运动轨迹如图5所示。用户通过查看数据的定位结果给甄别数据质量的优劣提供参考,也可以通过匹配的卫星地图获取周边环境对接收机数据质量的影响。 图2 高度角随时间的变化图 图3 多路径随时间和卫星位置的变化 图4 信噪比随时间和卫星位置的变化图 图5 动态数据的处理结果 用户通过在线分析界面上传相应的数据文件,当文件上传完成后平台软件将自动调用数据分析与处理层算法进行数据分析,最后数据分析结果也将保存在源数据文件中。进入到基站源数据下载界面时,用户可以通过树状图快速找到自己要下载的数据,并且根据需求下载相关的文件或者文件夹。在右侧文件下载选择框中用户可以方便看到所下载的文件名、文件归属、文件类型、文件大小等信息。进入数据共享界面后,如图6所示,用户可以通过填写对应的筛选条件诸如采样间隔、采样时长、导航系统检索自己需要的文件。同时用户可以通过点击检索出来的表上的放大镜按钮就能方便地查看该组数据的质量信息。如果数据的各方面都比较理想,用户就可以通过点击下载按钮下载对应的数据文件。 图6 共享数据下载界面 系统为了削弱网络带宽对下载时长的影响,所有数据都以压缩包的形式下载到用户本地。通过数据压缩处理下载时长缩短为下载源文件时长的1/4.事后处理的用户有下载一天或者一个月的数据的需求,数据量往往以Gb为单位。下载时间根据带宽的不同可能要数分钟或者数十分钟不等,期间可能出现网络异常而终止下载。如果让用户重新下载既耗费时间又浪费金钱。考虑到可能出现的异常情况,平台支持断点续传,允许用户从上传下载断线的地方继续传送,极大地提高了用户体验。 本文基于SSM框架探讨了一种面向GNSS应用数据共享平台的实现方法并实现,解决了GNSS应用用户数据共享的束缚;使用B/S模式实现了跨平台数据的自由、便捷共享;提供了涵盖动态和静态数据检索及下载服务,从不同角度满足了用户的检索和下载需求;同时本文也对GNSS观测数据质量分析的方法、内容进行研究,并实现能够处理GPS/BDS双系统数据质量分析的数学模型。数据处理结果以JSON文件格式保存。平台实现数据预览和在线制图功能为用户提供可视化服务。 数据共享平台已经通过审核发布,欢迎用户通过http://124.232.156.99:8081/datacenter/对数据中心资源进行下载和使用。实际验证结果表明,基站数据自动更新过程、上传数据自动质量分析过程便捷。数据质量分析使用Java调用动态链接库的模式在处理24 h采样间隔30 s的数据总时长小于24 s.高度角、可见时长、信噪比、多路径、电离层变化可以准确反映数据的质量。该平台操作简单、处理速度快、图形显示清晰明了,功能齐全,能够对数据进行有效分析。 致谢:感谢湖南省军民融合项目支持;感谢北斗开放实验室微小课题支持;感谢网站所有用户提供的数据;感谢CUTC站提供的测试数据。 [1] 陈俊勇. 走向新世纪的GPS[J]. 中国航天,2000(10):3-7. [2] GURTNER W.RINEX:The Receiver Independent Exchange Format Version 2.10[EB/OL]. [2011-05-24].ftp://igscb.jpl.nasa.gov/igscb/data/format/210.txt. [3] 李洪涛,许国昌,薛鸿印.GPS应用程序设计[M].北京:科学出版社,1999. [4] 谢有顺,李盛乐,刘小利,等. 面向地震行业的地震数据共享服务平台的设计与实现[J]. 大地测量与地球动力学,2017(5):546-550. [5] NOLL C E. The help of page[EB/OL].[2008-06-04].ftp://cddis.gsfc.nasa.gov/. [6] HERRING T A,KING R W.GAMIT reference manual releasel0.3[R].NASA Washington DC,2006. [7] IRSIGLER M,EISSSFELLER B. Comparison of multipath mitigation techniques with consideration of future signal structures[C]//ION GPS/GNSS,Portland,OR,September 2003. [8] 李征航,黄劲松.GPS测量与数据处理[M].武汉:武汉大学出版社,2007. [9] 李俊毅,邓启林,李军正. GNSS多频数据质量分析软件设计与实现[J]. 全球定位系统,2016,43(2):55-59. [10]许国昌.GPS理论、算法与应用[M].北京:清华大学出版社,2011. [11]ZENG S.MasterjQuery+javascript[M].Beijing:Posts&Telecommunications Press,2009:373-389. [12]曾顺.精通jQuery+javascript[M].北京:人民邮电出版社,2009:373-389.2 共享平台实现效果验证
2.1 数据分析与处理结果
2.2 数据共享效果
3 结束语