//---------------------------------------------------------------------
        public static void Initialize(string varName)
        {
            droughtYears = PlugIn.ModelCore.Landscape.NewSiteVar <double>();


            PlugIn.ModelCore.RegisterSiteVar(SiteVars.DroughtYears, varName);
        }
Пример #2
0
        private static ISiteVar <int> siteDefoliation; //Brian M update

        //---------------------------------------------------------------------

        public static void Initialize()
        {
            outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar <Outbreak>();
            timeOfLastEvent   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            biomassRemoved    = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            //neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            cohorts                 = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");
            cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            //insectName = PlugIn.ModelCore.Landscape.NewSiteVar<string>();
            siteDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //Brian M update

            //SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0;
            SiteVars.TimeOfLastEvent.ActiveSiteValues     = -10000;
            SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0;
            //SiteVars.InsectName.ActiveSiteValues = "";
            SiteVars.SiteDefoliation.ActiveSiteValues = 0; //Brian M update

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SiteVars.OutbreakVars = null; //new Outbreak();
            }

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }

            //PlugIn.ModelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BiomassInsects.TimeOfLastEvent");//Commented out - JRF because already registered above...
            //PlugIn.ModelCore.RegisterSiteVar(SiteVars.InsectName, "BiomassInsects.InsectName");//See comment above
            //PlugIn.ModelCore.RegisterSiteVar(SiteVars.SiteDefoliation, "BiomassInsects.PctDefoliation");
        }
 //---------------------------------------------------------------------
 public static void Initialize(ICore modelCore)
 {
     landUse = modelCore.Landscape.NewSiteVar<LandUse>();
     allowHarvest = new AllowHarvestSiteVar();
     Model.Core.RegisterSiteVar(allowHarvest, "LandUse.AllowHarvest");
     Landis.Library.BiomassHarvest.SiteVars.CohortsPartiallyDamaged = modelCore.Landscape.NewSiteVar<int>();
 }
Пример #4
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            cohorts   = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");
            fineFuels = PlugIn.ModelCore.GetSiteVar <double>("Succession.FineFuels");

            eventVar         = PlugIn.ModelCore.Landscape.NewSiteVar <FireEvent>(InactiveSiteMode.DistinctValues);
            timeOfLastFire   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            intensity        = PlugIn.ModelCore.Landscape.NewSiteVar <byte>();
            spreadProbablity = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            dayOfFire        = PlugIn.ModelCore.Landscape.NewSiteVar <ushort>();

            groundSlope          = PlugIn.ModelCore.Landscape.NewSiteVar <ushort>();
            uphillSlopeAzimuth   = PlugIn.ModelCore.Landscape.NewSiteVar <ushort>();
            lightningFireWeight  = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            rxFireWeight         = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            accidentalFireWeight = PlugIn.ModelCore.Landscape.NewSiteVar <double>();

            lightningSuppressionIndex  = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            rxSuppressionIndex         = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            accidentalSuppressionIndex = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            typeOfIginition            = PlugIn.ModelCore.Landscape.NewSiteVar <short>();
            disturbed       = PlugIn.ModelCore.Landscape.NewSiteVar <bool>();
            specialDeadWood = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            EventID         = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            RxZones         = PlugIn.ModelCore.Landscape.NewSiteVar <int>();

            SmolderConsumption = PlugIn.ModelCore.GetSiteVar <double>("Succession.SmolderConsumption");
            FlamingConsumption = PlugIn.ModelCore.GetSiteVar <double>("Succession.FlamingConsumption");
            HarvestTime        = PlugIn.ModelCore.GetSiteVar <int>("Harvest.TimeOfLastEvent");

            PlugIn.ModelCore.RegisterSiteVar(SiteVars.Intensity, "Fire.Severity");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.TimeOfLastFire, "Fire.TimeOfLastEvent");
        }
Пример #5
0
        //---------------------------------------------------------------------
        public static void Initialize(IInputParameters parameters)
        {
            transpiration       = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            AnnualTranspiration = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            infiltration        = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            runoff              = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            waterleakage        = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            evaporation         = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            WHC                 = parameters.WHC;
            EvaporationFraction = parameters.EvaporationFraction;
            LeakageFraction     = parameters.LeakageFraction;
            SnowPack            = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            Water               = PlugIn.ModelCore.Landscape.NewSiteVar <float>();

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SnowPack[site]            = 0;
                Water[site]               = 0;
                infiltration[site]        = 0;
                runoff[site]              = 0;
                evaporation[site]         = 0;
                transpiration[site]       = 0;
                AnnualTranspiration[site] = 0;
            }
            PlugIn.ModelCore.RegisterSiteVar(AnnualTranspiration, "Succession.AnnualTranspiration");

            PlugIn.ModelCore.RegisterSiteVar(Water, "Succession.SoilWater");
        }
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");
            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }

            fuelType        = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            decidFuelType   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            percentConifer  = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            percentHardwood = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            percentDeadFir  = PlugIn.ModelCore.Landscape.NewSiteVar <int>();

            timeOfLastHarvest       = PlugIn.ModelCore.GetSiteVar <int>("Harvest.TimeOfLastEvent");
            harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar <string>("Harvest.PrescriptionName");
            harvestCohortsKilled    = PlugIn.ModelCore.GetSiteVar <int>("Harvest.CohortsDamaged");

            timeOfLastFire = PlugIn.ModelCore.GetSiteVar <int>("Fire.TimeOfLastEvent");
            fireSeverity   = PlugIn.ModelCore.GetSiteVar <byte>("Fire.Severity");

            timeOfLastWind = PlugIn.ModelCore.GetSiteVar <int>("Wind.TimeOfLastEvent");
            windSeverity   = PlugIn.ModelCore.GetSiteVar <byte>("Wind.Severity");

            numberDeadFirCohorts = PlugIn.ModelCore.GetSiteVar <Dictionary <int, int> >("BDA.NumCFSConifers");

            PlugIn.ModelCore.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir");
        }
Пример #7
0
        //---------------------------------------------------------------------

        public static void ReadMap(string path, ISiteVar <double> siteVar)
        {
            IInputRaster <IntPixel> map;

            try
            {
                map = PlugIn.ModelCore.OpenRaster <IntPixel>(path);
            }
            catch (FileNotFoundException)
            {
                string messege = string.Format("Error: The file {0} does not exist", path);
                throw new System.ApplicationException(messege);
            }

            if (map.Dimensions != PlugIn.ModelCore.Landscape.Dimensions)
            {
                string messege = string.Format("Error: The input map {0} does not have the same dimension (row, column) as the ecoregions map", path);
                throw new System.ApplicationException(messege);
            }

            using (map) {
                IntPixel pixel = map.BufferPixel;
                foreach (Site site in PlugIn.ModelCore.Landscape.AllSites)
                {
                    map.ReadBufferPixel();
                    double mapCode = (int)pixel.MapCode.Value;

                    if (site.IsActive)
                    {
                        siteVar[site] = mapCode;
                    }
                }
            }
        }
Пример #8
0
        //---------------------------------------------------------------------

        public static void Initialize(ILandscapeCohorts cohorts)
        {
            //eventVar       = Model.Core.Landscape.NewSiteVar<Epidemic>(InactiveSiteMode.DistinctValues);
            timeOfLastBDA       = Model.Core.Landscape.NewSiteVar <int>();
            neighborResourceDom = Model.Core.Landscape.NewSiteVar <double>();
            siteResourceDomMod  = Model.Core.Landscape.NewSiteVar <double>();
            siteResourceDom     = Model.Core.Landscape.NewSiteVar <double>();
            vulnerability       = Model.Core.Landscape.NewSiteVar <double>();
            disturbed           = Model.Core.Landscape.NewSiteVar <bool>();
            //numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar<int[]>();
            numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar <Dictionary <int, int> >();

            SiteVars.TimeOfLastEvent.ActiveSiteValues     = -10000;
            SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDomMod.ActiveSiteValues  = 0.0;
            SiteVars.SiteResourceDom.ActiveSiteValues     = 0.0;
            SiteVars.Vulnerability.ActiveSiteValues       = 0.0;

            foreach (ActiveSite site in Model.Core.Landscape)
            {
                //SiteVars.NumberCFSconifersKilled[site] = new int[Model.Core.EndTime - Model.Core.StartTime + 1];
                SiteVars.NumberCFSconifersKilled[site] = new Dictionary <int, int>();
            }

            // Added for v1.1 to enable interactions with CFS fuels extension.
            Model.Core.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers");
            Model.Core.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent");
        }
        //---------------------------------------------------------------------

        public static void Initialize(ICore modelCore)
        {
            core = modelCore;
            modelCore.Log.WriteLine("Inside Initialize method !!!");
            ecoregions     = modelCore.Landscape.NewSiteVar<IFireRegion>();
            eventVar       = modelCore.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues);
            timeOfLastFire = modelCore.Landscape.NewSiteVar<int>();
            severity = modelCore.Landscape.NewSiteVar<byte>();
            disturbed = modelCore.Landscape.NewSiteVar<bool>();

            cohorts = modelCore.GetSiteVar<SiteCohorts>("Succession.Cohorts");
            
            // Enable interactions with (almost) any fire extension:
            modelCore.RegisterSiteVar(SiteVars.Severity, "Fire.Severity");
            

            //Initialize TimeSinceLastFire to the maximum cohort age:
            foreach (ActiveSite site in modelCore.Landscape) 
            {
                // Test to make sure the cohort type is correct for this extension
                if (site.Location.Row == 1 && site.Location.Column == 1 && !SiteVars.Cohorts[site].HasAge())
                {
                    throw new System.ApplicationException("Error in the Scenario file:  Incompatible extensions; Cohort age data required for this extension to operate.");
                }

                //UI.WriteLine("Inside foreach loop.  Site R/C = {0}/{1} !!!", site.Location.Row, site.Location.Column);
                ushort maxAge = Library.BaseCohorts.Util.GetMaxAge(cohorts[site]);
                //ushort maxAge = Library.Cohort.AgeOnly.Util.GetMaxAge(SiteVars.Cohorts[site]);
                //UI.WriteLine("Assigned maxAge");
                timeOfLastFire[site] = modelCore.StartTime - maxAge;
            }
        }
Пример #10
0
        //---------------------------------------------------------------------

        private void WritePoolMap(string poolName,
                                  ISiteVar <Pool> poolSiteVar)
        {
            string path = PoolMapNames.ReplaceTemplateVars(poolMapNameTemplate,
                                                           poolName,
                                                           PlugIn.ModelCore.CurrentTime);

            if (poolSiteVar != null)
            {
                PlugIn.ModelCore.UI.WriteLine("   Writing {0} biomass map to {1} ...", poolName, path);
                using (IOutputRaster <IntPixel> outputRaster = modelCore.CreateRaster <IntPixel>(path, modelCore.Landscape.Dimensions))
                {
                    IntPixel pixel = outputRaster.BufferPixel;
                    foreach (Site site in PlugIn.ModelCore.Landscape.AllSites)
                    {
                        if (site.IsActive)
                        {
                            pixel.MapCode.Value = (int)((float)poolSiteVar[site].Mass);
                        }
                        else
                        {
                            pixel.MapCode.Value = 0;
                        }

                        outputRaster.WriteBufferPixel();
                    }
                }
            }
        }
        //---------------------------------------------------------------------

        public static void Initialize()
        {

            outbreakVariables       = PlugIn.ModelCore.Landscape.NewSiteVar<Outbreak>();
            timeOfLastEvent         = PlugIn.ModelCore.Landscape.NewSiteVar<int>();

            cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts");

            
            cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            
            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SiteVars.OutbreakVars = null;
            }

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }

        }
        //---------------------------------------------------------------------

        public static void Initialize(ICore modelCore)
        {
            timeOfLastBDA = modelCore.Landscape.NewSiteVar<int>();
            neighborResourceDom = modelCore.Landscape.NewSiteVar<double>();
            siteResourceDomMod = modelCore.Landscape.NewSiteVar<double>();
            siteResourceDom = modelCore.Landscape.NewSiteVar<double>();
            vulnerability = modelCore.Landscape.NewSiteVar<double>();
            disturbed = modelCore.Landscape.NewSiteVar<bool>();
            numberCFSconifersKilled = modelCore.Landscape.NewSiteVar<Dictionary<int, int>>();
            timeOfNext = modelCore.Landscape.NewSiteVar<int>();

            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDom.ActiveSiteValues = 0.0;
            SiteVars.Vulnerability.ActiveSiteValues = 0.0;
            SiteVars.TimeOfNext.ActiveSiteValues = 9999;

            cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.AgeCohorts");
            

            foreach (ActiveSite site in modelCore.Landscape)
                SiteVars.NumberCFSconifersKilled[site] = new Dictionary<int, int>();

            // Added for v1.1 to enable interactions with CFS fuels extension.
            modelCore.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers");
            modelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent");

            //foreach (IAgent activeAgent in manyAgentParameters)
            //{
            //    string varName = activeAgent.AgentName + ".TimeToNext";
            //    modelCore.RegisterSiteVar(SiteVars.TimeToNext, varName);
            //}
            modelCore.RegisterSiteVar(SiteVars.TimeOfNext, "BDA.TimeOfNext");
        }
Пример #13
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Creates a site variable with ecoregions.
        /// </summary>
        public ISiteVar <IEcoregion> CreateSiteVar(ILandscape landscape)
        {
            ISiteVar <IEcoregion>         siteVar = landscape.NewSiteVar <IEcoregion>();
            IInputRaster <EcoregionPixel> map     = rasterFactory.OpenRaster <EcoregionPixel>(path);

            Console.WriteLine("  reading in ecoregion from {0} ", path);
            using (map)
            {
                EcoregionPixel pixel = map.BufferPixel;
                foreach (Site site in landscape.AllSites)
                {
                    map.ReadBufferPixel();
                    ushort mapCode = (ushort)pixel.MapCode.Value;
                    if (site.IsActive)
                    {
                        siteVar[site] = ecoregions.Find(mapCode);
                    }
                    if (!site.IsActive && ecoregions.Find(mapCode).Active)
                    {
                        String msg = String.Format("  Site not active and ecoregion is active.  Ecoreigon = {0}", ecoregions.Find(mapCode).Name);
                        throw new ApplicationException(msg);
                        //Console.WriteLine("  Site not active");
                    }
                    if (site.IsActive && !ecoregions.Find(mapCode).Active)
                    {
                        String msg = String.Format("  Site is active and ecoregion is not active.  Ecoreigon = {0}", ecoregions.Find(mapCode).Name);
                        throw new ApplicationException(msg);
                    }
                }
            }
            return(siteVar);
        }
        //---------------------------------------------------------------------
        public static void Initialize(IInputParameters parameters)
        {
            transpiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            AnnualTranspiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            infiltration = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            runoff = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            waterleakage = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            evaporation = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            WHC = parameters.WHC;
            EvaporationFraction = parameters.EvaporationFraction;
            LeakageFraction = parameters.LeakageFraction;
            SnowPack = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            Water = PlugIn.ModelCore.Landscape.NewSiteVar<float>();

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SnowPack[site] = 0;
                Water[site] = 0;
                infiltration[site] = 0;
                runoff[site] = 0;
                evaporation[site] = 0;
                transpiration[site] = 0;
                AnnualTranspiration[site] = 0;
            }
            PlugIn.ModelCore.RegisterSiteVar(AnnualTranspiration, "Succession.AnnualTranspiration");

            PlugIn.ModelCore.RegisterSiteVar(Water, "Succession.SoilWater");
        }
Пример #15
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            eventVar        = Model.Core.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues);
            timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>();
            severity        = Model.Core.Landscape.NewSiteVar<byte>();
            disturbed      = Model.Core.Landscape.NewSiteVar<bool>();
        }
Пример #16
0
        //---------------------------------------------------------------------

        public static void Initialize(ICore modelCore)
        {
            timeOfLastBDA           = modelCore.Landscape.NewSiteVar <int>();
            neighborResourceDom     = modelCore.Landscape.NewSiteVar <double>();
            siteResourceDomMod      = modelCore.Landscape.NewSiteVar <double>();
            siteResourceDom         = modelCore.Landscape.NewSiteVar <double>();
            vulnerability           = modelCore.Landscape.NewSiteVar <double>();
            disturbed               = modelCore.Landscape.NewSiteVar <bool>();
            numberCFSconifersKilled = modelCore.Landscape.NewSiteVar <Dictionary <int, int> >();
            timeOfNext              = modelCore.Landscape.NewSiteVar <int>();

            SiteVars.TimeOfLastEvent.ActiveSiteValues     = -10000;
            SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDomMod.ActiveSiteValues  = 0.0;
            SiteVars.SiteResourceDom.ActiveSiteValues     = 0.0;
            SiteVars.Vulnerability.ActiveSiteValues       = 0.0;
            SiteVars.TimeOfNext.ActiveSiteValues          = 9999;

            cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.AgeCohorts");

            foreach (ActiveSite site in modelCore.Landscape)
            {
                SiteVars.NumberCFSconifersKilled[site] = new Dictionary <int, int>();
            }

            // Added for v1.1 to enable interactions with CFS fuels extension.
            modelCore.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers");
            modelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent");
            // Added to enable interactions with other extensions (Presalvage harvest)
            modelCore.RegisterSiteVar(SiteVars.TimeOfNext, "BDA.TimeOfNext");
        }
Пример #17
0
        //private static ISiteVar<Landis.Library.Biomass.Species.AuxParm<double>> defoliation; // Defoliation per site per species

        //---------------------------------------------------------------------

        public static void Initialize()
        {
            //defoliation = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<double>>();

            outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar <Outbreak>();
            timeOfLastEvent   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            //biomassRemoved          = PlugIn.ModelCore.Landscape.NewSiteVar<int>();

            //initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");
            if (cohorts == null)
            {
                cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.LeafBiomassCohorts");
            }

            cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar <int>();

            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            //SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0;

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SiteVars.OutbreakVars = null;
            }

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }
            //PlugIn.ModelCore.RegisterSiteVar(defoliation, "Insect.Defoliation");
        }
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            eventVar       = Model.Core.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues);
            ecoregions     = Model.Core.Landscape.NewSiteVar<IEcoregion>();
            percentDeadFir = Model.Core.Landscape.NewSiteVar<int>();
            severity       = Model.Core.Landscape.NewSiteVar<byte>();
            disturbed      = Model.Core.Landscape.NewSiteVar<bool>();
            travelTime     = Model.Core.Landscape.NewSiteVar<double>();
            minNeighborTravelTime     = Model.Core.Landscape.NewSiteVar<double>();
            //simpleTravelTime     = Model.Core.Landscape.NewSiteVar<double>();
            rateOfSpread   = Model.Core.Landscape.NewSiteVar<double>();
            //-----Added by BRM-----
            adjROS = Model.Core.Landscape.NewSiteVar<double>();
            costTime = Model.Core.Landscape.NewSiteVar<double>();
            //----------
            groundSlope = Model.Core.Landscape.NewSiteVar<ushort>();
            uphillSlopeAzimuth = Model.Core.Landscape.NewSiteVar<ushort>();

            siteWindSpeed = Model.Core.Landscape.NewSiteVar<ushort>();
            siteWindDirection = Model.Core.Landscape.NewSiteVar<ushort>();
            
            //Also initialize topography, will be overwritten if optional parameters provided:
            SiteVars.GroundSlope.ActiveSiteValues = 0;
            SiteVars.UphillSlopeAzimuth.ActiveSiteValues = 0;
            
        }
Пример #19
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts");

            fuelType     = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            decidFuelType   = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            percentConifer  = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            percentHardwood = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            percentDeadFir  = PlugIn.ModelCore.Landscape.NewSiteVar<int>();

            timeOfLastHarvest       = PlugIn.ModelCore.GetSiteVar<int>("Harvest.TimeOfLastEvent");
            harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar<string>("Harvest.PrescriptionName");
            harvestCohortsKilled    = PlugIn.ModelCore.GetSiteVar<int>("Harvest.CohortsDamaged");

            timeOfLastFire          = PlugIn.ModelCore.GetSiteVar<int>("Fire.TimeOfLastEvent");
            fireSeverity            = PlugIn.ModelCore.GetSiteVar<byte>("Fire.Severity");

            timeOfLastWind          = PlugIn.ModelCore.GetSiteVar<int>("Wind.TimeOfLastEvent");
            windSeverity            = PlugIn.ModelCore.GetSiteVar<byte>("Wind.Severity");

            numberDeadFirCohorts    = PlugIn.ModelCore.GetSiteVar<Dictionary<int,int>>("BDA.NumCFSConifers");

            PlugIn.ModelCore.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir");

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }

        }
Пример #20
0
        //---------------------------------------------------------------------

        public static void Initialize(ICore modelCore)
        {
            timeOfLastBDA  = modelCore.Landscape.NewSiteVar<int>();
            neighborResourceDom = modelCore.Landscape.NewSiteVar<double>();
            siteResourceDomMod = modelCore.Landscape.NewSiteVar<double>();
            siteResourceDom = modelCore.Landscape.NewSiteVar<double>();
            vulnerability = modelCore.Landscape.NewSiteVar<double>();
            disturbed = modelCore.Landscape.NewSiteVar<bool>();
            numberCFSconifersKilled = modelCore.Landscape.NewSiteVar<Dictionary<int, int>>();
            timeOfNext = modelCore.Landscape.NewSiteVar<int>();
            agentName = modelCore.Landscape.NewSiteVar<string>();
            biomassInsectsAgent = modelCore.Landscape.NewSiteVar<string>();


            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDom.ActiveSiteValues = 0.0;
            SiteVars.Vulnerability.ActiveSiteValues = 0.0;
            SiteVars.TimeOfNext.ActiveSiteValues = 9999;
            SiteVars.AgentName.ActiveSiteValues = "";

            cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.AgeCohorts");

            foreach(ActiveSite site in modelCore.Landscape)
                SiteVars.NumberCFSconifersKilled[site] = new Dictionary<int, int>();

            // Added for v1.1 to enable interactions with CFS fuels extension.
            modelCore.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers");
            modelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent");
            modelCore.RegisterSiteVar(SiteVars.AgentName, "BDA.AgentName");
            // Added to enable interactions with other extensions (Presalvage harvest)
            modelCore.RegisterSiteVar(SiteVars.TimeOfNext, "BDA.TimeOfNext");

        }
Пример #21
0
        /// <summary>
        /// Write the list of cohorts at a site to a log.
        /// </summary>
        public static void WriteSiteCohorts(ILog log,
                                            ActiveSite site)
        {
            if (cohorts == null)
            {
                cohorts = Model.Core.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");
            }

            int count = 0;  // # of species with cohorts

            foreach (ISpeciesCohorts speciesCohorts in cohorts[site])
            {
                string cohort_list = "";
                foreach (ICohort cohort in speciesCohorts)
                {
                    cohort_list += string.Format(", {0} yrs ({1})", cohort.Age, cohort.Biomass);
                }
                log.DebugFormat("      {0}{1}", speciesCohorts.Species.Name, cohort_list);
                count += 1;
            }
            if (count == 0)
            {
                log.DebugFormat("      (no cohorts)");
            }
        }
Пример #22
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);
            }
        }
Пример #23
0
        //---------------------------------------------------------------------

        public static void InitializeTimeOfLastDisturbances()
        {
            timeOfLastWind  = Model.Core.GetSiteVar<int>("Wind.TimeOfLastEvent");
            timeOfLastFire  = Model.Core.GetSiteVar<int>("Fire.TimeOfLastEvent");
            timeOfLastHarvest  = Model.Core.GetSiteVar<int>("Harvest.TimeOfLastEvent");

        }
Пример #24
0
        //---------------------------------------------------------------------

        public static void Initialize(double[,]          establishProbabilities,
                                      SeedingAlgorithm seedingAlgorithm,
                                      AddNewCohortMethod 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);
            }
        }
Пример #25
0
        //---------------------------------------------------------------------

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

            seeding = new Seeding(seedingAlgorithm);
            Reproduction.addNewCohort = addNewCohort;

            SiteVars.Cohorts = Model.Core.GetSiteVar <SiteCohorts>("Succession.Cohorts");

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

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

            noEstablish.ActiveSiteValues = false;
            planting = new Planting();
        }
Пример #26
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            outbreakVariables       = PlugIn.ModelCore.Landscape.NewSiteVar<Outbreak>();
            timeOfLastEvent         = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            biomassRemoved          = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            //neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            cohorts                 = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts");
            cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            insectName = PlugIn.ModelCore.Landscape.NewSiteVar<string>();

            //SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0;
            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0;
            SiteVars.InsectName.ActiveSiteValues = "";

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SiteVars.OutbreakVars = null; //new Outbreak();
            }

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }

            PlugIn.ModelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BiomassInsects.TimeOfLastEvent");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.InsectName, "BiomassInsects.InsectName");

        }
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            outbreakVariables       = Model.Core.Landscape.NewSiteVar<Outbreak>();
            timeOfLastEvent         = Model.Core.Landscape.NewSiteVar<int>();
            biomassRemoved = Model.Core.Landscape.NewSiteVar<int>();
            neighborhoodDefoliation = Model.Core.Landscape.NewSiteVar<double>();
            initialOutbreakProb     = Model.Core.Landscape.NewSiteVar<double>();

            //Model.Core.RegisterSiteVar(SiteVars.DefoliationByYear, "Insect.GrowthReduction");
            Model.Core.GetSiteVar(SiteVars.WoodyDebris, "Succession.WoodyDebris");

            SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0;
            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0;
            //SiteVars.SumLastDefoliation.ActiveSiteValues = 0.0;
            //SiteVars.Disturbed.ActiveSiteValues = false;

            //Initialize outbreaks:
            foreach (ActiveSite site in Model.Core.Landscape)
            {
                SiteVars.OutbreakVars = null; //new Outbreak();
                //SiteVars.DefoliationByYear[site] = new Dictionary<int, double>();
            }


        }
Пример #28
0
        //private static ISiteVar<Landis.Library.Biomass.Species.AuxParm<double>> defoliation; // Defoliation per site per species

        //---------------------------------------------------------------------

        public static void Initialize()
        {
            //defoliation = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<double>>();

            outbreakVariables       = PlugIn.ModelCore.Landscape.NewSiteVar<Outbreak>();
            timeOfLastEvent         = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            //biomassRemoved          = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
             
            //initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            cohorts                 = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts");
            if (cohorts == null)
            {
                cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.LeafBiomassCohorts");
            
            }
            
            cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            
            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            //SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0;

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SiteVars.OutbreakVars = null;
            }

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }
            //PlugIn.ModelCore.RegisterSiteVar(defoliation, "Insect.Defoliation");

        }
        //---------------------------------------------------------------------

        public static void Initialize(ICore modelCore)
        {
            landUse      = modelCore.Landscape.NewSiteVar <LandUse>();
            allowHarvest = new AllowHarvestSiteVar();
            Model.Core.RegisterSiteVar(allowHarvest, "LandUse.AllowHarvest");
            Landis.Library.BiomassHarvest.SiteVars.CohortsPartiallyDamaged = modelCore.Landscape.NewSiteVar <int>();
        }
Пример #30
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }
            localVars     = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, int> >();
            derivedVars   = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >();
            neighborVars  = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >();
            climateVars   = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >();
            distanceVars  = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >();
            speciesModels = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >();

            foreach (Site site in PlugIn.ModelCore.Landscape.AllSites)
            {
                SiteVars.LocalVars[site]     = new Dictionary <string, int>();
                SiteVars.DerivedVars[site]   = new Dictionary <string, float>();
                SiteVars.NeighborVars[site]  = new Dictionary <string, float>();
                SiteVars.ClimateVars[site]   = new Dictionary <string, float>();
                SiteVars.DistanceVars[site]  = new Dictionary <string, float>();
                SiteVars.SpeciesModels[site] = new Dictionary <string, float>();
            }
        }
        //---------------------------------------------------------------------
        public InsectParameters(int sppCount)
        {
            sppTable         = new List <ISppParameters>(sppCount);
            susceptibleTable = new List <ISusceptible>();
            neighbors        = new List <RelativeLocation>();

            hostDefoliationByYear   = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <int, double[]> >();
            disturbed               = PlugIn.ModelCore.Landscape.NewSiteVar <bool>();
            lastYearDefoliation     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            thisYearDefoliation     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>();

            outbreakStopYear  = 0; //default = beginning of simulation
            outbreakStartYear = 0; //default = beginning of simulation
            mortalityYear     = 0; //default = beginning of simulation
            activeOutbreak    = false;
            initialSites      = 0;
            lastStartYear     = 0;
            lastStopYear      = 0;
            lastBioRemoved    = 0;
            annMort           = "";
            maxDur            = int.MaxValue;
            startYear         = 0;

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                hostDefoliationByYear[site] = new Dictionary <int, double[]>();
            }
        }
Пример #32
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Objects and Lists must be initialized.
        /// </summary>
        public Agent(int sppCount, int ecoCount)
        {
            SppParameters = new ISppParameters[sppCount];
            EcoParameters = new IEcoParameters[ecoCount];
            //DistParameters = new IDistParameters[distCount];
            disturbanceTypes = new List <IDisturbanceType>();
            negSppList       = new List <ISpecies>();
            //advRegenSppList = new List<ISpecies>();
            dispersalNeighbors = new List <RelativeLocation>();
            resourceNeighbors  = new List <RelativeLocationWeighted>();
            severity           = PlugIn.ModelCore.Landscape.NewSiteVar <byte>();
            outbreakZone       = PlugIn.ModelCore.Landscape.NewSiteVar <Zone>();
            climateDataTable   = new DataTable();

            for (int i = 0; i < sppCount; i++)
            {
                SppParameters[i] = new SppParameters();
            }
            for (int i = 0; i < ecoCount; i++)
            {
                EcoParameters[i] = new EcoParameters();
            }
            //for (int i = 0; i < distCount; i++)
            //   DistParameters[i] = new DistParameters();
        }
Пример #33
0
        //---------------------------------------------------------------------
        public Insect(int sppCount)
        {
            susceptibility        = new Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
            growthreduceslope     = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);
            growthreduceintercept = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);
            mortalityslope        = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);
            mortalityintercept    = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);

            susceptibleTable = new List <ISusceptible>();
            neighbors        = new List <RelativeLocation>();

            hostDefoliationByYear   = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <int, double[]> >();
            disturbed               = PlugIn.ModelCore.Landscape.NewSiteVar <bool>();
            lastYearDefoliation     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            thisYearDefoliation     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            biomassRemoved          = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();

            outbreakStopYear  = 0; //default = beginning of simulation
            outbreakStartYear = 0; //default = beginning of simulation
            mortalityYear     = 0; //default = beginning of simulation
            activeOutbreak    = false;
            initialSites      = 0;
            lastStartYear     = 0;
            lastStopYear      = 0;
            lastBioRemoved    = 0;
            annMort           = "";

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                hostDefoliationByYear[site] = new Dictionary <int, double[]>();
            }
        }
Пример #34
0
        //-----------------------------------------------------------------

        public SiteVariables(ILandscape landscape,
                             Ecoregions.Map ecoregionMap)
        {
            ecoregion      = ecoregionMap.CreateSiteVar(landscape);
            disturbed      = landscape.NewSiteVar <bool>();
            registeredVars = new Dictionary <string, ISiteVariable>();
        }
Пример #35
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.AgeCohorts");

            fuelType        = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            decidFuelType   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            percentConifer  = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            percentHardwood = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            percentDeadFir  = PlugIn.ModelCore.Landscape.NewSiteVar <int>();

            harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar <string>("Harvest.PrescriptionName");
            timeOfLastHarvest       = PlugIn.ModelCore.GetSiteVar <int>("Harvest.TimeOfLastEvent");
            harvestCohortsKilled    = PlugIn.ModelCore.GetSiteVar <int>("Harvest.CohortsDamaged");
            timeOfLastFire          = PlugIn.ModelCore.GetSiteVar <int>("Fire.TimeOfLastEvent");
            fireSeverity            = PlugIn.ModelCore.GetSiteVar <byte>("Fire.Severity");
            timeOfLastWind          = PlugIn.ModelCore.GetSiteVar <int>("Wind.TimeOfLastEvent");
            windSeverity            = PlugIn.ModelCore.GetSiteVar <byte>("Wind.Severity");
            numberDeadFirCohorts    = PlugIn.ModelCore.GetSiteVar <Dictionary <int, int> >("BDA.NumCFSConifers");

            PlugIn.ModelCore.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir");
        }
Пример #36
0
        //---------------------------------------------------------------------

        public static void Initialize(ILandscapeCohorts cohorts)
        {
            //eventVar       = Model.Core.Landscape.NewSiteVar<Epidemic>(InactiveSiteMode.DistinctValues);
            timeOfLastBDA  = Model.Core.Landscape.NewSiteVar<int>();
            neighborResourceDom = Model.Core.Landscape.NewSiteVar<double>();
            siteResourceDomMod  = Model.Core.Landscape.NewSiteVar<double>();
            siteResourceDom     = Model.Core.Landscape.NewSiteVar<double>();
            vulnerability       = Model.Core.Landscape.NewSiteVar<double>();
            disturbed           = Model.Core.Landscape.NewSiteVar<bool>();
            //numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar<int[]>();
            numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar<Dictionary<int,int>>();
            
            SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000;
            SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0;
            SiteVars.SiteResourceDom.ActiveSiteValues = 0.0;
            SiteVars.Vulnerability.ActiveSiteValues = 0.0;
            
            foreach(ActiveSite site in Model.Core.Landscape)
                //SiteVars.NumberCFSconifersKilled[site] = new int[Model.Core.EndTime - Model.Core.StartTime + 1];
                SiteVars.NumberCFSconifersKilled[site] = new Dictionary<int, int>();
            
            // Added for v1.1 to enable interactions with CFS fuels extension.
            Model.Core.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers");
            Model.Core.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent");

        }
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            mgmtAreas     = Model.Core.Landscape.NewSiteVar<ManagementArea>();
            stands        = Model.Core.Landscape.NewSiteVar<Stand>();
            prescriptions = Model.Core.Landscape.NewSiteVar<Prescription>();
            cohortsKilled = Model.Core.Landscape.NewSiteVar<int>();
        }
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar <Outbreak>();
            timeOfLastEvent   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            biomassRemoved    = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            //neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            cohorts                 = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts");
            cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar <int>();

            //SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0;
            SiteVars.TimeOfLastEvent.ActiveSiteValues     = -10000;
            SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0;

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                SiteVars.OutbreakVars = null; //new Outbreak();
            }

            if (cohorts == null)
            {
                string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
                throw new System.ApplicationException(mesg);
            }
        }
Пример #39
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {

            fuelType     = Model.Core.Landscape.NewSiteVar<int>();
            decidFuelType   = Model.Core.Landscape.NewSiteVar<int>();
            percentConifer  = Model.Core.Landscape.NewSiteVar<int>();
            percentHardwood = Model.Core.Landscape.NewSiteVar<int>();
            percentDeadFir  = Model.Core.Landscape.NewSiteVar<int>();
            
            timeOfLastHarvest       = Model.Core.GetSiteVar<int>("Harvest.TimeOfLastEvent");
            harvestPrescriptionName = Model.Core.GetSiteVar<string>("Harvest.PrescriptionName");
            harvestCohortsKilled    = Model.Core.GetSiteVar<int>("Harvest.CohortsDamaged");
            
            timeOfLastFire          = Model.Core.GetSiteVar<int>("Fire.TimeOfLastEvent");
            fireSeverity            = Model.Core.GetSiteVar<byte>("Fire.Severity");
            
            timeOfLastWind          = Model.Core.GetSiteVar<int>("Wind.TimeOfLastEvent");
            windSeverity            = Model.Core.GetSiteVar<byte>("Wind.Severity");
            
            numberDeadFirCohorts    = Model.Core.GetSiteVar<Dictionary<int,int>>("BDA.NumCFSConifers");

            Model.Core.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType");
            Model.Core.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType");
            Model.Core.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer");
            Model.Core.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood");
            Model.Core.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir");
        }
        //---------------------------------------------------------------------
        /// <summary>
        /// Initializes the module.
        /// </summary>
        public static void Initialize()
        {
            biomassCohorts = PlugIn.ModelCore.Landscape.NewSiteVar <Library.BiomassCohorts.SiteCohorts>();
            ISiteVar <Landis.Library.BiomassCohorts.ISiteCohorts> biomassCohortSiteVar = Landis.Library.Succession.CohortSiteVar <Landis.Library.BiomassCohorts.ISiteCohorts> .Wrap(biomassCohorts);

            baseCohortsSiteVar = Landis.Library.Succession.CohortSiteVar <Landis.Library.AgeOnlyCohorts.ISiteCohorts> .Wrap(biomassCohorts);


            woodyDebris           = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Pool>();
            litter                = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Pool>();
            ag_npp                = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            Defoliation           = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            previousYearMortality = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            currentYearMortality  = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            totalBiomass          = PlugIn.ModelCore.Landscape.NewSiteVar <int>();

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                //  site cohorts are initialized by the PlugIn.InitializeSite method
                woodyDebris[site] = new Landis.Library.Biomass.Pool();
                litter[site]      = new Landis.Library.Biomass.Pool();
            }

            currentYearMortality.ActiveSiteValues  = 0;
            previousYearMortality.ActiveSiteValues = 0;

            PlugIn.ModelCore.RegisterSiteVar(biomassCohortSiteVar, "Succession.BiomassCohorts");
            PlugIn.ModelCore.RegisterSiteVar(baseCohortsSiteVar, "Succession.AgeCohorts");


            PlugIn.ModelCore.RegisterSiteVar(SiteVars.WoodyDebris, "Succession.WoodyDebris");
            PlugIn.ModelCore.RegisterSiteVar(SiteVars.Litter, "Succession.Litter");
        }
Пример #41
0
        //---------------------------------------------------------------------
        // A helper function to shuffle a list of ActiveSties: Algorithm may be improved.
        // Sites are weighted for ignition in the Shuffle method, based on the respective inputs maps.

        private static List <ActiveSite> Shuffle(ISiteVar <double> weightedSiteVar)
        {
            List <ActiveSite> list = new List <ActiveSite>();;

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape.ActiveSites)
            {
                if (weightedSiteVar[site] > 0.0)
                {
                    list.Add(site);
                }
            }

            List <ActiveSite> shuffledList = new List <ActiveSite>();
            double            totalWeight  = 0;

            foreach (ActiveSite site in list)
            {
                totalWeight += weightedSiteVar[site];
            }

            while (list.Count > 0)
            {
                ActiveSite toAdd;
                toAdd = SelectRandomSite(list, weightedSiteVar, totalWeight);
                shuffledList.Add(toAdd);
                totalWeight -= weightedSiteVar[toAdd];
                list.Remove(toAdd);
            }

            return(shuffledList);
        }
Пример #42
0
        //---------------------------------------------------------------------
        // The random selection based on input map weights
        public static ActiveSite SelectRandomSite(List <ActiveSite> list, ISiteVar <double> weightedSiteVar, double totalWeight)
        {
            ActiveSite selectedSite = list.FirstOrDefault(); // currently selected element

            int randomNum = FireEvent.rnd.Next((int)totalWeight);

            while (randomNum > totalWeight)
            {
                randomNum = FireEvent.rnd.Next(list.Count);
            }

            //check to make sure it is
            foreach (ActiveSite site in list)
            {
                if (randomNum < weightedSiteVar[site])
                {
                    selectedSite = site;
                    break;
                }

                randomNum -= (int)weightedSiteVar[site];
            }

            return(selectedSite); // when iterations end, selected is some element of sequence.
        }
        //private static BaseCohortsSiteVar baseCohortsSiteVar;

        //---------------------------------------------------------------------

        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.Landscape.NewSiteVar <SiteCohorts>();

            ISiteVar <Landis.Library.AgeOnlyCohorts.ISiteCohorts> baseCohorts = Landis.Library.Succession.CohortSiteVar <Landis.Library.AgeOnlyCohorts.ISiteCohorts> .Wrap(cohorts);

            PlugIn.ModelCore.RegisterSiteVar(baseCohorts, "Succession.AgeCohorts");
        }
Пример #44
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes for disturbances.
        /// </summary>
        public static void InitializeDisturbances()
        {
            FireSeverity            = PlugIn.ModelCore.GetSiteVar <byte>("Fire.Severity");
            HarvestPrescriptionName = PlugIn.ModelCore.GetSiteVar <string>("Harvest.PrescriptionName");

            //if(FireSeverity == null)
            //    throw new System.ApplicationException("TEST Error: Fire Severity NOT Initialized.");
        }
Пример #45
0
        public void GetVar_NameNotRegistered()
        {
            SiteVarRegistry registry = new SiteVarRegistry();

            ISiteVar <bool> fetchedVar = registry.GetVar <bool>("Should not exist");

            Assert.IsNull(fetchedVar);
        }
Пример #46
0
        //private static ISiteVar<Library.AgeOnlyCohorts.SiteCohorts> baseCohorts;
        //private static BaseCohortsSiteVar baseCohortsSiteVar;
        //---------------------------------------------------------------------
        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<ISiteCohorts>();
            //baseCohortsSiteVar = new BaseCohortsSiteVar(cohorts);

            //PlugIn.ModelCore.RegisterSiteVar(baseCohortsSiteVar, "Succession.AgeOnlyCohorts");
            PlugIn.ModelCore.RegisterSiteVar(cohorts, "Succession.AgeCohorts");
        }
Пример #47
0
        //private static BaseCohortsSiteVar baseCohortsSiteVar;
        //---------------------------------------------------------------------
        public static void Initialize()
        {
            cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<SiteCohorts>();

            ISiteVar<Landis.Library.AgeOnlyCohorts.ISiteCohorts> baseCohorts = Landis.Library.Succession.CohortSiteVar<Landis.Library.AgeOnlyCohorts.ISiteCohorts>.Wrap(cohorts);

            PlugIn.ModelCore.RegisterSiteVar(baseCohorts, "Succession.AgeCohorts");
        }
        //---------------------------------------------------------------------

        protected FormOfReproduction()
        {
            int speciesCount = speciesDataset.Count;
            selectedSpecies = Model.Core.Landscape.NewSiteVar<BitArray>();
            foreach (ActiveSite site in Model.Core.Landscape.ActiveSites) {
                selectedSpecies[site] = new BitArray(speciesCount);
            }
        }
Пример #49
0
        public void Register_SameName()
        {
            ISiteVar <bool> var  = landscape.NewSiteVar <bool>();
            string          name = "foo";

            siteVarRegistry.RegisterVar(var, name);
            TryRegister(var, name);
        }
Пример #50
0
        //---------------------------------------------------------------------

        internal static void Initialize()
        {
            timeOfLast = Model.Core.Landscape.NewSiteVar<int>();
            shade      = Model.Core.Landscape.NewSiteVar<byte>();
            disturbed  = Model.Core.Landscape.NewSiteVar<bool>();

            Model.Core.RegisterSiteVar(timeOfLast, "TimeOfLastSuccession");
            Model.Core.RegisterSiteVar(shade, "Shade");
        }
 //---------------------------------------------------------------------
 /// <summary>
 /// Initializes the module.
 /// </summary>
 public static void Initialize()
 {
     cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.LeafBiomassCohorts");
     if (cohorts == null)
     {
         string mesg = string.Format("Cohorts are empty.  Please double-check that this extension is compatible with your chosen succession extension.");
         throw new System.ApplicationException(mesg);
     }
 }
Пример #52
0
 public static void ReInitialize()
 {
     timeOfLastFire = PlugIn.ModelCore.GetSiteVar<int>("Fire.TimeOfLastEvent");
     timeOfLastWind = PlugIn.ModelCore.GetSiteVar<int>("Wind.TimeOfLastEvent");
     cfsFuelType = PlugIn.ModelCore.GetSiteVar<int>("Fuels.CFSFuelType");
     
     //if (SiteVars.CFSFuelType == null)
     //    throw new System.ApplicationException("Error: CFS Fuel Type NOT Initialized.  Louise is making me crazy.  Fuel extension MUST be active.");
 }
        //---------------------------------------------------------------------
        public static void Initialize()
        {
            //timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>();

            cohorts = Model.Core.Landscape.NewSiteVar<SiteCohorts>();

            //if (cohorts.ActiveSiteValues.HasAge())

            Model.Core.RegisterSiteVar(SiteVars.Cohorts, "Succession.Cohorts");
        }
        //---------------------------------------------------------------------

        public static void InitializeTimeOfLastDisturbances()
        {
            harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar<string>("Harvest.PrescriptionName");
            timeOfLastHarvest = PlugIn.ModelCore.GetSiteVar<int>("Harvest.TimeOfLastEvent");
            harvestCohortsKilled = PlugIn.ModelCore.GetSiteVar<int>("Harvest.CohortsKilled");
            timeOfLastFire = PlugIn.ModelCore.GetSiteVar<int>("Fire.TimeOfLastEvent");
            fireSeverity = PlugIn.ModelCore.GetSiteVar<byte>("Fire.Severity");
            timeOfLastWind = PlugIn.ModelCore.GetSiteVar<int>("Wind.TimeOfLastEvent");
            windSeverity = PlugIn.ModelCore.GetSiteVar<byte>("Wind.Severity");

        }
Пример #55
0
 //---------------------------------------------------------------------
 public static void Initialize(string varName)
 {
     biomassCohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts");
     droughtBioRemoved = PlugIn.ModelCore.Landscape.NewSiteVar<ushort>();
     droughtYears = PlugIn.ModelCore.GetSiteVar<double>(varName);
     if (droughtYears == null)
     {
         string mesg = string.Format("VariableName '{0}' does not match any variable name provided by the Drought Generator Extension.",varName);
         throw new System.ApplicationException(mesg);
     }
 }
Пример #56
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            biomassRemoved = Model.Core.Landscape.NewSiteVar<double>();
            cohortsPartiallyDamaged = Model.Core.Landscape.NewSiteVar<int>();
            capacityReduction = Model.Core.Landscape.NewSiteVar<double>();

            SiteVars.CapacityReduction.ActiveSiteValues = 0.0;

            Model.Core.RegisterSiteVar(SiteVars.CapacityReduction, "Harvest.CapacityReduction");

        }
 public static float AverageSiteVar(ISiteVar<float> sitevar)
 {
     float total = 0;
     float n = 0;
     foreach (ActiveSite s in PlugIn.ModelCore.Landscape)
     {
         float v = sitevar[s];
         total += v;
         n++;
     }
     return total / n;
 }
Пример #58
0
        //---------------------------------------------------------------------

        public static void Initialize()
        {
            eventVar        = Model.Core.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues);
            timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>();
            severity        = Model.Core.Landscape.NewSiteVar<byte>();
            disturbed      = Model.Core.Landscape.NewSiteVar<bool>();
            lastSeverity        = Model.Core.Landscape.NewSiteVar<byte>();
            
            Model.Core.RegisterSiteVar(SiteVars.TimeOfLastEvent, "Wind.TimeOfLastEvent");
            Model.Core.RegisterSiteVar(SiteVars.LastSeverity, "Wind.LastSeverity");

        }
Пример #59
0
 public static void ReInitialize()
 {
     harvestPrescriptionName = Model.Core.GetSiteVar<string>("Harvest.PrescriptionName");
     timeOfLastHarvest = Model.Core.GetSiteVar<int>("Harvest.TimeOfLastEvent");
     harvestCohortsKilled = Model.Core.GetSiteVar<int>("Harvest.CohortsKilled");
     timeOfLastFire = Model.Core.GetSiteVar<int>("Fire.TimeOfLastEvent");
     fireSeverity = Model.Core.GetSiteVar<byte>("Fire.Severity");
     timeOfLastWind = Model.Core.GetSiteVar<int>("Wind.TimeOfLastEvent");
     windSeverity = Model.Core.GetSiteVar<byte>("Wind.Severity");
     //numberDeadFirCohorts = Model.Core.GetSiteVar<int[]>("BDA.NumCFSConifers");
     numberDeadFirCohorts = Model.Core.GetSiteVar<Dictionary<int,int>>("BDA.NumCFSConifers");
    
 }
Пример #60
0
		//---------------------------------------------------------------------

		public static void Initialize(ILandscapeCohorts<AgeCohort.ICohort> cohorts)
		{
			eventVar       = Model.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues);
			timeOfLastFire = Model.Landscape.NewSiteVar<int>();
			severity       = Model.Landscape.NewSiteVar<byte>();

			//Initialize TimeSinceLastFire to the maximum cohort age:
			foreach (ActiveSite site in Model.Landscape) 
			{
				ushort maxAge = AgeCohort.Util.GetMaxAge(cohorts[site]);
				SiteVars.timeOfLastFire[site] = maxAge * -1;
			}

		}