Exemple #1
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Calculate growth reduction (proportion)
        /// </summary>
        /// <param name="cohort"></param>
        /// <param name="site"></param>
        /// <returns></returns>
        public static double CohortGrowthReduction(Landis.Library.BiomassCohorts.ICohort cohort, ActiveSite site)
        {
            // Calculate cumulative defoliation (13)
            // Cumulative Annual Weighted Defoliation (Hennigar)
            double annWtDefol0   = cohort.DefoliationHistory[0] * 0.28;
            double annWtDefol1   = cohort.DefoliationHistory[1] * 0.26;
            double annWtDefol2   = cohort.DefoliationHistory[2] * 0.22;
            double annWtDefol3   = cohort.DefoliationHistory[3] * 0.13;
            double annWtDefol4   = cohort.DefoliationHistory[4] * 0.08;
            double annWtDefol5   = cohort.DefoliationHistory[5] * 0.03;
            double cumAnnWtDefol = annWtDefol0 + annWtDefol1 + annWtDefol2 + annWtDefol3 + annWtDefol4 + annWtDefol5;

            // Calculate host tree impacts (14)
            // Growth reduction
            double growthReduction = 0;

            if (PlugIn.Parameters.GrowthReduction)
            {
                // Hennigar method
                growthReduction = 1 - (-0.0099 * (cumAnnWtDefol * 100) + 1.0182);

                // Dobesberger method
                //growthReduction = 0.339 * cumAnnWtDefol;

                if (growthReduction > 1.0)  // Cannot exceed 100%
                {
                    growthReduction = 1.0;
                }
                if (growthReduction < 0.0)  // Cannot be less than 0%
                {
                    growthReduction = 0.0;
                }
            }
            return(growthReduction);
        }
Exemple #2
0
        //---------------------------------------------------------------------
        // This method replaces the delegate method.  It is called every year when
        // ACT_ANPP is calculated, for each cohort.  Therefore, this method is operating at
        // an ANNUAL time step and separate from the normal extension time step.

        public static double DefoliateCohort(Landis.Library.BiomassCohorts.ICohort cohort, ActiveSite site, int siteBiomass)
        {
            // This maintains backwards compatibility with succession versions that don't use Biomass Library
            // but the functions must be sure to provide siteBiomass not cohortBiomass
            double defoliation = Landis.Extension.Insects.Defoliate.DefoliateCohort(site, cohort.Species, cohort.Biomass, siteBiomass);

            return(defoliation);
        }
Exemple #3
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Calculate cohort mortality (proportion)
        /// </summary>
        /// <param name="cohort"></param>
        /// <returns></returns>
        public static double CohortMortality(Landis.Library.BiomassCohorts.ICohort cohort)
        {
            // Calculate cumulative defoliation (13)
            // Cumulative Annual Weighted Defoliation (Hennigar)
            double annWtDefol0   = cohort.DefoliationHistory[0] * 0.28;
            double annWtDefol1   = cohort.DefoliationHistory[1] * 0.26;
            double annWtDefol2   = cohort.DefoliationHistory[2] * 0.22;
            double annWtDefol3   = cohort.DefoliationHistory[3] * 0.13;
            double annWtDefol4   = cohort.DefoliationHistory[4] * 0.08;
            double annWtDefol5   = cohort.DefoliationHistory[5] * 0.03;
            double cumAnnWtDefol = annWtDefol0 + annWtDefol1 + annWtDefol2 + annWtDefol3 + annWtDefol4 + annWtDefol5;

            // Allocate impacts to cohorts (10a)
            // Mortality
            // Hennigar method
            double       percentMortality    = 0;
            const double CD_ScaleFactor      = 0.952;
            double       periodicDefoliation = cumAnnWtDefol * CD_ScaleFactor;

            percentMortality = Impacts.GetMortalityRate_AGE(cohort.Species, periodicDefoliation, cohort.Age);

            return(percentMortality);
        }
        public int ReduceOrKillMarkedCohort(Landis.Library.BiomassCohorts.ICohort cohort)
        {
            return((int)cohort.Biomass);

            //throw new System.Exception("Incompatibitlity");
        }
 public int ReduceOrKillMarkedCohort(Landis.Library.BiomassCohorts.ICohort cohort)
 {
     return(cohort.Biomass);
 }