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