示例#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;
        }
示例#2
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]);
        }