//--------------------------------------------------------------------- /// <summary>This must be called after EcoregionPnET.Initialize() has been called</summary> private void InitializeClimateLibrary() { // John McNabb: initialize ClimateRegionData after initializing EcoregionPnet Parameter <string> climateLibraryFileName; UsingClimateLibrary = Names.TryGetParameter(Names.ClimateConfigFile, out climateLibraryFileName); if (UsingClimateLibrary) { PlugIn.ModelCore.UI.WriteLine($"Using climate library: {climateLibraryFileName.Value}."); Climate.Initialize(climateLibraryFileName.Value, false, ModelCore); ClimateRegionData.Initialize(); } else { PlugIn.ModelCore.UI.WriteLine($"Using climate files in ecoregion parameters: {Names.parameters["EcoregionParameters"].Value}."); } string PARunits = ((Parameter <string>)Names.GetParameter(Names.PARunits)).Value; if (PARunits == "umol") { PlugIn.ModelCore.UI.WriteLine("Using PAR units of umol/m2/s."); } else if (PARunits == "W/m2") { PlugIn.ModelCore.UI.WriteLine("Using PAR units of W/m2."); } else { throw new ApplicationException(string.Format("PARunits units are not 'umol' or 'W/m2'")); } }
//--------------------------------------------------------------------- public override void Initialize() { PlugIn.ModelCore.UI.WriteLine("Initializing {0} ...", ExtensionName); Timestep = parameters.Timestep; SuccessionTimeStep = Timestep; sufficientLight = parameters.LightClassProbabilities; ProbEstablishAdjust = parameters.ProbEstablishAdjustment; MetadataHandler.InitializeMetadata(Timestep, modelCore, SoilCarbonMapNames, SoilNitrogenMapNames, ANPPMapNames, ANEEMapNames, TotalCMapNames); CohortBiomass.SpinupMortalityFraction = parameters.SpinupMortalityFraction; //Initialize climate. Climate.Initialize(parameters.ClimateConfigFile, false, modelCore); FutureClimateBaseYear = Climate.Future_MonthlyData.Keys.Min(); EcoregionData.Initialize(parameters); SpeciesData.Initialize(parameters); EcoregionData.ChangeParameters(parameters); OtherData.Initialize(parameters); FunctionalType.Initialize(parameters); // 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. Library.LeafBiomassCohorts.Cohorts.Initialize(Timestep, new CohortBiomass()); // Initialize Reproduction routines: Reproduction.SufficientResources = SufficientLight; Reproduction.Establish = Establish; Reproduction.AddNewCohort = AddNewCohort; Reproduction.MaturePresent = MaturePresent; base.Initialize(modelCore, parameters.SeedAlgorithm); InitialBiomass.Initialize(Timestep); Landis.Library.BiomassCohorts.Cohort.DeathEvent += CohortDied; Landis.Library.LeafBiomassCohorts.Cohort.PartialDeathEvent += CohortPartialMortality; AgeOnlyDisturbances.Module.Initialize(parameters.AgeOnlyDisturbanceParms); Dynamic.Module.Initialize(parameters.DynamicUpdates); FireEffects.Initialize(parameters); InitializeSites(parameters.InitialCommunities, parameters.InitialCommunitiesMap, modelCore); //the spinup is heppend within this fucntion if (parameters.CalibrateMode) { Outputs.CreateCalibrateLogFile(); } Outputs.WritePrimaryLogFile(0); Outputs.WriteShortPrimaryLogFile(0); }
//--------------------------------------------------------------------- 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); }
/// <summary>This must be called after EcoregionPnET.Initialize() has been called</summary> private void InitializeClimateLibrary() { // John McNabb: initialize ClimateRegionData after initializing EcoregionPnet Parameter <string> climateLibraryFileName; UsingClimateLibrary = TryGetParameter(Names.ClimateConfigFile, out climateLibraryFileName); if (UsingClimateLibrary) { PlugIn.ModelCore.UI.WriteLine($"Using climate library: {climateLibraryFileName.Value}."); Climate.Initialize(climateLibraryFileName.Value, false, ModelCore); ClimateRegionData.Initialize(); } else { PlugIn.ModelCore.UI.WriteLine($"Using climate files in ecoregion parameters: {PlugIn.parameters["EcoregionParameters"].Value}."); } }
//--------------------------------------------------------------------- public override void Initialize() { PlugIn.ModelCore.UI.WriteLine("Initializing {0} ...", ExtensionName); Timestep = Parameters.Timestep; SuccessionTimeStep = Timestep; sufficientLight = Parameters.LightClassProbabilities; ProbEstablishAdjust = Parameters.ProbEstablishAdjustment; MetadataHandler.InitializeMetadata(Timestep, modelCore, SoilCarbonMapNames, SoilNitrogenMapNames, ANPPMapNames, ANEEMapNames, TotalCMapNames); //,LAIMapNames, ShadeClassMapNames); //Initialize climate. Climate.Initialize(Parameters.ClimateConfigFile, false, modelCore); FutureClimateBaseYear = Climate.Future_MonthlyData.Keys.Min(); ClimateRegionData.Initialize(Parameters); FunctionalType.Initialize(Parameters); SpeciesData.Initialize(Parameters); Util.ReadSoilDepthMap(Parameters.SoilDepthMapName); Util.ReadSoilDrainMap(Parameters.SoilDrainMapName); Util.ReadSoilBaseFlowMap(Parameters.SoilBaseFlowMapName); Util.ReadSoilStormFlowMap(Parameters.SoilStormFlowMapName); Util.ReadFieldCapacityMap(Parameters.SoilFieldCapacityMapName); Util.ReadWiltingPointMap(Parameters.SoilWiltingPointMapName); Util.ReadPercentSandMap(Parameters.SoilPercentSandMapName); Util.ReadPercentClayMap(Parameters.SoilPercentClayMapName); Util.ReadSoilCNMaps(Parameters.InitialSOM1CSurfaceMapName, Parameters.InitialSOM1NSurfaceMapName, Parameters.InitialSOM1CSoilMapName, Parameters.InitialSOM1NSoilMapName, Parameters.InitialSOM2CMapName, Parameters.InitialSOM2NMapName, Parameters.InitialSOM3CMapName, Parameters.InitialSOM3NMapName); Util.ReadDeadWoodMaps(Parameters.InitialDeadSurfaceMapName, Parameters.InitialDeadSoilMapName); ShadeLAI = Parameters.MaximumShadeLAI; OtherData.Initialize(Parameters); FireEffects.Initialize(Parameters); // 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. Library.LeafBiomassCohorts.Cohorts.Initialize(Timestep, new CohortBiomass()); // Initialize Reproduction routines: Reproduction.SufficientResources = SufficientLight; Reproduction.Establish = Establish; Reproduction.AddNewCohort = AddNewCohort; Reproduction.MaturePresent = MaturePresent; base.Initialize(modelCore, Parameters.SeedAlgorithm); // Delegate mortality routines: Landis.Library.LeafBiomassCohorts.Cohort.PartialDeathEvent += CohortPartialMortality; Landis.Library.LeafBiomassCohorts.Cohort.DeathEvent += CohortTotalMortality; InitializeSites(Parameters.InitialCommunities, Parameters.InitialCommunitiesMap, modelCore); if (Parameters.CalibrateMode) { Outputs.CreateCalibrateLogFile(); } Establishment.InitializeLogFile(); B_MAX = 0; foreach (ISpecies species in ModelCore.Species) { if (SpeciesData.Max_Biomass[species] > B_MAX) { B_MAX = SpeciesData.Max_Biomass[species]; } } foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { Main.ComputeTotalCohortCN(site, SiteVars.Cohorts[site]); } Outputs.WritePrimaryLogFile(0); Outputs.WriteShortPrimaryLogFile(0); }