Пример #1
0
 public override void PostRun()
 {
     base.PostRun();
     RawReviser.Complete();
     RinexObsFileWriter.Dispose();
     log.Info("处理完毕!");
 }
Пример #2
0
        /// <summary>
        /// 数据刚刚进入,尚未加入缓存时执行。
        /// </summary>
        /// <param name="material"></param>
        public override void RawRevise(TMaterial material)
        {
            if (IsRawReviseBreaked)
            {
                return;
            }

            var m = material;

            if (m.EnabledSatCount == 0)
            {
                log.Error(m + ", 可用卫星为 0 ,本历元无法计算 " + m.ReceiverTime); return;
            }

            RawReviser.Buffers = this.BufferedStream.MaterialBuffers;//初始矫正,缓存为0,不需要 2016.09.26.
            //czs,2018.05.20, 这是需要的,如缓存多项式拟合伪距
            if (!RawReviser.Revise(ref m))
            {
                IsRawReviseBreaked = true;
                RawReviseBreakTime = m.ReceiverTime;
                //初始矫正错误是出现在缓存中,不中断,2019.05.15,czs, 洪庆
                // this.IsCancel = true;
                log.Warn("初始校正发生错误,计算将在此取消!");
            }

            //可以用于测试所有改正数加完。
            //this.ProducingReviser.Revise(ref m);
        }
Пример #3
0
        /// <summary>
        /// 初始化
        /// </summary>
        public override void Init()
        {
            base.Init();

            var outPath = Path.Combine(OutputDirectory, Path.GetFileName(FilePath));

            RinexObsFileWriter = new Data.Rinex.RinexObsFileWriter(outPath, Option.Version);

            this.EpochInfoToRinex = new Domain.EpochInfoToRinex(Option.Version, false);

            this.RawReviser = new EpochInfoReviseManager();
            var dataSource = this.BufferedStream.DataSource as RinexFileObsDataSource;

            RawReviser.AddProcessor(new ClockJumpReviser(dataSource.ObsInfo.Interval));
            RawReviser.Init();
        }
Пример #4
0
        public override void Process(EpochInformation epochInfo)
        {
            RawReviser.Revise(ref epochInfo);

            if (Previous != null)
            {
            }
            if (this.CurrentIndex == 0)
            {
                var dataSource = this.BufferedStream.DataSource as RinexFileObsDataSource;
                var header     = dataSource.Header;
                RinexObsFileWriter.WriteHeader(header);
            }

            var epochObs = this.EpochInfoToRinex.Build(epochInfo);

            RinexObsFileWriter.WriteEpochObservation(epochObs);
        }