Exemple #1
0
 /// <summary>
 /// 通用构造函数
 /// </summary>
 /// <param name="GlobalDataOption"></param>
 /// <param name="option"></param>
 /// <param name="session"></param>
 public DataSourceContext(GnsserConfig GlobalDataOption, GnssProcessOption option, SessionInfo session)
     : this()
 {
     this.GlobalDataOption = GlobalDataOption;
     this.Option           = option;
     this.Session          = session;
 }
 /// <summary>
 /// 精密单点定位矩阵生成类 构造函数。
 /// </summary>
 /// <param name="option">解算选项</param>
 public UncombinedPppMatrixBuilder(
     GnssProcessOption option)
     : base(option)
 {
     this.IsEstDcb    = Option.IsEstDcbOfRceiver;
     ParamNameBuilder = new UncombinedPppParamNameBuilder(option);//option中包含了几个系统
 }
Exemple #3
0
        /// <summary>
        /// 追加配置信息
        /// </summary>
        public string BuildOptionInfo(GnssProcessOption Option)
        {
            StringBuilder sb = new StringBuilder();

            //配置选项
            AppendLine(sb, "平差方法", Option.AdjustmentType);
            AppendLine(sb, "定位类型", Option.PositionType);
            AppendLine(sb, "近似数据", Option.ApproxDataType);
            AppendLine(sb, "观测数据", Option.ObsDataType);
            AppendLine(sb, "最大均方差限差", Option.MaxStdDev);


            string str = "";

            foreach (var item in Option.CycleSlipDetectSwitcher)
            {
                if (item.Value)
                {
                    str += item.Key + ", ";
                }
            }
            AppendLine(sb, "周跳探测方法", Option.CycleSlipDetectSwitcher.Count == 0 ? "默认" : str);

            return(sb.ToString());
        }
 public virtual void EntityToUi()
 {
     if (Option == null)
     {
         Option = CreateNewModel();
     }
 }
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="option"></param>
 /// <param name="BaseParamCount">基础参数数量</param>
 public EpochDoublePhaseDifferMatrixBuilder(GnssProcessOption option, int BaseParamCount)
     : base(option)
 {
     this.BaseParamCount   = BaseParamCount;//
     this.ParamNameBuilder = new EpochDoublePhaseDifferParamNameBuilder(this.Option, BaseParamCount);
     IsDueFrequence        = Option.ObsPhaseType == ObsPhaseType.L1AndL2;
 }
        /// <summary>
        /// 数据分析
        /// </summary>
        public void Analysis()
        {
            if (RefObsDataSource == null || RovObsDataSource == null)
            {
                MessageBox.Show("请先读取数据。");
                return;
            }
            FormUtil.ShowWaittingForm("正在对数据进行分析。。。");

            GnssProcessOption option = GetModel(RovObsDataSource.ObsInfo.StartTime);

            LoadDataSource();

            DataSourceContext DataSourceContext = DataSourceContext.LoadDefault(option, this.textBox_obsPath_ref.Text, ephemerisDataSource, clockFile);

            ObsDataAnalyst = new BaseLineObsDataAnalyst(DataSourceContext, RefObsDataSource, RovObsDataSource, option);

            ObsDataAnalyst.SatCycleSlipMaker.SaveSatPeriodText(ProjectOutputDirectory + "\\SatCycleSlipMaker_" + DateTime.Now.Ticks + ".txt");
            ObsDataAnalyst.SatVisibleMaker.SaveSatPeriodText(ProjectOutputDirectory + "\\SatVisibleMaker_" + DateTime.Now.Ticks + ".txt");

            File.WriteAllText(ProjectOutputDirectory + "\\BaseSat_" + DateTime.Now.Ticks + ".txt", ObsDataAnalyst.SatelliteSelector.GetFormatedString());

            var title = ("\r\n----------已经选择的基准卫星-----------\r\n");

            ShowInfo(title + ObsDataAnalyst.SatelliteSelector.GetFormatedString());
            title = ("\r\n----------卫星的可见性-----------\r\n");
            ShowInfo(title + ObsDataAnalyst.SatVisibleMaker.ToFormatedString());
            title = ("\r\n----------卫星周跳-----------\r\n");
            ShowInfo(title + ObsDataAnalyst.SatCycleSlipMaker.ToFormatedString());
        }
Exemple #7
0
 /// <summary>
 /// 最简化的构造函数,可以多个定位器同时使用的参数,而不必多次读取
 /// </summary>
 /// <param name="DataSourceContext"></param>
 /// <param name="PositionOption"></param>
 public IonoFreePppOfTriFreq(DataSourceContext DataSourceContext, GnssProcessOption PositionOption)
     : base(DataSourceContext, PositionOption)
 {
     this.Name           = "三频无电离层组合PPP";
     this.BaseParamCount = 5;
     this.MatrixBuilder  = new IonoFreePppOfTriFreqMatrixBuilder(PositionOption);
 }
Exemple #8
0
        /// <summary>
        /// 短基线载波相位差分。
        /// </summary>
        /// <param name="DataSourceContext">数据源</param>
        /// <param name="Option">解算模型,数据输入模型</param>

        public SingleDifferPositioner(DataSourceContext DataSourceContext, GnssProcessOption Option)
            : base(DataSourceContext, Option)
        {
            this.Name           = "载波相位单差";
            this.BaseParamCount = 5;
            this.MatrixBuilder  = new SingleDifferMatrixBuilder(Option);
        }
 /// <summary>
 ///  单频消电离层组合
 /// </summary>
 /// <param name="DataSourceContext"></param>
 /// <param name="PositionOption"></param>
 public SingleFreqIonoFreePppSolver(DataSourceContext DataSourceContext, GnssProcessOption PositionOption)
     : base(DataSourceContext, PositionOption)
 {
     this.Name          = "单频消电离层组合";
     this.MatrixBuilder = new SingleFreqIonoFreePppMatrixBuilder(PositionOption);
     PrevResults        = new DicWindowData <int, SingleSiteGnssResult>(10);
 }
Exemple #10
0
 /// <summary>
 /// 最简化的构造函数,可以多个定位器同时使用的参数,而不必多次读取
 /// </summary>
 /// <param name="DataSourceContext"></param>
 /// <param name="PositionOption"></param>
 public RecursiveIonoFreePpp(DataSourceContext DataSourceContext, GnssProcessOption PositionOption)
     : base(DataSourceContext, PositionOption)
 {
     this.Name           = "无电离层组合PPP";
     this.BaseParamCount = 5;
     this.MatrixBuilder  = new RecursiveIonoFreePppMatrixBuilder(PositionOption);
 }
Exemple #11
0
 /// <summary>
 /// 单站单历元GNSS计算预留测试类
 /// </summary>
 /// <param name="DataSourceContext"></param>
 /// <param name="PositionOption"></param>
 /// <param name="gnssMatrixBuilder"></param>
 public CommonSingeSiteGnssSolver(DataSourceContext DataSourceContext, GnssProcessOption PositionOption, BaseGnssMatrixBuilder <SingleSiteGnssResult, EpochInformation> gnssMatrixBuilder)
     : base(DataSourceContext, PositionOption)
 {
     this.Name           = "通用单站单历元GNSS计算";
     this.BaseParamCount = 5;
     this.MatrixBuilder  = gnssMatrixBuilder;
 }
Exemple #12
0
 /// <summary>
 /// 默认构造函数。
 /// </summary>
 public AmbiguityManager(GnssProcessOption Option)
 {
     this.AmbiguityFilePath    = Option.AmbiguityFilePath;
     this.IsUsingAmbiguityFile = Option.IsUsingAmbiguityFile;
     this.SatObsDataType       = Option.ObsDataType;
     Init();
 }
 /// <summary>
 /// 先构造,再设置历元值。
 /// </summary>
 /// <param name="option">解算选项</param>
 public RecursiveIonoFreePppMatrixBuilder(
     GnssProcessOption option)
     : base(option)
 {
     this.ParamNameBuilder       = new RecursiveIonoFreePppParamNameBuilder(option);
     this.SecondParamNameBuilder = new RecursiveIonoFreePppSecondParamNameBuilder(option);
 }
 protected virtual void OnOptionChanged(GnssProcessOption Option)
 {
     if (OptionChanged != null)
     {
         OptionChanged(Option);
     }
 }
 /// <summary>
 /// 多站单历元GNSS计算预留测试类 构造函数。
 /// </summary>
 /// <param name="option">解算选项</param>
 public MultiSiteGnssExtentMatrixBuilder(
     GnssProcessOption option)
     : base(option)
 {
     this.Option           = option;
     this.ParamNameBuilder = new MultiSiteGnssExtentParamNameBuilder(option);
 }
Exemple #16
0
        /// <summary>
        /// 最简化的构造函数,可以多个定位器同时使用的参数,而不必多次读取
        /// </summary>
        /// <param name="DataSourceContext"></param>
        /// <param name="PositionOption"></param>
        public IonoFreePpp(DataSourceContext DataSourceContext, GnssProcessOption PositionOption)
            : base(DataSourceContext, PositionOption)
        {
            this.Name           = "无电离层组合PPP";
            this.BaseParamCount = 5;
            if (PositionOption.ApproxDataType == SatApproxDataType.ApproxPseudoRangeOfTriFreq || PositionOption.ApproxDataType == SatApproxDataType.ApproxPhaseRangeOfTriFreq)
            {
                this.MatrixBuilder = new IonoFreePppOfTriFreqMatrixBuilder(PositionOption);
            }
            else
            {
                this.MatrixBuilder = new IonoFreePppMatrixBuilder(PositionOption);
            }

            if (!Option.TopSpeedModel)
            {
                if (this.IsFixingAmbiguity)
                {
                    this.WideLaneBiasService     = new WideLaneBiasService(Setting.GnsserConfig.IgnWideLaneFile);
                    this.IsBaseSatelliteRequried = true;
                }
                if (true)
                {
                    if (!this.Option.IsUseFixedParamDirectly && (this.IsFixingAmbiguity && this.DataSourceContext.GnsserFcbOfUpdService == null))
                    {
                        throw new Exception("PPP模糊度固定,请设置FCB文件路径!");
                    }
                }
                else
                {
                    FcbDataService = new FcbDataService("E:\\");
                }
                NarrawLaneFcbService = this.DataSourceContext.GnsserFcbOfUpdService;// new FcbOfUpdService( Option.GnsserFcbFilePath);
            }
        }
Exemple #17
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="context"></param>
        /// <param name="option"></param>
        public BaseAbstractGnssSolver(DataSourceContext context, GnssProcessOption option)
        {
            this.DataSourceContext = context;
            this.Option            = option;
            this.Name = context.ObservationDataSource == null ? "GNSS计算器" : context.ObservationDataSource.Name;

            if (option.IsEphemerisRequired && (this.DataSourceContext.EphemerisService == null || this.DataSourceContext.EphemerisService.Prns.Count == 0))
            {
                var info = "不可计算!星历不可为空!";
                log.Error(info);
                throw new ArgumentException(info);
            }
            this.IsBaseSatelliteRequried = Option.IsBaseSatelliteRequried;
            this.IsBaseSiteRequried      = Option.IsBaseSiteRequried;
            this.BaseSiteName            = Option.IndicatedBaseSiteName;
            this.IsFixingAmbiguity       = Option.IsFixingAmbiguity;
            this.IsPostCheckEnabled      = Option.IsResultCheckEnabled;
            this.MatrixAdjuster          = AdjusterFactory.Create(this.Option.AdjustmentType);
            if (MatrixAdjuster is RecursiveAdjuster)
            {
                ((RecursiveAdjuster)MatrixAdjuster).SetStepOfRecursive(Option.StepOfRecursive);
            }

            this.ElementResidualCheckers = new PostResidualCheckerManager(this.Option.MaxErrorTimesOfPostResdual);
            AdjustChecker = GnssResultCheckingManager.GetDefault(Option);

            this.Init();
        }
 /// <summary>
 /// 无电离层双差矩阵构造器
 /// </summary>
 /// <param name="option"></param>
 /// <param name="baseParamCount"></param>
 public RecursiveNetDoubleDifferPositionMatrixBuilder(
     GnssProcessOption option, int baseParamCount)
     : base(option, baseParamCount)
 {
     this.ParamNameBuilder       = new RecursiveNetDoubleDifferPositionParamNameBuilder(option);
     this.SecondParamNameBuilder = new RecursiveNetDoubleDifferPositionSecondParamNameBuilder(option);
 }
        protected override void OnWizardCompleted()
        {
            base.OnWizardCompleted();
            this.Enabled = false;

            var netFiles = GroupRinexFileWizardPage.Result;



            //ProgressBarWizardPage.Init(this.SelectFilePageControl.FilePathes.Length);
            //nFilePath = SelectFilePageControl.NFilePath;

            var            singlePpType = SelectPointPositionTypePage.GetCurrent <TwoSiteSolverType>();
            GnssSolverType type         = GnssSolverTypeHelper.GetGnssSolverType(singlePpType);

            if (Option == null)
            {
                Option = GnssProcessOptionManager.Instance[type];
            }
            Option.AdjustmentType                 = SelectAdjustmentPage.GetCurrent <AdjustmentType>();
            this.Option.IsUpdateStationInfo       = SiteInfoSetingPage.IsUpdateSiteInfo;
            this.Option.IsStationInfoRequired     = SiteInfoSetingPage.IsUpdateSiteInfo;
            this.Option.IsUpdateEstimatePostition = SiteInfoSetingPage.IsUpdateEpochSiteCoord;
            this.Option.PositionType              = SiteInfoSetingPage.PositionType;

            //this.Option.isup
            //ProgressBarWizardPage.Init(this.SelectFilePageControl.FilePathes.Length);
            backgroundWorker1.RunWorkerAsync();
        }
Exemple #20
0
        /// <summary>
        /// 单频 默认周跳探测器
        /// </summary>
        /// <param name="Option">GNSS数据处理选项</param>
        /// <param name="isRevered">是否逆序探测,如果是,探测时将不会使用已有周跳信息</param>
        /// <returns></returns>
        public static CycleSlipDetectReviser DefaultSingeFrequencyDetector(GnssProcessOption Option, bool isRevered = false)
        {
            var isUseRecoredCsInfo         = !isRevered && Option.IsUsingRecordedCycleSlipInfo;
            CycleSlipDetectReviser reviser = new CycleSlipDetectReviser();

            if (Option.BufferSize < 200)
            {
                reviser.Add(new HighDifferSlipDetector(Option)
                {
                    IsUsingRecordedCsInfo = isUseRecoredCsInfo
                });
                reviser.Add(new AverageDetector(Option)
                {
                    IsUsingRecordedCsInfo = isUseRecoredCsInfo
                });

                // reviser.Add(new LsPolyFitDetector(Option) { IsUsingRecordedCsInfo = isUseRecoredCsInfo });

                reviser.Add(new GreyPolyFitDetector(Option)
                {
                    IsUsingRecordedCsInfo = isUseRecoredCsInfo
                });
            }
            return(reviser);
        }
 public virtual void UiToEntity()
 {
     if (Option == null)
     {
         Option = CreateNewModel();
     }
 }
Exemple #22
0
        private void button_viewObs_Click(object sender, EventArgs e)
        {
            if (ObsFile == null)
            {
                MessageBox.Show("请先读取数据!"); return;
            }
            var window = this.namedIntControl_smoothWindow.GetValue();

            SmoothedRangeBuilderManager = new CarrierSmoothedRangeBuilderManager(true, window, true, IonoDifferCorrectionType.DualFreqCarrier);

            ObjectTableStorage table = new ObjectTableStorage();
            var EpochInfoBuilder     = new RinexEpochInfoBuilder(ObsFile.Header);
            var _obsDataSource       = new RinexFileObsDataSource(ObsPath);
            var option         = new GnssProcessOption();
            var context        = DataSourceContext.LoadDefault(option, _obsDataSource);
            var bufferedStream = new BufferedStreamService <EpochInformation>(_obsDataSource, option.BufferSize);
            SatTimeInfoManager SatTimeInfoManager = new Gnsser.SatTimeInfoManager(_obsDataSource.ObsInfo.Interval);
            var Reviser = EpochInfoReviseManager.GetDefaultEpochInfoReviser(context, option, SatTimeInfoManager);
            var checker = EpochCheckingManager.GetDefaultCheckers(context, option);
            int i       = -1;

            foreach (var item in bufferedStream)
            {
                i++;

                //原始数据检核
                var epochInfo = item;
                if (!checker.Check(item))
                {
                    continue;
                }
                //数据矫正
                bool result = Reviser.Revise(ref epochInfo);
                if (!result)
                {
                    continue;
                }

                table.NewRow();
                table.AddItem("Epoch", epochInfo.ReceiverTime.ToShortTimeString());
                //计算伪距平滑值
                foreach (var sat in epochInfo)
                {
                    //观测值,或组合值
                    var rangeVal = sat.FrequenceA.PseudoRange.CorrectedValue;      // sat[type].CorrectedValue;

                    var phaseVal       = sat.FrequenceA.PhaseRange.CorrectedValue; // sat[option.PhaseTypeToSmoothRange].CorrectedValue;
                    var manager        = SmoothedRangeBuilderManager.GetOrCreate(sat.Prn);
                    var smoothRangeVal = manager.SetRawValue(sat.ReceiverTime, rangeVal, phaseVal, sat.IonoLenOfL1ByDifferL1L2).SetReset(sat.IsUnstable).Build();

                    table.AddItem(sat.Prn + "_Raw", rangeVal + "");
                    table.AddItem(sat.Prn + "_Smooth", smoothRangeVal + "");
                }

                i++;
            }

            table.EndRow();
            this.BindDataSource(table);
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DataSourceContext"></param>
        /// <param name="GnssOption"></param>
        public NetSingleDifferPositionSolver(DataSourceContext DataSourceContext, GnssProcessOption GnssOption)
            : base(DataSourceContext, GnssOption)
        {
            this.Name           = "单差网解定位";
            this.BaseParamCount = 5;

            this.IsBaseSatelliteRequried = true;//强制启用基准星

            var distanceOfBaseline = (DataSourceContext.ObservationDataSources.BaseDataSource.SiteInfo.ApproxXyz - DataSourceContext.ObservationDataSources.OtherDataSource.SiteInfo.ApproxXyz).Length;

            if (distanceOfBaseline <= GnssOption.MaxDistanceOfShortBaseLine)
            {
                this.BaseParamCount = 3;
            }
            else if (GnssOption.MaxDistanceOfShortBaseLine < distanceOfBaseline && distanceOfBaseline < GnssOption.MinDistanceOfLongBaseLine)
            {
                this.BaseParamCount = 4;
            }
            else
            {
                this.BaseParamCount = 5;
            }

            this.MatrixBuilder = new NetSingleDifferPositionMatrixBuilder(Option, this.BaseParamCount);
        }
Exemple #24
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DataSourceContext"></param>
        /// <param name="GnssOption"></param>
        public IonFreeDoubleDifferPositioner(DataSourceContext DataSourceContext, GnssProcessOption GnssOption)
            : base(DataSourceContext, GnssOption)
        {
            //双差模糊度固定
            this.DoubleIonFreeAmReslution  = new DoubleIonFreeAmbiguityReslution();
            this.ResidualsAnalysis         = new ResidualsAnalysis();
            this.DualBandCycleSlipDetector = new DualBandCycleSlipDetector();
            this.Name           = "无电离层组合双差";
            this.BaseParamCount = 5;

            this.IsBaseSatelliteRequried = true;//强制启用基准星

            var distanceOfBaseline = (DataSourceContext.ObservationDataSources.BaseDataSource.SiteInfo.ApproxXyz - DataSourceContext.ObservationDataSources.OtherDataSource.SiteInfo.ApproxXyz).Length;

            if (distanceOfBaseline <= GnssOption.MaxDistanceOfShortBaseLine)
            {
                this.BaseParamCount = 3;
            }
            else if (GnssOption.MaxDistanceOfShortBaseLine < distanceOfBaseline && distanceOfBaseline < GnssOption.MinDistanceOfLongBaseLine)
            {
                this.BaseParamCount = 4;
            }
            else
            {
                this.BaseParamCount = 5;
            }

            this.Option.IsBaseSatelliteRequried = true;//强制启用基准星
            this.MatrixBuilder = new IonFreeDoubleDifferMatrixBuilder(Option, this.BaseParamCount);

            //双差模糊度固定
            this.DoubleIonFreeAmReslution = new DoubleIonFreeAmbiguityReslution(this.BaseParamCount);
            this.ResidualsAnalysis        = new ResidualsAnalysis();
        }
 /// <summary>
 /// 先构造,再设置历元值。
 /// </summary>
 /// <param name="option">解算选项</param>
 public SiteFixedIonoFreePppMatrixBuilder(
     GnssProcessOption option)
     : base(option)
 {
     option.IsFixingCoord = true;
     ParamNameBuilder     = new SiteFixedIonoFreePppParamNameBuilder(option);
 }
Exemple #26
0
 protected override void OptionToUi(GnssProcessOption Option)
 {
     base.OptionToUi(Option);
     checkBox_IsOpenReportWhenCompleted.Checked = Option.IsOpenReportWhenCompleted;
     this.enumRadioControl1_GnssSolverType.SetCurrent <GnssSolverType>(Option.GnssSolverType);
     this.enumRadioControl_positionType.SetCurrent <PositionType>(Option.PositionType);
 }
Exemple #27
0
 /// <summary>
 /// 单站多历元GNSS计算预留测试类
 /// </summary>
 /// <param name="DataSourceContext"></param>
 /// <param name="GnssOption"></param>
 public SingleSitePeriodGnssExtentSolver(DataSourceContext DataSourceContext, GnssProcessOption GnssOption)
     : base(DataSourceContext, GnssOption)
 {
     //InitDetect();
     this.Name          = "单站多历元GNSS计算预留测试类";
     this.MatrixBuilder = new SingleSitePeriodGnssExtentMatrixBuilder(GnssOption);
 }
        /// <summary>
        /// 时段计算
        /// </summary>
        /// <param name="files"></param>
        /// <param name="Option"></param>
        /// <param name="netPeriod"></param>
        private void RunPpp(List <ObsSiteInfo> files, GnssProcessOption Option, TimePeriod netPeriod)
        {
            if (files.Count == 0)
            {
                log.Warn("没有文件!"); return;
            }

            //设置独立的输出目录
            var OriginalDirectory = Option.OutputDirectory;

            Option.OutputDirectory = Option.GetSolverDirectory(netPeriod);
            Geo.Utils.FileUtil.CheckOrCreateDirectory(Option.OutputDirectory);

            this.ObsSiteInfos = new ObsSiteInfos(files);
            var pppRunner = new PointPositionBackGroundRunner(Option, ObsSiteInfos.GetFilePathes().ToArray());

            pppRunner.ParallelConfig = ParallelConfig;
            pppRunner.ProgressViewer = ProgressViewer;
            pppRunner.Processed     += PppRunner_Processed;
            pppRunner.Completed     += PppRunner_Completed;
            pppRunner.Init();
            pppRunner.Run();

            //恢复目录
            Option.OutputDirectory = OriginalDirectory;
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="Context"></param>
        /// <param name="Option"></param>
        public EpochDoublePhaseDifferPositioner(DataSourceContext Context, GnssProcessOption Option)
            : base(Context, Option)
        {
            this.Name = "单历元载波相位双差";

            //默认双差基础参数为3个坐标坐标
            var distanceOfBaseline = (Context.ObservationDataSources.BaseDataSource.SiteInfo.ApproxXyz - Context.ObservationDataSources.OtherDataSource.SiteInfo.ApproxXyz).Length;

            if (distanceOfBaseline <= Option.MaxDistanceOfShortBaseLine)
            {
                this.BaseParamCount = 3;
            }
            else if (distanceOfBaseline > Option.MaxDistanceOfShortBaseLine && distanceOfBaseline < Option.MinDistanceOfLongBaseLine)
            {
                this.BaseParamCount = 4;
            }

            if (distanceOfBaseline > Option.MaxDistanceOfShortBaseLine)
            {
                this.BaseParamCount = 4;
                log.Warn("基线距离有点长: " + distanceOfBaseline.ToString("0.0000") + "m, 我们默认为  " + Option.MaxDistanceOfShortBaseLine + "m 内, 电离层可能影响精度,请使用无电离层计算。");
            }

            if (this.Option.IsEstimateTropWetZpd)
            {
                this.BaseParamCount = 4;
                log.Warn("指定了对流层湿延迟估计");
            }

            this.IsBaseSatelliteRequried = true;//强制启用基准星
            this.MatrixBuilder           = new EpochDoublePhaseDifferMatrixBuilder(base.Option, BaseParamCount);
        }
Exemple #30
0
 /// <summary>
 /// 精密单点定位矩阵生成类 构造函数。
 /// </summary>
 /// <param name="option">解算选项</param>
 public IonoModeledSingleFreqPppMatrixBuilder(
     GnssProcessOption option)
     : base(option)
 {
     this.BasicParamCount = 4;
     ParamNameBuilder     = new IonoModeledSingleFreqPppParamNameBuilder(option);//option中包含了几个系统
 }