Пример #1
0
        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);
        }
Пример #2
0
        private void button_exortTable_Click(object sender, EventArgs e)
        {
            if (objectTableControl1.TableObjectStorage == null)
            {
                return;
            }
            var TableManager = new ObjectTableManager();

            TableManager.Add(objectTableControl1.TableObjectStorage);
            TableManager.WriteAllToFileAndCloseStream();
            Geo.Utils.FormUtil.ShowIfOpenDirMessageBox(TableManager.OutputDirectory);
        }
Пример #3
0
        private void button_outputOneTable_Click(object sender, EventArgs e)
        {
            CheckAndReadObsFile();
            var table = new ObsFileToTableBuilder().Build(this.ObsFile);

            table.Name = System.IO.Path.GetFileNameWithoutExtension(this.ObsPath);
            ObjectTableManager mgr = new ObjectTableManager(Setting.GnsserConfig.TempDirectory);

            mgr.Add(table);
            mgr.WriteAllToFileAndClearBuffer();
            Geo.Utils.FormUtil.ShowOkAndOpenDirectory(mgr.OutputDirectory);
        }
Пример #4
0
        /// <summary>
        /// 基线表
        /// </summary>
        /// <returns></returns>
        public ObjectTableStorage GetLineTable()
        {
            int netIndex = 0;
            ObjectTableManager tableObjects = new ObjectTableManager();

            foreach (var item in this)
            {
                var table = item.GetLineTable();
                table.Name += netIndex + "_net";
                tableObjects.Add(table);
                netIndex++;
            }
            return(tableObjects.Combine());
        }
Пример #5
0
        protected override void Run(string inputPath)
        {
            base.Run(inputPath);

            var obsFileReader = new RinexObsFileReader(inputPath);
            var ObsFile       = obsFileReader.ReadObsFile();
            var table         = new ObsFileToTableBuilder().Build(ObsFile);

            ObjectTableManager mgr = new ObjectTableManager(this.OutputDirectory);

            mgr.Add(table);
            mgr.WriteAllToFileAndClearBuffer();
            // Geo.Utils.FormUtil.ShowOkAndOpenDirectory(mgr.OutputDirectory);
        }
Пример #6
0
        /// <summary>
        /// 重复基线较差表格
        /// </summary>
        /// <param name="qualities"></param>
        /// <param name="GnssReveiverNominalAccuracy"></param>
        /// <param name="isBadOnly">是否只显示超限的</param>
        /// <returns></returns>
        public ObjectTableStorage BuildRepeatBaselingErrorTable(Dictionary <BufferedTimePeriod, RepeatErrorQualityManager> qualities, GnssReveiverNominalAccuracy GnssReveiverNominalAccuracy, bool isBadOnly = false)
        {
            var asynchClosureError = new ObjectTableManager();
            int netIndex           = 1;

            foreach (var pkv in qualities)
            {
                var period   = pkv.Key;
                var totalNet = pkv.Value;
                var netName  = (netIndex + "-0");
                var data     = qualities[period];
                ObjectTableStorage lineTable = BaseLineNet.BuildRepeatBaseLineCheckResultTable(data, netName, isBadOnly);//用于显示,查看

                asynchClosureError.Add(lineTable);
                netIndex++;
            }
            var asyncErrorTable = asynchClosureError.Combine("复测基线较差");

            return(asyncErrorTable);
        }
Пример #7
0
        /// <summary>
        /// 将三角形同步环质量结果生成表格返回,合并到一个表
        /// </summary>
        /// <param name="allQualities"></param>
        /// <returns></returns>
        public ObjectTableStorage BuildSyncTrilateralErrorTable(
            Dictionary <BufferedTimePeriod, TriguilarNetQualitiyManager> allQualities)
        {
            var synchClosureError = new ObjectTableManager();
            int netIndex          = 0;

            foreach (var pkv in this.KeyValues)
            {
                var period = pkv.Key;
                var net    = pkv.Value;

                var netName = (netIndex++).ToString();

                var qualities = allQualities[period];

                ObjectTableStorage lineTable = BaseLineNet.BuildSynchNetTrilateralCheckTResultable(netName, qualities, period);

                synchClosureError.Add(lineTable);
            }
            var syncErrorTable = synchClosureError.Combine("多时段同步环");

            return(syncErrorTable);
        }