Пример #1
0
        public override void Init()
        {
            this.DataSource  = new RinexFileObsDataSource(FilePath);
            this.Result      = new ObjectTableStorage();                   //最后结果
            this.Result.Name = DataSource.SiteInfo.SiteName + namePostfix; //
            if (String.IsNullOrWhiteSpace(Result.Name))
            {
                Result.Name = Path.GetFileNameWithoutExtension(FilePath);
            }

            this.BuffferStream = new BufferedStreamService <EpochInformation>(DataSource);


            //如果平滑伪距,则需要周跳探测
            Revisers = new EpochInfoReviseManager();
            if (IsSmoothRange)
            {
                var interval          = DataSource.ObsInfo.Interval;
                int smoothEpochCount  = (int)(600 / interval);//10 min windowData.MaxKeyGap = source.ObsInfo.Interval * 5;//已经包含着周跳探测中了
                var CycleSlipDetector = CycleSlipDetectReviser.DefaultDoubleFrequencyDetector();
                var rangeReviser      = new PhaseSmoothRangeReviser(true, false, smoothEpochCount, true, IonoDifferCorrectionType.DualFreqCarrier);

                Revisers.AddProcessor(CycleSlipDetector);
                Revisers.AddProcessor(rangeReviser);
            }
        }
Пример #2
0
        public override void Init()
        {
            this.DataSource = new RinexFileObsDataSource(FilePath);
            var interval = DataSource.ObsInfo.Interval == 0? 30: DataSource.ObsInfo.Interval;

            this.WindowDataManager = new WindowDataManager <SatelliteNumber, Time, WeightedNumeral>(int.MaxValue / 2, interval * 3); //过程计算工具
            this.BuffferStream     = new BufferedStreamService <EpochInformation>(DataSource);


            //如果平滑伪距,则需要周跳探测
            Revisers = new EpochInfoReviseManager();
            if (IsSmoothRange)
            {
                int smoothEpochCount  = (int)(600 / interval);//10 min windowData.MaxKeyGap = source.ObsInfo.Interval * 5;//已经包含着周跳探测中了
                var CycleSlipDetector = CycleSlipDetectReviser.DefaultDoubleFrequencyDetector();
                var rangeReviser      = new PhaseSmoothRangeReviser(true, false, smoothEpochCount, true, IonoDifferCorrectionType.DualFreqCarrier);

                Revisers.AddProcessor(CycleSlipDetector);
                Revisers.AddProcessor(rangeReviser);
            }
            this.Result      = new MultiSatPeriodRmsNumeralStorage(Path.GetFileName(FilePath) + "_MW最后结果"); //最后结果
            this.Result.Name = DataSource.SiteInfo.SiteName;                                                //
            if (String.IsNullOrWhiteSpace(Result.Name))
            {
                Result.Name = Path.GetFileNameWithoutExtension(FilePath);
            }
        }