コード例 #1
0
        /// <summary>
        /// 获取钟差预报结果
        /// </summary>
        /// <param name="PredictedClockBiasPath"></param>
        private void GetPredictedClockBias(string PredictedClockBiasPath)
        {
            bool isEnd = false;

            using (StreamReader sr = new StreamReader(PredictedClockBiasPath))
            {
                string   line = sr.ReadLine();
                string[] sat  = SinexCoord.SplitByBlank(line);
                while (!isEnd)
                {
                    line = sr.ReadLine();
                    if (line == null || line == "")
                    {
                        break;
                    }
                    if (line.Length == 0)
                    {
                        isEnd = false;
                    }
                    string[]  tmp  = SinexCoord.SplitByBlank(line);
                    Time      time = Time.Parse(tmp[0]);
                    Clockbias cc   = new Clockbias();
                    for (int i = 0; i < sat.Length; i++)
                    {
                        cc.sat.Add(SatelliteNumber.Parse(sat[i + 1]), double.Parse(tmp[i + 1]));
                    }
                    ClockBias.Add(time, cc);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 输出sp3文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_export_Click(object sender, EventArgs e)
        {
            bool fillWithZero = checkBox1.Checked;
            var  directory    = this.directorySelectionControl1.Path;

            Geo.Utils.FileUtil.CheckOrCreateDirectory(directory);

            string[] pathes = this.textBox_Pathes.Lines;

            foreach (var sp3item in pathes)
            {
                Sp3Reader r = new Sp3Reader(sp3item);
                sp3 = r.ReadAll();
                string PredictedClockBiasPath = this.textBox_predictedresultPath.ToString();

                ClockBias = new Dictionary <Time, Clockbias>();

                GetPredictedClockBias(PredictedClockBiasPath);
                sp3ofPredicted        = new Sp3File();
                sp3ofPredicted.Header = sp3.Header;

                foreach (Sp3Section sec in sp3)
                {
                    Sp3Section s       = new Sp3Section();
                    Clockbias  section = ClockBias[sec.Time];
                    foreach (Ephemeris rec in sec)
                    {
                        s.Time = rec.Time;
                        if (section.sat.ContainsKey(rec.Prn) && section.sat[rec.Prn] != null)
                        {
                            rec.ClockBias = section.sat[rec.Prn];
                        }
                        else
                        {
                            rec.ClockBias = 999999.999999;
                        }

                        s.Add(rec.Prn, rec);
                    }
                    sp3ofPredicted.Add(s);
                }
                sp3ofPredicted.Header.Comments.Add("Processd by Gnsser");
                sp3ofPredicted.Header.Comments.Add("Predicted clock bias replace original precise data");
                var       path      = Path.Combine(directory, "P" + r.Name + ".sp3");
                Sp3Writer Sp3Writer = new Sp3Writer(path, sp3ofPredicted);
                sp3.Clear();
            }
            Geo.Utils.FileUtil.OpenDirectory(directory);
        }