/// <summary> /// 构建基准星时段对象。 /// </summary> /// <param name="satEleTables"></param> /// <returns></returns> private PeriodPrnManager BuildPeriodBasePrn(ObjectTableManager satEleTables) { PeriodPrnManager PeriodPrnManager = null; var minSat = namedIntControl_minSiteCount.GetValue(); var minEpoch = namedIntControl_minEpoch.GetValue(); var baseSiteEle = fileOpenControl_satEleOfBaseSite.FilePath; if (baseSiteEle.Contains("SatEle.xls")) { ObjectTableReader reader = new ObjectTableReader(baseSiteEle); var satEleTable = reader.Read(); log.Info("成功读取卫星高度角文件"); PeriodFixedSatSelector BasePrnSelector = new PeriodFixedSatSelector(satEleTable, namedFloatControl1AngleCut.Value, TimePeriodCount, IsExpandPeriodOfSameSat); PeriodPrnManager = BasePrnSelector.Select(); } else if (baseSiteEle.Contains(".xls")) { PeriodPrnManager = PeriodPrnManager.ReadFromFile(baseSiteEle); } else { PeriodPrnManager = new PeriodFixedSatSelector(satEleTables.First, namedFloatControl1AngleCut.Value, TimePeriodCount, IsExpandPeriodOfSameSat).Select(); } return(PeriodPrnManager); }
protected override void Run(string[] inputPathes) { ObjectTableStorage satEleTable = GetSatEleTable(inputPathes); if (satEleTable == null) { return; } this.BindTableC(satEleTable); log.Info("成功读取卫星高度角文件"); AbstractPeriodBaseSatSelector BasePrnSelector = null; PeriodPrnManager PeriodPrnManager = null; string detailTableName = "BasePrnChainDetails"; if (!IsFlexibleSegmentaion) { var type = enumRadioControl1.GetCurrent <BaseSatSelectionType>(); detailTableName += "Of" + type + "_" + TimePeriodCount + "Count"; BasePrnSelector = new PeriodFixedSatSelector(satEleTable, namedFloatControl1AngleCut.Value, TimePeriodCount, IsExpandPeriodOfSamePrn, type); } else { detailTableName += "OfFlexible_" + namedFloatControl1AngleCut.Value + "deg"; BasePrnSelector = new FlexiblePeriodSatSelector(satEleTable, namedFloatControl1AngleCut.Value); } PeriodPrnManager = BasePrnSelector.Select(); var outPath = Path.Combine(this.OutputDirectory, Setting.GnsserConfig.BasePrnFileName); PeriodPrnManager.WriteToFile(outPath); //基准星接力 var mgr = new ObjectTableManager(this.OutputDirectory); var basePrnChain = mgr.AddTable(detailTableName); foreach (var item in PeriodPrnManager) { var vector = satEleTable.GetColObjectDicByObjIndex(item.Value.ToString(), item.TimePeriod.Start, item.TimePeriod.End); if (vector != null) { foreach (var prnVal in vector) { basePrnChain.NewRow(); basePrnChain.AddItem("Epoch", prnVal.Key); basePrnChain.AddItem(item.Value.ToString(), prnVal.Value); basePrnChain.EndRow(); } } } this.BindTableA(basePrnChain); this.BindTableB(BasePrnSelector.DetailResultTable); mgr.Add(BasePrnSelector.DetailResultTable); mgr.WriteAllToFileAndCloseStream(); var text = mgr.First.GetTextTable();// PeriodPrnManager.GetText(); ShowInfo(text); }
protected override void Run(string[] inputPathes) { PeriodPrnManager PeriodPrnManager = null; var minSat = namedIntControl_minSiteCount.GetValue(); var minEpoch = namedIntControl_minEpoch.GetValue(); var baseSiteEle = fileOpenControl_satEleOfBaseSite.FilePath; if (!File.Exists(baseSiteEle)) { Geo.Utils.FormUtil.ShowWarningMessageBox("必须输入时段选星文件或基准站卫星高度角文件。"); return; } if (baseSiteEle.Contains("SatEle.xls")) { ObjectTableReader reader = new ObjectTableReader(baseSiteEle); var satEleTable = reader.Read(); log.Info("成功读取卫星高度角文件"); PeriodFixedSatSelector BasePrnSelector = new PeriodFixedSatSelector(satEleTable, namedFloatControl1AngleCut.Value, TimePeriodCount, IsExpandPeriodOfSameSat); PeriodPrnManager = BasePrnSelector.Select(); } else { PeriodPrnManager = PeriodPrnManager.ReadFromFile(baseSiteEle); } var smoothedMws = ObjectTableManager.Read(inputPathes); smoothedMws.OutputDirectory = this.OutputDirectory; log.Info("准备计算"); var solver = new MultiPeriodWideLaneOfBsdSolver(smoothedMws, PeriodPrnManager, minSat, minEpoch, IsOutputInEachDirectory, OutputDirectory); solver.IsOutputFraction = IsOutputFraction; solver.IsOutputInt = IsOutputInt; solver.IsOutputSummary = IsOutputSummary; solver.Run(); }