Example #1
0
        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="oDir"></param>
        /// <param name="berFileType"></param>
        /// <returns></returns>
        public static IBerFile Create(string oDir, BerFileType berFileType)
        {
            IBerFile o = null;

            switch (berFileType)
            {
            case BerFileType.ABB:
                o = AbbFile.CreateFromODir(oDir);
                break;

            case BerFileType.STA:
                o = StaFile.CreateFromODir(oDir);
                break;

            case BerFileType.CRD:
                o = CrdFile.CreateFromODir(oDir);
                break;

            case BerFileType.VEL:
                o = VelFile.CreateFromODir(oDir);
                break;

            default: break;
            }
            return(o);
        }
Example #2
0
        /// <summary>
        /// 合并
        /// </summary>
        /// <param name="textA"></param>
        /// <param name="textB"></param>
        /// <param name="berFileType"></param>
        /// <returns></returns>
        public static IBerFile Merge(string textA, string textB, BerFileType berFileType)
        {
            IBerFile a = null, b = null;

            switch (berFileType)
            {
            case BerFileType.ABB:
                a = AbbFile.ParseText(textA);
                b = AbbFile.ParseText(textB);
                break;

            case BerFileType.STA:
                a = StaFile.ParseText(textA);
                b = StaFile.ParseText(textB);
                break;

            case BerFileType.CRD:
                a = CrdFile.ParseText(textA);
                b = CrdFile.ParseText(textB);
                break;

            case BerFileType.VEL:
                a = VelFile.ParseText(textA);
                b = VelFile.ParseText(textB);
                break;

            default: break;
            }
            return(Merge(a, b, berFileType));
        }
Example #3
0
        /// <summary>
        /// 合并
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <param name="berFileType"></param>
        /// <returns></returns>
        public static IBerFile Merge(IBerFile a, IBerFile b, BerFileType berFileType)
        {
            IBerFile o = null;

            switch (berFileType)
            {
            case BerFileType.ABB:
                o = AbbFile.Merger(a as AbbFile, b as AbbFile);
                break;

            case BerFileType.STA:
                o = StaFile.Merger(a as StaFile, b as StaFile);
                break;

            case BerFileType.CRD:
                o = CrdFile.Merger(a as CrdFile, b as CrdFile);
                break;

            case BerFileType.VEL:
                o = VelFile.Merger(a as VelFile, b as VelFile);
                break;

            default: break;
            }
            return(o);
        }
Example #4
0
        /// <summary>
        /// 合并两个 ABB 文件。
        /// </summary>
        /// <param name="one"></param>
        /// <param name="another"></param>
        /// <returns></returns>
        public static AbbFile Merger(AbbFile one, AbbFile another)
        {
            AbbFile newOne = new AbbFile();

            newOne.Name  = "Mergered";
            newOne.Items = new List <AbbItem>();
            newOne.Items.AddRange(one.Items);

            foreach (var item in another.Items)
            {
                newOne.Add(item);
            }

            return(newOne);
        }
Example #5
0
        /// <summary>
        /// 从文件中读取。
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static AbbFile Parse(string path)
        {
            using (StreamReader reader = new StreamReader(path))
            {
                AbbFile file = new AbbFile();
                file.Items = new List <AbbItem>();
                string line  = null;
                int    count = 0;
                while ((line = reader.ReadLine()) != null)
                {
                    count++;
                    if (count < 6)
                    {
                        continue;
                    }

                    AbbItem item = AbbItem.ParseLine(line);
                    file.Items.Add(item);
                }
                return(file);
            }
        }
Example #6
0
        /// <summary>
        /// 解析字符串。
        /// </summary>
        /// <param name="txt"></param>
        /// <returns></returns>
        public static AbbFile ParseText(string txt)
        {
            String[] lines = txt.Split(new char[] { '\r', '\n' },
                                       StringSplitOptions.RemoveEmptyEntries);
            AbbFile file = new AbbFile();

            file.Items = new List <AbbItem>();
            int count = 0;

            foreach (var line in lines)
            {
                count++;
                if (count < 6)
                {
                    continue;
                }

                AbbItem item = AbbItem.ParseLine(line);
                file.Items.Add(item);
            }
            return(file);
        }
Example #7
0
        /// <summary>
        /// 从包含O文件的文件夹中提取。
        /// </summary>
        /// <param name="oDir"></param>
        /// <returns></returns>
        public static AbbFile CreateFromODir(string oDir)
        {
            AbbFile file = new AbbFile();

            file.Items = new List <AbbItem>();
            string[] files = Directory.GetFiles(oDir, Setting.RinexOFileFilter);

            foreach (var item in files)
            {
                Data.Rinex.RinexObsFileHeader h = new Data.Rinex.RinexObsFileReader(item).GetHeader();
                //判断是否已经存在。
                string makerName = StringUtil.FillZero(h.SiteInfo.SiteName.ToUpper(), 4).Substring(0, 4);
                if (file.Items.Find(m => m.MakerName == makerName) != null)
                {
                    continue;
                }

                AbbItem sta = new AbbItem(makerName, h.SiteInfo.MarkerNumber, file.Items);

                file.Items.Add(sta);
            }
            return(file);
        }