推荐阅读:【摘 要】近年来,BeiDou的应用日益广泛,在精密单点定位解算、BeiDou基线解算、站坐标解算等应用中,需要大量iGMAS站点观测数据。为了满足iGMAS跟踪站对数据传输的要求,实现智能化数据上传,作者研制了基于Linux QT下的iGMAS 服务数据专用 FTP 客户端。实
【摘 要】近年来,BeiDou的应用日益广泛,在精密单点定位解算、BeiDou基线解算、站坐标解算等应用中,需要大量iGMAS站点观测数据。为了满足iGMAS跟踪站对数据传输的要求,实现智能化数据上传,作者研制了基于Linux QT下的iGMAS 服务数据专用 FTP 客户端。实验测试结果表明:该软件操作简单,能快速准确地实现数据传输功能。
【关键词】iGMAS数据传输;智能化;QT
iGMAS系统是2007年开始建设,在2011年9月份,在联合国卫星导航国际委员会第六届大会上,中国政府的创意提案得到了参会代表的一致赞同,并且成立了监测评估国际工作组。目前系统的建设现状是已经建成十个站,包括中国境内有八个,另外南北极各建一个站,同时全球还有二十五个跟踪站正在建设之中。通过全球布站,把跟踪站上的数据发到数据中心,汇集到分析中心经过数据处理,对空间星座卫星状态进行检测评估,对空间导航的信号质量进行监测评估等。
一般的FTP客户端软件可用于上传、下载数据文件[1],但需要大量的人工操作,如寻找相应目录,并将数据分别上传至相应目录下或从目录下多个文件中逐个选择进行下载,工作异常繁琐。因此,本文根据iGMAS数据文件类型及其存放特点,研制了专门上传iGMAS数据的客户端软件,提高了上传工作的智能化水平,降低了对操作人员的技术要求。
1 iGMAS产品及存放规则分析
1.1 产品类型
目前,iGMAS定期向用户提供以下两类数据[2]:一是iGMAS全球跟踪站的观测数据;二是iGMAS的产品,包括:①BDS卫星的最终星历、快速星历、超快速星历;②BDS卫星钟的信息等,本文的数据传输软件主要针对跟踪站观测数据的自动上传。
iGMAS提供的所有文件均可在其FTP服务器上找到,它们都以Z格式的压缩文件存放。数据类型文件存放在/pub/data/iGMAS/BDT路径下,此路径下同一年的文件存放在一个文件夹中,文件夹名为年份,每一年的文件夹下按照年积日分列子文件夹,年积日文件夹下按照小时分列子文件夹,小时子文件夹下按照高频和小时文件分别进行数据的存放,具体存放规则见图1。
iGMAS跟踪站观测数据文件均采用RINEX格式,每个文件都由文件头和数据记录两部分组成。命名规则为:aaaabbbc.yyt。其中:aaaa表示测站名;bbb表示年积日;c表示一天内的文件序号;yy表示年号;t表示文件类型。文件类型具体包含以下几种:a表示多径数据、d表示观测值文件,e表示电离层数据、g表示GLONASS星历、i表示完好性数据、j表示抗干扰数据、k表示健康数据、l表示GALION星历、m表示气象数据、n表示GPS星历、r表示BDS星历、t表示时差数据。
2 软件设计
2.1 设计思路
该软件需要将接收机采集到的数据,按照RINEX格式要求,将数据打包,自动上传至iGMAS相应目录。同时该软件还需显示上传进度、上传速度等信息方便用户了解上传情况。上传完成后要能生成上传日志,方便用户查询上传数据的状态。此外,从软件的健壮性考虑,该软件还应该具有判断运行过程中的错误并自动显示的能力[3]。
根据上述要求,该软件必须做到:①能够访问iGMAS提供的FTP服务器,自动寻找指定的文件并下载该文件;②能够提示运行过程中各种错误;③需要具备一个人性化的人机交互界面,提高智能化水平,使得用户不局限于专业人员。
2.2 软件实现
本软件的开发环境为Linux CentOS 6.4,选择QT 4.8为开发平台。该软件可分为两部分,第一部分为获取接收机数据,对数据进行解析、打包生成上传文件名和上传路径,第二部分为网络传输,将数据上传至iGMAS数据中心。
2.2.1 文件名与上传地址生成
由第2节可知,文件名的生成,关键是将接收机数据中的周内秒,转换成BDS周和年积日后,根据iGMAS数据中心的相应地址可以很方便的生成需上传的文件名filename。由filename可直接生成上传地址p。
p =“pub”+“data”+“iGMAS”+“BDT”+年+年积日+“highrate”+小时+时刻+filename; / /高频文件
p =“pub”+“data”+“iGMAS”+“BDT”+年+年积日+“hourly”+小时+filename; / /小时文件
2.2.2 上传功能实现
QT类库是一个跨平台的面向对象的C++类库,目前主要用于Linux下的开发。QT的高度面向对象和模块化的特征能够将开发人员从繁琐中解脱了出来,并提高开发的效率和程序的可靠性。因此本软件采用了QT作为工具开发 FTP 客户端。
QT对象间通讯类似于Microsoft MFC的消息映射和事件循环,他的对象间通讯采用的是signal-slot机制,signal就好像是事件,而slot则是响应事件的方法,如果需要实现对象间的通讯,只需要把一个对象的slot和另外一个对象的signal“连接起来”就可以实现“事件驱动”。
通信实际开发的主要步骤为:
1)获取iGMAS数据中心登陆信息:选择需要上传的数据中心,并查找到登陆用户名及密码;
2)初始化网络连接状态:使用QT中的QFtp函数建立FTP客户端,并创建相应的槽函数;
3)获取网络连接状态:查看网络状态主要看步骤2中建立的槽函数的响应情况,如果有响应值并返回为TRUE,则表示网络握手成功,否则返回FALSE;
4)数据上传:第2节提到默认数据上传时间是每一小时的00、15、30和45分钟,在每一个规定时间下,调用QFtp的类函数将数据put到相应的路径下。
5)获取上传数据状态:调用QFtp的类函数对步骤4上传的文件进行状态查询,获取上传文件的进度,如果返回TRUE,则表示上传完成。
2.3 图形界面设计
该软件的图形界面主要实现以下功能:①提供接收机配置信息,让用户可以设置接收机的登录信息;②提供数据中心配置信息,让用户可以设置数据中心的登录信息;③显示运行过程中出现的各种错误;④显示上传速度与进度。
3 结果分析
以2015年1月1日,iGMAS跟踪站xia1的站点为例,统计一个月上传至数据中心的数据并与本地产生的数据进行对比,具体如图3所示:
根据iGMAS对跟踪站上传数据的要求,A、E、J、T四个数据类型的文件仅需上传小时文件,每天产生文件的数量为24个;其余八个数据类型的文件同时具备高频和小时文件,每天产生文件的数量为120个。由于伽利略卫星过少,每天观测到的时长不固定,因此L文件数据类型一般比较少,数据量不固定。图3中蓝色表示的是本地计算机产生的数据量,红色表示上传至数据中心的数据量,可以看出蓝色和红色均重叠,因此表明上传数据正常。
4 结束语
通过测试结果比较,可以证明软件在网络正常时可以按需的上传数据文件,保证上传工作正常进行。本软件基本能满足iGMAS系统对跟踪站数据传输的需求,并且能实现无人值守式运行,能充分保证跟踪站设备的运行。
【参考文献】
[2]陈欣,杨博,李爱荣.IGS数据下载方法[J].软件导刊,2013(5):147-148.
[3]李建虎.shell程序自动下载IGS站数据的实现[J].测绘信息与工程,2009(34):9-11.