Example #1
0
        private void AddItem(InitialTSTSpatial item)
        {
            SortedKeyMap1 <InitialTSTSpatial> m = this.m_Map.GetItemExact(item.TSTGroupId);

            if (m == null)
            {
                m = new SortedKeyMap1 <InitialTSTSpatial>(SearchMode.ExactPrev);
                this.m_Map.AddItem(item.TSTGroupId, m);
            }

            InitialTSTSpatial v = m.GetItemExact(item.Iteration);

            if (v != null)
            {
                string msg = string.Format(CultureInfo.InvariantCulture,
                                           "A record already exists for Transition Group={0} and iteration={1}.",
                                           this.GetTransitionGroupName(item.TSTGroupId),
                                           STSimMapBase.FormatValue(item.Iteration));

                throw new ArgumentException(msg);
            }

            m.AddItem(item.Iteration, item);
            this.m_HasItems = true;
        }
Example #2
0
        public LateralFlowAmountRecord GetRecord(
            int?stockTypeId,
            int flowTypeId,
            int primaryStratumId,
            int?secondaryStratumId,
            int?tertiaryStratumId,
            int stateClassId,
            int minimumAge)
        {
            if (this.m_AllRecords.Count == 0)
            {
                return(null);
            }

            SortedKeyMap1 <LateralFlowAmountRecord> m = this.m_Map.GetItem(
                stockTypeId, flowTypeId, primaryStratumId, secondaryStratumId, tertiaryStratumId, stateClassId);

            if (m == null)
            {
                return(null);
            }

            LateralFlowAmountRecord r = m.GetItem(minimumAge);

            if (r != null)
            {
                Debug.Assert(r.StockTypeId == stockTypeId);
                return(r);
            }

            return(null);
        }
Example #3
0
        public StochasticTimeRaster GetRaster(int transitionGroupId, int iteration)
        {
            if (!this.m_HasItems)
            {
                return(null);
            }

            SortedKeyMap1 <InitialTSTSpatial> m = this.m_Map.GetItem(transitionGroupId);

            if (m == null)
            {
                return(null);
            }

            InitialTSTSpatial v = m.GetItem(iteration);

            if (v == null)
            {
                return(null);
            }

            string FullFileName = Spatial.GetSpatialInputFileName(this.m_DataSheet, v.FileName, false);

            if (!this.m_Rasters.ContainsKey(FullFileName))
            {
                string CmpMsg                   = null;
                StochasticTimeRaster  r         = new StochasticTimeRaster(FullFileName, RasterDataType.DTInteger);
                CompareMetadataResult cmpResult = this.m_InputRasters.CompareMetadata(r, ref CmpMsg);

                if (cmpResult == CompareMetadataResult.RowColumnMismatch)
                {
                    string Message = string.Format(CultureInfo.InvariantCulture,
                                                   MessageStrings.ERROR_SPATIAL_FILE_MISMATCHED_METADATA,
                                                   v.FileName, CmpMsg);

                    throw new STSimException(Message);
                }
                else if (cmpResult == CompareMetadataResult.UnimportantDifferences)
                {
                    string Message = string.Format(CultureInfo.InvariantCulture,
                                                   MessageStrings.STATUS_SPATIAL_FILE_MISMATCHED_METADATA_INFO,
                                                   v.FileName, CmpMsg);

                    this.Scenario.RecordStatus(StatusType.Information, Message);
                }

                this.m_Rasters.Add(FullFileName, r);
            }

            return(this.m_Rasters[FullFileName]);
        }
Example #4
0
        protected T GetItem(int?k1, int?k2)
        {
            if (!this.HasItems)
            {
                return(default(T));
            }

            SortedKeyMap1 <T> p = this.m_map.GetItem(k1);

            if (p == null)
            {
                return(default(T));
            }

            return(p.GetItem(k2));
        }
Example #5
0
        public TstRandomize GetTstRandomize(
            int?transitionGroupId, int?stratumId, int?secondaryStratumId,
            int?tertiaryStratumId, int?stateClassId, int?iteration)
        {
            if (!this.HasItems)
            {
                return(null);
            }

            SortedKeyMap1 <TstRandomize> m = this.m_map.GetItem(
                transitionGroupId, stratumId, secondaryStratumId, tertiaryStratumId, stateClassId);

            if (m == null)
            {
                return(null);
            }

            return(m.GetItem(iteration));
        }
Example #6
0
        protected void AddItem(int?k1, int?k2, T item)
        {
            SortedKeyMap1 <T> m = this.m_map.GetItemExact(k1);

            if (m == null)
            {
                m = new SortedKeyMap1 <T>(SearchMode.ExactPrev);
                this.m_map.AddItem(k1, m);
            }

            T v = m.GetItemExact(k2);

            if (v != null)
            {
                ThrowDuplicateItemException();
            }

            m.AddItem(k2, item);
            this.SetHasItems();
        }
Example #7
0
        public void AddOrUpdate(
            int?stockTypeId,
            int flowTypeId,
            int?primaryStratumId,
            int?secondaryStratumId,
            int?tertiaryStratumId,
            int?stateClassId,
            int?minimumAge,
            double amount)
        {
            Debug.Assert(
                primaryStratumId.HasValue || secondaryStratumId.HasValue || tertiaryStratumId.HasValue ||
                stateClassId.HasValue || minimumAge.HasValue || stockTypeId.HasValue);

            SortedKeyMap1 <LateralFlowAmountRecord> m = this.m_Map.GetItemExact(
                stockTypeId, flowTypeId, primaryStratumId, secondaryStratumId, tertiaryStratumId, stateClassId);

            if (m == null)
            {
                m = new SortedKeyMap1 <LateralFlowAmountRecord>(SearchMode.ExactPrev);
                this.m_Map.AddItem(stockTypeId, flowTypeId, primaryStratumId, secondaryStratumId, tertiaryStratumId, stateClassId, m);
            }

            LateralFlowAmountRecord r = m.GetItemExact(minimumAge);

            if (r == null)
            {
                r = new LateralFlowAmountRecord();

                r.StockTypeId = stockTypeId;
                r.FlowTypeId  = flowTypeId;
                r.StockAmount = amount;
                m.AddItem(minimumAge, r);

                this.m_AllRecords.Add(r);
            }
            else
            {
                r.StockAmount += amount;
            }
        }
Example #8
0
        public void AddTstRandomize
            (int?transitionGroupId, int?stratumId, int?secondaryStratumId, int?tertiaryStratumId,
            int?stateClassId, int?iteration, TstRandomize tstRandomize)
        {
            SortedKeyMap1 <TstRandomize> m = this.m_map.GetItemExact(
                transitionGroupId, stratumId, secondaryStratumId, tertiaryStratumId, stateClassId);

            if (m == null)
            {
                m = new SortedKeyMap1 <TstRandomize>(SearchMode.ExactPrev);
                this.m_map.AddItem(transitionGroupId, stratumId, secondaryStratumId, tertiaryStratumId, stateClassId, m);
            }

            TstRandomize v = m.GetItemExact(iteration);

            if (v != null)
            {
                string template = "A duplicate Time-Since-Transition Randomize value was detected: More information:" + Environment.NewLine + "Transition Group={0}, {1}={2}, {3}={4}, {5}={6}, State Class={7}, Iteration={8}.";
                ExceptionUtils.ThrowArgumentException(template, this.GetTransitionGroupName(transitionGroupId), this.PrimaryStratumLabel, this.GetStratumName(stratumId), this.SecondaryStratumLabel, this.GetSecondaryStratumName(secondaryStratumId), this.TertiaryStratumLabel, this.GetTertiaryStratumName(tertiaryStratumId), this.GetStateClassName(stateClassId), STSimMapBase.FormatValue(iteration));
            }

            m.AddItem(iteration, tstRandomize);
            this.SetHasItems();
        }