/// <summary> /// 设置无电离层组合 /// </summary> /// <param name="result"></param> public void SetIonoFreeCombination(PppResult result) { EpochInformation epochInfo = result.MaterialObj; var nameBuilder = (GnssParamNameBuilder)result.NameBuilder; foreach (var sat in epochInfo.EnabledSats) { var key = nameBuilder.GetParamName(sat.Prn); if (!this.Contains(key)) { this[key] = new IonoFreeCombination(sat.FrequenceA.PhaseRange, sat.FrequenceB.PhaseRange); } double ambiDistance = result.GetAmbiguityDistance(epochInfo.SiteName, sat.Prn); this[key].SetAmbiguity(ambiDistance); var amb = this[key]; long ambiA = amb.NarrowPhase.Ambiguity; long ambiB = ambiA - amb.WidePhase.Ambiguity; //string msg = ambiA + "\t" + ambiB + "\r\n"; //string path = "C:\\GnsserOutput\\模糊度\\" + result.EpochInfo.obsPath.MarkerName + "_" + result.EpochInfo.ReceiverTime.ToDateString() + "\\" + sat.Prn + "模糊度.txt"; //if (!Directory.Exists(Path.GetDirectoryName(path))) Directory.CreateDirectory(Path.GetDirectoryName(path)); //System.IO.File.AppendAllText(path, msg); } }
public override bool Revise(ref EpochInformation epochInfo) { foreach (var sat in epochInfo) { //设置无电离层载波对齐 SetAmbiguityOfIonoFreePhase(sat); } return(true); }
public bool Add(EpochInformation info) { if (Data.Contains(info)) { return(false); } Data.Add(info); //add prevObj if (Data.Count > AssignedEpochCount) { Data.RemoveAt(0); } return(true); }
/// <summary> /// 默认构造函数 /// </summary> /// <param name="epochInfo">历元观测信息</param> /// <param name="prn">卫星编号</param> public EpochSatellite( EpochInformation epochInfo, SatelliteNumber prn ) : base() { this.EpochInfo = epochInfo; this.SiteInfo = epochInfo == null? null: epochInfo.SiteInfo; this.Enabled = true; this.Prn = prn; this.CommonCorrection = new NumerialCorrectionDic(); this.PhaseOnlyCorrection = new NumerialCorrectionDic(); this.RangeOnlyCorrection = new NumerialCorrectionDic(); this.StdDevOfRange = 1; }
/// <summary> /// 添加。 /// </summary> /// <param name="EpochInformation"></param> /// <param name="isBase"></param> public void Add(EpochInformation EpochInformation, bool isBase = false) { if (Epoch == Time.Default) { Epoch = EpochInformation.ReceiverTime; } else if (Epoch != EpochInformation.ReceiverTime) { throw new ArgumentException("时间不匹配!要求:" + Epoch + ", 但输入历元是:" + EpochInformation.ReceiverTime); } if (isBase) { BaseEpochInfo = EpochInformation; } else { if (!ListExceptBase.Contains(EpochInformation)) { ListExceptBase.Add(EpochInformation); } } }
/// <summary> /// 设置历元信息 /// </summary> /// <param name="EpochInfo"></param> /// <returns></returns> public RinexEpochSatBuilder SetEpochInfo(EpochInformation EpochInfo) { this.EpochInfo = EpochInfo; this.Time = EpochInfo.ReceiverTime; return(this); }