예제 #1
0
        protected override void Run(string[] obsPathes)
        {
            // var satEleDir = fileOpenControl_satElevation.FilePath;// @"D:\Data\2013[甘肃CORS数据]\1103\GpsOnly\GPS卫星高度角\";
            var pppResults        = fileOpenControl_pppResults.GetFilePathes("_Params" + Setting.TextTableFileExtension);// Directory.GetFiles(satEleDir);
            var angleCut          = double.Parse(textBox_angleCut.Text);
            var abmiResultInCycle = PppTableResultFileReader.ReadPppAmbiResultInCycle(pppResults);

            var SatElevatoinTableBuilder = new SatElevatoinTableBuilder(obsPathes, SatelliteTypes, Interval);
            var satEleTables             = SatElevatoinTableBuilder.Build();
            var mw = new MwTableBuilder(obsPathes, AngleCut, namedIntControl_emptyRowCount.Value, OutputDirectory, this.SatelliteTypes).Build();


            PeriodPrnManager PeriodPrnManager = BuildPeriodBasePrn(satEleTables);

            MultiPeriodBsdProductSolver solver = new MultiPeriodBsdProductSolver(abmiResultInCycle, mw, PeriodPrnManager);

            solver.MaxAllowedDiffer = namedFloatControl1maxAllowedDiffer.Value;
            solver.IsOutputFraction = IsOutputFraction;
            solver.IsOutputInt      = IsOutputInt;
            solver.IsOutputSummary  = IsOutputSummary;
            solver.Run();

            //var solver = new BsdAmbiSolver(obsPathes, pppResults, this.SatelliteTypes[0], angleCut, namedIntControl_minSiteCount.Value, this.namedIntControl_minEpoch.Value, OutputDirectory);

            //solver.Run();
        }
예제 #2
0
        /// <summary>
        /// 传统构造函数。
        /// </summary>
        /// <param name="pathesOfWLInt"></param>
        /// <param name="pppPathes"></param>
        /// <param name="IsOutputInEachDirectory"></param>
        /// <param name="OutputDirectory"></param>
        public MultiPeriodNarrowLaneOfBsdSolver(string[] pathesOfWLInt, string[] pppPathes, int removeCountOfEachSegment, bool IsOutputInEachDirectory, string OutputDirectory)
        {
            //读取宽巷的整数解
            //分基准星计算
            this.IsOutputInEachDirectory = IsOutputInEachDirectory;
            this.OutputDirectory         = OutputDirectory;
            this.IntOfWLPathes           = new Dictionary <SatelliteNumber, List <string> >();
            SatelliteNumber basePrn = new SatelliteNumber();

            foreach (var path in pathesOfWLInt)
            {
                basePrn = SatelliteNumber.Parse(Path.GetFileName(path).Substring(4, 3));
                if (IntOfWLPathes.ContainsKey(basePrn))
                {
                    IntOfWLPathes[basePrn].Add(path);
                }
                else
                {
                    IntOfWLPathes[basePrn] = new List <string>();
                    IntOfWLPathes[basePrn].Add(path);
                }
            }
            this.FloatAmbiguitiesOfPpp = PppTableResultFileReader.ReadPppAmbiResultInCycle(pppPathes);
            //修理浮点解
            FloatAmbiguitiesOfPpp.RemoveStartRowOfEachSegment(removeCountOfEachSegment);
            MaxAllowedDiffer = 0.25;
        }
예제 #3
0
        /// <summary>
        /// 新方法构造函数
        /// </summary>
        /// <param name="bsdWidelaneInts">不同基准星对应的星间单差宽巷模糊度</param>
        /// <param name="pppPathes"></param>
        /// <param name="IsOutputInEachDirectory"></param>
        /// <param name="OutputDirectory"></param>
        public MultiPeriodNarrowLaneOfBsdSolver(
            BaseDictionary <SatelliteNumber, MultiSitePeriodValueStorage> bsdWidelaneInts,
            string[] pppPathes, int removeCountOfEachSegment, bool IsOutputInEachDirectory, string OutputDirectory)
        {
            //读取宽巷的整数解
            //分基准星计算
            this.IsOutputInEachDirectory = IsOutputInEachDirectory;
            this.OutputDirectory         = OutputDirectory;
            this.BsdWidelaneInts         = bsdWidelaneInts;
            this.FloatAmbiguitiesOfPpp   = PppTableResultFileReader.ReadPppAmbiResultInCycle(pppPathes);


            //修理浮点解
            FloatAmbiguitiesOfPpp.RemoveStartRowOfEachSegment(removeCountOfEachSegment);
            //this.FloatAmbiguitiesOfPpp.RemoveEmptyRows();                                    //删除空行,减少计算量
            //this.FloatAmbiguitiesOfPpp.RemoveTableDataCountLessThan(MinEpoch, MinSiteCount);  //清理卫星数量过少和测站数量过少的数据


            MultiSitePppEpochValue = PppTableResultFileReader.ReadToEpochStorage(FloatAmbiguitiesOfPpp);
            MaxAllowedDiffer       = 0.25;
            MaxRmsTimes            = 2.5;
        }
예제 #4
0
 /// <summary>
 /// 构造函数。基于文件路径。
 /// </summary>
 /// <param name="pppResult"></param>
 /// <param name="obsPathes"></param>
 /// <param name="periodPrnPath"></param>
 public MultiPeriodBsdProductSolver(string[] pppResult, string[] obsPathes, string periodPrnPath)
     : this(PppTableResultFileReader.ReadPppAmbiResultInCycle(pppResult), ObjectTableManager.Read(obsPathes), PeriodPrnManager.ReadFromFile(periodPrnPath))
 {
 }