/// <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); }
/// <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); }