public override void UpdateStateTransferModels() { if (this.ParamNames.Count == 0) { foreach (var prn in EnabledPrns) { //if (prn == this.CurrentBasePrn) continue; var paramName = ((GnssParamNameBuilder)ParamNameBuilder).GetParamName(prn); if (!ParamStateTransferModelManager.Contains(paramName)) { ParamStateTransferModelManager[paramName] = new Gnsser.Models.SingleSatPhaseAmbiguityModel(prn, Option.StdDevOfPhaseModel, Option.StdDevOfCycledPhaseModel); } } } else { foreach (var prn in EnabledPrns) { if (prn == this.CurrentBasePrn) { continue; } foreach (var item in ParamNames) { if (item.Contains(prn.ToString())) { if (!ParamStateTransferModelManager.Contains(item)) { ParamStateTransferModelManager[item] = new Gnsser.Models.SingleSatPhaseAmbiguityModel(prn, Option.StdDevOfPhaseModel, Option.StdDevOfCycledPhaseModel); } } } } } }
/// <summary> /// 差分定位的矩阵生成器,构造函数。 /// </summary> /// <param name="model">解算选项</param> public AbstractMultiSitePeriodMatrixBuilder( GnssProcessOption model) : base(model) { foreach (var item in Gnsser.ParamNames.Dxyz) { ParamStateTransferModelManager.Add(item, new StaticTransferModel(Option.StdDevOfStaticTransferModel)); } }
/// <summary> /// 构造函数 /// </summary> /// <param name="option"></param> public EpochDouFreDoubleDifferMatrixBuilder( GnssProcessOption option, int baseParamCount) : base(option) { this.ParamStateTransferModelManager = new ParamStateTransferModelManager(option); foreach (var item in Gnsser.ParamNames.Dxyz) { ParamStateTransferModelManager.Add(item, new StaticTransferModel(Option.StdDevOfStaticTransferModel)); } if (baseParamCount == 4) { ParamStateTransferModelManager.Add(Gnsser.ParamNames.WetTropZpd, new RandomWalkModel(Option.StdDevOfTropoRandomWalkModel)); } if (baseParamCount == 5) { ParamStateTransferModelManager.Add(Gnsser.ParamNames.WetTropZpd, new RandomWalkModel(Option.StdDevOfTropoRandomWalkModel)); ParamStateTransferModelManager.Add(Gnsser.ParamNames.RefWetTrop, new RandomWalkModel(Option.StdDevOfTropoRandomWalkModel)); } this.BaseParamCount = baseParamCount; this.ParamNameBuilder = new PeriodDoubleDifferParamNameBuilder(this.Option); }