APP下载

Anubis软件可视化封装设计与实现

2022-09-29桑文刚相鹏宇张兴国毕京学

计算机测量与控制 2022年9期
关键词:配置文件可视化卫星

桑文刚,相鹏宇,张兴国,卢 凯,毕京学,蒋 虎

(1. 山东建筑大学 测绘地理信息学院,济南 250101;2. 济南市勘察测绘研究院,济南 250101)

0 引言

随着北斗三号全面建成及投入使用,全球范围内既有美国卫星导航系统(GPS,global positioning system)、格洛纳斯卫星导航系统(GLONASS,global navigation satellite ssystem)、伽利略卫星导航系统(Galileo,galileo satellite navigation system)和中国北斗卫星导航系统(BDS, beiDou navigation satellite system)四大全球导航定位系统,又包括日本的准天顶卫星系统(QZSS,quasi-zenith satellite system)和印度导航系统(IRNSS,indian regional navigation satellite system)区域性系统,以及星基增强系统(SBAS,satellite-based augmentation system)、地基增强系统。用户进入多系统、多星座、多模式、多频段的导航定位新时代。用户如何快速、准确直观开展全球卫星导航系统(GNSS,global navigation satellite system)观测数据统计及质量评定,是“四多”时代下充分利用丰富的导航定位信号资源,挖掘GNSS导航定位性能重要前提。众多的GNSS系统为用户提供更多的选择,GNSS观测数据质量的好坏,直接影响到用户的导航定位性能,因此对GNSS系统数据分析也显得尤为重要。

传统的数据质量分析软件,如数据质量检测软件(TEQC,translation,editing and quality checking)、格弗兹尔恩克斯软件(GFZRNX)和实时数据流处理软件(BKG Ntrip Client)等[1-4],在对GNSS全系统支持、RINEX版本兼容及质量检核精细度等多方面难以满足多系统、多频点数据质量分析需要[5-7]。由捷克国家大地测量、地形与地图制图研究所开发的Anubis软件可有效弥补以上软件不足,实现对GNSS全系统支持,且软件开源,可进行二次开发。国内许多知名学者在Anubis的使用及数据分析方面进行了探究,陈秀德等人通过选取JFNG站某天数据对GPS/GLONASS/Galileo/BDS/QZSS/SBAS系统进行分析,验证了Anubis在多系统、多频点、多星座数据质量检核方面的优势[8]。在软件的可行性方面,肖燕等人通过Anubis和TEQC软件进行观测数据质量分析对比,并对Anubis质量检查指标进行了可视化分析,进一步验证Anubis在GNSS数据质量分析方面的有效性和可行性[9]。与TEQC等软件类似,Anubis以命令行模式运行,且软件本身不具备可视化功能,需要借助官方提供绘图脚本和第三方软件实现固定模式的可视化,灵活性不高。因此,张涛、伊珣等学者尝试利用Python给出Anubis可视化封装,并阐述关键代码以及模块之间数据通信模式,为Anubis二次开发应用给出借鉴[10-11]。但是缺乏对Anubis整体上的介绍,用户难以根据实际需求,设计编制特殊功能的软件。在软件编程方面,MATLAB可实现矩阵运算、提供交互式的App开发环境及丰富的数据可视化方式,广泛的应用在控制设计、仿真实验及图像处理等领域,苗继松等人便是利用MATLAB在数据可视化及仿真模拟方面的优势,介绍了可视化GUI界面的设计方法及流程,将重复的参数配置操作以可视化界面的方式设计,不仅提高了在卫星星座参数配置方面的效率,而且体现了MATLAB与SKT软件联合二次开发的优越性[12-13]。为此,本文基于Anubis三大核心功能模块,重点围绕XML文件参数配置、运行以及结果文件格式说明与利用等给出详细介绍与可视化封装策略,最后利用MATLAB App Designer设计并实现了参数配置、数据处理、结果可视化于一体软件工具箱。

1 Anubis核心模块及配置

G-Nut是捷克国家大地测量所基于C++语言开发的核心库,主要是应用于精确的GNSS数据分析和数据产品监测的软件核心库,Anubis便是利用该核心库实现的,兼容Linux、Windows、Mac系统,其核心处理模块可以快速实现对GNSS全星座的数据统计及定位精度、多路径、信噪比等方面的质量检核功能[14-15]。目前包括免费版本以及具有高级功能和实时解算功能的两个商业付费版。免费版本开源,官网提供Anubis免费版本的源码数据包,可在此基础之上对其进行二次开发。本文以免费版为对象重点介绍其核心模块及可视化封装策略。

Anubis软件整体分为参数配置、数据处理及辅助可视化三大模块。在软件操作过程中,用户可通过以下命令获取默认参数配置文件:

Anubis-X>Anubis_defaults.xml

可利用文本编辑器以手动输入的方式对目标文件路径、所需处理时段、质量检核详细度及检核指标阈值等参数进行配置,并生成用户自定义的配置文件user_defined.xml。通过如下命令调用核心处理模块生成相应结果文件:

Anubis-xuser_defined.xml

在结果可视化方面,由于Anubis自身不具备可视化功能,用户需采用官网提供的Perl语言脚本在Gnuplot绘图软件环境下生成固定模式的数据统计和质量检核图[16-17],软件数据处理流程如图1所示。虽然Anubis在命令行模式下运行简单效率高,但交互性、友好性较差,尤其是参数配置文件对于非专业人员也具有较大挑战。同时,相比较软件处理得到丰富的结果,官网提供的可视化脚本在时间跨度、表达模式多样性、灵活性也难以实现对处理结果的完美展示,比如,对于CORS等永久观测站等海量数据自动化监测难以发挥其作用,亟需进行二次开发[18-22]。

图1 Anubis数据处理流程

2 可视化封装基础

综合以上对Anubis的模块介绍并结合图1中的数据处理流程,可知对该软件进行可视化开发的重点是在封装核心数据处理模块基础上,利用高级语言开发人机交互界面,辅助用户根据需求轻松实现参数配置文件各属性的定制。同时,在深入了解处理结果文件结构的基础上,实现对数据结果多种形式上的可视化分析。

2.1 参数配置可视化基础

可扩展标记语言XML(Extensible Markup Language)具有高度灵活性、易于扩展和支持各种其他编程工具查看的特性,故G-Nut核心库配备专门解析XML文件的轻量级处理库,Anubis便是采用XML标记语言用于终端用户进行相应的参数配置。XML参数配置文件的结构通常分为根元素和对应根的子元素,包含元素的名称、属性及文本信息,主要分为基本参数、卫星系统参数、质量检核参数和文件路径参数4个主要根元素。

1)本参数存放于根元素中,包括时间参数、数据采样率及卫星系统等子元素。如果设定GPS系统不参与解算,可在元素中以‘-GPS’的方式进行配置,当然可按需自由设定其他卫星系统;站点名称需按照观测文件中的测站名称进行配置。参数格式如表1所示。

表1 基本参数

2)星系统参数存放在<卫星系统缩略词>根元素中(如GPS系统,则存放在中)。对于多系统、多频点的数据处理过程中,Anubis还支持对GNSS系统的卫星编号、观测类型、观测频段及信号通道的设定。格式如表2所示。

表2 卫星系统参数

3)质量检核参数位于配置文件中的根元素中,分为报告详细等级和质量检核阈值设定两个部分,其中报告等级部分在Anubis 开源版本默认参数配置文档中给出设定范围为0~9级,报告详细程度随着设定等级逐级提高。格式如表3所示。

表3 质量检核参数

4)文件路径参数在配置文件中的input和output根元素中,包括GNSS观测文件、星历文件的输入及数据分析结果文件、软件操作日志文件的输出。同时,可设定路径索引方便程序按照用户的配置进行文件的输入及输出。格式如表4所示。

表4 文件路径参数

因XML文件具有高度灵活、易于扩展和支持各种其他编程工具查看等特性,目前主流的软件如服务端的Python、C、Java、MATLAB以及Web端的JavaScript等都会配备读写XML文件的解析库,可根据开发需求自行选择。以MATLAB在脚本函数中进行XML的读写操作为例,首先采用xmlDoc = xmlread(“Anubis_defaults.xml”)命令将参数配置文件载入文档对象模型(DOM)节点中,然后以XML解析包中的getElementsByTagName()等命令按照属性节点名称完成属性文本检索。同时,也可以用creatElement()等命令对节点文本进行赋值。如图2所示,首先创建基本参数根元素及系统根元素,然后对参数配置中系统根元素进行文本赋值,可设定‘GPS’系统是否参与数据解算进行配置,即可将该设定写入到用户自定义的user_defined.xml参数配置文件中。

图2 卫星系统参数配置命令

用户需要注意的是Anubis免费版仅能以单天为单位进行数据处理,对诸如CORS运维、GNSS形变监测等用户在对多天海量数据进行综合处理分析时,需手动反复配置参数文件及数据处理,效率不高。故针对此类应用场合,用户可参考本文介绍的参数配置文件结构及自定义参数配置文件构建方法,以程序循环的方式生成参数配置文件及调用Anubis进行数据分析,即可得到长时序的数据结果。

2.2 检核结果可视化封装基础

用户配置好user_defined.xml文件后,调用Anubis主程序便可生成*.xtr和*.xqc两个结果文件。其中xtr文件结构由统计摘要、文件头信息、数据类型等若干数据块组成。每个数据块以“#======” 为起始符标识,其后紧跟其块名称与结果详细等级指标。数据块内包含若干数据行,数据行由6位字符关键字开头,且关键字具有唯一性。以“#”紧跟关键字开头为数据结构类型说明行,而以“=”或者空格紧跟关键词开头的为该数据行具体属性值。关键字及其结构说明行是用户快速对各检核结果定位与操作处理前提,也是用户进行结果可视化开发的关键。以获取图3中GPS系统信噪比统计信息为例,通过程序检索关键字 ‘=GPSS1C’数据说明行对应卫星编号‘x01’位置及其属性值,即可精准快速的完成数据检索。xqc文件主要存储定量的质量检核数据及定性的导航数据可用性指标。遵循XML文件格式,利用其高度灵活和易于扩展的特性,方便用户对xqc结果文件中的参数进行快速的数据提取。同时,适用于CORS运维及GNSS监测站的长期数据归档存储及数据分析。用户可参照上文中所介绍的XML文件格式及读取的方法,对xqc文件进行数据可视化分析。

图3 xtr结果文件

3 可视化开发实例

3.1 MATLAB App Designer

MATLAB是一款跨平台的数据分析、控制测试与系统模拟、App构建等综合性科研类编程软件,支持在Windows、Mac及Linux环境下运行,也正是如此只需编写一次程序便可在不同操作系统中直接运行,无需进行多次源码编译,为跨平台调试程序提供了极大地便利性。App Designer 是MATLAB程序中的一款App设计工具,无需专业的软件开发背景即可轻松上手,程序开发方式通过简单的拖放可视化组件即可实现图形界面的设计布局。以点对点交互式的方式为组件添加回调函数,让编程的方式变得更加简便,同时可编译成独立的桌面及Web端App,为用户提供更多的选择。

3.2 软件编程设计思路

基于以上XML参数配置以及结果文件可视化封装基础,结合某单基站CORS系统日常运维对观测数据检核统计快速可视化操作的需求,尤其是实现可见卫星三维展示及单天-多天灵活分析等定制功能,采用MATLAB App Designer设计实现了集参数配置、数据处理及结果可视化操作与绘制一体化的Anubis软件辅助工具箱AAT(Auto Anubis Toolbox)。软件工具箱是基于Anubis核心处理模块构建,设计流程如图4所示,主要分为参数配置可视化界面和数据可视化分析界面两部分,使用了选项组组件进行分页处理,可实现不同功能界面的自由切换。

图4 AAT软件设计流程图

编程的主要思路:前端部分利用App Designer提供的按钮、文本框及复选框等交互处理控件为每项参数配置相应的解析函数以便精准的生成对应参数,然后按照MATLAB在脚本函数中对XML参数配置文件读写操作命令即可快速的生成核心处理模块所需的参数配置文件,一切就绪后软件后台会主动调用Anubis的核心处理模块进行数据处理;软件后端接收到生成的数据处理结果文件,首先按照结果文件中的数据统计及质量检核唯一关键字进行数据块的索引和分割工作,然后依据用户的实际选择将单天处理数据直接在选项组面板中进行数据可视化呈现。对于连续处理的多天数据,程序自动按照设定的日期生成相应的参数配置文件及数据存档文件夹,调用核心处理模块进行数处理并将数据结果转移到对应日期的文件夹进行归档存储,在数据可视化方面,借助MATLAB丰富的可视化命令将融合数据结果以丰富多样的可视化图表呈现。

3.3 软件设计及实现

软件的参数配置界面,采用时间选择器控件配合文本框,轻松实现采样时段及采样率设置。其中,多天数据处理时,后台会自动提取、调用处理及归档数据。通过复选框及按提示输入卫星系统参数,可快速实现对卫星编号、观测频段、观测值类型和信号通道的配置以及按需对系统参数的过滤和多种方式数据参与解算的组合配置。质量检核部分,用户可根据需要设定各检核指标阈值及各报告详细度等参数。完成以上配置后使用‘生成配置文件’按钮自动生成用户自定义参数配置文件。点击‘运行’,核心处理模块便可根据用户设置的参数及输入文件后台处理,生成相应的结果文件。借助MATLAB强大的图形处理功能,绘制卫星天空图、精度因子及数据完整率等图并显示在选项组的面板中。软件主界面如图5所示。

图5 AAT软件主界面

4 软件功能的测试与分析

为了验证AAT工具箱的封装及可视化效果,选取某单基站CORS数据进行测试。在工具箱的卫星轨迹选项面板中可模拟显示CORS站上空各卫星系统运行状况。图6给出在面板中的站心坐标系下选择显示某天北斗卫星三维轨迹,图中的不同类型轨迹线表示该站接收到北斗系统的中圆地球轨道、倾斜地球同步轨道及地球同步轨道3种轨道卫星,还可实现不同卫星系统以及运行轨迹二三维自由切换显示,从而有效监测CORS站上空卫星运行状况。

图6 北斗卫星三维轨迹

在精度因子选项面板中,可根据需求进行全系统、部分及单一系统的卫星数量与精度因子指标绘制。图7给出某天北斗系统观测卫星数量与空间位置精度因子的全天变化图,亦可在面板中选择显示不同的精度因子指标。通过工具箱实现指标间组合显示,更有利于分析卫星观测数量及精度指标间的相关性。

图7 定位精度因子时间序列

多路径效应会严重影响观测数据的精度,是由于卫星信号在传播过程中受到周围环境的干扰造成的,严重的时候会造成接收机与卫星之间的信号失锁;信噪比是接收机观测数据中的载波信号强度与噪声强度之间的比值,是对接收机收到的数据质量评估的指标之一,通常观测数据的信噪比越大,数据质量越高。图8为北斗系统B3I频段全部卫星的多路径、信噪比和卫星高度角对比分析图。可在多路径及信噪比选项面板中设定不同的GNSS系统及频段呈现数据图表。以多种检核指标组合的方式,较官方Perl语言脚本生成的点-柱状图相比,不仅数据可视化样式丰富,而且对CORS站卫星信号接收及周围环境的评估起到重要作用。

图8 多路径、信噪比及高度角时间序列

数据完整率是在处理数据的过程中,接收机实际接收到的数据历元与全部数据历元的比例,是衡量数据观测质量的重要指标。AAT工具箱支持对多天数据观测完整率分析,用户可在参数配置界面中设定数据分析日期范围,软件后台会自动处理并生成结果文件。图9为2021年6月19日至2021年7月19日CORS站数据完整率分析图。在数据完整率选项面板中选择显示GPS和BDS两个系统,以天为单位对观测数据完整率进行对比可视化分析,同样支持对GNSS系统不同组合方式的数据完整率分析,可根据需求自行选择。既省去了原本需重复参数配置及数据解算的过程,又可以反映CORS站观测时段中数据的可用性、完好性及接收机性能的优劣。

图9 数据完整率时间序列

5 结束语

为提高Anubis软件人机交互性,降低非专业用户参数配置难度,充分挖掘多模多频下处理结果可视化分析多样性以及部分用户二次开发的需求,本文在介绍Anubis三大核心模块基础之上,重点分析参数配置文件及结果文件的结构,给出高级语言进行可视化封装策略与方法。并以MATLAB App Designer为例,结合单基站CORS运维实际需求设计并开发了一款Anubis辅助工具箱,为用户独立进行二次开发和封装提供借鉴。通过实测数据验证,经封装后的Anubis软件,大大提高参数配置效率,尤其是突破了原软件单天数据处理及成果可视化模式固定等局限性,可多角度、多维度展示‘四多’时代下数据统计及质量检核成果,进一步提高其在CORS系统综合数据质量评估及服务性能监测方面的应用。本文可为对Anubis进行实际需求方面的二次开发和软件封装的用户作为一定的参考,具有一定的实用价值,在以后的研究工作中可结合编程软件对其开源数据包进行整合开发,并尝试服务器云端数据自动处理,各种终端用户数据共享的效果。

猜你喜欢

配置文件可视化卫星
数据可视化设计在美妆类APP中的应用
思维可视化
掌握颜色查找表的魔力
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
静止卫星派
复变函数级数展开的可视化实验教学
复变函数级数展开的可视化实验教学
复变函数共形映射的可视化实验教学