/// <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++; } } }