예제 #1
0
        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);
        }
예제 #2
0
 public IonophereBuilder(string name = "")
 {
     this.Name        = name;
     IonosphereWindow = new IonosphereWindow(75);
 }