//--------------------------------------------------------------------- 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); } } }