Example #1
0
        /// <summary>
        /// 初始化计算器
        /// </summary>
        private void InitSolver()
        {
            this.Solver = new SingleSiteGnssSolveStreamer(OutpuDirectory);
            var Option = GnssProcessOptionManager.Instance.Get(GnssSolverType.无电离层组合PPP);

            Option.OutputDirectory = OutpuDirectory;
            // Option.EnableAutoFindingFile = false;
            Setting.EnableNet = false;
            var epheService = EphemerisService;

            if (epheService == null)
            {
                epheService = new SingleParamNavFileEphService(NavFile);
            }

            var obsData = new MemoRinexFileObsDataSource(ObsFile);

            this.Solver.Context        = DataSourceContext.LoadDefault(Option, obsData, epheService, null);
            this.Solver.BufferedStream = BuildBufferedStream();
            this.Solver.Option         = Option;
            this.Solver.DataSource     = obsData;
            //Solver.InfoProduced += Solver_InfoProduced;
            //Solver.ResultProduced += Solver_ResultProduced;
            //Solver.EpochEntityProduced += Solver_EpochEntityProduced;
            //Solver.Completed += OneSolver_Completed;
            this.Solver.Init();
        }
Example #2
0
        /// <summary>
        /// 数据流
        /// </summary>
        /// <returns></returns>
        protected BufferedStreamService <EpochInformation> BuildBufferedStream()
        {
            var DataSource   = new MemoRinexFileObsDataSource(ObsFile);
            var bufferStream = new BufferedStreamService <EpochInformation>(DataSource, 10);

            return(bufferStream);
        }
Example #3
0
        /// <summary>
        /// 单频平滑伪距
        /// </summary>
        /// <param name="prn"></param>
        /// <param name="PhaseSmoothRangeBulider"></param>
        /// <param name="records"></param>
        private void DualFreqPhaseSmoothRange(SatelliteNumber prn, NamedCarrierSmoothedRangeBuilderManager PhaseSmoothRangeBulider)
        {
            ObjectTableStorage         table                  = new ObjectTableStorage();
            MemoRinexFileObsDataSource observations           = new MemoRinexFileObsDataSource(this.ObsFile);
            CycleSlipDetectReviser     cycleSlipDetectReviser = new CycleSlipDetectReviser();

            while (observations.MoveNext())
            {
                var current = observations.Current;
                cycleSlipDetectReviser.Revise(ref current);

                if (current.Contains(prn))
                {
                    table.NewRow();
                    table.AddItem("Epoch", current.ReceiverTime);

                    var epochSat = current[prn];

                    var smootherP1 = PhaseSmoothRangeBulider.GetOrCreate("P");

                    var PS = smootherP1
                             .SetReset(epochSat.IsUnstable)
                             .SetRawValue(current.ReceiverTime,
                                          epochSat.Combinations.IonoFreeRange.Value,
                                          epochSat.Combinations.IonoFreePhaseRange.Value,
                                          0
                                          )
                             .Build().Value;

                    table.AddItem("P1", epochSat.FrequenceA.PseudoRange.Value);
                    table.AddItem("P2", epochSat.FrequenceB.PseudoRange.Value);
                    table.AddItem("PS", PS);
                }
            }

            BindDataSource(table);
        }
Example #4
0
        /// <summary>
        /// 读取数据
        /// </summary>
        private void ReadFile()
        {
            ObsFile = ObsFileUtil.ReadFile(ObsPath);

            if (ObsFile == null)
            {
                Geo.Utils.FormUtil.ShowWarningMessageBox("不支持输入文件格式!");
                return;
            }

            this.bindingSource_obsInfo.DataSource = ObsFile;
            var prns = ObsFile.GetPrns();

            prns.Sort();
            this.bindingSource_sat.DataSource = prns;

            this.attributeBox1.DataGridView.DataSource = Geo.Utils.ObjectUtil.GetAttributes(ObsFile.Header, false);

            string msg = "";

            msg += "首次观测时间:" + ObsFile.Header.StartTime + "\r\n";
            msg += "最后观测时间:" + ObsFile.Header.EndTime + "\r\n";
            msg += "采样间隔:" + ObsFile.Header.Interval + " 秒" + "\r\n";

            this.textBox_show.Text = msg;


            Data.Rinex.RinexObsFile ObsFile1 = ObsFileUtil.ReadFile(ObsPath);
            var observations = new MemoRinexFileObsDataSource(ObsFile1);

            foreach (var epochInfo in observations)
            {
                int a = 1;
                int b = 2;
            }
        }