北斗分析 (众神之战--阿努比斯)

众神之战–阿努比斯

– G-NUT/ANUBIS 对北斗地面站数据的分析


anubis介绍

      “阿努比斯(古希腊语:Ἄνουβις)是埃及神话中一位与木乃伊制作与死后生活有关的胡狼头神。阿努比斯其实是个古希腊语的名字[1],而根据阿马尔奈文书中的阿卡德语译文,他的名字在埃及语的发音更接近“Anapa”[2]。在埃及神话中,他是奈芙蒂斯与欧西里斯之子,也有记述说是奈芙蒂斯与赛特之子。目前所知有关阿努比斯最早的记述是在古王国时期的金字塔文本,文中他与法老的葬礼有所关联[3]在这个时期,阿努比斯是最重要的死亡之神,但到了中王国时期他的地位便被欧西里斯所取代[4]。”----自由的百科全书
image


G-NUT/ANUBIS

      该软件是由捷克捷克共和国大地观测台Pecny(GOP)开发的G-Nut核心库实现的,一款用于对所有可用GNSS星座中的现代数据进行质量检查的开源程序,这款开源程序可通过GNSS观测文件/导航文件或SP3轨道产品支持来提供对GNSS数据全面的定量和定性控制:
  *观测统计(观测,信号,频带,GPS卫星,GLONASS,伽利略,北斗,SBAS,QZSS,IRNSS的计数)
  *标准点定位  
  *预处理,包括时钟跳变和周跳检测以及所有星座图,频率和信号上的其他中断
  *卫星标高和方位角(如果受特定星座导航消息或SP3产品支持)
  *特定于海拔的直方图,地平线的卫星上升/下降时间和用户海拔截止
  *伪距多径和噪声
  *载波相位信噪比
  *数据缺口和小数据
  *以特定的XTR和简约的标准XML格式输出
  *其他有用的列表和统计信息(卫星导航数据可用性,卫星健康状态等)----pecny


众神之战

toolsTEQCgfzrnxBNCG-NUT/ANUBIS
出处unavcoGFZBKGPECNY
官网unavco GFZBKGanubis
3.x 格式
是否质检
是否绘图
是否开源
操作友好×

(注:仅对软件)
      从上面的列表可以看出anubis不管在何种状况下都存在着明显的优势,以及它在spp中的优秀可控性,对足以让我们让选择它作为质检程序。


北斗归位

image

      北斗卫星导航系统第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越大定位精度越差,PDOP越小定位精度越高。
空间信号精度   空间信号测距误差(SISRE)是UERE主要构成部分,SISRE反映卫星播发的导航电文偏差对用户测距的影响。
用户定位精度定位服务性能描述北斗卫星导航标准单点定位精度
北斗卫星健康情况   北斗卫星健康状态图


北斗地面站

数据介绍

      上面我们对北斗卫星的性能及其健康状态我们有了一个初步的认识,为了探究一下国内IGS站点对北斗卫星的接受情况。

国内地面站分布

国内IGS站分布

      数据来源于科学网*李鸿斌

sitenetworkcitycountryagencylatlonglast rinex2last rinex3sat systemsite
BJFS00CHNIGSFangshanChinaCASM39.61115.892020/2/19n/aGPS+GLOBJFS00CHN
BJNM00CHNIGSBeijingChinaNIM40.25116.222020/2/18n/aGPS+GLOBJNM00CHN
CHAN00CHNIGSCHANGCHUNChinaCHO43.79125.442020/2/19n/aGPSCHAN00CHN
GUAO00CHNIGSURUMQIChinaJPL43.4787.182016/3/14n/aGPSGUAO00CHN
HKSL00HKGIGSTuen MunChinaHKLD22.37113.932020/2/192020/2/19GPS+GLO+GAL+BDS+QZSSHKSL00HKG
HKWS00HKGIGSWong ShekChinaHKLD22.43114.342020/2/192020/2/19GPS+GLO+GAL+BDS+QZSS+SBASHKWS00HKG
JFNG00CHNIGSJiufengChinaCNES30.52114.492020/2/192020/2/19GPS+GLO+GAL+BDS+QZSS+SBASJFNG00CHN
LHAZ00CHNIGSLhasaChinaBKG29.6691.102020/2/192020/2/19GPS+GLO+GAL+BDS+SBASLHAZ00CHN
SHAO00CHNIGSSheshanChinaJPL31.10121.202019/3/19n/aGPSSHAO00CHN
URUM00CHNIGSUrumqiChinaGFZ43.8187.602018/12/162020/2/19GPS+GLO+GAL+BDS+QZSS+IRNSS+SBASURUM00CHN
WUH200CHNIGSWuhan CityChinaGFZ30.53114.362018/12/162020/2/19GPS+GLO+GAL+BDS+QZSS+IRNSS+SBASWUH200CHN
WUHN00CHNIGSWuhanChinaWHU30.53114.362016/9/262020/2/8GPS+GLO+BDSWUHN00CHN
TNML00TWNIGSHsinchuChinaNML24.80120.992019/3/28n/aGPSTNML00TWN
KMNM00TWNIGSKinmenChinaNLSC24.46118.392020/2/192020/2/19GPS+GLO+GAL+BDS+QZSS+SBASKMNM00TWN
CKSV00TWNIGSTainanChinaNLSC23.00120.222020/2/192020/2/19GPS+GLO+GAL+BDS+QZSS+SBASCKSV00TWN
TCMS00TWNIGSHsinchuChinaNML24.80120.992020/2/19n/aGPSTCMS00TWN
TWTF00TWNIGSTaoyuanChinaTL24.95121.162020/2/192020/2/19GPS+GLO+QZSS+SBASTWTF00TWN
NCKU00TWNIGSTainanChinaJAXA23.00120.22n/a2020/2/19GPS+GLO+GAL+BDS+QZSSNCKU00TWN

数据来源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图,此处来利用了新浪图床来存放我们的图片。最后获得的可视化图如下:
    image
    image









          我们可以看到urum站可接受到的北斗卫星最高为C36,其中多数卫星为北斗2代,所以北斗的整体质量不如GPS,这在多路径、单点定位 、信噪比等各项质量指标上都呈现一个下的趋势,随着北3的不断升空,我们不久会看到一个良性的结果,当然这也是笔者仅仅从质量角度来定量分析北斗卫星,我们还可以从各个角度来价定北斗卫星的性能。

致谢

  • 感谢 GFZ-波茨坦-李盼博士的热情指导
  • 感谢 IGS 数据中心 MGEX 提供观测数据
  • 感谢 GFZ 数据中心 提供精密星历
  • 感谢 北斗办 提供北斗参数
  • 感谢 中国卫星导航系统管理办公室测试评估研究中心 提供卫星健康状态
  • 感谢 GMT 中文社区
  • 感谢 G-Nut/Anubis 提供开源软件与绘图程序
  • 感谢 GNSS HELP
  • 15
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
要解决非法向前引用问题,你可以按照以下步骤进行调整: 1. 将常量定义的顺序调整为先定义后引用。在你的代码中,DE_DUST2是第一个被引用的常量,但它被放在了其他常量之后。你需要将它的定义移到其他常量之前。 2. 将枚举常量的定义移到静态常量之后。在你的代码中,CSGO_Map枚举类型的定义在静态常量之前,这也会导致非法向前引用的错误。将枚举类型的定义移到静态常量之后。 以下是修改后的代码示例: ```java public enum CSGO_Map { DE_DUST("Dust", "炙热沙城", 2, "DE"), DE_AZTEC("Aztec", "雨林遗迹", 2, "DE"), CS_AGENCY("Agency", "办公大楼", 2, "CS"), CS_OFFICE("Office", "办公室", 2, "CS"), DE_DUST2("Dust2", "炙热沙城II", 1, "DE"), DE_INFERNO("Inferno", "炼狱小镇", ON_SERVICING, "DE"), DE_MIRAGE("Mirage", "荒漠迷城", ON_SERVICING, "DE"), DE_NUKE("Nuke", "核子危机", 0, "DE"), DE_VERTIGO("Vertigo", "殒命大厦", 0, "DE"), DE_ANCIENT("Ancient", "远古遗迹", 0, "DE"), DE_ANUBIS("Anubis", "阿努比斯", 0, "DE"), DE_OVERPASS("Overpass", "死亡游乐园", 0, "DE"), DE_TRAIN("Train", "列车停放站", 1, "DE"), DE_CACHE("Cache", "死城之谜", 1, "DE"), DE_TUSCAN("Tuscan", "托斯卡纳", 1, "DE"); public final String name; public final String ChineseName; public final int state; public final String kind; public static final int ON_SERVICING=0; public static final int RESERVED=1; public static final int REMOVED=2; public static final int OTHER=3; } ``` 请注意,这只是一个示例,并不代表你的完整代码。你需要根据你的实际情况进行调整。确保将被引用的常量定义在被引用之前,并将枚举类型的定义移到静态常量之后。这样就可以解决非法向前引用的问题。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值