//--------------------------------------------------------------------- public override void Initialize() { Timestep = Parameters.Timestep; time = Timestep; CalibrateMode = Parameters.CalibrateMode; CohortBiomass.SpinupMortalityFraction = Parameters.SpinupMortalityFraction; //Initialize climate. if (Parameters.ClimateConfigFile != null) { Climate.Initialize(Parameters.ClimateConfigFile, false, modelCore); FutureClimateBaseYear = Climate.Future_MonthlyData.Keys.Min(); ClimateRegionData.Initialize(Parameters); } sufficientLight = Parameters.LightClassProbabilities; SpeciesData.Initialize(Parameters); EcoregionData.Initialize(Parameters); DynamicInputs.Initialize(Parameters.DynamicInputFile, false); SpeciesData.ChangeDynamicParameters(0); // Year 0 FireEffects.Initialize(Parameters); //Outputs.Initialize(parameters); MetadataHandler.InitializeMetadata(summaryLogFileName); // Cohorts must be created before the base class is initialized // because the base class' reproduction module uses the core's // SuccessionCohorts property in its Initialization method. Landis.Library.BiomassCohorts.Cohorts.Initialize(Timestep, new CohortBiomass()); // Initialize Reproduction routines: Reproduction.SufficientResources = SufficientLight; Reproduction.Establish = Establish; Reproduction.AddNewCohort = AddNewCohort; Reproduction.MaturePresent = MaturePresent; Reproduction.PlantingEstablish = PlantingEstablish; base.Initialize(modelCore, Parameters.SeedAlgorithm); InitialBiomass.Initialize(Timestep); Landis.Library.BiomassCohorts.Cohort.DeathEvent += CohortTotalMortality; Landis.Library.BiomassCohorts.Cohort.PartialDeathEvent += CohortPartialMortality; InitializeSites(Parameters.InitialCommunities, Parameters.InitialCommunitiesMap, modelCore); }
public static void ChangeDynamicParameters(int year) { if (DynamicInputs.AllData.ContainsKey(year)) { EstablishProbability = new Landis.Library.Parameters.SpeciesEcoregionAuxParm <double>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); //EstablishProbability = Util.CreateSpeciesEcoregionParm<double>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); EstablishModifier = new Landis.Library.Parameters.SpeciesEcoregionAuxParm <double>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); //EstablishModifier = Util.CreateSpeciesEcoregionParm<double>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); ANPP_MAX_Spp = new Landis.Library.Parameters.SpeciesEcoregionAuxParm <int>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); //ANPP_MAX_Spp = Util.CreateSpeciesEcoregionParm<int>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); B_MAX_Spp = new Landis.Library.Parameters.SpeciesEcoregionAuxParm <int>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); //B_MAX_Spp = Util.CreateSpeciesEcoregionParm<int>(PlugIn.ModelCore.Species, PlugIn.ModelCore.Ecoregions); DynamicInputs.TimestepData = DynamicInputs.AllData[year]; foreach (ISpecies species in PlugIn.ModelCore.Species) { foreach (IEcoregion ecoregion in PlugIn.ModelCore.Ecoregions) { if (!ecoregion.Active) { continue; } if (DynamicInputs.TimestepData[species.Index, ecoregion.Index] == null) { continue; } EstablishProbability[species, ecoregion] = DynamicInputs.TimestepData[species.Index, ecoregion.Index].ProbEst; EstablishModifier[species, ecoregion] = 1.0; ANPP_MAX_Spp[species, ecoregion] = DynamicInputs.TimestepData[species.Index, ecoregion.Index].ANPP_MAX_Spp; B_MAX_Spp[species, ecoregion] = DynamicInputs.TimestepData[species.Index, ecoregion.Index].B_MAX_Spp; } } //if(PlugIn.CalibrateMode) // DynamicInputs.Write(); EcoregionData.UpdateB_MAX(); } }