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中的位置

  • 相关阅读:
    开发新技术展望系列课程(视频课程讲师:徐晓卓)
    VSTS风暴系列课程(视频课程讲师:王京京/王兴明/王然)
    Mysql索引的数据结构及索引优化
    CAP原则,分布式场景下为何只能取其二
    为什么使用Redission解决高并发场景分布式锁问题
    Java面试题(6)Redis
    外企英语面试常见问题及核心话术
    Nacos&Eureka&Zookeeper
    j2ee中DAO设计模式
    第一个随笔
  • 原文地址:https://www.cnblogs.com/y-z-h/p/13863596.html
Copyright © 2011-2022 走看看