【GAMP】 广播星历与精密星历计算卫星的位置。

 

目录

1.spp/pppos

2.satposs_rtklib(obs[0].time,obs,n,nav,opt->sateph,rs,dts,var,svh);

3.satpos(time[i],teph,obs[i].sat,ephopt,nav,rs+i*6,dts+i*2,var+i,svh+i)

4.1 ephpos(time,teph,sat,nav,-1,rs,dts,var,svh)

4.2pephpos(peph2pos(time,sat,nav,1,rs,dts,var))

4.1 ephpos(time,teph,sat,nav,-1,rs,dts,var,svh);

5.eph2pos(gtime_t time,const eph_t *eph,double *rs,double *dts,double *var)

 

单个历元下


1.spp/pppos

 


2.satposs_rtklib(obs[0].time,obs,n,nav,opt->sateph,rs,dts,var,svh);

这里定义了 *rts,*dts,*var,svh[MAXOBS];

rs=mat(6,n);dts=mat(2,n);

var=mat(1,n);

对单颗卫星进行循环。


3.satpos(time[i],teph,obs[i].sat,ephopt,nav,rs+i*6,dts+i*2,var+i,svh+i)

在这里进行分支,精密星历,广播星历

4.1 ephpos(time,teph,sat,nav,-1,rs,dts,var,svh)

这里iode给-1,预留给实时的时候SSR解算用的,先不用考虑这里。

4.2pephpos(peph2pos(time,sat,nav,1,rs,dts,var))


4.1 ephpos(time,teph,sat,nav,-1,rs,dts,var,svh);

分支:GPS/GALILEO/BDS------GLONASS

{

rst[3],dtst[1],tt=1e-3;

*******************************

if (){seleph()

eph2pos()}

else{

selgeph

geph2pos()}

***********************************

for  (i=0;i<3;i++) rs[i+3]=(rst[i]-rs[i])/tt;

dts[1]=(dtst[0]-dts[0])/tt

}


5.eph2pos(gtime_t time,const eph_t *eph,double *rs,double *dts,double *var)

{

IOD或产生

}

geph2pos()

{

IOD产生。

}

}

 

考虑到Var这个变量完全不起作用,把IOD赋给它传送出去吧。哈哈。

你可能感兴趣的:(GNSS,RTKLIB/BNC)