public void Clear() { foreach (KeyValuePair <K, V> entry in this.ToList()) { BaseDictionary.Remove(entry); } }
public BaseDictionary Update(BaseDictionary entity) { context.Entry(entity).State = EntityState.Modified; context.SaveChanges(); return(entity); }
protected override IEnumerator SetUp() { yield return(base.SetUp()); if (controller == null) { skinColorList = Resources.Load <ColorList>("SkinTone"); hairColorList = Resources.Load <ColorList>("HairColor"); eyeColorList = Resources.Load <ColorList>("EyeColor"); userProfile = ScriptableObject.CreateInstance <UserProfile>(); } catalog = AvatarAssetsTestHelpers.CreateTestCatalogLocal(); controller = new AvatarEditorHUDController_Mock(); controller.Initialize(userProfile, catalog); controller.SetVisibility(true); DataStore.i.isPlayerRendererLoaded.Set(true); userProfile.UpdateData(new UserProfileModel() { name = "name", email = "mail", avatar = new AvatarModel() { bodyShape = WearableLiterals.BodyShapes.FEMALE, wearables = new List <string>() { }, } }, false); }
/// <summary> /// 对象表 /// </summary> /// <returns></returns> public ObjectTableStorage GetObjectTable() { ObjectTableStorage table = new ObjectTableStorage("异步环闭合差"); int baseLineIndex = 1; BaseDictionary <TimePeriod, int> periodNums = GetAllPeriodWithOrderNumber(); foreach (var kv in this.KeyValues) { var list = kv.Value; var lines = kv.Key; foreach (var error in list) { table.NewRow(); table.AddItem("基线号", baseLineIndex++); // table.AddItem("三边", lines); StringBuilder sb = BuildNetPeriodNumStr(periodNums, error); table.AddItem("三边时段号", sb.ToString()); Dictionary <string, object> objRow = error.GetObjectRow(); table.AddItem(objRow); StringBuilder sb1 = BuildDetailPeriod(error); table.AddItem("三边时段详情", sb1.ToString()); } } return(table); }
public BaseDictionary Create(BaseDictionary entity) { context.BaseDictionaries.Add(entity); context.SaveChanges(); return(entity); }
/// <summary> /// 将所有卫星产品归算到一颗卫星上面 /// </summary> /// <param name="basePrn"></param> /// <param name="maxRms"></param> /// <param name="epoch"></param> /// <returns></returns> public FcbOfUpd GetWideLaneFcbOfAllSat(SatelliteNumber basePrn, Time epoch, double maxRms) { //首先,所有的都计算一次 var prns = this.GetAllPrns(); var data = new BaseDictionary <SatelliteNumber, List <RmsedNumeral> >("数据集合", (prn) => new List <RmsedNumeral>()); foreach (var prn in prns) { //计算以当前卫星为基准的差分数据 Dictionary <SatelliteNumber, RmsedNumeral> fcbDic = GetWideLaneFcbDic(prn, epoch, maxRms); if (!fcbDic.ContainsKey(basePrn)) { continue; } // 没有基准星,则不考虑 var baseVal = fcbDic[basePrn]; //其次,归算到指定的卫星 foreach (var item in fcbDic) { var currentPrn = item.Key; var newVal = item.Value - baseVal; newVal.Value = Geo.Utils.DoubleUtil.GetRoundFraction(newVal.Value); data.GetOrCreate(currentPrn).Add(newVal); } } //加权平均 var ave = Geo.Utils.DoubleUtil.GetRoundFractionAverageValues(data); FcbOfUpd fcb = new FcbOfUpd(basePrn, epoch, ave, true); return(fcb); }
/// <summary> /// 默认构造函数 /// </summary> public FcbOfUpdFile() { WideLanes = new BaseDictionary <Time, FcbOfUpd>(); NarrowLanes = new BaseDictionary <Time, FcbOfUpd>(); Name = "FcbOfUpdFile"; NarrowSpanSecond = 15 * 60; }
public override void PreRun() { base.PreRun(); this.MaxAllowedRms = namedFloatControl_maxAllowedRms.GetValue(); MaxAllowedConvergenceTime = namedFloatControl_maxAllowConvergTime.GetValue(); MaxAllowedDifferAfterConvergence = namedFloatControl1MaxAllowedDifferAfterConvergence.GetValue(); MaxDiffer = this.namedFloatControl_maxDiffer.GetValue(); SequentialEpochCount = this.namedIntControl_epochCount.GetValue(); KeyLabelCharCount = namedIntControl_labelCharCount.GetValue(); ParamNamesString = namedStringControl_paramNames.GetValue(); Result = new BaseConcurrentDictionary <string, BaseDictionary <string, Time> >("结果", (key) => new BaseDictionary <string, Time>()); StartTimes = new BaseDictionary <string, Time>(); var paramNames = ParamNamesString.Split(new char[] { ',', ';', ',', '\t', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); paramAnalyzer = new EpochParamAnalyzer(new List <string>(paramNames), SequentialEpochCount, MaxDiffer, MaxAllowedConvergenceTime, KeyLabelCharCount, MaxAllowedDifferAfterConvergence, MaxAllowedRms); //foreach (var inputPath in this.TotalPathes) //{ // var fileName = Path.GetFileName(inputPath); // var dic = Result.GetOrCreate(fileName);//单线程建立,避免冲突 //} }
/// <summary> /// 获取指定历元所有数值与基准的差分值。 /// 首先进行时段差分,再获取。 /// </summary> /// <param name="basePrn"></param> /// <param name="epoch"></param> /// <param name="maxRms"></param> /// <returns></returns> public BaseDictionary <SatelliteNumber, RmsedNumeral> GetRawDiffer(SatelliteNumber basePrn, Time epoch, double maxRms = 0.5) { var result = new BaseDictionary <SatelliteNumber, RmsedNumeral>(basePrn + "_" + epoch.ToString()); MultiSatPeriodRmsNumeralStorage differs = GetRawDiffer(basePrn, maxRms); return(differs.GetEpochValues(epoch)); }
/// <summary> /// 对象表 /// </summary> /// <returns></returns> public ObjectTableStorage GetObjectTable() { ObjectTableStorage table = new ObjectTableStorage("复测基线较差"); var orderedPeriod = this.Keys; orderedPeriod.Sort();//排序 BaseDictionary <TimePeriod, int> periodNums = GetAllPeriodWithOrderNumber(); int baseLineIndex = 1; foreach (var key in orderedPeriod) { var periodError = this[key]; foreach (var row in periodError.KeyValues) { table.NewRow(); table.AddItem("基线号", baseLineIndex++); table.AddItem("时段", key.NetPeriod.ToDefualtPathString()); table.AddItem("比较时段", row.Key.ToDefualtPathString()); var periodNum = periodNums.GetOrCreate(key.NetPeriod); var toPeriodNum = periodNums.GetOrCreate(row.Key); table.AddItem("时段号", periodNum); table.AddItem("比较时段号", toPeriodNum); Dictionary <string, object> objRow = row.Value.GetObjectRow(); table.AddItem(objRow); } } return(table); }
/// <summary> /// 最简单的4历元钟跳修复法,返回改正数。 /// </summary> /// <param name="prev2"></param> /// <param name="prev1"></param> /// <param name="current"></param> /// <param name="next"></param> /// <param name="frequenceType"></param> /// <returns></returns> public double GetClockJumpSeconds(EpochInformation prev2, EpochInformation prev1, EpochInformation current, EpochInformation next, FrequenceType frequenceType) { List <SatelliteNumber> commonPrns = Geo.Utils.ListUtil.GetCommons <SatelliteNumber>(current.Keys, prev1.Keys, prev2.Keys, next.Keys); //比较二者预报之差求后平均 var currentPreditceDiffer = GetPredictedDiffer(prev2, prev1, current, commonPrns, frequenceType); //var aveVal0 = Geo.Utils.DoubleUtil.Average(currentPreditceDiffer.Values); //var seconds0 = 1.0 * aveVal0 / GnssConst.LIGHT_SPEED; //return seconds0; var prevPreditceDiffer = GetPredictedDiffer(next, current, prev1, commonPrns, frequenceType);//这个符号是反的 //求预报平均值 var aves = new BaseDictionary <SatelliteNumber, double>(); foreach (var item in commonPrns) { aves[item] = (currentPreditceDiffer[item] - prevPreditceDiffer[item]) / 2.0; } var aveVal = Geo.Utils.DoubleUtil.Average(aves); var seconds = aveVal / GnssConst.LIGHT_SPEED; return(seconds); }
public string this[string key] { get { if (BaseDictionary.ContainsKey(key)) { return(BaseDictionary[key]); } else { BaseDictionary.Add(key, string.Empty); return(BaseDictionary[key]); } } set { if (BaseDictionary.ContainsKey(key)) { BaseDictionary[key] = value; } else { if (ReadOnly) { throw new ArgumentException("此集合是唯讀的。"); } BaseDictionary.Add(key, value); } } }
public void Add(K key, V value) { if (!Filter(new KeyValuePair <K, V>(key, value))) { throw new KeyNotFoundException("Key does not match the filter criterium."); } BaseDictionary.Add(key, value); }
/// <summary> /// 构造函数 /// </summary> public WideLaneBiasItem() { Data = new BaseDictionary <SatelliteNumber, double>(); OrderedProperties = new List <string>() { "Time", "Value" }; }
public bool Remove(K key) { if (ContainsKey(key)) { return(false); } return(BaseDictionary.Remove(key)); }
public bool Remove(KeyValuePair <K, V> item) { if (!Filter(item)) { return(false); } return(BaseDictionary.Remove(item)); }
public void Add(KeyValuePair <K, V> item) { if (!Filter(item)) { throw new KeyNotFoundException("Key does not match the filter criterium."); } BaseDictionary.Add(item); }
public bool Contains(KeyValuePair <K, V> item) { if (!Filter(item)) { return(false); } return(BaseDictionary.Contains(item)); }
/// <summary> /// 构造函数 /// </summary> public TotalStationResultFile() { DirectionResults = new BaseDictionary <GnssBaseLineName, TotalStationDirectionResult>(); DistanceResults = new BaseDictionary <GnssBaseLineName, TotalStationDistanceResult>(); AdjustCoordResults = new BaseDictionary <string, TotalStationAdjustCoordResult>(); CombinedResults = new BaseDictionary <GnssBaseLineName, TotalStationCombinedResult>(); ApproxCoords = new BaseDictionary <string, XY>(); }
/// <summary> /// 默认构造函数 /// </summary> /// <param name="basePrn"></param> /// <param name="epoch"></param> /// <param name="isWideOrNarrow"></param> public FcbOfUpd(SatelliteNumber basePrn, Time epoch, bool isWideOrNarrow) { Data = new BaseDictionary <SatelliteNumber, RmsedNumeral>(); this.Count = 32;// data.Count; this.BasePrn = basePrn; this.Epoch = epoch; this.WnMarker = isWideOrNarrow ? FcbOfUpd.WideLaneMaker : FcbOfUpd.NarrowLaneMaker; }
public override PeriodRmsedNumeralStoarge Build() { PeriodRmsedNumeralStoarge result = new PeriodRmsedNumeralStoarge(); double interval = EpochParamTable.GetInterval <Time>(); double maxBreakSpan = interval * (MaxBreakCount + 1); BaseDictionary <string, TimePeriod> currents = new BaseDictionary <string, TimePeriod>(); foreach (var row in EpochParamTable.BufferedValues) { var time = (Time)row["Epoch"]; foreach (var kv in row) { if (!currents.Contains(kv.Key)) { currents[kv.Key] = new TimePeriod(time, time); } var currentPeriod = currents[kv.Key]; var span = time - currentPeriod.End; if (span > maxBreakSpan) // 断裂,重新赋值 { //获取RMS并更新 double rmsVal = DefaultRmsValue; if (EpochParamRmsTable != null) { var rms = EpochParamRmsTable.GetValue <double>(currentPeriod.End, kv.Key, DefaultRmsValue); var stdDev = EpochParamRmsTable.GetValue <double>(currentPeriod.End, "StdDev", 1); rmsVal = rms / stdDev; } ((RmsedNumeral)currentPeriod.Object).Rms = rmsVal; result.GetOrCreate(kv.Key)[currentPeriod] = (RmsedNumeral)currentPeriod.Object; //新建 currentPeriod = new TimePeriod(time, time); currents[kv.Key] = currentPeriod; } currentPeriod.End = time; currentPeriod.Object = new RmsedNumeral(Geo.Utils.ObjectUtil.GetNumeral(kv.Value), DefaultRmsValue); } } //最后更新一次,查缺补漏 foreach (var kv in currents.KeyValues) { //获取RMS double rmsVal = DefaultRmsValue; if (EpochParamRmsTable != null) { var rms = EpochParamRmsTable.GetValue <double>(kv.Value.End, kv.Key, DefaultRmsValue); var stdDev = EpochParamRmsTable.GetValue <double>(kv.Value.End, "StdDev", 1); rmsVal = rms / stdDev; } var val = (RmsedNumeral)kv.Value.Object; val.Rms = rmsVal; //恢复为协因数阵 result.GetOrCreate(kv.Key)[kv.Value] = val; } this.CurrentResult = result; return(result); }
protected override IEnumerator SetUp() { yield return(base.SetUp()); bodyShapeController = Substitute.For <IBodyShapeController>(); bodyShapeController.bodyShapeId.Returns(WearableLiterals.BodyShapes.FEMALE); catalog = AvatarAssetsTestHelpers.CreateTestCatalogLocal(); }
/// <summary> /// 非差轨道确定 /// </summary> /// <param name="Material">历元信息</param> /// <param name="ResultMatrix">平差信息</param> /// <param name="ParamNameBuilder">钟差估计器</param> /// <param name="previousResult">上一历元结果</param> public RangeOrbitResult( MultiSiteEpochInfo Material, AdjustResultMatrix ResultMatrix, RangeOrbitParamNameBuilder ParamNameBuilder, RangeOrbitResult previousResult = null) : base(Material, ResultMatrix, ParamNameBuilder) { //测站接收机钟差改正 foreach (var site in Material) { var clkName = ParamNameBuilder.GetReceiverClockParamName(site.SiteName); var val = ResultMatrix.Estimated.Get(clkName); site.Time.Correction = GetTimeCorrectionSeconds(val.Value); } //提取星历参数,可以用于改正卫星位置,进行迭代计算 EphemerisResults = new BaseDictionary <SatelliteNumber, EphemerisResult>(); foreach (var site in Material) { foreach (var sat in site) { var prn = sat.Prn; Ephemeris estimated = new Ephemeris(sat.Ephemeris.Prn, sat.Ephemeris.Time) { XyzDotRms = new XYZ() }; var clkName = ParamNameBuilder.GetSatClockParamName(prn); var val = ResultMatrix.Estimated.Get(clkName); estimated.ClockBias = GetTimeCorrectionSeconds(val.Value); estimated.ClockBiasRms = val.Rms / GnssConst.LIGHT_SPEED; var names = ParamNameBuilder.GetSatDxyz(prn); foreach (var item in names) { val = ResultMatrix.Estimated.Get(item); if (item.Contains(Gnsser.ParamNames.Dx)) { estimated.XYZ.X = val.Value; estimated.XyzDotRms.X = val.Rms; } if (item.Contains(Gnsser.ParamNames.Dy)) { estimated.XYZ.Y = val.Value; estimated.XyzDotRms.Y = val.Rms; } if (item.Contains(Gnsser.ParamNames.Dz)) { estimated.XYZ.Z = val.Value; estimated.XyzDotRms.Z = val.Rms; } } EphemerisResults[prn] = new EphemerisResult((Ephemeris)sat.Ephemeris, estimated); } } }
public bool Remove(string key) { if (ReadOnly) { throw new ArgumentException("此集合是唯讀的。"); } return(BaseDictionary.Remove(key)); }
/// <summary> /// 新增 Key 到 Dictionary 中,值為 string.Empty,如果已經存在該 Key 會產生 Exception。 /// </summary> /// <param name="key"></param> public void Add(string key) { if (ReadOnly) { throw new ArgumentException("此集合是唯讀的。"); } BaseDictionary.Add(key, string.Empty); }
public static string SaveDictionary(BaseDictionary baseDictionary) { if (string.IsNullOrEmpty(baseDictionary.Value)) { return(ResponseCode.Base.ValueNullOrEmpty); } baseDictionaryRepository.Save(baseDictionary); return(ResponseCode.Ok); }
protected override IEnumerator SetUp() { yield return(base.SetUp()); catalog = AvatarAssetsTestHelpers.CreateTestCatalogLocal(); toCleanUp.Clear(); wearableHolder = CreateTestGameObject("_Holder").transform; }
public static void DictionaryDelete(long id) { BaseDictionary baseDictionary = baseDictionaryRepository.GetById(id); if (baseDictionary != null) { baseDictionaryRepository.Delete(baseDictionary); } }
private BaseDictionary[] InitialiseMetroNetwork() { StationDictionary stationDiction = new StationDictionary(APIHandler.GetStationList()); LineDictionary lineDiction = new LineDictionary(APIHandler.GetLineList(), APIHandler.GetLineColors()); MetroNetwork.Initialise(stationDiction, lineDiction); BaseDictionary[] dictionaries = new BaseDictionary[] { stationDiction, lineDiction }; return(dictionaries); }
public void Init(StringBuilder tempResponse, int extractorStatus, string url, SPContext current, string currentLccode, string languageCode) { TempResponse = tempResponse; ExtractorStatus = extractorStatus; LanguageSource = currentLccode; LanguageDestination = languageCode; Url = url; CurrentContext = current; Dictionary = Dictionaries.Instance.GetRootDictionary(current.Site.WebApplication.Id, current.Site.ID, current.Web.ID); }
public static string SaveDictionary(BaseDictionary baseDictionary) { if (string.IsNullOrEmpty(baseDictionary.Value)) { return ResponseCode.Base.ValueNullOrEmpty; } baseDictionaryRepository.Save(baseDictionary); return ResponseCode.Ok; }
public void Add(BaseDictionary baseDictionary) { sysDictionary.Add(baseDictionary.Id, baseDictionary); }