Example #1
0
 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);
        }
Example #4
0
        /// <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);
        }
Example #6
0
        /// <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);
        }
Example #7
0
 /// <summary>
 /// 默认构造函数
 /// </summary>
 public FcbOfUpdFile()
 {
     WideLanes        = new BaseDictionary <Time, FcbOfUpd>();
     NarrowLanes      = new BaseDictionary <Time, FcbOfUpd>();
     Name             = "FcbOfUpdFile";
     NarrowSpanSecond = 15 * 60;
 }
Example #8
0
        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);//单线程建立,避免冲突
            //}
        }
Example #9
0
        /// <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));
        }
Example #10
0
        /// <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);
        }
Example #11
0
        /// <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);
                }
            }
        }
Example #13
0
 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);
 }
Example #14
0
 /// <summary>
 /// 构造函数
 /// </summary>
 public WideLaneBiasItem()
 {
     Data = new BaseDictionary <SatelliteNumber, double>();
     OrderedProperties = new List <string>()
     {
         "Time", "Value"
     };
 }
Example #15
0
 public bool Remove(K key)
 {
     if (ContainsKey(key))
     {
         return(false);
     }
     return(BaseDictionary.Remove(key));
 }
Example #16
0
 public bool Remove(KeyValuePair <K, V> item)
 {
     if (!Filter(item))
     {
         return(false);
     }
     return(BaseDictionary.Remove(item));
 }
Example #17
0
 public void Add(KeyValuePair <K, V> item)
 {
     if (!Filter(item))
     {
         throw new KeyNotFoundException("Key does not match the filter criterium.");
     }
     BaseDictionary.Add(item);
 }
Example #18
0
 public bool Contains(KeyValuePair <K, V> item)
 {
     if (!Filter(item))
     {
         return(false);
     }
     return(BaseDictionary.Contains(item));
 }
Example #19
0
 /// <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>();
 }
Example #20
0
 /// <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;
 }
Example #21
0
        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();
        }
Example #23
0
        /// <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);
        }
Example #26
0
 public static string SaveDictionary(BaseDictionary baseDictionary)
 {
     if (string.IsNullOrEmpty(baseDictionary.Value))
     {
         return(ResponseCode.Base.ValueNullOrEmpty);
     }
     baseDictionaryRepository.Save(baseDictionary);
     return(ResponseCode.Ok);
 }
Example #27
0
        protected override IEnumerator SetUp()
        {
            yield return(base.SetUp());

            catalog = AvatarAssetsTestHelpers.CreateTestCatalogLocal();

            toCleanUp.Clear();
            wearableHolder = CreateTestGameObject("_Holder").transform;
        }
Example #28
0
        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);
 }