Ejemplo n.º 1
0
        public static SolutionEpoch ParseLine(string line)
        {
            SolutionEpoch b = new SolutionEpoch();

            b.SiteCode        = line.Substring(1, 4);
            b.PointCode       = line.Substring(6, 2).Trim();
            b.SolutionID      = line.Substring(9, 4).Trim();
            b.ObservationCode = line.Substring(14, 1);
            if (line.Length > 14)
            {
                b.DateStart = Time.ParseYds(Geo.Utils.StringUtil.SubString(line, 16, 12));
                b.DateEnd   = Time.ParseYds(Geo.Utils.StringUtil.SubString(line, 29, 12));
                b.DateMean  = Time.ParseYds(Geo.Utils.StringUtil.SubString(line, 42, 12));
            }
            return(b);
        }
Ejemplo n.º 2
0
        public override bool Equals(object obj)
        {
            SolutionEpoch site = obj as SolutionEpoch;

            return(site == null ? false : SiteCode.Equals(site.SiteCode));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 便于使用的测站信息。
        /// </summary>
        /// <returns></returns>
        public List <SinexSiteDetail> GetSinexSites()
        {
            List <SinexSiteDetail> list = new List <SinexSiteDetail>();

            foreach (var item in SiteIdBlock.Items)
            {
                SinexSiteDetail site = new SinexSiteDetail()
                {
                    Name           = item.SiteCode,
                    ApproxGeoCoord = item.GeoCoord
                };
                list.Add(site);
            }

            foreach (var item in list)
            {
                if (SiteEccentricityBlock != null)
                {
                    SiteEccentricity siteEccentricity = SiteEccentricityBlock.Items.Find(m => m.SiteCode == item.Name);
                    if (siteEccentricity != null)
                    {
                        item.Eccentricity = siteEccentricity.Une;
                    }
                }
                if (SolutionEpochBlock != null)
                {
                    SolutionEpoch epoch = SolutionEpochBlock.Items.Find(m => m.SiteCode.ToLower() == item.Name.ToLower());
                    if (epoch != null)
                    {
                        item.DateStart = epoch.DateStart;
                        item.DateEnd   = epoch.DateEnd;
                    }
                }

                if (SolutionEstimateBlock != null && SolutionEstimateBlock.Count != 0)
                {
                    SolutionValue esX = SolutionEstimateBlock.Items.Find(
                        m => m.SiteCode == item.Name && m.ParameterType == ParameterType.STAX);
                    SolutionValue esY = SolutionEstimateBlock.Items.Find(
                        m => m.SiteCode == item.Name && m.ParameterType == ParameterType.STAY);
                    SolutionValue esZ = SolutionEstimateBlock.Items.Find(
                        m => m.SiteCode == item.Name && m.ParameterType == ParameterType.STAZ);

                    if (esX != null && esY != null && esZ != null)
                    {
                        item.EstimateXYZ       = new XYZ(esX.ParameterValue, esY.ParameterValue, esZ.ParameterValue);
                        item.EstimateXyzStdDev = new XYZ(esX.StdDev, esY.StdDev, esZ.StdDev);
                        item.EstimateGeoCoord  = CoordTransformer.XyzToGeoCoord(item.EstimateXYZ);
                    }
                }

                if (SolutionAprioriBlock != null && SolutionAprioriBlock.Count != 0)
                {
                    SolutionValue apX = SolutionAprioriBlock.Items.Find(
                        m => m.SiteCode == item.Name && m.ParameterType == ParameterType.STAX);
                    SolutionValue apY = SolutionAprioriBlock.Items.Find(
                        m => m.SiteCode == item.Name && m.ParameterType == ParameterType.STAY);
                    SolutionValue apZ = SolutionAprioriBlock.Items.Find(
                        m => m.SiteCode == item.Name && m.ParameterType == ParameterType.STAZ);
                    if (apX != null && apY != null && apZ != null)
                    {
                        item.AprioriXYZ       = new XYZ(apX.ParameterValue, apY.ParameterValue, apZ.ParameterValue);
                        item.AprioriXyzStdDev = new XYZ(apX.StdDev, apY.StdDev, apZ.StdDev);
                        item.AprioriGeoCoord  = CoordTransformer.XyzToGeoCoord(item.EstimateXYZ);
                    }
                }
                if (SiteReceiverBlock != null)
                {
                    SiteReceiver receiver = SiteReceiverBlock.Items.Find(m => m.SiteCode == item.Name);
                    if (receiver != null)
                    {
                        item.Receiver = receiver.ReceiverType;
                    }
                }
                if (SiteAntennaBlock != null)
                {
                    SiteAntenna antenna = SiteAntennaBlock.Items.Find(m => m.SiteCode == item.Name);
                    if (antenna != null)
                    {
                        item.Antenna = antenna.AntennaType;
                    }
                }
            }

            return(list);
        }