/// <summary> /// 双差网解定位构造函数 /// </summary> /// <param name="epochInfo">历元信息</param> /// <param name="Adjustment">平差信息</param> /// <param name="ClockEstimationer">钟差估计器</param> /// <param name="previousResult">上一历元结果</param> public MultiSiteGnssExtentResult( MultiSiteEpochInfo epochInfo, AdjustResultMatrix Adjustment, GnssParamNameBuilder ClockEstimationer, MultiSiteGnssExtentResult previousResult = null) : base(epochInfo, Adjustment, ClockEstimationer) { Vector vector = Adjustment.Corrected.CorrectedValue; //update foreach (var epoch in epochInfo) { var key = NameBuilder.GetSiteWetTropZpdName(epoch); epoch.NumeralCorrections[Gnsser.ParamNames.WetTropZpd] = vector[Adjustment.GetIndexOf(key)]; } }
/// <summary> /// 钟差估计构造函数 /// </summary> /// <param name="epochInfo">历元信息</param> /// <param name="Adjustment">平差信息</param> /// <param name="ClockEstimationer">钟差估计器</param> /// <param name="previousResult">上一历元结果</param> public ClockEstimationResult( MultiSiteEpochInfo epochInfo, AdjustResultMatrix Adjustment, GnssParamNameBuilder ClockEstimationer, ClockEstimationResult previousResult = null) : base(epochInfo, Adjustment, ClockEstimationer) { Vector vector = Adjustment.Corrected.CorrectedValue; //update foreach (var epoch in epochInfo) { var key = NameBuilder.GetSiteWetTropZpdName(epoch); epoch.NumeralCorrections[Gnsser.ParamNames.WetTropZpd] = vector[Adjustment.GetIndexOf(key)]; } this.AmbiguityDic = new Dictionary <string, double>(); int length = ParamCount; for (int i = 2 * MaterialObj.Count + EnabledPrns.Count; i < length; i++) { double val = vector[i]; AmbiguityDic.Add(ParamNames[i], val); } //this.PrnWithSlips = new List<SatelliteNumber>(); this.PrnWithSlipss = new List <string>(); foreach (var item in epochInfo) { foreach (var item1 in item) { if (item1.IsUnstable) { //PrnWithSlips.Add(item1.Prn); PrnWithSlipss.Add(item.SiteName + "-" + item1.Prn); } } } }