コード例 #1
0
        //---------------------------------------------------------------------
        public override void Initialize(string        dataFile,
            PlugIns.ICore modelCore)
        {
            this.modelCore = modelCore;

            ParametersParser.SpeciesDataset = modelCore.Species;
            ParametersParser parser = new ParametersParser();
            IParameters parameters = Data.Load<IParameters>(dataFile,
                                                            parser);

            Timestep = parameters.Timestep;
            mapNameTemplate = parameters.MapNames;

            ILandscapeCohorts cohorts = modelCore.SuccessionCohorts as ILandscapeCohorts;
            if (cohorts == null)
                throw new ApplicationException("Error: Cohorts don't support age-cohort interface");

            selectedSpecies = new List<SpeciesMaxAgeCalculator>();
            foreach (ISpecies species in parameters.SelectedSpecies)
                selectedSpecies.Add(new SpeciesMaxAgeCalculator(species, cohorts));

            siteMaxAgeCalculator = new SiteMaxAgeCalculator(cohorts);

            ageBuffer = new BlockRowBuffer<ushort>(modelCore.Landscape);
        }
コード例 #2
0
        //---------------------------------------------------------------------

        public static void Initialize(double[,]              establishProbabilities,
                                      SeedingAlgorithm seedingAlgorithm,
                                      Delegates.AddNewCohort addNewCohort)
        {
            Reproduction.establishProbabilities = establishProbabilities;
            seeding = new Seeding(seedingAlgorithm);
            Reproduction.addNewCohort = addNewCohort;

            cohorts = Model.Core.SuccessionCohorts as AgeCohort.ILandscapeCohorts;
            if (cohorts == null)
            {
                throw new ApplicationException("The succession plug-in's cohorts don't support age-cohort interface");
            }

            speciesDataset = Model.Core.Species;
            int speciesCount = speciesDataset.Count;

            resprout = Model.Core.Landscape.NewSiteVar <BitArray>();
            serotiny = Model.Core.Landscape.NewSiteVar <BitArray>();
            foreach (ActiveSite site in Model.Core.Landscape.ActiveSites)
            {
                resprout[site] = new BitArray(speciesCount);
                serotiny[site] = new BitArray(speciesCount);
            }

            planting = new Planting();

            trySeeding = new BlockRowBuffer <bool>(Model.Core.Landscape);
            hasSeeded  = new BlockRowBuffer <BitArray>(Model.Core.Landscape);
            for (int col = 1; col <= hasSeeded.Columns; col++)
            {
                hasSeeded[col] = new BitArray(speciesCount);
            }
        }
コード例 #3
0
        //---------------------------------------------------------------------

        public override void Initialize(string dataFile,
                                        PlugIns.ICore modelCore)
        {
            this.modelCore = modelCore;

            ParametersParser.SpeciesDataset = modelCore.Species;
            ParametersParser parser     = new ParametersParser();
            IParameters      parameters = Data.Load <IParameters>(dataFile,
                                                                  parser);

            Timestep        = parameters.Timestep;
            mapNameTemplate = parameters.MapNames;

            ILandscapeCohorts cohorts = modelCore.SuccessionCohorts as ILandscapeCohorts;

            if (cohorts == null)
            {
                throw new ApplicationException("Error: Cohorts don't support age-cohort interface");
            }

            selectedSpecies = new List <SpeciesMaxAgeCalculator>();
            foreach (ISpecies species in parameters.SelectedSpecies)
            {
                selectedSpecies.Add(new SpeciesMaxAgeCalculator(species, cohorts));
            }

            siteMaxAgeCalculator = new SiteMaxAgeCalculator(cohorts);

            ageBuffer = new BlockRowBuffer <ushort>(modelCore.Landscape);
        }
コード例 #4
0
        //---------------------------------------------------------------------

        private void CreateAndTestBuffer(int landscapeColumns,
                                         int blockSize,
                                         int expectedBufferColumns)
        {
            BlockRowBuffer <int> buffer = CreateBuffer(landscapeColumns, blockSize);

            Assert.IsNotNull(buffer);
            Assert.AreEqual(expectedBufferColumns, buffer.Columns);
            for (int col = 1; col <= buffer.Columns; col++)
            {
                buffer[col] = col;
                Assert.AreEqual(col, buffer[col]);
            }
        }
コード例 #5
0
        //---------------------------------------------------------------------

        public static void Initialize(double[,]              establishProbabilities,
                                      SeedingAlgorithm       seedingAlgorithm,
                                      Delegates.AddNewCohort addNewCohort)
        {
            Reproduction.establishProbabilities = establishProbabilities;
            seeding = new Seeding(seedingAlgorithm);
            Reproduction.addNewCohort = addNewCohort;

            cohorts = Model.Core.SuccessionCohorts as AgeCohort.ILandscapeCohorts;
            if (cohorts == null)
                throw new ApplicationException("The succession plug-in's cohorts don't support age-cohort interface");

            speciesDataset = Model.Core.Species;
            int speciesCount = speciesDataset.Count;

            resprout = Model.Core.Landscape.NewSiteVar<BitArray>();
            serotiny = Model.Core.Landscape.NewSiteVar<BitArray>();
            foreach (ActiveSite site in Model.Core.Landscape.ActiveSites) {
                resprout[site] = new BitArray(speciesCount);
                serotiny[site] = new BitArray(speciesCount);
            }

            planting = new Planting();

            trySeeding = new BlockRowBuffer<bool>(Model.Core.Landscape);
            hasSeeded = new BlockRowBuffer<BitArray>(Model.Core.Landscape);
            for (int col = 1; col <= hasSeeded.Columns; col++) {
                hasSeeded[col] = new BitArray(speciesCount);
            }
        }
コード例 #6
0
		public void NullLandscape()
		{
            BlockRowBuffer<int> buffer = new BlockRowBuffer<int>(null);
		}
コード例 #7
0
        public void SetColumn0()
        {
            BlockRowBuffer <int> buffer = CreateBuffer(100, 3);

            buffer[0] = -1;
        }
コード例 #8
0
 public void GetColumn0()
 {
     BlockRowBuffer <int> buffer = CreateBuffer(100, 3);
     int i = buffer[0];
 }
コード例 #9
0
 public void NullLandscape()
 {
     BlockRowBuffer <int> buffer = new BlockRowBuffer <int>(null);
 }