示例#1
0
        /// <summary>
        /// 增加一个
        /// </summary>
        /// <param name="time"></param>
        /// <param name="rawRange"></param>
        /// <param name="rawPhaseRange"></param>
        public SmoothRangeWindowOld Add(Time time, double rawRange, double rawPhaseRange, double ionoDiffer)
        {  //通过是否相等,判断是否重复设值
            if (CurrentData.PseudoRange == rawRange && this.CurrentData.PhaseRange == rawPhaseRange)
            {
                return(this);
            }
            this.CurrentData = new RangePhasePair(rawRange, rawPhaseRange, ionoDiffer)
            {
                Time = time
            };
            this.Add(time, CurrentData);

            //电离层改正数据
            if (IsDeltaIonoCorrect && SmoothRangeType == SmoothRangeSuperpositionType.快速更新算法)
            {
                double y = CurrentData.GetRawIonoAndHalfAmbiValue();//.RangeMinusPhase / 2;
                IonoWindow.Add(time, y);

                //   BigIonoWindow.Add(time, y);
            }
            if (IsDeltaIonoCorrect)
            {
                var fit = IonoWindow.GetPolyFitValue(CurrentData.Time, OrderOfDeltaIonoPolyFit, IonoFitDataCount);
                if (fit != null)
                {
                    CurrentData.FittedIonoAndAmbiValue = fit.Value;
                }
                else
                {
                    CurrentData.FittedIonoAndAmbiValue = CurrentData.GetRawIonoAndHalfAmbiValue();
                }
            }

            return(this);
        }
示例#2
0
 /// <summary>
 /// 缓存提前增加
 /// </summary>
 /// <param name="time"></param>
 /// <param name="rawRange"></param>
 /// <param name="rawPhaseRange"></param>
 /// <returns></returns>
 public SmoothRangeWindowOld BufferAdd(Time time, double rawRange, double rawPhaseRange)
 {
     //电离层改正数据
     if (IsDeltaIonoCorrect && SmoothRangeType == SmoothRangeSuperpositionType.快速更新算法)
     {
         var data = new RangePhasePair(rawRange, rawPhaseRange, 0)
         {
             Time = time
         };
         double y = data.GetRawIonoAndHalfAmbiValue();
         IonoWindow.Add(time, y);
     }
     return(this);
 }