コード例 #1
0
        /// <summary>
        /// 精密单点定位结果构造函数。
        /// </summary>
        /// <param name="receiverInfo">接收信息</param>
        /// <param name="Adjustment">平差</param>
        /// <param name="positioner">定位器</param>
        /// <param name="baseParamCount">基础参数数量</param>
        public PppResult(
            EpochInformation receiverInfo,
            AdjustResultMatrix Adjustment,
            GnssParamNameBuilder positioner,
            int baseParamCount = 5, bool isTopSpeed = false
            )
            : base(receiverInfo, Adjustment, positioner, isTopSpeed)
        {
            if (!isTopSpeed)
            {
                if (this.ResultMatrix.ParamNames.Contains(Gnsser.ParamNames.WetTropZpd) || this.ResultMatrix.ParamNames.Contains(Gnsser.ParamNames.Trop))
                {
                    this.WetTropoFactor = this.ResultMatrix.Corrected.CorrectedValue[Adjustment.GetIndexOf(Gnsser.ParamNames.WetTropZpd)];
                }

                //处理模糊度
                this.AmbiguityDic = new Dictionary <string, double>();
                int length = receiverInfo.EnabledSatCount + baseParamCount;
                //this.BasePrn = positioner.CurrentBasePrn;

                Vector vector      = Adjustment.Corrected.CorrectedValue;
                var    enabledPrns = receiverInfo.EnabledPrns;
                int    i           = baseParamCount;
                foreach (var prn in enabledPrns)
                {
                    var name  = NameBuilder.GetParamName(prn);
                    var index = Adjustment.GetIndexOf(name);
                    if (index == -1)
                    {
                        continue;
                    }

                    double val = vector[index];
                    var    key = GetSiteSatMaker(SiteInfo.SiteName, prn);
                    AmbiguityDic.Add(key, val);
                    i++;
                }
            }
        }