⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rel_pos.c

📁 GPS数据处理源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
        t00=odat_t[In0]; t00_=odat_t[In0-1]; 
        dttt=t00-t00_;
        if(icon[12]!=1) goto static_end;
        if(O_screen==0)
        printf("%2d %2d %4.1f %2d %2d %2d %2d\n",hour,minute,sec,odat_n[In0],
               sdat_n[In0],ddat_n[In0],tdat_n[In0]);
        if(odat_n[In0]==0) goto endI;
        if(Islip>=Islips-2){ printf("        Islip\n"); exit(0);}
        if(odat_n[In0]==0) icon[19]=I;
        if(odat_t[In0]>=rte) icon[19]=I;
        iter=0; icon[204]=iter;
/* 组成GPS观测方程 */
        eq_dd_s(icon,x01,Height,xhidat,&In0,odat_t,odat_n,id_odat,iodat1,odat1,
             sdat,id_sdat,isdat,sdat_n,ddat,id_ddat,iddat,ddat_n,
             tdat,id_tdat,itdat,tdat_n,
             slips_t,id_slips,
             borb,itborb,Tr1,
             Fi0,N0,idN0,N0t,N0te1,am,lo,idlo);
/* 组成法方程式 */
        edit_norm_dd(icon,idN0,id_slips,N0t,slips_t,am,lo,idlo,idN00,N00,N0tb,
                     m00,ici,c_dd,an,b1,an_s,b1_s,&ltpl,&ltpl_s,
                     an_s1,b1_s1,&ltpl_s1,an_k,b1_k,&ltpl_k);
        if(I==Itend-1 || I==icon[19] || odat_t[In0]>=rte-0.2) {
/* 求解方程式和输出信息 */
           Iequa_n=icon[207]*10000+icon[202];
           if(Run_n==4) {icon[201]=3*(icon[0]-1);
              if(icon[30]==2) icon[201]+=icon[0];}
/* 得到 LS 解 */
           m0 = ls(fp_docu[1],an_s1,b1_s1,accur,ltpl_s1,icon[201],Iequa_n);
           printf("m0= %14.5e\n",m0);
           for (j=0;j<icon[201];j++) 
           printf("%10.3f %10.4f\n",b1_s1[j],accur[j]);
           icon[210]=iter; /* iterations number */
           icon[211]=Itend-1; /* total epoches number */
           w_info(fp_docu[0],x0,b1_s1,accur,m0,icon,Fi0,idN0,N0,N0t);
           w_info(stdout,x0,b1_s1,accur,m0,icon,Fi0,idN0,N0,N0t);
           DOP(fp_docu[0],icon,Fi,La,an_s1,idN0);
           DOP(stdout,icon,Fi,La,an_s1,idN0);
           fprintf(stdout,"solution in cartesian/ellipsoid coord. system\n");
           fprintf(fp_docu[0],
              "solution in cartesian/ellipsoid coord. system\n");
           for(i=0;i<icon[0]-1;i++) {
              xi=b1_s1[0+i*3]+x01[0+(i+1)*3];
              yi=b1_s1[1+i*3]+x01[1+(i+1)*3];
              zi=b1_s1[2+i*3]+x01[2+(i+1)*3];
              fprintf(stdout,"%16.6f %16.6f %16.6f\n",xi,yi,zi);
              fprintf(fp_docu[0],"%16.6f %16.6f %16.6f\n",xi,yi,zi);
              fprintf(stdout,"%16.6f %16.6f %16.6f %16.6f\n",
              xi-x01[0],yi-x01[1],zi-x01[2],
              sqrt((xi-x01[0])*(xi-x01[0])+(yi-x01[1])*(yi-x01[1])
              +(zi-x01[2])*(zi-x01[2])));
              fprintf(fp_docu[0],"%16.6f %16.6f %16.6f %16.6f\n",
              xi-x01[0],yi-x01[1],zi-x01[2],
              sqrt((xi-x01[0])*(xi-x01[0])+(yi-x01[1])*(yi-x01[1])
              +(zi-x01[2])*(zi-x01[2])));
              TRANF(2,&phi,&lambda,&height,&xi,&yi,&zi,0.,0.);
              fprintf(stdout,"%16.10f %16.10f %10.6f\n",
                     phi*180/PI,lambda*180/PI,height);
              fprintf(fp_docu[0],"%16.10f %16.10f %10.6f\n",
                     phi*180/PI,lambda*180/PI,height);
           }
           if(icon[0]>=3) { 
              i=0;
              xi=b1_s1[0+i*3]+x01[0+(i+1)*3];
              yi=b1_s1[1+i*3]+x01[1+(i+1)*3];
              zi=b1_s1[2+i*3]+x01[2+(i+1)*3];
              i=1;
              xi-=b1_s1[0+i*3]+x01[0+(i+1)*3];
              yi-=b1_s1[1+i*3]+x01[1+(i+1)*3];
              zi-=b1_s1[2+i*3]+x01[2+(i+1)*3];
              fprintf(stdout,"%16.6f %16.6f %16.6f ",xi,yi,zi);
              fprintf(fp_docu[0],"%16.6f %16.6f %16.6f ",xi,yi,zi);
              fprintf(stdout,"dis(2--3)=%10.6f\n",sqrt(xi*xi+yi*yi+zi*zi));
              fprintf(fp_docu[0],"dis(2--3)=%10.6f\n",sqrt(xi*xi+yi*yi+zi*zi));
           }
/* 为重复应用的输出 */ j=icon[201];
           if(Run_n==1||Run_n==2) {
              if((fp_docu[3] = fopen("ncancel","w")) == NULL)
              { printf("Cannot open the file : ncancel\n");
              exit(0); }
              i2=3*(icon[0]-1); if(icon[30]==2) i2+=icon[0];
              for (i=i2;i<icon[201];i++) N0te1[i]+=1;
              i2=3*(icon[0]-1);if(icon[30]==2) i2+=icon[0];
              for (j=0,i=i2;i<icon[201];i++) if(N00_n[i]<50) j+=1;
              fprintf(fp_docu[3],"%8d \n",j);
              for (i=i2;i<icon[201];i++) {
                 if(N00_n[i]<N_n) {
                 fprintf(fp_docu[3],"%8d %8d %8d ",idN0[i],N0t[i],N0te1[i]);
                 fprintf(fp_docu[3],"%10.4f %8d %8d %9d %14.4f\n",
                 b1_s1[i],N00_n[i],N0[i],Fi0[i],Fi0[i]-N0[i]+b1_s1[i]);
              }}
              fclose(fp_docu[3]);
              if((fp_docu[3] = fopen("nfiles","w")) == NULL)
              { printf("Cannot open the file : nfiles\n"); exit(0); }
              for (i=i2;i<icon[201];i++) {
                 if(N00_n[i]>=N_n) {
                 fprintf(fp_docu[3],"%8d %8d %8d ",idN0[i],N0t[i],N0te1[i]);
                 fprintf(fp_docu[3],"%10.4f %8d %8d %9d %14.4f\n",
                 b1_s1[i],N00_n[i],N0[i],Fi0[i],Fi0[i]-N0[i]+b1_s1[i]);
              }}
              fclose(fp_docu[3]);
           }
/* 重写文件 conf_name ,为迭代更新坐标  */
           if((fp_docu[3] = fopen(conf_name,"r")) == NULL)
           { printf("Cannot open the file : %s\n",conf_name);
           exit(0); }
           strcat(conf_name,"1");
           if((fp_docu[6] = fopen(conf_name,"w")) == NULL)
           { printf("Cannot open the file : %s\n",conf_name);
           exit(0); }
           j=0; readline:;
           i=getline(fp_docu[3],str);
           if(strstr(str,"*")) goto readline;
           if(i<=2) goto readline;
           if(strstr(str,"Coordin")) {
              if(j!=0) { 
                 xi=b1_s1[0+(j-1)*3]+x01[0+j*3];
                 yi=b1_s1[1+(j-1)*3]+x01[1+j*3];
                 zi=b1_s1[2+(j-1)*3]+x01[2+j*3];
                 fprintf(fp_docu[6],"%16.4f %16.4f %16.4f ",
                         xi,yi,zi);
                 fprintf(fp_docu[6],": Coordinates xyz\n");
              }
              else fprintf(fp_docu[6],"%s",str);
              j+=1;
              goto readline;
           }
           fprintf(fp_docu[6],"%s",str);
           if(!strstr(str,"EOF")) goto readline;
           fclose(fp_docu[3]); fclose(fp_docu[6]);
/* 模糊度固定 */
           if(icon[20]<2 || icon[20]==4 || icon[20]==5) {
           if(Ambiguity>=1&&Ambiguity<=5) { 
              i=icon[201];
              printf("Ambifix (KSGSoft)\n"); 
/* 输入 ambifix() 的改变值 */
              ambifix(stdout,an_s1,b1_s1,m0,icon[201],Iequa_n,idN0,N0t,N0te1,
                      N00_n,Nfixed1);
/* 输出模糊度固定后的值 */
              if((fp_docu[3] = fopen("nfilesf","w")) == NULL)
              { printf("Cannot open the file : nfilesf\n"); exit(0); }
              for (i=i2;i<icon[201];i++) {
                 if(N00_n[i]>=N_n) {
                 fprintf(fp_docu[3],"%8d %8d %8d ",idN0[i],N0t[i],N0te1[i]);
                 fprintf(fp_docu[3],"%10.4f %8d %8d %9d %14.4f\n",
                 Nfixed1[i],N00_n[i],N0[i],Fi0[i],Fi0[i]-N0[i]+Nfixed1[i]);
              }}
              fclose(fp_docu[3]);
/* 输出到 fp_docu[0] */
              if(Ratio<2.) 
              fprintf(fp_docu[0],"KSGSoft fix Ratio = %6.4f < 2.\n",Ratio);
              else 
              fprintf(fp_docu[0],"KSGSoft fix Ratio = %6.4f >= 2.\n",Ratio);
              fprintf(fp_docu[0],"KSGSoft best m0 = %6.4f\n",M0best);
              fprintf(fp_docu[0],"KSGSoft best ambiguity fixing:\n");
              for(i=i2;i<icon[201];i++) fprintf(fp_docu[0],"%3.0f ",Nfixed1[i]);
              fprintf(fp_docu[0],"\n");
              fprintf(fp_docu[0],"related coord. solution:\n");
              for(i=0;i<i2;i++) fprintf(fp_docu[0],"%9.4f ",Nfixed1[i]);
              fprintf(fp_docu[0],"\n");
           }}
           exit(0);
        }
        if(I-icon[141]==0)exit(0); 
        static_end:;
     }
     endI:;
}
#include "rinex.c"
#include "controlf.c"
#include "igs.c"
#include "broad.c"
#include "orbit.c"
#include "tranf.c"      
#include "ad_core.c"
#include "eqdd_s.c"
#include "normdd_s.c"
#include "ambifix.c"
#include "singlep.c"


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -