Skip to content
Snippets Groups Projects
Commit afa37436 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

debugging and not taking sbas correction error as ephemeris error

parent e2b3c98e
No related branches found
No related tags found
No related merge requests found
......@@ -563,7 +563,7 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav,
if (i>=nav->sbssat.nsat) {
trace(2,"no sbas correction for orbit: %s sat=%2d\n",time_str(time,0),sat);
ephpos(time,teph,sat,nav,-1,rs,dts,var,svh);
*svh=-1;
*svh=-2;// JV: error code for detecting available ephemeris without sbas correction
return 0;
}
/* satellite postion and clock by broadcast ephemeris */
......
......@@ -235,7 +235,8 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs,
for (i=*ns=0;i<n&&i<MAXOBS;i++) {
vsat[i]=0; azel[i*2]=azel[1+i*2]=resp[i]=0.0;
if (!(sys=satsys(obs[i].sat,NULL))) continue;
if (!(sys=satsys(obs[i].sat,NULL)))
continue;
/* reject duplicated observation data */
if (i<n-1&&i<MAXOBS-1&&obs[i].sat==obs[i+1].sat) {
......@@ -246,17 +247,21 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs,
}
/* geometric distance/azimuth/elevation angle */
if ((r=geodist(rs+i*6,rr,e))<=0.0||
satazel(pos,e,azel+i*2)<opt->elmin) continue;
satazel(pos,e,azel+i*2)<opt->elmin)
continue;
/* psudorange with code bias correction */
if ((P=prange(obs+i,nav,azel+i*2,iter,opt,&vmeas))==0.0) continue;
if ((P=prange(obs+i,nav,azel+i*2,iter,opt,&vmeas))==0.0)
continue;
/* excluded satellite? */
if (satexclude(obs[i].sat,vare[i],svh[i],opt)) continue;
if (satexclude(obs[i].sat,vare[i],svh[i],opt))
continue;
/* ionospheric corrections */
if (!ionocorr(obs[i].time,nav,obs[i].sat,pos,azel+i*2,
iter>0?opt->ionoopt:IONOOPT_BRDC,&dion,&vion)) continue;
iter>0?opt->ionoopt:IONOOPT_BRDC,&dion,&vion))
continue;
/* GPS-L1 -> L1/B1 */
if ((lam_L1=nav->lam[obs[i].sat-1][0])>0.0) {
......@@ -264,12 +269,21 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs,
}
/* tropospheric corrections */
if (!tropcorr(obs[i].time,nav,pos,azel+i*2,
iter>0?opt->tropopt:TROPOPT_SAAS,&dtrp,&vtrp)) {
iter>0?opt->tropopt:TROPOPT_SAAS,&dtrp,&vtrp))
continue;
}
/* pseudorange residual */
v[nv]=P-(r+dtr-CLIGHT*dts[i*2]+dion+dtrp);
//printf("sat=%2d:\n",obs[i].sat);
//printf("\tx=%5.1f %5.1f %5.1f\n",rr[0],rr[1],rr[2]);
//printf("\tnorm=%5.1f\n",r);
//printf("\tdtr=%5.8f\n",dtr);
//printf("\tP-(dtr-CLIGHT*dts[i*2]+dion+dtrp)=%5.1f\n",P-(dtr-CLIGHT*dts[i*2]+dion+dtrp));
//printf("\tP-(-CLIGHT*dts[i*2]+dion+dtrp)=%5.1f\n",P-(-CLIGHT*dts[i*2]+dion+dtrp));
//printf("\tsat=%5.1f %5.1f %5.1f\n",*(rs+1*6),*(rs+1*6+1),*(rs+1*6+2));
//printf("\terror=%5.1f\n",v[nv]);
/* design matrix */
for (j=0;j<NX;j++) H[j+nv*NX]=j<3?-e[j]:(j==3?1.0:0.0);
......@@ -286,6 +300,7 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs,
trace(4,"sat=%2d azel=%5.1f %4.1f res=%7.3f sig=%5.3f\n",obs[i].sat,
azel[i*2]*R2D,azel[1+i*2]*R2D,resp[i],sqrt(var[nv-1]));
}
/* constraint to avoid rank-deficient */
for (i=0;i<4;i++) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment