示例#1
0
        /// <summary>
        /// 测站和估值坐标.z注意名称全为大写
        /// </summary>
        /// <returns></returns>
        public Geo.BaseDictionary <string, NamedRmsXyz> GetSiteEstimateRmsdCoords()
        {
            var results = new  Geo.BaseDictionary <string, NamedRmsXyz> ();
            var list    = GetSinexSites();

            foreach (var item in list)
            {
                var xyz = new NamedRmsXyz(item.Name.ToUpper().Trim(), new RmsedXYZ(item.EstimateXYZ, item.EstimateXyzStdDev));
                results[item.Name] = xyz;
            }
            return(results);
        }
示例#2
0
        /// <summary>
        /// 读取FCB信息。
        /// 由于信息文件较小,这里一次性读取完毕。
        /// </summary>
        /// <returns></returns>
        public FcbFile Read()
        {
            if (!File.Exists(FilePath))
            {
                log.Error("FCB文件不存在!" + FilePath);
                return(null);
            }

            log.Info("载入:" + FilePath);
            FcbFileHeader header = ReadHeader(FilePath);
            FcbFile       file   = new FcbFile(header);

            using (var streamReader = new StreamReader(FilePath))
            {
                var line = "";
                SkipHeader(streamReader, line);
                Time time = Time.Default;
                Geo.BaseDictionary <SatelliteNumber, FcbValue> currentEpochData = null;
                while ((line = streamReader.ReadLine()) != null)
                {
                    if (line.StartsWith("*"))
                    {
                        time             = Time.Parse(Geo.Utils.StringUtil.SubString(line, 1));
                        currentEpochData = file.GetOrCreate(time);
                    }

                    if (line.StartsWith("P"))
                    {
                        SatelliteNumber prn  = SatelliteNumber.Parse(line.Substring(1, 3));
                        var             val  = Double.Parse(line.Substring(23, 10));
                        var             rms  = Geo.Utils.StringUtil.ParseDouble(line, 53);
                        var             item = new FcbValue(prn, time, val, rms);
                        currentEpochData[item.Prn] = item;
                    }
                }
            }
            return(file);
        }