众神之战–阿努比斯
– G-NUT/ANUBIS 对北斗地面站数据的分析
anubis介绍
“阿努比斯(古希腊语:Ἄνουβις)是埃及神话中一位与木乃伊制作与死后生活有关的胡狼头神。阿努比斯其实是个古希腊语的名字[1],而根据阿马尔奈文书中的阿卡德语译文,他的名字在埃及语的发音更接近“Anapa”[2]。在埃及神话中,他是奈芙蒂斯与欧西里斯之子,也有记述说是奈芙蒂斯与赛特之子。目前所知有关阿努比斯最早的记述是在古王国时期的金字塔文本,文中他与法老的葬礼有所关联[3]在这个时期,阿努比斯是最重要的死亡之神,但到了中王国时期他的地位便被欧西里斯所取代[4]。”----自由的百科全书
G-NUT/ANUBIS
该软件是由捷克捷克共和国大地观测台Pecny(GOP)开发的G-Nut核心库实现的,一款用于对所有可用GNSS星座中的现代数据进行质量检查的开源程序,这款开源程序可通过GNSS观测文件/导航文件或SP3轨道产品支持来提供对GNSS数据全面的定量和定性控制:
*观测统计(观测,信号,频带,GPS卫星,GLONASS,伽利略,北斗,SBAS,QZSS,IRNSS的计数)
*标准点定位
*预处理,包括时钟跳变和周跳检测以及所有星座图,频率和信号上的其他中断
*卫星标高和方位角(如果受特定星座导航消息或SP3产品支持)
*特定于海拔的直方图,地平线的卫星上升/下降时间和用户海拔截止
*伪距多径和噪声
*载波相位信噪比
*数据缺口和小数据
*以特定的XTR和简约的标准XML格式输出
*其他有用的列表和统计信息(卫星导航数据可用性,卫星健康状态等)----pecny
众神之战
tools | TEQC | gfzrnx | BNC | G-NUT/ANUBIS |
---|---|---|---|---|
出处 | unavco | GFZ | BKG | PECNY |
官网 | unavco | GFZ | BKG | anubis |
3.x 格式 | 否 | 是 | 是 | 是 |
是否质检 | 是 | 否 | 是 | 是 |
是否绘图 | 是 | 否 | 是 | 是 |
是否开源 | 否 | 否 | 是 | 是 |
操作友好 | √ | √ | √ | × |
(注:仅对软件)
从上面的列表可以看出anubis不管在何种状况下都存在着明显的优势,以及它在spp中的优秀可控性,对足以让我们让选择它作为质检程序。
北斗归位
北斗卫星导航系统第41颗卫星(地球静止轨道卫星)、第49颗卫星(倾斜地球同步轨道卫星)、第50颗卫星(中圆轨道卫星)和第51颗卫星(中圆轨道卫星)已完成在轨测试、入网评估等工作,于近日正式入网工作。其中,第41和49颗卫星由中国空间技术研究院研制,分别于2018年11月1日和2019年11月5日在西昌卫星发射中心发射;第50和51颗卫星由中国科学院微小卫星创新研究院研制,于2019年11月23日在西昌卫星发射中心发射。北斗办
上述文字是北斗网在2月15日发布的消息,这则消息的发布标识着北斗3再次加血,北斗家族也更加强大。全球服务性能更加完善。
我们从官方发布来了解一下北斗卫星的在轨情况:
星下点轨迹是卫星运动轨迹垂直向下在地球表面的投影(2020 001)
从可见卫星数目图中可以了解北斗系统基本的覆盖区域(2020 001)
PDOP是表征卫星与用户相对位置关系几何强度的参数,在用户测距误差一定的情况下,PDOP越大定位精度越差,PDOP越小定位精度越高。
空间信号测距误差(SISRE)是UERE主要构成部分,SISRE反映卫星播发的导航电文偏差对用户测距的影响。
定位服务性能描述北斗卫星导航标准单点定位精度
北斗卫星健康状态图
北斗地面站
数据介绍
上面我们对北斗卫星的性能及其健康状态我们有了一个初步的认识,为了探究一下国内IGS站点对北斗卫星的接受情况。
数据来源于科学网*李鸿斌
site | network | city | country | agency | lat | long | last rinex2 | last rinex3 | sat system | site |
---|---|---|---|---|---|---|---|---|---|---|
BJFS00CHN | IGS | Fangshan | China | CASM | 39.61 | 115.89 | 2020/2/19 | n/a | GPS+GLO | BJFS00CHN |
BJNM00CHN | IGS | Beijing | China | NIM | 40.25 | 116.22 | 2020/2/18 | n/a | GPS+GLO | BJNM00CHN |
CHAN00CHN | IGS | CHANGCHUN | China | CHO | 43.79 | 125.44 | 2020/2/19 | n/a | GPS | CHAN00CHN |
GUAO00CHN | IGS | URUMQI | China | JPL | 43.47 | 87.18 | 2016/3/14 | n/a | GPS | GUAO00CHN |
HKSL00HKG | IGS | Tuen Mun | China | HKLD | 22.37 | 113.93 | 2020/2/19 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS | HKSL00HKG |
HKWS00HKG | IGS | Wong Shek | China | HKLD | 22.43 | 114.34 | 2020/2/19 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS+SBAS | HKWS00HKG |
JFNG00CHN | IGS | Jiufeng | China | CNES | 30.52 | 114.49 | 2020/2/19 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS+SBAS | JFNG00CHN |
LHAZ00CHN | IGS | Lhasa | China | BKG | 29.66 | 91.10 | 2020/2/19 | 2020/2/19 | GPS+GLO+GAL+BDS+SBAS | LHAZ00CHN |
SHAO00CHN | IGS | Sheshan | China | JPL | 31.10 | 121.20 | 2019/3/19 | n/a | GPS | SHAO00CHN |
URUM00CHN | IGS | Urumqi | China | GFZ | 43.81 | 87.60 | 2018/12/16 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS+IRNSS+SBAS | URUM00CHN |
WUH200CHN | IGS | Wuhan City | China | GFZ | 30.53 | 114.36 | 2018/12/16 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS+IRNSS+SBAS | WUH200CHN |
WUHN00CHN | IGS | Wuhan | China | WHU | 30.53 | 114.36 | 2016/9/26 | 2020/2/8 | GPS+GLO+BDS | WUHN00CHN |
TNML00TWN | IGS | Hsinchu | China | NML | 24.80 | 120.99 | 2019/3/28 | n/a | GPS | TNML00TWN |
KMNM00TWN | IGS | Kinmen | China | NLSC | 24.46 | 118.39 | 2020/2/19 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS+SBAS | KMNM00TWN |
CKSV00TWN | IGS | Tainan | China | NLSC | 23.00 | 120.22 | 2020/2/19 | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS+SBAS | CKSV00TWN |
TCMS00TWN | IGS | Hsinchu | China | NML | 24.80 | 120.99 | 2020/2/19 | n/a | GPS | TCMS00TWN |
TWTF00TWN | IGS | Taoyuan | China | TL | 24.95 | 121.16 | 2020/2/19 | 2020/2/19 | GPS+GLO+QZSS+SBAS | TWTF00TWN |
NCKU00TWN | IGS | Tainan | China | JAXA | 23.00 | 120.22 | n/a | 2020/2/19 | GPS+GLO+GAL+BDS+QZSS | NCKU00TWN |
数据来源MGEX
从上面表中的数据中可以看到内地可以接受北斗数据的地面站有JFNG00CHN、LHAZ00CHN、URUM00CHN、WUH200CHN、WUHN00CHN,海峡两岸可以接受北斗卫星数据的站点有HKSL00HKG、HKWS00HKG、KMNM00TWN、CKSV00TWN、NCKU00TWN(在此强烈申明一个中国原则,也对IGS这样的国际组织表示强烈的谴责,在官方列表中将台湾省几个所属站点国家所在列列为台湾)
##数据下载
我们选择2020年1月1日(2020001)的数据乌鲁木齐站(urum)作为案列来进行下载,
数据准备
- 数据下载
URUM00CHN_R_20200010000_01D_30S_MO.crx.gz``````gfz20863.sp3.z``````brdm0010.20p.Z
- 进行数据解压
gunzip URUM00CHN_R_20200010000_01D_30S_MO.crx.gz ``````uncompress *.Z
- 数据格式转换
sh_rename_rinex3 URUM00CHN_R_20200010000_01D_30S_MO.crx ./urum0010.20o
数据处理
- 建立文件夹
mkdir rinex brdc igs
- 将数据分别移动至文件夹
mv urum0010.20o rinex ``````mv brdm0010.20p brdc``````mv gfz20863.sp3
- 获得配置文件
anubis -X 2> anubis -X 2> urum001.xml
- 对配置文件进行配置
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE config>
<config>
<gen>
<beg> "2020-01-01 00:00:00" </beg>
<end> "2020-01-01 23:59:59" </end>
<sys> GPS GAL GLO BDS QZS SBS </sys>
<rec> urum </rec>
<int>30</int>
</gen>
<!-- general description:
beg .. beg time (default: all)
end .. end time (default: all)
int .. data sampling (default: 30s)
sys .. GNSS system(s) (default: all)
rec .. GNSS receiver(s) (rec active list, e.g.: GOPE ONSA WTZR ... )
-->
<qc
sec_sum="9"
sec_hdr="1"
sec_obs="9"
sec_est="9"
sec_gap="9"
sec_bnd="9"
sec_pre="9"
sec_ele="9"
sec_mpx="9"
sec_snr="9"
sec_sat="9"
int_stp="900"
int_gap="600"
int_pcs="1800"
col_sat="36"
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"
/>
<!-- quality check description:
sec_sum [0-9] .. summary statistics
sec_hdr [0-9] .. header metadata check
sec_est [0-9] .. estimated values
sec_obs [0-9] .. observation statistics
sec_gap [0-9] .. gap & pieces
sec_bnd [0-9] .. observation bands
sec_pre [0-9] .. cycle-slip, clock-jumps
sec_ele [0-9] .. azimuth/elevation (if navigation)
sec_mpx [0-9] .. multipath calculation
sec_snr [0-9] .. signal-to-noise ratio
sec_sat [0-9] .. satellite information
int_stp int[s] .. interval for time-spacing
int_gap int[s] .. interval for gap identification
int_pcs int[s] .. interval for smalle pieces identification
col_sat int[#] .. number of columns for sat-specific reporting
mpx_nep int[#] .. number of epochs for multipath calculation
mpx_lim double .. sigma-multiplicator for MP cycle-slip & outlier detection
pos_kin bool .. kinematic receiver (true = kinematic)
pos_int int .. positioning interval
pos_cut double .. positioning elevation angle cut-off (degrees)
ele_cut double .. user elevation cut-off (only for expt/have, degrees)
sat_rec bool .. expected satellite (all | receiver tracking)
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 limit position
-->
<inputs>
<rinexo> file://rinex/urum0010.20o</rinexo> <!-- obs RINEX decoder -->
<rinexn> file://brdc/brdm0010.20p </rinexn> <!-- nav RINEX decoder -->
<sp3> file://igs/gfz20863.sp3 </sp3>
</inputs>
<!-- inputs description:
<decoder> path1 path2 path3 </decoder>
...
where path(i) contains [file,tcp,ntrip]:// depending on the application
-->
<outputs append="0" verb="0" >
<xtr> $(rec)20200520.xtr </xtr> <!-- filter output encoder -->
<xml> $(rec)20200520.xml</xml>
<log> 20200520.log</log>
</outputs>
<!-- outputs description:
<encoder> path </encoder>
...
where path contains [file,tcp,ntrip]:// depending on the application
-->
<gps> <!-- any GNSS constellation: GPS GLO GAL BDS SBS QZS -->
<sat> </sat> <!-- list of GPS satellites: G01 G02 .. or empty(ALL) -->
<type> </type> <!-- list of GPS obs types: C L D S P or empty(ALL) -->
<band> </band> <!-- list of GPS obs bands: 1 2 5 or empty(ALL) -->
<attr> </attr> <!-- list of PGS attributes: A B C D I L M N P Q S W X Y Z or empty(ALL) -->
</gps>
<glo> <!-- any GNSS constellation: GPS GLO GAL BDS SBS QZS -->
<sat> </sat> <!-- list of GPS satellites: R01 R02 .. or empty(ALL) -->
<type> </type> <!-- list of GPS obs types: C L D S P or empty(ALL) -->
<band> </band> <!-- list of GPS obs bands: 1 2 3 or empty(ALL) -->
<attr> </attr> <!-- list of PGS attributes: A B C D I L M N P Q S W X Y Z or empty(ALL) -->
</glo>
<bds> <!-- any GNSS constellation: GPS GLO GAL BDS SBS QZS -->
<sat> </sat> <!-- list of GPS satellites: C01 C02 .. or empty(ALL) -->
<type> </type> <!-- list of GPS obs types: C L D S P or empty(ALL) -->
<band> </band> <!-- list of GPS obs bands: 1 2 3 or empty(ALL) -->
<attr> </attr> <!-- list of PGS attributes: A B C D I L M N P Q S W X Y Z or empty(ALL) -->
</bds>
<gal> <!-- any GNSS constellation: GPS GLO GAL BDS SBS QZS -->
<sat> </sat> <!-- list of GPS satellites: E01 E02 .. or empty(ALL) -->
<type> </type> <!-- list of GPS obs types: C L D S P or empty(ALL) -->
<band> </band> <!-- list of GPS obs bands: 1 2 3 or empty(ALL) -->
<attr> </attr> <!-- list of PGS attributes: A B C D I L M N P Q S W X Y Z or empty(ALL) -->
</gal>
</config>
- 数据质检
生产需要的质检数据文件 anubis -x urum001.xml -v 9 依次来生成详细的质量检查文件在此数字9表示最详细,其范围取值为{0-9}
绘图处理
anubis官方提供两种绘图,分别是基于pyton的Anubis的Anubisplot.py,还有就是基于perl库的plot_Anubis-2.2-2018-08-01,2.2这是官方所能提供的最新的版本,本次文章之前,查阅了一些文献,在python绘图的时候出现一些不可逆的问题,所以本次我们选择官方给出的plot_Anubis来进行绘图
官方也给出了绘图的命令 plot_Anubis.pl --ifile URUM20200520.xtr --plot="urum.png" --all --all --title="urum [2020:001]"
- 图形展示
在此我们以eps为格式矢量图,我们利用gmt 自带的转换模块 psconvert 将矢量的eps转化为高清的gmt图,此处来利用了新浪图床来存放我们的图片。最后获得的可视化图如下:
我们可以看到urum站可接受到的北斗卫星最高为C36,其中多数卫星为北斗2代,所以北斗的整体质量不如GPS,这在多路径、单点定位 、信噪比等各项质量指标上都呈现一个下的趋势,随着北3的不断升空,我们不久会看到一个良性的结果,当然这也是笔者仅仅从质量角度来定量分析北斗卫星,我们还可以从各个角度来价定北斗卫星的性能。
致谢
- 感谢 GFZ-波茨坦-李盼博士的热情指导
- 感谢 IGS 数据中心 MGEX 提供观测数据
- 感谢 GFZ 数据中心 提供精密星历
- 感谢 北斗办 提供北斗参数
- 感谢 中国卫星导航系统管理办公室测试评估研究中心 提供卫星健康状态
- 感谢 GMT 中文社区
- 感谢 G-Nut/Anubis 提供开源软件与绘图程序
- 感谢 GNSS HELP