//--------------------------------------------------------------------- public static void Initialize(string varName) { droughtYears = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); PlugIn.ModelCore.RegisterSiteVar(SiteVars.DroughtYears, varName); }
private static ISiteVar <int> siteDefoliation; //Brian M update //--------------------------------------------------------------------- public static void Initialize() { outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar <Outbreak>(); timeOfLastEvent = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //insectName = PlugIn.ModelCore.Landscape.NewSiteVar<string>(); siteDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //Brian M update //SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0; SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0; //SiteVars.InsectName.ActiveSiteValues = ""; SiteVars.SiteDefoliation.ActiveSiteValues = 0; //Brian M update //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SiteVars.OutbreakVars = null; //new Outbreak(); } if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } //PlugIn.ModelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BiomassInsects.TimeOfLastEvent");//Commented out - JRF because already registered above... //PlugIn.ModelCore.RegisterSiteVar(SiteVars.InsectName, "BiomassInsects.InsectName");//See comment above //PlugIn.ModelCore.RegisterSiteVar(SiteVars.SiteDefoliation, "BiomassInsects.PctDefoliation"); }
//--------------------------------------------------------------------- public static void Initialize(ICore modelCore) { landUse = modelCore.Landscape.NewSiteVar<LandUse>(); allowHarvest = new AllowHarvestSiteVar(); Model.Core.RegisterSiteVar(allowHarvest, "LandUse.AllowHarvest"); Landis.Library.BiomassHarvest.SiteVars.CohortsPartiallyDamaged = modelCore.Landscape.NewSiteVar<int>(); }
//--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); fineFuels = PlugIn.ModelCore.GetSiteVar <double>("Succession.FineFuels"); eventVar = PlugIn.ModelCore.Landscape.NewSiteVar <FireEvent>(InactiveSiteMode.DistinctValues); timeOfLastFire = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); intensity = PlugIn.ModelCore.Landscape.NewSiteVar <byte>(); spreadProbablity = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); dayOfFire = PlugIn.ModelCore.Landscape.NewSiteVar <ushort>(); groundSlope = PlugIn.ModelCore.Landscape.NewSiteVar <ushort>(); uphillSlopeAzimuth = PlugIn.ModelCore.Landscape.NewSiteVar <ushort>(); lightningFireWeight = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); rxFireWeight = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); accidentalFireWeight = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); lightningSuppressionIndex = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); rxSuppressionIndex = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); accidentalSuppressionIndex = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); typeOfIginition = PlugIn.ModelCore.Landscape.NewSiteVar <short>(); disturbed = PlugIn.ModelCore.Landscape.NewSiteVar <bool>(); specialDeadWood = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); EventID = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); RxZones = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); SmolderConsumption = PlugIn.ModelCore.GetSiteVar <double>("Succession.SmolderConsumption"); FlamingConsumption = PlugIn.ModelCore.GetSiteVar <double>("Succession.FlamingConsumption"); HarvestTime = PlugIn.ModelCore.GetSiteVar <int>("Harvest.TimeOfLastEvent"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.Intensity, "Fire.Severity"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.TimeOfLastFire, "Fire.TimeOfLastEvent"); }
//--------------------------------------------------------------------- public static void Initialize(IInputParameters parameters) { transpiration = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); AnnualTranspiration = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); infiltration = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); runoff = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); waterleakage = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); evaporation = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); WHC = parameters.WHC; EvaporationFraction = parameters.EvaporationFraction; LeakageFraction = parameters.LeakageFraction; SnowPack = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); Water = PlugIn.ModelCore.Landscape.NewSiteVar <float>(); foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SnowPack[site] = 0; Water[site] = 0; infiltration[site] = 0; runoff[site] = 0; evaporation[site] = 0; transpiration[site] = 0; AnnualTranspiration[site] = 0; } PlugIn.ModelCore.RegisterSiteVar(AnnualTranspiration, "Succession.AnnualTranspiration"); PlugIn.ModelCore.RegisterSiteVar(Water, "Succession.SoilWater"); }
//--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } fuelType = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); decidFuelType = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); percentConifer = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); percentHardwood = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); percentDeadFir = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); timeOfLastHarvest = PlugIn.ModelCore.GetSiteVar <int>("Harvest.TimeOfLastEvent"); harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar <string>("Harvest.PrescriptionName"); harvestCohortsKilled = PlugIn.ModelCore.GetSiteVar <int>("Harvest.CohortsDamaged"); timeOfLastFire = PlugIn.ModelCore.GetSiteVar <int>("Fire.TimeOfLastEvent"); fireSeverity = PlugIn.ModelCore.GetSiteVar <byte>("Fire.Severity"); timeOfLastWind = PlugIn.ModelCore.GetSiteVar <int>("Wind.TimeOfLastEvent"); windSeverity = PlugIn.ModelCore.GetSiteVar <byte>("Wind.Severity"); numberDeadFirCohorts = PlugIn.ModelCore.GetSiteVar <Dictionary <int, int> >("BDA.NumCFSConifers"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir"); }
//--------------------------------------------------------------------- public static void ReadMap(string path, ISiteVar <double> siteVar) { IInputRaster <IntPixel> map; try { map = PlugIn.ModelCore.OpenRaster <IntPixel>(path); } catch (FileNotFoundException) { string messege = string.Format("Error: The file {0} does not exist", path); throw new System.ApplicationException(messege); } if (map.Dimensions != PlugIn.ModelCore.Landscape.Dimensions) { string messege = string.Format("Error: The input map {0} does not have the same dimension (row, column) as the ecoregions map", path); throw new System.ApplicationException(messege); } using (map) { IntPixel pixel = map.BufferPixel; foreach (Site site in PlugIn.ModelCore.Landscape.AllSites) { map.ReadBufferPixel(); double mapCode = (int)pixel.MapCode.Value; if (site.IsActive) { siteVar[site] = mapCode; } } } }
//--------------------------------------------------------------------- public static void Initialize(ILandscapeCohorts cohorts) { //eventVar = Model.Core.Landscape.NewSiteVar<Epidemic>(InactiveSiteMode.DistinctValues); timeOfLastBDA = Model.Core.Landscape.NewSiteVar <int>(); neighborResourceDom = Model.Core.Landscape.NewSiteVar <double>(); siteResourceDomMod = Model.Core.Landscape.NewSiteVar <double>(); siteResourceDom = Model.Core.Landscape.NewSiteVar <double>(); vulnerability = Model.Core.Landscape.NewSiteVar <double>(); disturbed = Model.Core.Landscape.NewSiteVar <bool>(); //numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar<int[]>(); numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar <Dictionary <int, int> >(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0; SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0; SiteVars.SiteResourceDom.ActiveSiteValues = 0.0; SiteVars.Vulnerability.ActiveSiteValues = 0.0; foreach (ActiveSite site in Model.Core.Landscape) { //SiteVars.NumberCFSconifersKilled[site] = new int[Model.Core.EndTime - Model.Core.StartTime + 1]; SiteVars.NumberCFSconifersKilled[site] = new Dictionary <int, int>(); } // Added for v1.1 to enable interactions with CFS fuels extension. Model.Core.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers"); Model.Core.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent"); }
//--------------------------------------------------------------------- public static void Initialize(ICore modelCore) { core = modelCore; modelCore.Log.WriteLine("Inside Initialize method !!!"); ecoregions = modelCore.Landscape.NewSiteVar<IFireRegion>(); eventVar = modelCore.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues); timeOfLastFire = modelCore.Landscape.NewSiteVar<int>(); severity = modelCore.Landscape.NewSiteVar<byte>(); disturbed = modelCore.Landscape.NewSiteVar<bool>(); cohorts = modelCore.GetSiteVar<SiteCohorts>("Succession.Cohorts"); // Enable interactions with (almost) any fire extension: modelCore.RegisterSiteVar(SiteVars.Severity, "Fire.Severity"); //Initialize TimeSinceLastFire to the maximum cohort age: foreach (ActiveSite site in modelCore.Landscape) { // Test to make sure the cohort type is correct for this extension if (site.Location.Row == 1 && site.Location.Column == 1 && !SiteVars.Cohorts[site].HasAge()) { throw new System.ApplicationException("Error in the Scenario file: Incompatible extensions; Cohort age data required for this extension to operate."); } //UI.WriteLine("Inside foreach loop. Site R/C = {0}/{1} !!!", site.Location.Row, site.Location.Column); ushort maxAge = Library.BaseCohorts.Util.GetMaxAge(cohorts[site]); //ushort maxAge = Library.Cohort.AgeOnly.Util.GetMaxAge(SiteVars.Cohorts[site]); //UI.WriteLine("Assigned maxAge"); timeOfLastFire[site] = modelCore.StartTime - maxAge; } }
//--------------------------------------------------------------------- private void WritePoolMap(string poolName, ISiteVar <Pool> poolSiteVar) { string path = PoolMapNames.ReplaceTemplateVars(poolMapNameTemplate, poolName, PlugIn.ModelCore.CurrentTime); if (poolSiteVar != null) { PlugIn.ModelCore.UI.WriteLine(" Writing {0} biomass map to {1} ...", poolName, path); using (IOutputRaster <IntPixel> outputRaster = modelCore.CreateRaster <IntPixel>(path, modelCore.Landscape.Dimensions)) { IntPixel pixel = outputRaster.BufferPixel; foreach (Site site in PlugIn.ModelCore.Landscape.AllSites) { if (site.IsActive) { pixel.MapCode.Value = (int)((float)poolSiteVar[site].Mass); } else { pixel.MapCode.Value = 0; } outputRaster.WriteBufferPixel(); } } } }
//--------------------------------------------------------------------- public static void Initialize() { outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar<Outbreak>(); timeOfLastEvent = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts"); cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SiteVars.OutbreakVars = null; } if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } }
//--------------------------------------------------------------------- public static void Initialize(ICore modelCore) { timeOfLastBDA = modelCore.Landscape.NewSiteVar<int>(); neighborResourceDom = modelCore.Landscape.NewSiteVar<double>(); siteResourceDomMod = modelCore.Landscape.NewSiteVar<double>(); siteResourceDom = modelCore.Landscape.NewSiteVar<double>(); vulnerability = modelCore.Landscape.NewSiteVar<double>(); disturbed = modelCore.Landscape.NewSiteVar<bool>(); numberCFSconifersKilled = modelCore.Landscape.NewSiteVar<Dictionary<int, int>>(); timeOfNext = modelCore.Landscape.NewSiteVar<int>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0; SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0; SiteVars.SiteResourceDom.ActiveSiteValues = 0.0; SiteVars.Vulnerability.ActiveSiteValues = 0.0; SiteVars.TimeOfNext.ActiveSiteValues = 9999; cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.AgeCohorts"); foreach (ActiveSite site in modelCore.Landscape) SiteVars.NumberCFSconifersKilled[site] = new Dictionary<int, int>(); // Added for v1.1 to enable interactions with CFS fuels extension. modelCore.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers"); modelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent"); //foreach (IAgent activeAgent in manyAgentParameters) //{ // string varName = activeAgent.AgentName + ".TimeToNext"; // modelCore.RegisterSiteVar(SiteVars.TimeToNext, varName); //} modelCore.RegisterSiteVar(SiteVars.TimeOfNext, "BDA.TimeOfNext"); }
//--------------------------------------------------------------------- /// <summary> /// Creates a site variable with ecoregions. /// </summary> public ISiteVar <IEcoregion> CreateSiteVar(ILandscape landscape) { ISiteVar <IEcoregion> siteVar = landscape.NewSiteVar <IEcoregion>(); IInputRaster <EcoregionPixel> map = rasterFactory.OpenRaster <EcoregionPixel>(path); Console.WriteLine(" reading in ecoregion from {0} ", path); using (map) { EcoregionPixel pixel = map.BufferPixel; foreach (Site site in landscape.AllSites) { map.ReadBufferPixel(); ushort mapCode = (ushort)pixel.MapCode.Value; if (site.IsActive) { siteVar[site] = ecoregions.Find(mapCode); } if (!site.IsActive && ecoregions.Find(mapCode).Active) { String msg = String.Format(" Site not active and ecoregion is active. Ecoreigon = {0}", ecoregions.Find(mapCode).Name); throw new ApplicationException(msg); //Console.WriteLine(" Site not active"); } if (site.IsActive && !ecoregions.Find(mapCode).Active) { String msg = String.Format(" Site is active and ecoregion is not active. Ecoreigon = {0}", ecoregions.Find(mapCode).Name); throw new ApplicationException(msg); } } } return(siteVar); }
//--------------------------------------------------------------------- public static void Initialize(IInputParameters parameters) { transpiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); AnnualTranspiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); infiltration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); runoff = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); waterleakage = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); evaporation = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); WHC = parameters.WHC; EvaporationFraction = parameters.EvaporationFraction; LeakageFraction = parameters.LeakageFraction; SnowPack = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); Water = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SnowPack[site] = 0; Water[site] = 0; infiltration[site] = 0; runoff[site] = 0; evaporation[site] = 0; transpiration[site] = 0; AnnualTranspiration[site] = 0; } PlugIn.ModelCore.RegisterSiteVar(AnnualTranspiration, "Succession.AnnualTranspiration"); PlugIn.ModelCore.RegisterSiteVar(Water, "Succession.SoilWater"); }
//--------------------------------------------------------------------- public static void Initialize() { eventVar = Model.Core.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues); timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>(); severity = Model.Core.Landscape.NewSiteVar<byte>(); disturbed = Model.Core.Landscape.NewSiteVar<bool>(); }
//--------------------------------------------------------------------- public static void Initialize(ICore modelCore) { timeOfLastBDA = modelCore.Landscape.NewSiteVar <int>(); neighborResourceDom = modelCore.Landscape.NewSiteVar <double>(); siteResourceDomMod = modelCore.Landscape.NewSiteVar <double>(); siteResourceDom = modelCore.Landscape.NewSiteVar <double>(); vulnerability = modelCore.Landscape.NewSiteVar <double>(); disturbed = modelCore.Landscape.NewSiteVar <bool>(); numberCFSconifersKilled = modelCore.Landscape.NewSiteVar <Dictionary <int, int> >(); timeOfNext = modelCore.Landscape.NewSiteVar <int>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0; SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0; SiteVars.SiteResourceDom.ActiveSiteValues = 0.0; SiteVars.Vulnerability.ActiveSiteValues = 0.0; SiteVars.TimeOfNext.ActiveSiteValues = 9999; cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.AgeCohorts"); foreach (ActiveSite site in modelCore.Landscape) { SiteVars.NumberCFSconifersKilled[site] = new Dictionary <int, int>(); } // Added for v1.1 to enable interactions with CFS fuels extension. modelCore.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers"); modelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent"); // Added to enable interactions with other extensions (Presalvage harvest) modelCore.RegisterSiteVar(SiteVars.TimeOfNext, "BDA.TimeOfNext"); }
//private static ISiteVar<Landis.Library.Biomass.Species.AuxParm<double>> defoliation; // Defoliation per site per species //--------------------------------------------------------------------- public static void Initialize() { //defoliation = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<double>>(); outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar <Outbreak>(); timeOfLastEvent = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); //initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); if (cohorts == null) { cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.LeafBiomassCohorts"); } cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; //SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SiteVars.OutbreakVars = null; } if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } //PlugIn.ModelCore.RegisterSiteVar(defoliation, "Insect.Defoliation"); }
//--------------------------------------------------------------------- public static void Initialize() { eventVar = Model.Core.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues); ecoregions = Model.Core.Landscape.NewSiteVar<IEcoregion>(); percentDeadFir = Model.Core.Landscape.NewSiteVar<int>(); severity = Model.Core.Landscape.NewSiteVar<byte>(); disturbed = Model.Core.Landscape.NewSiteVar<bool>(); travelTime = Model.Core.Landscape.NewSiteVar<double>(); minNeighborTravelTime = Model.Core.Landscape.NewSiteVar<double>(); //simpleTravelTime = Model.Core.Landscape.NewSiteVar<double>(); rateOfSpread = Model.Core.Landscape.NewSiteVar<double>(); //-----Added by BRM----- adjROS = Model.Core.Landscape.NewSiteVar<double>(); costTime = Model.Core.Landscape.NewSiteVar<double>(); //---------- groundSlope = Model.Core.Landscape.NewSiteVar<ushort>(); uphillSlopeAzimuth = Model.Core.Landscape.NewSiteVar<ushort>(); siteWindSpeed = Model.Core.Landscape.NewSiteVar<ushort>(); siteWindDirection = Model.Core.Landscape.NewSiteVar<ushort>(); //Also initialize topography, will be overwritten if optional parameters provided: SiteVars.GroundSlope.ActiveSiteValues = 0; SiteVars.UphillSlopeAzimuth.ActiveSiteValues = 0; }
//--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts"); fuelType = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); decidFuelType = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); percentConifer = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); percentHardwood = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); percentDeadFir = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); timeOfLastHarvest = PlugIn.ModelCore.GetSiteVar<int>("Harvest.TimeOfLastEvent"); harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar<string>("Harvest.PrescriptionName"); harvestCohortsKilled = PlugIn.ModelCore.GetSiteVar<int>("Harvest.CohortsDamaged"); timeOfLastFire = PlugIn.ModelCore.GetSiteVar<int>("Fire.TimeOfLastEvent"); fireSeverity = PlugIn.ModelCore.GetSiteVar<byte>("Fire.Severity"); timeOfLastWind = PlugIn.ModelCore.GetSiteVar<int>("Wind.TimeOfLastEvent"); windSeverity = PlugIn.ModelCore.GetSiteVar<byte>("Wind.Severity"); numberDeadFirCohorts = PlugIn.ModelCore.GetSiteVar<Dictionary<int,int>>("BDA.NumCFSConifers"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir"); if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } }
//--------------------------------------------------------------------- public static void Initialize(ICore modelCore) { timeOfLastBDA = modelCore.Landscape.NewSiteVar<int>(); neighborResourceDom = modelCore.Landscape.NewSiteVar<double>(); siteResourceDomMod = modelCore.Landscape.NewSiteVar<double>(); siteResourceDom = modelCore.Landscape.NewSiteVar<double>(); vulnerability = modelCore.Landscape.NewSiteVar<double>(); disturbed = modelCore.Landscape.NewSiteVar<bool>(); numberCFSconifersKilled = modelCore.Landscape.NewSiteVar<Dictionary<int, int>>(); timeOfNext = modelCore.Landscape.NewSiteVar<int>(); agentName = modelCore.Landscape.NewSiteVar<string>(); biomassInsectsAgent = modelCore.Landscape.NewSiteVar<string>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0; SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0; SiteVars.SiteResourceDom.ActiveSiteValues = 0.0; SiteVars.Vulnerability.ActiveSiteValues = 0.0; SiteVars.TimeOfNext.ActiveSiteValues = 9999; SiteVars.AgentName.ActiveSiteValues = ""; cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.AgeCohorts"); foreach(ActiveSite site in modelCore.Landscape) SiteVars.NumberCFSconifersKilled[site] = new Dictionary<int, int>(); // Added for v1.1 to enable interactions with CFS fuels extension. modelCore.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers"); modelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent"); modelCore.RegisterSiteVar(SiteVars.AgentName, "BDA.AgentName"); // Added to enable interactions with other extensions (Presalvage harvest) modelCore.RegisterSiteVar(SiteVars.TimeOfNext, "BDA.TimeOfNext"); }
/// <summary> /// Write the list of cohorts at a site to a log. /// </summary> public static void WriteSiteCohorts(ILog log, ActiveSite site) { if (cohorts == null) { cohorts = Model.Core.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); } int count = 0; // # of species with cohorts foreach (ISpeciesCohorts speciesCohorts in cohorts[site]) { string cohort_list = ""; foreach (ICohort cohort in speciesCohorts) { cohort_list += string.Format(", {0} yrs ({1})", cohort.Age, cohort.Biomass); } log.DebugFormat(" {0}{1}", speciesCohorts.Species.Name, cohort_list); count += 1; } if (count == 0) { log.DebugFormat(" (no cohorts)"); } }
//--------------------------------------------------------------------- public static void Initialize(double[,] establishProbabilities, SeedingAlgorithm seedingAlgorithm, Delegates.AddNewCohort addNewCohort) { Reproduction.establishProbabilities = establishProbabilities; seeding = new Seeding(seedingAlgorithm); Reproduction.addNewCohort = addNewCohort; cohorts = Model.Core.SuccessionCohorts as AgeCohort.ILandscapeCohorts; if (cohorts == null) { throw new ApplicationException("The succession plug-in's cohorts don't support age-cohort interface"); } speciesDataset = Model.Core.Species; int speciesCount = speciesDataset.Count; resprout = Model.Core.Landscape.NewSiteVar <BitArray>(); serotiny = Model.Core.Landscape.NewSiteVar <BitArray>(); foreach (ActiveSite site in Model.Core.Landscape.ActiveSites) { resprout[site] = new BitArray(speciesCount); serotiny[site] = new BitArray(speciesCount); } planting = new Planting(); trySeeding = new BlockRowBuffer <bool>(Model.Core.Landscape); hasSeeded = new BlockRowBuffer <BitArray>(Model.Core.Landscape); for (int col = 1; col <= hasSeeded.Columns; col++) { hasSeeded[col] = new BitArray(speciesCount); } }
//--------------------------------------------------------------------- public static void InitializeTimeOfLastDisturbances() { timeOfLastWind = Model.Core.GetSiteVar<int>("Wind.TimeOfLastEvent"); timeOfLastFire = Model.Core.GetSiteVar<int>("Fire.TimeOfLastEvent"); timeOfLastHarvest = Model.Core.GetSiteVar<int>("Harvest.TimeOfLastEvent"); }
//--------------------------------------------------------------------- public static void Initialize(double[,] establishProbabilities, SeedingAlgorithm seedingAlgorithm, AddNewCohortMethod addNewCohort) { Reproduction.establishProbabilities = establishProbabilities; seeding = new Seeding(seedingAlgorithm); Reproduction.addNewCohort = addNewCohort; cohorts = Model.Core.SuccessionCohorts as AgeCohort.ILandscapeCohorts; if (cohorts == null) { throw new ApplicationException("The succession plug-in's cohorts don't support age-cohort interface"); } speciesDataset = Model.Core.Species; int speciesCount = speciesDataset.Count; resprout = Model.Core.Landscape.NewSiteVar <BitArray>(); serotiny = Model.Core.Landscape.NewSiteVar <BitArray>(); foreach (ActiveSite site in Model.Core.Landscape.ActiveSites) { resprout[site] = new BitArray(speciesCount); serotiny[site] = new BitArray(speciesCount); } }
//--------------------------------------------------------------------- //public static void Initialize(double[,] establishProbabilities, public static void Initialize(SeedingAlgorithm seedingAlgorithm, Delegates.AddNewCohort addNewCohort) { // Reproduction.establishProbabilities = establishProbabilities; seeding = new Seeding(seedingAlgorithm); Reproduction.addNewCohort = addNewCohort; SiteVars.Cohorts = Model.Core.GetSiteVar <SiteCohorts>("Succession.Cohorts"); speciesDataset = Model.Core.Species; int speciesCount = speciesDataset.Count; resprout = Model.Core.Landscape.NewSiteVar <BitArray>(); serotiny = Model.Core.Landscape.NewSiteVar <BitArray>(); noEstablish = Model.Core.Landscape.NewSiteVar <bool>(); foreach (ActiveSite site in Model.Core.Landscape.ActiveSites) { resprout[site] = new BitArray(speciesCount); serotiny[site] = new BitArray(speciesCount); } noEstablish.ActiveSiteValues = false; planting = new Planting(); }
//--------------------------------------------------------------------- public static void Initialize() { outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar<Outbreak>(); timeOfLastEvent = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); //neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts"); cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); insectName = PlugIn.ModelCore.Landscape.NewSiteVar<string>(); //SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0; SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0; SiteVars.InsectName.ActiveSiteValues = ""; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SiteVars.OutbreakVars = null; //new Outbreak(); } if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } PlugIn.ModelCore.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BiomassInsects.TimeOfLastEvent"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.InsectName, "BiomassInsects.InsectName"); }
//--------------------------------------------------------------------- public static void Initialize() { outbreakVariables = Model.Core.Landscape.NewSiteVar<Outbreak>(); timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>(); biomassRemoved = Model.Core.Landscape.NewSiteVar<int>(); neighborhoodDefoliation = Model.Core.Landscape.NewSiteVar<double>(); initialOutbreakProb = Model.Core.Landscape.NewSiteVar<double>(); //Model.Core.RegisterSiteVar(SiteVars.DefoliationByYear, "Insect.GrowthReduction"); Model.Core.GetSiteVar(SiteVars.WoodyDebris, "Succession.WoodyDebris"); SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0; SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0; //SiteVars.SumLastDefoliation.ActiveSiteValues = 0.0; //SiteVars.Disturbed.ActiveSiteValues = false; //Initialize outbreaks: foreach (ActiveSite site in Model.Core.Landscape) { SiteVars.OutbreakVars = null; //new Outbreak(); //SiteVars.DefoliationByYear[site] = new Dictionary<int, double>(); } }
//private static ISiteVar<Landis.Library.Biomass.Species.AuxParm<double>> defoliation; // Defoliation per site per species //--------------------------------------------------------------------- public static void Initialize() { //defoliation = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<double>>(); outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar<Outbreak>(); timeOfLastEvent = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); //biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); //initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts"); if (cohorts == null) { cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.LeafBiomassCohorts"); } cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; //SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SiteVars.OutbreakVars = null; } if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } //PlugIn.ModelCore.RegisterSiteVar(defoliation, "Insect.Defoliation"); }
//--------------------------------------------------------------------- public static void Initialize(ICore modelCore) { landUse = modelCore.Landscape.NewSiteVar <LandUse>(); allowHarvest = new AllowHarvestSiteVar(); Model.Core.RegisterSiteVar(allowHarvest, "LandUse.AllowHarvest"); Landis.Library.BiomassHarvest.SiteVars.CohortsPartiallyDamaged = modelCore.Landscape.NewSiteVar <int>(); }
//--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } localVars = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, int> >(); derivedVars = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >(); neighborVars = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >(); climateVars = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >(); distanceVars = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >(); speciesModels = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <string, float> >(); foreach (Site site in PlugIn.ModelCore.Landscape.AllSites) { SiteVars.LocalVars[site] = new Dictionary <string, int>(); SiteVars.DerivedVars[site] = new Dictionary <string, float>(); SiteVars.NeighborVars[site] = new Dictionary <string, float>(); SiteVars.ClimateVars[site] = new Dictionary <string, float>(); SiteVars.DistanceVars[site] = new Dictionary <string, float>(); SiteVars.SpeciesModels[site] = new Dictionary <string, float>(); } }
//--------------------------------------------------------------------- public InsectParameters(int sppCount) { sppTable = new List <ISppParameters>(sppCount); susceptibleTable = new List <ISusceptible>(); neighbors = new List <RelativeLocation>(); hostDefoliationByYear = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <int, double[]> >(); disturbed = PlugIn.ModelCore.Landscape.NewSiteVar <bool>(); lastYearDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); thisYearDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); outbreakStopYear = 0; //default = beginning of simulation outbreakStartYear = 0; //default = beginning of simulation mortalityYear = 0; //default = beginning of simulation activeOutbreak = false; initialSites = 0; lastStartYear = 0; lastStopYear = 0; lastBioRemoved = 0; annMort = ""; maxDur = int.MaxValue; startYear = 0; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { hostDefoliationByYear[site] = new Dictionary <int, double[]>(); } }
//--------------------------------------------------------------------- /// <summary> /// Objects and Lists must be initialized. /// </summary> public Agent(int sppCount, int ecoCount) { SppParameters = new ISppParameters[sppCount]; EcoParameters = new IEcoParameters[ecoCount]; //DistParameters = new IDistParameters[distCount]; disturbanceTypes = new List <IDisturbanceType>(); negSppList = new List <ISpecies>(); //advRegenSppList = new List<ISpecies>(); dispersalNeighbors = new List <RelativeLocation>(); resourceNeighbors = new List <RelativeLocationWeighted>(); severity = PlugIn.ModelCore.Landscape.NewSiteVar <byte>(); outbreakZone = PlugIn.ModelCore.Landscape.NewSiteVar <Zone>(); climateDataTable = new DataTable(); for (int i = 0; i < sppCount; i++) { SppParameters[i] = new SppParameters(); } for (int i = 0; i < ecoCount; i++) { EcoParameters[i] = new EcoParameters(); } //for (int i = 0; i < distCount; i++) // DistParameters[i] = new DistParameters(); }
//--------------------------------------------------------------------- public Insect(int sppCount) { susceptibility = new Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species); growthreduceslope = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species); growthreduceintercept = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species); mortalityslope = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species); mortalityintercept = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species); susceptibleTable = new List <ISusceptible>(); neighbors = new List <RelativeLocation>(); hostDefoliationByYear = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <int, double[]> >(); disturbed = PlugIn.ModelCore.Landscape.NewSiteVar <bool>(); lastYearDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); thisYearDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); outbreakStopYear = 0; //default = beginning of simulation outbreakStartYear = 0; //default = beginning of simulation mortalityYear = 0; //default = beginning of simulation activeOutbreak = false; initialSites = 0; lastStartYear = 0; lastStopYear = 0; lastBioRemoved = 0; annMort = ""; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { hostDefoliationByYear[site] = new Dictionary <int, double[]>(); } }
//----------------------------------------------------------------- public SiteVariables(ILandscape landscape, Ecoregions.Map ecoregionMap) { ecoregion = ecoregionMap.CreateSiteVar(landscape); disturbed = landscape.NewSiteVar <bool>(); registeredVars = new Dictionary <string, ISiteVariable>(); }
//--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.AgeCohorts"); fuelType = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); decidFuelType = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); percentConifer = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); percentHardwood = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); percentDeadFir = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar <string>("Harvest.PrescriptionName"); timeOfLastHarvest = PlugIn.ModelCore.GetSiteVar <int>("Harvest.TimeOfLastEvent"); harvestCohortsKilled = PlugIn.ModelCore.GetSiteVar <int>("Harvest.CohortsDamaged"); timeOfLastFire = PlugIn.ModelCore.GetSiteVar <int>("Fire.TimeOfLastEvent"); fireSeverity = PlugIn.ModelCore.GetSiteVar <byte>("Fire.Severity"); timeOfLastWind = PlugIn.ModelCore.GetSiteVar <int>("Wind.TimeOfLastEvent"); windSeverity = PlugIn.ModelCore.GetSiteVar <byte>("Wind.Severity"); numberDeadFirCohorts = PlugIn.ModelCore.GetSiteVar <Dictionary <int, int> >("BDA.NumCFSConifers"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir"); }
//--------------------------------------------------------------------- public static void Initialize(ILandscapeCohorts cohorts) { //eventVar = Model.Core.Landscape.NewSiteVar<Epidemic>(InactiveSiteMode.DistinctValues); timeOfLastBDA = Model.Core.Landscape.NewSiteVar<int>(); neighborResourceDom = Model.Core.Landscape.NewSiteVar<double>(); siteResourceDomMod = Model.Core.Landscape.NewSiteVar<double>(); siteResourceDom = Model.Core.Landscape.NewSiteVar<double>(); vulnerability = Model.Core.Landscape.NewSiteVar<double>(); disturbed = Model.Core.Landscape.NewSiteVar<bool>(); //numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar<int[]>(); numberCFSconifersKilled = Model.Core.Landscape.NewSiteVar<Dictionary<int,int>>(); SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.NeighborResourceDom.ActiveSiteValues = 0.0; SiteVars.SiteResourceDomMod.ActiveSiteValues = 0.0; SiteVars.SiteResourceDom.ActiveSiteValues = 0.0; SiteVars.Vulnerability.ActiveSiteValues = 0.0; foreach(ActiveSite site in Model.Core.Landscape) //SiteVars.NumberCFSconifersKilled[site] = new int[Model.Core.EndTime - Model.Core.StartTime + 1]; SiteVars.NumberCFSconifersKilled[site] = new Dictionary<int, int>(); // Added for v1.1 to enable interactions with CFS fuels extension. Model.Core.RegisterSiteVar(SiteVars.NumberCFSconifersKilled, "BDA.NumCFSConifers"); Model.Core.RegisterSiteVar(SiteVars.TimeOfLastEvent, "BDA.TimeOfLastEvent"); }
//--------------------------------------------------------------------- public static void Initialize() { mgmtAreas = Model.Core.Landscape.NewSiteVar<ManagementArea>(); stands = Model.Core.Landscape.NewSiteVar<Stand>(); prescriptions = Model.Core.Landscape.NewSiteVar<Prescription>(); cohortsKilled = Model.Core.Landscape.NewSiteVar<int>(); }
//--------------------------------------------------------------------- public static void Initialize() { outbreakVariables = PlugIn.ModelCore.Landscape.NewSiteVar <Outbreak>(); timeOfLastEvent = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); cohorts = PlugIn.ModelCore.GetSiteVar <ISiteCohorts>("Succession.BiomassCohorts"); cohortsPartiallyDamaged = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); //SiteVars.NeighborhoodDefoliation.ActiveSiteValues = 0.0; SiteVars.TimeOfLastEvent.ActiveSiteValues = -10000; SiteVars.InitialOutbreakProb.ActiveSiteValues = 0.0; //Initialize outbreaks: foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { SiteVars.OutbreakVars = null; //new Outbreak(); } if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } }
//--------------------------------------------------------------------- public static void Initialize() { fuelType = Model.Core.Landscape.NewSiteVar<int>(); decidFuelType = Model.Core.Landscape.NewSiteVar<int>(); percentConifer = Model.Core.Landscape.NewSiteVar<int>(); percentHardwood = Model.Core.Landscape.NewSiteVar<int>(); percentDeadFir = Model.Core.Landscape.NewSiteVar<int>(); timeOfLastHarvest = Model.Core.GetSiteVar<int>("Harvest.TimeOfLastEvent"); harvestPrescriptionName = Model.Core.GetSiteVar<string>("Harvest.PrescriptionName"); harvestCohortsKilled = Model.Core.GetSiteVar<int>("Harvest.CohortsDamaged"); timeOfLastFire = Model.Core.GetSiteVar<int>("Fire.TimeOfLastEvent"); fireSeverity = Model.Core.GetSiteVar<byte>("Fire.Severity"); timeOfLastWind = Model.Core.GetSiteVar<int>("Wind.TimeOfLastEvent"); windSeverity = Model.Core.GetSiteVar<byte>("Wind.Severity"); numberDeadFirCohorts = Model.Core.GetSiteVar<Dictionary<int,int>>("BDA.NumCFSConifers"); Model.Core.RegisterSiteVar(SiteVars.FuelType, "Fuels.CFSFuelType"); Model.Core.RegisterSiteVar(SiteVars.DecidFuelType, "Fuels.DecidFuelType"); Model.Core.RegisterSiteVar(SiteVars.PercentConifer, "Fuels.PercentConifer"); Model.Core.RegisterSiteVar(SiteVars.PercentHardwood, "Fuels.PercentHardwood"); Model.Core.RegisterSiteVar(SiteVars.PercentDeadFir, "Fuels.PercentDeadFir"); }
//--------------------------------------------------------------------- /// <summary> /// Initializes the module. /// </summary> public static void Initialize() { biomassCohorts = PlugIn.ModelCore.Landscape.NewSiteVar <Library.BiomassCohorts.SiteCohorts>(); ISiteVar <Landis.Library.BiomassCohorts.ISiteCohorts> biomassCohortSiteVar = Landis.Library.Succession.CohortSiteVar <Landis.Library.BiomassCohorts.ISiteCohorts> .Wrap(biomassCohorts); baseCohortsSiteVar = Landis.Library.Succession.CohortSiteVar <Landis.Library.AgeOnlyCohorts.ISiteCohorts> .Wrap(biomassCohorts); woodyDebris = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Pool>(); litter = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Pool>(); ag_npp = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); Defoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>(); previousYearMortality = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); currentYearMortality = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); totalBiomass = PlugIn.ModelCore.Landscape.NewSiteVar <int>(); foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { // site cohorts are initialized by the PlugIn.InitializeSite method woodyDebris[site] = new Landis.Library.Biomass.Pool(); litter[site] = new Landis.Library.Biomass.Pool(); } currentYearMortality.ActiveSiteValues = 0; previousYearMortality.ActiveSiteValues = 0; PlugIn.ModelCore.RegisterSiteVar(biomassCohortSiteVar, "Succession.BiomassCohorts"); PlugIn.ModelCore.RegisterSiteVar(baseCohortsSiteVar, "Succession.AgeCohorts"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.WoodyDebris, "Succession.WoodyDebris"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.Litter, "Succession.Litter"); }
//--------------------------------------------------------------------- // A helper function to shuffle a list of ActiveSties: Algorithm may be improved. // Sites are weighted for ignition in the Shuffle method, based on the respective inputs maps. private static List <ActiveSite> Shuffle(ISiteVar <double> weightedSiteVar) { List <ActiveSite> list = new List <ActiveSite>();; foreach (ActiveSite site in PlugIn.ModelCore.Landscape.ActiveSites) { if (weightedSiteVar[site] > 0.0) { list.Add(site); } } List <ActiveSite> shuffledList = new List <ActiveSite>(); double totalWeight = 0; foreach (ActiveSite site in list) { totalWeight += weightedSiteVar[site]; } while (list.Count > 0) { ActiveSite toAdd; toAdd = SelectRandomSite(list, weightedSiteVar, totalWeight); shuffledList.Add(toAdd); totalWeight -= weightedSiteVar[toAdd]; list.Remove(toAdd); } return(shuffledList); }
//--------------------------------------------------------------------- // The random selection based on input map weights public static ActiveSite SelectRandomSite(List <ActiveSite> list, ISiteVar <double> weightedSiteVar, double totalWeight) { ActiveSite selectedSite = list.FirstOrDefault(); // currently selected element int randomNum = FireEvent.rnd.Next((int)totalWeight); while (randomNum > totalWeight) { randomNum = FireEvent.rnd.Next(list.Count); } //check to make sure it is foreach (ActiveSite site in list) { if (randomNum < weightedSiteVar[site]) { selectedSite = site; break; } randomNum -= (int)weightedSiteVar[site]; } return(selectedSite); // when iterations end, selected is some element of sequence. }
//private static BaseCohortsSiteVar baseCohortsSiteVar; //--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.Landscape.NewSiteVar <SiteCohorts>(); ISiteVar <Landis.Library.AgeOnlyCohorts.ISiteCohorts> baseCohorts = Landis.Library.Succession.CohortSiteVar <Landis.Library.AgeOnlyCohorts.ISiteCohorts> .Wrap(cohorts); PlugIn.ModelCore.RegisterSiteVar(baseCohorts, "Succession.AgeCohorts"); }
//--------------------------------------------------------------------- /// <summary> /// Initializes for disturbances. /// </summary> public static void InitializeDisturbances() { FireSeverity = PlugIn.ModelCore.GetSiteVar <byte>("Fire.Severity"); HarvestPrescriptionName = PlugIn.ModelCore.GetSiteVar <string>("Harvest.PrescriptionName"); //if(FireSeverity == null) // throw new System.ApplicationException("TEST Error: Fire Severity NOT Initialized."); }
public void GetVar_NameNotRegistered() { SiteVarRegistry registry = new SiteVarRegistry(); ISiteVar <bool> fetchedVar = registry.GetVar <bool>("Should not exist"); Assert.IsNull(fetchedVar); }
//private static ISiteVar<Library.AgeOnlyCohorts.SiteCohorts> baseCohorts; //private static BaseCohortsSiteVar baseCohortsSiteVar; //--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<ISiteCohorts>(); //baseCohortsSiteVar = new BaseCohortsSiteVar(cohorts); //PlugIn.ModelCore.RegisterSiteVar(baseCohortsSiteVar, "Succession.AgeOnlyCohorts"); PlugIn.ModelCore.RegisterSiteVar(cohorts, "Succession.AgeCohorts"); }
//private static BaseCohortsSiteVar baseCohortsSiteVar; //--------------------------------------------------------------------- public static void Initialize() { cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<SiteCohorts>(); ISiteVar<Landis.Library.AgeOnlyCohorts.ISiteCohorts> baseCohorts = Landis.Library.Succession.CohortSiteVar<Landis.Library.AgeOnlyCohorts.ISiteCohorts>.Wrap(cohorts); PlugIn.ModelCore.RegisterSiteVar(baseCohorts, "Succession.AgeCohorts"); }
//--------------------------------------------------------------------- protected FormOfReproduction() { int speciesCount = speciesDataset.Count; selectedSpecies = Model.Core.Landscape.NewSiteVar<BitArray>(); foreach (ActiveSite site in Model.Core.Landscape.ActiveSites) { selectedSpecies[site] = new BitArray(speciesCount); } }
public void Register_SameName() { ISiteVar <bool> var = landscape.NewSiteVar <bool>(); string name = "foo"; siteVarRegistry.RegisterVar(var, name); TryRegister(var, name); }
//--------------------------------------------------------------------- internal static void Initialize() { timeOfLast = Model.Core.Landscape.NewSiteVar<int>(); shade = Model.Core.Landscape.NewSiteVar<byte>(); disturbed = Model.Core.Landscape.NewSiteVar<bool>(); Model.Core.RegisterSiteVar(timeOfLast, "TimeOfLastSuccession"); Model.Core.RegisterSiteVar(shade, "Shade"); }
//--------------------------------------------------------------------- /// <summary> /// Initializes the module. /// </summary> public static void Initialize() { cohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.LeafBiomassCohorts"); if (cohorts == null) { string mesg = string.Format("Cohorts are empty. Please double-check that this extension is compatible with your chosen succession extension."); throw new System.ApplicationException(mesg); } }
public static void ReInitialize() { timeOfLastFire = PlugIn.ModelCore.GetSiteVar<int>("Fire.TimeOfLastEvent"); timeOfLastWind = PlugIn.ModelCore.GetSiteVar<int>("Wind.TimeOfLastEvent"); cfsFuelType = PlugIn.ModelCore.GetSiteVar<int>("Fuels.CFSFuelType"); //if (SiteVars.CFSFuelType == null) // throw new System.ApplicationException("Error: CFS Fuel Type NOT Initialized. Louise is making me crazy. Fuel extension MUST be active."); }
//--------------------------------------------------------------------- public static void Initialize() { //timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>(); cohorts = Model.Core.Landscape.NewSiteVar<SiteCohorts>(); //if (cohorts.ActiveSiteValues.HasAge()) Model.Core.RegisterSiteVar(SiteVars.Cohorts, "Succession.Cohorts"); }
//--------------------------------------------------------------------- public static void InitializeTimeOfLastDisturbances() { harvestPrescriptionName = PlugIn.ModelCore.GetSiteVar<string>("Harvest.PrescriptionName"); timeOfLastHarvest = PlugIn.ModelCore.GetSiteVar<int>("Harvest.TimeOfLastEvent"); harvestCohortsKilled = PlugIn.ModelCore.GetSiteVar<int>("Harvest.CohortsKilled"); timeOfLastFire = PlugIn.ModelCore.GetSiteVar<int>("Fire.TimeOfLastEvent"); fireSeverity = PlugIn.ModelCore.GetSiteVar<byte>("Fire.Severity"); timeOfLastWind = PlugIn.ModelCore.GetSiteVar<int>("Wind.TimeOfLastEvent"); windSeverity = PlugIn.ModelCore.GetSiteVar<byte>("Wind.Severity"); }
//--------------------------------------------------------------------- public static void Initialize(string varName) { biomassCohorts = PlugIn.ModelCore.GetSiteVar<ISiteCohorts>("Succession.BiomassCohorts"); droughtBioRemoved = PlugIn.ModelCore.Landscape.NewSiteVar<ushort>(); droughtYears = PlugIn.ModelCore.GetSiteVar<double>(varName); if (droughtYears == null) { string mesg = string.Format("VariableName '{0}' does not match any variable name provided by the Drought Generator Extension.",varName); throw new System.ApplicationException(mesg); } }
//--------------------------------------------------------------------- public static void Initialize() { biomassRemoved = Model.Core.Landscape.NewSiteVar<double>(); cohortsPartiallyDamaged = Model.Core.Landscape.NewSiteVar<int>(); capacityReduction = Model.Core.Landscape.NewSiteVar<double>(); SiteVars.CapacityReduction.ActiveSiteValues = 0.0; Model.Core.RegisterSiteVar(SiteVars.CapacityReduction, "Harvest.CapacityReduction"); }
public static float AverageSiteVar(ISiteVar<float> sitevar) { float total = 0; float n = 0; foreach (ActiveSite s in PlugIn.ModelCore.Landscape) { float v = sitevar[s]; total += v; n++; } return total / n; }
//--------------------------------------------------------------------- public static void Initialize() { eventVar = Model.Core.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues); timeOfLastEvent = Model.Core.Landscape.NewSiteVar<int>(); severity = Model.Core.Landscape.NewSiteVar<byte>(); disturbed = Model.Core.Landscape.NewSiteVar<bool>(); lastSeverity = Model.Core.Landscape.NewSiteVar<byte>(); Model.Core.RegisterSiteVar(SiteVars.TimeOfLastEvent, "Wind.TimeOfLastEvent"); Model.Core.RegisterSiteVar(SiteVars.LastSeverity, "Wind.LastSeverity"); }
public static void ReInitialize() { harvestPrescriptionName = Model.Core.GetSiteVar<string>("Harvest.PrescriptionName"); timeOfLastHarvest = Model.Core.GetSiteVar<int>("Harvest.TimeOfLastEvent"); harvestCohortsKilled = Model.Core.GetSiteVar<int>("Harvest.CohortsKilled"); timeOfLastFire = Model.Core.GetSiteVar<int>("Fire.TimeOfLastEvent"); fireSeverity = Model.Core.GetSiteVar<byte>("Fire.Severity"); timeOfLastWind = Model.Core.GetSiteVar<int>("Wind.TimeOfLastEvent"); windSeverity = Model.Core.GetSiteVar<byte>("Wind.Severity"); //numberDeadFirCohorts = Model.Core.GetSiteVar<int[]>("BDA.NumCFSConifers"); numberDeadFirCohorts = Model.Core.GetSiteVar<Dictionary<int,int>>("BDA.NumCFSConifers"); }
//--------------------------------------------------------------------- public static void Initialize(ILandscapeCohorts<AgeCohort.ICohort> cohorts) { eventVar = Model.Landscape.NewSiteVar<Event>(InactiveSiteMode.DistinctValues); timeOfLastFire = Model.Landscape.NewSiteVar<int>(); severity = Model.Landscape.NewSiteVar<byte>(); //Initialize TimeSinceLastFire to the maximum cohort age: foreach (ActiveSite site in Model.Landscape) { ushort maxAge = AgeCohort.Util.GetMaxAge(cohorts[site]); SiteVars.timeOfLastFire[site] = maxAge * -1; } }