public override double Build() { if (IonosphereWindow.Count > 1) { var differ = Math.Abs(CurrentIono - SmoothedIono); if (differ > 10) { log.Error("电离层延迟量有误,可能发生了周跳,直接采用伪距值计算,电离层平滑计算值清零!重新来过。CurrentIono : " + CurrentIono + ", SmoothedIono :" + SmoothedIono); IonosphereWindow.Clear(); return(CurrentIono); } } IonosphereWindow.Add(CurrentIono, DeltaPhaseIono); SmoothedIono = IonosphereWindow.CaculateIonoValue(); return(SmoothedIono); }
public IonophereBuilder(string name = "") { this.Name = name; IonosphereWindow = new IonosphereWindow(75); }