/// <summary> /// 构造函数 /// </summary> public SiteSatAppearenceServiceRegister(SiteSatAppearenceService SiteSatAppearenceService, double BreakCount) { this.Name = "测站卫星注册时段服务"; log.Info("启用 " + this.Name); this.SiteSatAppearenceService = SiteSatAppearenceService; this.BreakCount = BreakCount; }
public override void Complete() { base.Complete(); if (IsOutputPeriodData) { SiteSatAppearenceService.BuildTableObjectManager(OutputDirectory).WriteAllToFileAndClearBuffer(); } }
/// <summary> /// 修正 /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Revise(ref EpochInformation obj) { var service = SiteSatAppearenceService.GetOrCreate(obj.SiteName); service.MaxGapSecond = obj.ObsInfo.Interval * BreakCount; service.Regist(obj); var buffer = this.Buffers; return(true); }
/// <summary> /// 构造函数 /// </summary> public BreakOffBothEndsReviser(SiteSatAppearenceService SiteSatAppearenceService, double minuteOfBreakOffBothEnds) { this.Name = "卫星数据掐头去尾"; log.Info("启用 " + Name); CurrentIndex = -1; this.SecondOfBreakOffBothEnds = minuteOfBreakOffBothEnds * 60; this.SiteSatAppearenceService = SiteSatAppearenceService; if (SiteSatAppearenceService == null) { log.Warn(Name + "需要时段分析服务!" + typeof(SiteSatAppearenceService)); } }
public override bool Revise(ref EpochInformation epochInfo) { if (SiteSatAppearenceService == null) { return(true); } CurrentIndex++; //首历元忽略 if (CurrentIndex <= 1) { FirstEpoch = epochInfo.ReceiverTime; return(true); } var buffer = this.Buffers; var time = epochInfo.ReceiverTime; var service = SiteSatAppearenceService.Get(epochInfo.Name); if (service == null) { log.Warn("时段服务器为null" + epochInfo.Name); return(true); } List <SatelliteNumber> tobeCuts = new List <SatelliteNumber>(); foreach (var sat in epochInfo) { var period = service.Get(sat.Prn); if (period.Contains(FirstEpoch) || period.Contains(service.LastRegistTime))//包含首尾历元,则不必掐头 { continue; } var StartTime = period.Start; bool isCut = IsInCutRegion(time, period.Start) || IsInCutRegion(time, period.End); if (isCut) { tobeCuts.Add(sat.Prn); } } epochInfo.Remove(tobeCuts, true, this.Name); return(true); }