Ejemplo n.º 1
0
        //---------------------------------------------------------------------

        public override void InitializeSites(string initialCommunities,
                                             string initialCommunitiesMap)
        {
            UI.WriteLine("Loading initial communities from file \"{0}\" ...", initialCommunities);
            InitialCommunities.DatasetParser parser      = new InitialCommunities.DatasetParser(Timestep, Model.Core.Species);
            InitialCommunities.IDataset      communities = Data.Load <InitialCommunities.IDataset>(initialCommunities, parser);

            UI.WriteLine("Reading initial communities map \"{0}\" ...", initialCommunitiesMap);
            IInputRaster <InitialCommunities.Pixel> map;

            map = Model.Core.OpenRaster <InitialCommunities.Pixel>(initialCommunitiesMap);
            using (map) {
                foreach (Site site in Model.Core.Landscape.AllSites)
                {
                    InitialCommunities.Pixel pixel = map.ReadPixel();
                    ActiveSite activeSite          = site as ActiveSite;
                    if (activeSite == null)
                    {
                        continue;
                    }
                    ushort     mapCode   = pixel.Band0;
                    ICommunity community = communities.Find(mapCode);
                    if (community == null)
                    {
                        throw new PixelException(activeSite.Location,
                                                 "Unknown map code for initial community: {0}",
                                                 mapCode);
                    }
                    InitializeSite(activeSite, community);
                }
            }

            base.Cohorts = Model.Core.SuccessionCohorts;
        }
        //---------------------------------------------------------------------

        public void InitializeSites(string initialCommunities,
                                    string initialCommunitiesMap)
        {
            Log.Info("Loading initial communities from file \"{0}\" ...", initialCommunities);
            InitialCommunities.DatasetParser parser      = new InitialCommunities.DatasetParser();
            InitialCommunities.IDataset      communities = Data.Load <InitialCommunities.IDataset>(initialCommunities, parser);

            Log.Info("Reading initial communities map \"{0}\" ...", initialCommunitiesMap);
            IInputRaster <InitialCommunities.Pixel> map;

            map = Util.Raster.Open <InitialCommunities.Pixel>(initialCommunitiesMap);
            using (map) {
                foreach (Site site in Model.Landscape.AllSites)
                {
                    InitialCommunities.Pixel pixel = map.ReadPixel();
                    ActiveSite activeSite          = site as ActiveSite;
                    if (activeSite == null)
                    {
                        continue;
                    }
                    byte       mapCode   = pixel.Band0;
                    ICommunity community = communities.Find(mapCode);
                    if (community == null)
                    {
                        throw Util.Raster.PixelException(activeSite.Location,
                                                         "Unknown map code for initial community: {0}",
                                                         mapCode);
                    }
                    InitializeSite(activeSite, community);
                }
            }
        }