Пример #1
0
        //---------------------------------------------------------------------
        

        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(PlugIns.ICore modelCore,
                                  double[,] establishProbabilities,
                                  SeedingAlgorithms seedAlg,
                                  Reproduction.Delegates.AddNewCohort addNewCohort)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            Seeding.InitializeMaxSeedNeighborhood();

            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm;
            switch (seedAlg)
            {
                case SeedingAlgorithms.NoDispersal:
                    algorithm = NoDispersal.Algorithm;
                    break;

                case SeedingAlgorithms.UniversalDispersal:
                    algorithm = UniversalDispersal.Algorithm;
                    break;

                case SeedingAlgorithms.WardSeedDispersal:
                    algorithm = WardSeedDispersal.Algorithm;
                    break;

                default:
                    throw new ArgumentException(string.Format("Unknown seeding algorithm: {0}", seedAlg));
            }

            Reproduction.Initialize(establishProbabilities, algorithm,
                                    addNewCohort == null ? null : new Reproduction.Delegates.AddNewCohort(addNewCohort));
        }
        //---------------------------------------------------------------------


        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(ICore modelCore,
                                  SeedingAlgorithms seedAlg)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            Seeding.InitializeMaxSeedNeighborhood();

            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm;

            switch (seedAlg)
            {
            case SeedingAlgorithms.NoDispersal:
                algorithm = NoDispersal.Algorithm;
                break;

            case SeedingAlgorithms.UniversalDispersal:
                algorithm = UniversalDispersal.Algorithm;
                break;

            case SeedingAlgorithms.WardSeedDispersal:
                algorithm = WardSeedDispersal.Algorithm;
                break;

            default:
                throw new ArgumentException(string.Format("Unknown seeding algorithm: {0}", seedAlg));
            }

            Reproduction.Initialize(algorithm);
        }
        //---------------------------------------------------------------------


        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(ICore modelCore,
                                  SeedingAlgorithms seedAlg)//,
                                  //Reproduction.Delegates.AddNewCohort addNewCohort)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            Seeding.InitializeMaxSeedNeighborhood();

            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm;
            switch (seedAlg)
            {
                case SeedingAlgorithms.NoDispersal:
                    algorithm = NoDispersal.Algorithm;
                    break;

                case SeedingAlgorithms.UniversalDispersal:
                    algorithm = UniversalDispersal.Algorithm;
                    break;

                case SeedingAlgorithms.WardSeedDispersal:
                    algorithm = WardSeedDispersal.Algorithm;
                    break;

                default:
                    throw new ArgumentException(string.Format("Unknown seeding algorithm: {0}", seedAlg));
            }

            Reproduction.Initialize(algorithm);
        }
Пример #4
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(PlugIns.ICore modelCore,
                                  double[,]                           establishProbabilities,
                                  SeedingAlgorithms seedAlg,
                                  Reproduction.Delegates.AddNewCohort addNewCohort)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            Seeding.InitializeMaxSeedNeighborhood();

            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm;

            switch (seedAlg)
            {
            case SeedingAlgorithms.NoDispersal:
                algorithm = NoDispersal.Algorithm;
                break;

            case SeedingAlgorithms.UniversalDispersal:
                algorithm = UniversalDispersal.Algorithm;
                break;

            case SeedingAlgorithms.WardSeedDispersal:
                algorithm = WardSeedDispersal.Algorithm;
                break;

            default:
                throw new ArgumentException(string.Format("Unknown seeding algorithm: {0}", seedAlg));
            }
            Reproduction.Initialize(establishProbabilities, algorithm,
                                    addNewCohort == null ? null : new Reproduction.Delegates.AddNewCohort(addNewCohort));
        }
        //---------------------------------------------------------------------


        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(ICore modelCore,
                                  SeedingAlgorithms seedAlg)//,
                                  //Reproduction.Delegates.AddNewCohort addNewCohort)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            Seeding.InitializeMaxSeedNeighborhood();

            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm = SeedingAlgorithmsUtil.GetAlgorithm(seedAlg,
                                                                            Timestep);
            Reproduction.Initialize(algorithm);
        }
Пример #6
0
        //---------------------------------------------------------------------


        /// <summary>
        /// Initializes the instance and its associated site variables.
        /// </summary>
        protected void Initialize(ICore modelCore,
                                  SeedingAlgorithms seedAlg)//,
        //Reproduction.Delegates.AddNewCohort addNewCohort)
        {
            Model.Core = modelCore;
            SiteVars.Initialize();
            Seeding.InitializeMaxSeedNeighborhood();

            disturbedSites = new DisturbedSiteEnumerator(Model.Core.Landscape,
                                                         SiteVars.Disturbed);

            SeedingAlgorithm algorithm = SeedingAlgorithmsUtil.GetAlgorithm(seedAlg,
                                                                            Timestep);

            Reproduction.Initialize(algorithm);
        }
        public void MixedLandscape()
        {
            ISiteVar<bool> disturbed = DisturbedSites.MixedLandscape.NewSiteVar<bool>();
            foreach (Location loc in DisturbedSites.Locations) {
                ActiveSite site = DisturbedSites.MixedLandscape[loc];
                Assert.IsNotNull(site);
                disturbed[site] = true;
            }

            DisturbedSiteEnumerator disturbedSites;
            disturbedSites = new DisturbedSiteEnumerator(DisturbedSites.MixedLandscape, disturbed);
            int count = 0;
            foreach (ActiveSite site in disturbedSites) {
                count++;
                Assert.IsTrue(count <= DisturbedSites.Locations.Length);
                Assert.AreEqual(DisturbedSites.Locations[count-1], site.Location);
            }
            Assert.AreEqual(count, DisturbedSites.Locations.Length);
        }
        public void MixedLandscape()
        {
            // columns:    123456789
            ILandscape landscape = MakeLandscape("---------",                   // row 1
                                                 "---XXXX--",                   // row 2
                                                 "--XXXXX--",                   // row 3
                                                 "--XXXXXX-",                   // row 4
                                                 "-XXX--XX-",                   // row 5
                                                 "-XX---XXX",                   // row 6
                                                 "--XX--X--");                  // row 7

            ISiteVar <bool> disturbed = landscape.NewSiteVar <bool>();

            Location[] disturbedLocs = new Location[] {
                new Location(2, 6),
                new Location(3, 4),
                new Location(3, 5),
                new Location(5, 7),
                new Location(5, 8),
                new Location(6, 2),
                new Location(7, 7)
            };
            foreach (Location loc in disturbedLocs)
            {
                ActiveSite site = landscape[loc];
                Assert.IsNotNull(site);
                disturbed[site] = true;
            }

            DisturbedSiteEnumerator disturbedSites;

            disturbedSites = new DisturbedSiteEnumerator(landscape, disturbed);
            int count = 0;

            foreach (ActiveSite site in disturbedSites)
            {
                count++;
                Assert.IsTrue(count <= disturbedLocs.Length);
                Assert.AreEqual(disturbedLocs[count - 1], site.Location);
            }
            Assert.AreEqual(count, disturbedLocs.Length);
        }
		public void MixedLandscape()
		{
									// columns:    123456789
			ILandscape landscape = MakeLandscape( "---------",	// row 1
			                                      "---XXXX--",	// row 2
			                                      "--XXXXX--",	// row 3
			                                      "--XXXXXX-",	// row 4
			                                      "-XXX--XX-",	// row 5
			                                      "-XX---XXX",	// row 6
			                                      "--XX--X--");	// row 7

			ISiteVar<bool> disturbed = landscape.NewSiteVar<bool>();
			Location[] disturbedLocs = new Location[] {
				new Location(2,6),
				new Location(3,4),
				new Location(3,5),
				new Location(5,7),
				new Location(5,8),
				new Location(6,2),
				new Location(7,7)
			};
			foreach (Location loc in disturbedLocs) {
				ActiveSite site = landscape[loc];
				Assert.IsNotNull(site);
				disturbed[site] = true;
			}

			DisturbedSiteEnumerator disturbedSites;
			disturbedSites = new DisturbedSiteEnumerator(landscape, disturbed);
			int count = 0;
			foreach (ActiveSite site in disturbedSites) {
				count++;
				Assert.IsTrue(count <= disturbedLocs.Length);
				Assert.AreEqual(disturbedLocs[count-1], site.Location);
			}
			Assert.AreEqual(count, disturbedLocs.Length);
		}
        public void MixedLandscape()
        {
            ISiteVar <bool> disturbed = DisturbedSites.MixedLandscape.NewSiteVar <bool>();

            foreach (Location loc in DisturbedSites.Locations)
            {
                ActiveSite site = DisturbedSites.MixedLandscape[loc];
                Assert.IsNotNull(site);
                disturbed[site] = true;
            }

            DisturbedSiteEnumerator disturbedSites;

            disturbedSites = new DisturbedSiteEnumerator(DisturbedSites.MixedLandscape, disturbed);
            int count = 0;

            foreach (ActiveSite site in disturbedSites)
            {
                count++;
                Assert.IsTrue(count <= DisturbedSites.Locations.Length);
                Assert.AreEqual(DisturbedSites.Locations[count - 1], site.Location);
            }
            Assert.AreEqual(count, DisturbedSites.Locations.Length);
        }