Exemplo n.º 1
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);
        }
Exemplo n.º 2
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);
        }