zoukankan      html  css  js  c++  java
  • RTKLIB的relpos函数之——selsat()函数

    selsat()函数的源代码:

    /* select common satellites between rover and reference station --------------*/
    static int selsat(const obsd_t *obs, double *azel, int nu, int nr,
                                const prcopt_t *opt, int *sat, int *iu, int *ir)
    {
          int i,j,k=0;

          trace(3,"selsat : nu=%d nr=%d ",nu,nr);

          for (i=0,j=nu;i<nu&&j<nu+nr;i++,j++) {                                 /*   注意:此方法在按卫星号从小到大排序后才有效    */
                if (obs[i].sat<obs[j].sat) j--;                                             /* 如果rover的卫星号小于base的卫星号,就让rover的下一个卫星号跟base的卫星号比  */
                else if (obs[i].sat>obs[j].sat) i--;                                     /* 如果rover的卫星号大于base的卫星号,就让base的下一个卫星号跟rover的卫星号比  */
                else if (azel[1+j*2]>=opt->elmin) { /* elevation at base station */
                       sat[k]=obs[i].sat; iu[k]=i; ir[k++]=j;
                       trace(4,"(%2d) sat=%3d iu=%2d ir=%2d ",k-1,obs[i].sat,i,j);
                }
          }
          return k;
    }

    obs:储存的是一个历元rover和base的观测数据(已经分别按卫星号从小到大排序了)

    nu:就是当前rover观测到的卫星个数

    nu:就是当前base观测到的卫星个数

    azel:储存的是卫星方位角和高度角(在上一个函数zdres()函数中计算出来的)

    opt->elmin:是配置文件中设置好的截止高度角(小于此角度的卫星数据会被剔除)

    sat:用来储存公共卫星的编号

    iu:储存rover中的公共卫星在obs中的位置

    ir:储存base中的公共卫星在obs中的位置

  • 相关阅读:
    软件体系架构复习要点
    Operating System on Raspberry Pi 3b
    2019-2020 ICPC North-Western Russia Regional Contest
    2019 ICPC ShenYang Regional Online Contest
    2019 ICPC XuZhou Regional Online Contest
    2019 ICPC NanChang Regional Online Contest
    2019 ICPC NanJing Regional Online Contest
    Codeforces Edu Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div.1+Div.2)
    AtCoder Beginning Contest 139
  • 原文地址:https://www.cnblogs.com/y-z-h/p/13863596.html
Copyright © 2011-2022 走看看