Ejemplo n.º 1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="pathes"></param>
        /// <param name="AngleCut"></param>
        public SiteMwValueManagerBuilder(
            string[] pathes,
            double AngleCut = 15,
            List <SatelliteType> satelliteTypes = null)
        {
            this.FilePathes = pathes;
            this.AngleCut   = AngleCut;

            DcbRangeCorrector = new DcbRangeCorrector(GlobalDataSourceService.Instance.DcbDataService, false);
            ephemerisService  = GlobalNavEphemerisService.Instance;

            MinEpochCount        = 40;
            MaxAllowedRmsOfAveMw = 1;
            IsSmoothRange        = false;
            if (satelliteTypes == null)
            {
                SatelliteTypes = new List <SatelliteType>()
                {
                    SatelliteType.G
                };
            }
            else
            {
                this.SatelliteTypes = satelliteTypes;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="path"></param>
        /// <param name="AngleCut"></param>
        /// <param name="RowCountToBeEmpty">移除前面的数据行数量,避免数据偏差太大</param>
        /// <param name="OutputDirectory"></param>
        public RawMwTableBuilder(
            string path,
            double AngleCut       = 30,
            int RowCountToBeEmpty = 40,
            List <SatelliteType> satelliteTypes = null) : base(path, satelliteTypes)
        {
            this.FilePath          = path;
            this.AngleCut          = AngleCut;
            this.RowCountToBeEmpty = RowCountToBeEmpty;

            DcbRangeCorrector = new DcbRangeCorrector(GlobalDataSourceService.Instance.DcbDataService, false);
            EphemerisService  = GlobalNavEphemerisService.Instance;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="path"></param>
        /// <param name="AngleCut"></param>
        public SingleSiteMwValueBuilder(
            string path,
            double AngleCut = 15,
            List <SatelliteType> satelliteTypes = null) : base(path, satelliteTypes)
        {
            this.AngleCut = AngleCut;

            DcbRangeCorrector = new DcbRangeCorrector(GlobalDataSourceService.Instance.DcbDataService, false);
            EphemerisService  = GlobalNavEphemerisService.Instance;

            MinEpochCount        = 40;
            MaxAllowedRmsOfAveMw = 1;
            IsSmoothRange        = false;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 预处理
        /// </summary>
        /// <param name="epoch"></param>
        public override void PreProcess(EpochInformation epoch)
        {
            epoch.RemoveIonoFreeUnavailable();

            //预处理
            var tobeDeletes = new List <SatelliteNumber>();

            foreach (var sat in epoch)
            {
                if (!IsValid(sat) || !SatelliteTypes.Contains(sat.Prn.SatelliteType))
                {
                    tobeDeletes.Add(sat.Prn);
                }
            }
            epoch.Remove(tobeDeletes);
            tobeDeletes.Clear();


            foreach (var sat in epoch)
            {
                if (!IsValid(sat) || !SatelliteTypes.Contains(sat.Prn.SatelliteType))
                {
                    continue;
                }
                var prn = sat.Prn;

                var eph = EphemerisService.Get(sat.Prn, sat.ReceiverTime);
                if (eph == null)
                {
                    tobeDeletes.Add(sat.Prn);
                    continue;
                }
                sat.Ephemeris = eph;
                if (sat.GeoElevation < AngleCut)
                {
                    tobeDeletes.Add(sat.Prn);
                    continue;
                }

                //C1 改为 P1
                DcbRangeCorrector.Correct(sat);
                //周跳探测
                //sat.IsUnstable = Detector.Detect(sat);
            }

            epoch.Remove(tobeDeletes);
            tobeDeletes.Clear();
        }
Ejemplo n.º 5
0
        private void button_read_Click(object sender, EventArgs e)
        {
            var pathes = fileOpenControl1.FilePathes;
            ObjectTableStorage table = new ObjectTableStorage("MW原始值");
            var DataSource           = new MultiSiteObsStream(pathes, BaseSiteSelectType.GeoCenter, true);
            var checkedPrns          = arrayCheckBoxControl_prn.GetSelected <SatelliteNumber>();

            if (checkedPrns.Count == 0)
            {
                return;
            }

            var DcbRangeCorrector = new DcbRangeCorrector(GlobalDataSourceService.Instance.DcbDataService, false);

            foreach (var mEpoch in DataSource)
            {
                bool isIndexAdded = false;
                foreach (var epoch in mEpoch)
                {
                    foreach (var sat in epoch)
                    {
                        //C1 改为 P1
                        DcbRangeCorrector.Correct(sat);

                        var prn = sat.Prn;
                        if (checkedPrns.Contains(prn))
                        {
                            if (!isIndexAdded)
                            {
                                table.NewRow();
                                table.AddItem("Epoch", mEpoch.ReceiverTime);
                                isIndexAdded = true;
                            }
                            table.AddItem(epoch.SiteName + "_" + prn, sat.MwCycle);
                        }
                    }
                }
            }
            objectTableControl1.DataBind(table);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="pathes"></param>
        /// <param name="AngleCut"></param>
        /// <param name="RowCountToBeEmpty">移除前面的数据行数量,避免数据偏差太大</param>
        /// <param name="OutputDirectory"></param>
        public MwTableBuilder(
            string[] pathes,
            double AngleCut        = 30,
            int RowCountToBeEmpty  = 40,
            string OutputDirectory = null,
            List <SatelliteType> satelliteTypes = null, bool IsSmooth = true, bool IsCalculateFraction = true)
        {
            this.FilePathes          = pathes;
            this.AngleCut            = AngleCut;
            this.RowCountToBeEmpty   = RowCountToBeEmpty;
            this.IsCalculateFraction = IsCalculateFraction;


            DcbRangeCorrector = new DcbRangeCorrector(GlobalDataSourceService.Instance.DcbDataService, false);
            EphemerisService  = GlobalNavEphemerisService.Instance;

            if (OutputDirectory != null)
            {
                this.OutputDirectory = OutputDirectory;
            }
            else
            {
                this.OutputDirectory = Setting.TempDirectory;
            }
            if (satelliteTypes == null)
            {
                SatelliteTypes = new List <SatelliteType>()
                {
                    SatelliteType.G
                };
            }
            else
            {
                this.SatelliteTypes = satelliteTypes;
            }
            this.IsSmooth    = IsSmooth;
            AveMinCount      = 8;
            AveMaxBreakCount = 2;
            AveMaxDiffer     = 2;
        }