Example #1
0
        /// <summary>
        /// 具体的执行.
        /// </summary>
        /// <param name="fileInPath"></param>
        /// <param name="fileOutPath"></param>
        protected override void Execute(string fileInPath, string fileOutPath)
        {
            Gnsser.Data.Rinex.RinexObsFileReader reader = new Data.Rinex.RinexObsFileReader(fileInPath);
            var oldHeader = reader.GetHeader();
            var processer = new SatCycleSlipAnalyst(new List <SatelliteType>()
            {
                SatelliteType.G
            }, oldHeader.Interval);

            //写入到流
            EpochInfoToRinex EpochInfoToRinex = new Domain.EpochInfoToRinex(this.CurrentParam.OutputVersion, false);

            Gnsser.Data.Rinex.RinexObsFileWriter writer    = new Data.Rinex.RinexObsFileWriter(fileOutPath, this.CurrentParam.OutputVersion);
            Gnsser.Data.Rinex.RinexObsFileHeader newHeader = null;
            int maxBufferEpoch = 200;
            int i = 0;

            foreach (var item in reader)
            {
                //标记
                var obs = Domain.EpochInformation.Parse(item, item.Header.SatelliteTypes);
                processer.Revise(ref obs);

                //写入文件
                var epochObs = EpochInfoToRinex.Build(obs);
                if (newHeader == null)
                {
                    newHeader = epochObs.Header;
                    writer.WriteHeader(newHeader);
                }
                writer.WriteEpochObservation(EpochInfoToRinex.Build(obs));

                if (i > maxBufferEpoch)
                {
                    writer.Writer.Flush();
                }
            }
            writer.Writer.Close();

            processer.SatSequentialPeriod.SaveSatPeriodText(fileOutPath + "_CycleSlip.txt");
            File.WriteAllText(fileOutPath + "__cycleSlipPeriod.txt", processer.SatSequentialPeriod.ToFormatedString(), Encoding.UTF8);
        }
Example #2
0
        protected override void Execute(string fileInPath, string fileOutPath)
        {
            Gnsser.Data.Rinex.RinexObsFileReader reader = new Data.Rinex.RinexObsFileReader(fileInPath);
            var header  = reader.GetHeader();
            var Analyst = new SatCycleSlipAnalyst(new List <SatelliteType>()
            {
                SatelliteType.G, SatelliteType.C, SatelliteType.R
            }, header.Interval);

            foreach (var item in reader)
            {
                var obs = Domain.EpochInformation.Parse(item, item.Header.SatelliteTypes);

                Analyst.Revise(ref obs);
            }

            Analyst.SatSequentialPeriod.SaveSatPeriodText(fileOutPath + "_cycleSlipChart.txt");

            File.WriteAllText(fileOutPath + "__cycleSlipPeriod.txt", Analyst.SatSequentialPeriod.ToFormatedString(), Encoding.UTF8);
        }