Esempio n. 1
0
        protected override void Run(string[] inputPathes)
        {
            var SmoothedMwValue        = ObjectTableManager.Read(inputPathes);
            WideLaneOfBsdSolver solver = null;
            var espan = enabledTimePeriodControl1.GetEnabledValue();

            if (espan.Enabled)
            {
                var span = espan.Value;
                SmoothedMwValue = SmoothedMwValue.GetSub(span.StartDateTime, span.EndDateTime);
            }

            solver = new WideLaneOfBsdSolver(SmoothedMwValue, BasePrn, namedIntControl_minSiteCount.Value, this.namedIntControl_minEpoch.Value, OutputDirectory);
            solver.Run();

            this.BindTableA(solver.FractionValueTables.First);
            //输出
            if (this.checkBox_outputInt.Checked)
            {
                solver.IntValueTables.WriteAllToFileAndClearBuffer();
            }
            if (this.checkBox_outputFraction.Checked)
            {
                solver.FractionValueTables.WriteAllToFileAndClearBuffer(solver.FractionValueTables.First);
            }
            if (this.checkBox_outputSumery.Checked)
            {
                solver.SummeryTables.WriteAllToFileAndClearBuffer();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 处理一个卫星
        /// </summary>
        /// <param name="sectionMw"></param>
        /// <param name="basePrn"></param>
        /// <returns></returns>
        private void ProcessOneBaseSat(ObjectTableManager sectionMw, SatelliteNumber basePrn)
        {
            using (var wLSolver = new WideLaneOfBsdSolver(sectionMw, basePrn, MinSiteCount, MinEpoch, this.OutputDirectory))
            {
                wLSolver.MaxAllowedDiffer = MaxAllowedDiffer;
                wLSolver.Run();

                using (var nLSolver = new NarrowLaneOfBsdSolver(basePrn, FloatAmbiguitiesOfPpp, wLSolver.IntValueTables, this.OutputDirectory))
                {
                    nLSolver.MinEpoch         = MinEpoch;
                    nLSolver.MinSiteCount     = MinSiteCount;
                    nLSolver.MaxAllowedDiffer = MaxAllowedDiffer;
                    nLSolver.Run();

                    TotalObsCountOfNL += nLSolver.TotalObsCount;

                    if (this.IsOutputInt && nLSolver.IntValueTables != null)
                    {
                        nLSolver.IntValueTables.WriteAllToFileAndClearBuffer();
                    }
                    if (this.IsOutputFraction && nLSolver.FractionValueTables != null)
                    {
                        nLSolver.FractionValueTables.WriteAllToFileAndClearBuffer();
                    }
                    if (this.IsOutputSummary && nLSolver.SummeryTables != null)
                    {
                        nLSolver.SummeryTables.WriteAllToFileAndClearBuffer();
                    }
                }

                //输出
                if (this.IsOutputInt && wLSolver.IntValueTables != null)
                {
                    wLSolver.IntValueTables.WriteAllToFileAndClearBuffer();
                }
                if (this.IsOutputFraction && wLSolver.FractionValueTables != null)
                {
                    wLSolver.FractionValueTables.WriteAllToFileAndClearBuffer();
                }
                if (this.IsOutputSummary && wLSolver.SummeryTables != null)
                {
                    wLSolver.SummeryTables.WriteAllToFileAndClearBuffer();
                }

                TotalObsCountOfWL += wLSolver.TotalObsCount;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 处理一个卫星
        /// </summary>
        /// <param name="sectionMw"></param>
        /// <param name="basePrn"></param>
        /// <returns></returns>
        private int ProcessOneBaseSat(ObjectTableManager sectionMw, SatelliteNumber basePrn, string outputDirectory)
        {
            using (var solver = new WideLaneOfBsdSolver(sectionMw, basePrn, MinSatCount, MinEpoch, outputDirectory))
            {
                solver.Run();

                //输出
                if (this.IsOutputInt && solver.IntValueTables != null)
                {
                    solver.IntValueTables.WriteAllToFileAndClearBuffer();
                }
                if (this.IsOutputFraction && solver.FractionValueTables != null)
                {
                    solver.FractionValueTables.WriteAllToFileAndClearBuffer();
                }
                if (this.IsOutputSummary && solver.SummeryTables != null)
                {
                    solver.SummeryTables.WriteAllToFileAndClearBuffer();
                }
                return(solver.TotalObsCount);
            }
        }