/// <summary> /// 原始数据差分当前星,如获取PPP浮点数星间单差。 /// </summary> /// <param name="basePrn"></param> /// <returns></returns> public MultiSiteEpochValueStorage GetRawDiffer(SatelliteNumber basePrn) { log.Info("开始生成 星间单差浮点数,基准星:" + basePrn); MultiSiteEpochValueStorage sitePeriodDifferFloat = new MultiSiteEpochValueStorage("所有站星间单差浮点数模糊度"); foreach (var siteKv in this.Data) { string siteName = siteKv.Key; var periodVals = siteKv.Value; var newSite = periodVals.GetRawDiffer(basePrn); sitePeriodDifferFloat.Add(siteName, newSite); } log.Info("星间单差浮点数生成完毕,基准星:" + basePrn); return(sitePeriodDifferFloat); }
/// <summary> /// 获取四舍五入小数部分。 /// </summary> /// <returns></returns> public MultiSiteEpochValueStorage GetRoundFraction() { MultiSiteEpochValueStorage result = new MultiSiteEpochValueStorage("返回正小数部分"); foreach (var siteKv in this.Data) { string siteName = siteKv.Key; var periodVals = siteKv.Value; if (periodVals == null || periodVals.Count == 0) { continue; } var newSite = periodVals.GetRoundFraction(); result.Add(siteName, newSite); } log.Info("小数部分提取完成");//,基准星:" + basePrn); return(result); }
/// <summary> /// 所有站星间单差窄巷浮点数模糊度 /// </summary> /// <param name="intValueOfDifferWL"></param> /// <param name="funcToSolvNlAmbi"></param> /// <returns></returns> public MultiSiteEpochValueStorage GetNarrowLaneFcbs(MultiSitePeriodValueStorage intValueOfDifferWL, Func <RmsedNumeral, RmsedNumeral, RmsedNumeral> funcToSolvNlAmbi) { log.Info("开始生成 所有站星间单差窄巷浮点数模糊度");//,基准星:" + basePrn); MultiSiteEpochValueStorage narrrowFcbs = new MultiSiteEpochValueStorage("所有站星间单差窄巷浮点数模糊度"); foreach (var siteKv in this.Data) { string siteName = siteKv.Key; var periodVals = siteKv.Value; var wideIntVals = intValueOfDifferWL.Get(siteKv.Key); if (wideIntVals == null || wideIntVals.Count == 0) { continue; } var newSite = periodVals.GetNarrowLaneFcbs(wideIntVals, funcToSolvNlAmbi); narrrowFcbs.Add(siteName, newSite); } log.Info("所有站星间单差窄巷浮点数模糊度生成完毕");//,基准星:" + basePrn); return(narrrowFcbs); }