介绍一款GNSS预处理软件-Anubis

作者:乐于水
全球卫星导航系统发展迅猛,继美国的全球定位系统(GPS)、俄罗斯的格洛纳斯卫星导航系统(GLONASS)和欧洲的伽利略卫星导航系统(Galileo)之后,我国北斗三号基本系统已于2018年12月27日完成建设并开始提供全球服务,北斗系统也日益表现出卓越得定位、导航功能。高精度位置信息的获取必然依赖GNSS数据预处理,数据质量检查提供的信息不仅有利于数据后处理,还有益于高质量观测数据的收集、存储。上述多种系统、信号、频率的出现给GNSS数据预处理带来了新的挑战。RINEX3.X格式已经包容了上述提到的所有系统、所有频段的数据。
目前常用的GNSS数据预处理软件有BNC(BKC ntrip client)及TEQC,但只有BNC是开源的,且支持RINEX3.X格式,但其操作相对复杂,且TEQC只能检核GPS和GLONASS双系统数据不支持BDS数据。本文介绍一种新兴GNSS预处理软件Anubis,由捷克国家大地测量、地形与地图制图研究所开发,支持 GPS, GLONASS, BDS, Galileo, QZSS,SBAS各频点数据的质量检核与分析,且支持Rinex3.X格式,具体功能包括数据缺失和小数据块检测、观测值可用频带统计、周跳和钟跳检测、多路径效应影响估计、计算信噪比等,若同时提供导航数据还可以进行标准单点定位、方位角和高度角计算。
Anubis软件免费开源,支持Windows、Linux和MacOS等常见操作系统。类似于TEQC,该软件也在命令行窗口运行。通过预设好的配置文件,Anubis一次可对多个Rinex文件进行并行预处理操作,此举可简化处理流程,提高效率。Anubis的第一版于2013年发布,目前最新版本是Anubis2.2.3。下载网址为
http://www.pecny.cz/sw/anubis/
1 安装配置
1.1 Windows 操作系统
首先从程序的下载页面获取文件名中带有 “win” 字样的适用于 Windows 操作系统的程序文件。例如,下载的文件为:anubis-2.2.3-win-static-64b,下载完成后将该文件重命名为“anubis.exe”。打开“命令提示符”窗口,使用 cd命令进入程序所在目录,执行 anubis 命令即可使用该程序。如果希望在任何目录都能使用该程序,可以考虑将程序所在目录添加到系统的“PATH”环境变量,或直接将anubis.exe 移动至“C:\Windows\System32” 文件夹内。
需要注意的是,如使用 Windows7 或者更早的操作系统,可能会遭遇缺失某些动态链接库(.dll文件)的错误。这种情况下,对于能够连接互联网的计算机,可以为系统安装最新的更新;对于无法连接网络的计算机,可以尝试安装微软 VC++2015 套件,或者将所缺失的 dll 文件放置到 anubis 程序所在的文件夹来解决。
1.2 Linux 操作系统
对于 UNIX/Linux 操作系统,下载文件名中含有 “lin” 字样的程序文件,注意程序的适用环境(32 或 64 位系统)。下载完成后将其重命名为 “anubis”,在终端中进入程序所在目录,使用如下命令为其添加执行权限:$ chmod +x anubis
之后就可以通过命令 anubis 使用程序了,但是每次使用前需要切换工作目录。如果希望在任何目录下都可以使用此程序,可以将其移动到“/usr/bin” 目录下。
2 程序使用
2.1 数据获取
采用IGS数据进行处理。IGS数据获取网站有CDDIS(ftp://cddis.gsfc.nasa.gov)、SOPAC(ftp://garner.ucsd.edu/)、IGN(ftp://igs.ensg.ign.fr/)。另国内可访问武汉大学IGS数据中心(ftp://igs.gnsswhu.cn/、http://www.igs.gnsswhu.cn/)。
本次采用BJFS站2019年1月12日RINEX观测数据和导航数据,2.2.3版本Anubis。
2.2 Anubis参数
输入anubis –h显示Anubis可接收参数各项。如图
参数释义:
· -x <xml>:输入的配置文件;
· -l <log>:输出的日志文件;
· -v <int>;日志文件详细度;
· -X:输出默认的配置文件;
· -V:显示程序的版本信息;
· -h -help:显示帮助信息。
配置文件以 XML格式编写。其中-l <log>项较少用到,因为程序在运行时都会自动生成log日志文件。日志文件详细度也可在配置文件中进行设置。
详细命令如anubis -x <xml> -l <log> -v <int> -X -V –h
实际解算操作可直接:anubis -x BJFS012.xml
2.3 配置文件
使用下面的命令可以输出一个包含默认项的配置文件:
anubis -X2> anubis_defaults.xml(注意此处-X为大写的X)
配置文件设置一般在默认配置文件基础上进行修改。下面以配置文件为范例进行讲解。
程序的参数配置放在配置文件的 config 元素中,该元素包含以下子项:
· gen:全局配置项,包含采样间隔、卫星系统、站点等;
· qc:数据质量分析检查的配置项;
· input:输入文件配置,包括观测文件与星历文件;
· output:输出文件配置,包括输出数据、质量分析结果、操作日志等。
· gnss:卫星系统配置项,如对卫星和观测量、频段等的筛选;
· rec:接收机描述项,如站点名称、编号,接受机型号和天线型号,以及年代变化。
对于和 GNSS 卫星系统相关的配置,使用卫星系统的 3 个字符简称,它们的对应关系为:
· GPS:GPS;
· GLONASS:GLO;
· Galileo:GAL;
· BeiDou:BDS;
· SBAS:SBS;
· QZSS:QZS
2.3.1 全局配置项gen
包含的子元素有:
· beg:开始处理的时刻;
· end:结束处理的时刻;
· int:数据的采样间隔;
· sys:要处理的卫星系统;
· rec:要处理的站点列表。
示例如下:
<gen>
<beg>"2019-01-12 00:00:00" </beg>
<end>"2019-01-12 23:59:59" </end>
<sys> GPS GAL GLO BDS -QZS -SBS </sys>
<rec> GOPEWTZR POTS </rec>
<int>30</int>
</gen>
在上例中,将要处理的时间间隔设置为 2019 年 01月 12 日 0 点 0 分 0 秒至 23 点 59 分 59 秒,数据的采样间隔为 30 秒,要处理的观测站的列表为 GOPE、 WTZR 和POTS;并指定了要处理的和不要处理的卫星系统,不处理的卫星系统前添加“-”号作为标记。
2.3.2 质量检查配置项qc
属性有:
· sec_sum:总结报告信息的详细度;
· sec_hdr:观测信息检查报告的详细度;
· sec_obs:观测量统计报告的详细度;
· sec_est:定位解算(SPP)报告的详细度;
· sec_gap:观测值跳变报告的详细度;
· sec_bnd:观测频段统计报告的详细度;
· sec_pre:周跳和失锁等预处理报告的详细度;
· sec_ele:卫星方位角和高度角报告的详细度;
· sec_mpx:多路径效应影响报告的详细度;
· sec_snr:信噪比统计报告的详细度;
· sec_sat:卫星信息报告的详细度;
· int_stp:预处理时的数据取样间隔;
· int_gap:探测观测跳变时的阈值;
· int_pcs:探测观测缺失时的阈值;
· col_sat:与卫星相关的报告的列数;
· mpx_nep:探测多路径系统误差时使用的历元数;
· mpx_lim:探测多路径误差时使用的阈值;
· pos_kin:接收机是否为运动状态。
· pos_int: int positioning interval
· pos_cut:positioningelevation angle cut-off (degrees)
· ele_cut:设置的截至高度角;
· sat_rec:bool expected satellite (all | receivertracking)
· use_health:enum using method of satellite healhy status (position|statistics|all)
· dV_lim:double vertical limit position
· dH_lim:double horizontal limit position
· dG_lim:doubel GDOP limitposition
在以上的属性中,以“sec”作为前缀的项,其取值范围为 0 到 9。以“int”作为前缀的项,以秒作为单位,截至高度角以度作为单位。而 pos_kin 的取值范围只有 true 或 false。
示例如下
<qc
sec_sum="1"
sec_hdr="1"
sec_obs="1"
sec_est="1"
sec_gap="1"
sec_bnd="1"
sec_pre="1"
sec_ele="1"
sec_mpx="1"
sec_snr="1"
sec_sat="1"
int_stp="900"
int_gap="600"
int_pcs="1800"
col_sat="35"
mpx_nep="15"
mpx_lim="5"
pos_kin="0"
pos_int="900"
pos_cut="5"
ele_cut="10"
sat_rec="0"
use_health="3"
dV_lim="5"
dH_lim="5"
dG_lim="6"
/>
2.3.3 输入数据配置项input
其中的元素有:
· rinexo:输入的 RINEX 观测数据文件,多个文件使用空白分隔;
· rinexn:输入的 RINEX 广播星历文件,多个文件使用空白分隔(GPS导航电文文件);
· sp3:输入的精密星历文件,多个文件使用空白分隔。示例如下:
<inputs>
<rinexo>
rinex/bjfs0120.19o
rinex/wuhn0120.19o
</rinexo>
<rinexn>brdc/brdm0120.19n </rinexn>
<sp3> igs/igs20356.sp3</sp3>
</inputs>
2.3.4 输出数据配置项output
其中的元素有:
· xtr:文本格式的处理报告文件,较繁复,后续报告内容的可视化以xtr文件为基础;
· xml:XML 格式的处理报告文件,较简洁;
· log:处理日志文件,文本格式。
<outputs append="0" verb="0" >
<xtr>$(rec)20190112.xtr </xtr>
<xml>$(rec)20190112.xml </xml>
</outputs>
Anubis 将为每个输入的观测数据输出一个报告文件。示例在配置报告文件的输出路径时,使用了 $(rec) 这个变量,它代表输入的观测数据的测站名。默认配置文件中<flt>元素不适用。
2.3.5 卫星系统配置项GNSS
卫星系统配置项可以对每个卫星系统做单独的设置,通常用于过滤卫星、频段和观测类型等。其中的卫星系统名采用上述提到的 3 个字符的简写方式。每个卫星系统可设置如下参数:
· sat:要处理的卫星编号(默认为所有卫星);
· type:要处理的观测类型(默认为所有类型);
· band:要处理的频段(默认为所有频段);
· attr:要处理的观测值属性(默认为所有属性)。
其中的 attr 项目针对 RINEX 3 标准。在 RINEX 3 中,观测类型由以前的 2 个字符改为 3 个字符。新增的第 3 个字符表示观测值属性,该属性与产生观测值的接收机通道有关。
一个对 GLONASS 系统的示例配置如下:
<glo>
<sat> R01R02 R04 </sat>
<type> C LD S P </type>
<band> 1 23 </band>
<attr> A BC D I L M N P Q S W X Y Z</attr>
</glo>
2.3.6 接收机描述项rec
该项可选填,对于IGS站点可填写站点名、编号,以及历年天线和接受型号变化,具体信息可从ftp://ftp.igs.org/pub/station/log/网站获取。
3 可视化
官方提供了配套的绘图工具, 包括Perl与python两版, 该工具通过读取xtr 文件即可输出分析结果图像。在Windows环境下亲试以python方式进行可视化。
官网提供python可视化化源码文件,下载地址:http://www.westernexplorers.us/GNSSplotters/anubisplot.py
运行环境要求安装python2.x并安装numpy 1.5和matplotlib1.3第三方库。实测运行环境(python2.7+ numpy 1.16+matplotlib 1.5)。numpy和matplotlib通过pip安装(pipinstall numpy==1.16)。
可视化命令:
python anubisplot.py +skyplot BJFS20190112.xtr
python anubisplot.py +azelplot BJFS20190112.xtr
python anubisplot.py +timeelplot BJFS20190112.xtr

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
