//--------------------------------------------------------------------- public override void LoadParameters(string dataFile, ICore mCore) { modelCore = mCore; SiteVars.Initialize(); InputParameterParser parser = new InputParameterParser(); parameters = Landis.Data.Load<IInputParameters>(dataFile, parser); }
//--------------------------------------------------------------------- /// <summary> /// Initializes the plug-in with a data file. /// </summary> /// <param name="dataFile"> /// Path to the file with initialization data. /// </param> /// <param name="startTime"> /// Initial timestep (year): the timestep that will be passed to the /// first call to the component's Run method. /// </param> public override void Initialize(string dataFile, PlugIns.ICore modelCore) { Model.Core = modelCore; InputParameterParser.EcoregionsDataset = Model.Core.Ecoregions; InputParameterParser parser = new InputParameterParser(); IInputParameters parameters = Data.Load<IInputParameters>(dataFile, parser); Timestep = parameters.Timestep; mapNameTemplate = parameters.MapNamesTemplate; cohorts = Model.Core.SuccessionCohorts as ILandscapeCohorts; if (cohorts == null) throw new ApplicationException("Error: Cohorts don't support age-cohort interface"); SiteVars.Initialize(); Event.Initialize(parameters.EventParameters, parameters.WindSeverities); UI.WriteLine("Opening wind log file \"{0}\" ...", parameters.LogFileName); log = Data.CreateTextFile(parameters.LogFileName); log.AutoFlush = true; log.WriteLine("Time,Initiation Site,Total Sites,Damaged Sites,Cohorts Killed,Mean Severity"); }
//--------------------------------------------------------------------- public override void LoadParameters(string dataFile, ICore mCore) { modelCore = mCore; InputParameterParser.EcoregionsDataset = modelCore.Ecoregions; InputParameterParser parser = new InputParameterParser(); parameters = Landis.Data.Load<IInputParameters>(dataFile, parser); }
//--------------------------------------------------------------------- /// <summary> /// Initializes the extension with a data file. /// </summary> public override void Initialize(string dataFile, PlugIns.ICore modelCore) { Model.Core = modelCore; InputParameterParser parser = new InputParameterParser(); IInputParameters parameters = Data.Load<IInputParameters>(dataFile, parser); Timestep = 1; //parameters.Timestep; mapNameTemplate = parameters.MapNamesTemplate; manyInsect = parameters.ManyInsect; SiteVars.Initialize(); Defoliate.Initialize(parameters); GrowthReduction.Initialize(parameters); // Add local event handler for cohorts death due to age-only // disturbances. Biomass.Cohort.AgeOnlyDeathEvent += CohortKilledByAgeOnlyDisturbance; foreach(IInsect insect in manyInsect) { if(insect == null) UI.WriteLine("Insect Parameters NOT loading correctly."); insect.Neighbors = GetNeighborhood(insect.NeighborhoodDistance); int i=0; foreach(RelativeLocation location in insect.Neighbors) i++; if(insect.Neighbors != null) UI.WriteLine(" Dispersal Neighborhood = {0} neighbors.", i); } UI.WriteLine("Opening BiomassInsect log file \"{0}\" ...", parameters.LogFileName); try { log = Data.CreateTextFile(parameters.LogFileName); } catch (Exception err) { string mesg = string.Format("{0}", err.Message); throw new System.ApplicationException(mesg); } log.AutoFlush = true; log.Write("Time,InsectName,StartYear,StopYear,MeanDefoliation,NumSitesDefoliated"); //foreach (IEcoregion ecoregion in Ecoregions.Dataset) // log.Write(",{0}", ecoregion.MapCode); log.WriteLine(""); }
public override void LoadParameters(string dataFile, ICore mCore) { modelCore = mCore; InputParameterParser parser = new InputParameterParser(); parameters = Landis.Data.Load<IInputParameters>(dataFile, parser); // Add local event handler for cohorts death due to age-only // disturbances. Cohort.AgeOnlyDeathEvent += CohortKilledByAgeOnlyDisturbance; }
//--------------------------------------------------------------------- public override void Initialize(string dataFile, PlugIns.ICore modelCore) { if (isDebugEnabled) UI.WriteLine("Initializing {0} ...", Name); Model.Core = modelCore; cohorts = Model.Core.SuccessionCohorts as ILandscapeCohorts; if (cohorts == null) throw new ApplicationException("Error: Cohorts don't support age-cohort interface"); SiteVars.Initialize(cohorts); InputParameterParser parser = new InputParameterParser(); IInputParameters parameters = Data.Load<IInputParameters>(dataFile, parser); Timestep = parameters.Timestep; fireSizeType = parameters.FireSizeType; bui = parameters.BUI; mapNameTemplate = parameters.MapNamesTemplate; dynamicWeather = parameters.DynamicWeather; severityCalibrate = parameters.SeverityCalibrate; WeatherDataTable = Weather.ReadWeatherFile(parameters.InitialWeatherPath, FireRegions.Dataset, parameters.SeasonParameters); UI.WriteLine(" Initializing Fire Events..."); Event.Initialize(parameters.SeasonParameters, parameters.FuelTypeParameters, parameters.FireDamages); seasonParameters = parameters.SeasonParameters; dynamicEcos = parameters.DynamicFireRegions; summaryFireRegionEventCount = new int[FireRegions.Dataset.Count]; summaryFireRegionSeverity = new int[FireRegions.Dataset.Count]; ecoregionSitesCount = new int[FireRegions.Dataset.Count]; //foreach (IFireRegion fire_region in FireRegions.Dataset) //UI.WriteLine(" FireSize={0}, SD={1}", fire_region.MeanSize, fire_region.StandardDeviation); // Count the number of sites per fire_region: foreach (Site site in Model.Core.Landscape) { if (site.IsActive) { IFireRegion fire_region = SiteVars.FireRegion[site]; ecoregionSitesCount[fire_region.Index] ++; } } UI.WriteLine(" Opening and Initializing Fire log files \"{0}\" and \"{1}\"...", parameters.LogFileName, parameters.SummaryLogFileName); try { log = Data.CreateTextFile(parameters.LogFileName); } catch (Exception err) { string mesg = string.Format("{0}", err.Message); throw new System.ApplicationException(mesg); } log.AutoFlush = true; log.Write("Time,InitSite,InitFireRegion,InitFuel,InitPercentConifer,SelectedSizeOrDuration,SizeBin,Duration,FireSeason,WindSpeed,WindDirection,FFMC,BUI,PercentCuring,ISI,SitesChecked,CohortsKilled,MeanSeverity,"); foreach (IFireRegion fire_region in FireRegions.Dataset) { log.Write("eco-{0},", fire_region.MapCode); } log.Write("TotalSitesInEvent"); log.WriteLine(""); try { summaryLog = Data.CreateTextFile(parameters.SummaryLogFileName); } catch (Exception err) { string mesg = string.Format("{0}", err.Message); throw new System.ApplicationException(mesg); } summaryLog.AutoFlush = true; summaryLog.Write("TimeStep, TotalSitesBurned, NumberFires"); foreach (IFireRegion fire_region in FireRegions.Dataset) { summaryLog.Write(", eco-num-sites-{0}", fire_region.MapCode); } foreach (IFireRegion fire_region in FireRegions.Dataset) { summaryLog.Write(", eco-mean-severity-{0}", fire_region.MapCode); } summaryLog.WriteLine(""); summaryLog.Write("0, 0, 0"); foreach (IFireRegion fire_region in FireRegions.Dataset) { summaryLog.Write(", {0}", ecoregionSitesCount[fire_region.Index]); } foreach (IFireRegion fire_region in FireRegions.Dataset) { summaryLog.Write(", 0.0"); } summaryLog.WriteLine(""); if (isDebugEnabled) UI.WriteLine("Initialization done"); }
//--------------------------------------------------------------------- /// <summary> /// Initializes the extension with a data file. /// </summary> public override void Initialize(string dataFile, PlugIns.ICore modelCore) { Model.Core = modelCore; InputParameterParser.EcoregionsDataset = Model.Core.Ecoregions; InputParameterParser parser = new InputParameterParser(); IInputParameters parameters = Data.Load<IInputParameters>(dataFile, parser); Timestep = parameters.Timestep; mapNameTemplate = parameters.MapNamesTemplate; srdMapNames = parameters.SRDMapNames; nrdMapNames = parameters.NRDMapNames; cohorts = Model.Core.SuccessionCohorts as ILandscapeCohorts; if (cohorts == null) throw new ApplicationException("Error: Cohorts don't support age-cohort interface"); SiteVars.Initialize(cohorts); manyAgentParameters = parameters.ManyAgentParameters; foreach(IAgent activeAgent in manyAgentParameters) // UI.WriteLine("Parameters did not load successfully."); { //foreach (ISpecies spp in Model.Species) // UI.WriteLine("Spp={0}, MinorHostAge={1}.", spp.Name, activeAgent.SppParameters[spp.Index].SecondaryHostAge); if(activeAgent == null) UI.WriteLine("Agent Parameters NOT loading correctly."); //UI.WriteLine("Name of Agent = {0}", activeAgent.AgentName); activeAgent.TimeToNextEpidemic = TimeToNext(activeAgent, Timestep); int i=0; activeAgent.DispersalNeighbors = GetDispersalNeighborhood(activeAgent, Timestep); if(activeAgent.DispersalNeighbors != null) { foreach (RelativeLocation reloc in activeAgent.DispersalNeighbors) i++; UI.WriteLine("Dispersal Neighborhood = {0} neighbors.", i); } i=0; activeAgent.ResourceNeighbors = GetResourceNeighborhood(activeAgent); if(activeAgent.ResourceNeighbors != null) { foreach (RelativeLocationWeighted reloc in activeAgent.ResourceNeighbors) i++; UI.WriteLine("Resource Neighborhood = {0} neighbors.", i); } } string logFileName = parameters.LogFileName; UI.WriteLine("Opening BDA log file \"{0}\" ...", logFileName); log = Data.CreateTextFile(logFileName); log.AutoFlush = true; log.Write("CurrentTime, ROS, NumCohortsKilled, NumSitesDamaged, MeanSeverity"); log.WriteLine(""); }