// // Created by Wakanda_shaw on 2022/5/5. // #include "main_window.h" #include "rtklib.h" #include "iomanip" #include "fstream" #include "QDir" #include #include "UI/ui_main_window.h" using namespace std; void main_window::Read_Sat(const QString& Obs_path,const QString& Nav_path, const QString& Sat_path, Ui::main_window *ui, int IONN_MODEL) { ofstream satpos_file(Sat_path.toStdString()); if(satpos_file){ /* 依此为:PRN<fromUnicode(QDir::toNativeSeparators(Obs_path)).data(); string nav_path = code->fromUnicode(QDir::toNativeSeparators(Nav_path)).data(); const char *Obs = obs_path.c_str(); const char *Nav = nav_path.c_str(); double vmeas,dual_fre=0,tgd=0; ts.time = 0; te.time = 0; n=readrnxt(Obs,1,ts,te,0.0,"-SYS=sys[G,C,E,J]",&obs,&nav,&sta);//读obs n=readrnxt(Nav,1,ts,te,0.0,"-SYS=sys[G,C,E,J]",&obs,&nav,&sta);//读nav n=sortobs(&obs);//得到epoch数目 uniqnav(&nav);//unique 1下 /* 设置一下参数 */ prcopt_t prcopt=prcopt_default; prcopt.ionoopt = IONN_MODEL; prcopt.tropopt = TROPOPT_SAAS; prcopt.nf = 3;//(L1+L2+L5) prcopt.navsys = SYS_CMP|SYS_GPS|SYS_GAL|SYS_QZS; double P,P5,freq,range_rate,L1_snr,L2_snr, Carrier_phase,Satpos_var, clk_drift; double epoch_time; int epoch_length=0; for(int i=0;iprogressBar->setValue(progress_value); t = timeadd(obs.data[0].time,(double)i); char str[64]; time2str(t,str,3); epoch_time=time2gpst(t,NULL); obs_t epoch_obs={0}; readrnxt(Obs,1,t,t,0.0,"-SYS=sys[G,C,E,J]",&epoch_obs,&nav,&sta); epoch_length = epoch_obs.n; /* 计算卫星位置 */ double *rs1,*dts1,*var; int svh[MAXOBS]; rs1=mat(6,epoch_obs.n); dts1=mat(2,epoch_obs.n);var=mat(1,epoch_obs.n); satposs(t,epoch_obs.data,epoch_obs.n,&nav,EPHOPT_BRDC,rs1,dts1,var,svh); /* 当前epoch所观测到的数据进行遍历处理 */ for(int j =0;j