Disturbance functions
FireDisturbance(
cohortData = copy(sim$cohortData),
cohortDefinitionCols = c("pixelGroup", "age", "speciesCode"),
calibrate = FALSE,
postFireRegenSummary = copy(sim$postFireRegenSummary),
treedFirePixelTableSinceLastDisp = sim$treedFirePixelTableSinceLastDisp,
rstCurrentBurn = sim$rstCurrentBurn,
inactivePixelIndex = sim$inactivePixelIndex,
pixelGroupMap = sim$pixelGroupMap,
currentTime = NULL,
rasterToMatch = sim$rasterToMatch,
species = copy(sim$species),
sufficientLight = copy(sim$sufficientLight),
speciesEcoregion = copy(sim$speciesEcoregion),
initialB = 10,
successionTimestep = 10L,
doAssertion = getOption("LandR.assertions", TRUE),
verbose = getOption("LandR.verbose", TRUE)
)
FireDisturbancePM(
cohortData = copy(sim$cohortData),
cohortDefinitionCols = c("pixelGroup", "age", "speciesCode"),
colsForPixelGroups = LandR::columnsForPixelGroups,
calibrate = FALSE,
LANDISPM = TRUE,
postFireRegenSummary = copy(sim$postFireRegenSummary),
treedFirePixelTableSinceLastDisp = copy(sim$treedFirePixelTableSinceLastDisp),
rstCurrentBurn = sim$rstCurrentBurn,
inactivePixelIndex = sim$inactivePixelIndex,
pixelGroupMap = sim$pixelGroupMap,
currentTime = NULL,
rasterToMatch = sim$rasterToMatch,
fireDamageTable = copy(sim$fireDamageTable),
fireRSORas = sim$fireRSORas,
fireROSRas = sim$fireROSRas,
fireCFBRas = sim$fireCFBRas,
species = copy(sim$species),
sufficientLight = copy(sim$sufficientLight),
speciesEcoregion = copy(sim$speciesEcoregion),
initialB = 10,
minRelativeB = copy(sim$minRelativeB),
successionTimestep = 10L,
doAssertion = getOption("LandR.assertions", TRUE),
verbose = getOption("LandR.verbose", TRUE)
)
PeatlandThermokarst(
thawedPixIDs = copy(sim$thawedPixIDs),
treedThawedPixelTableSinceLastDisp = copy(sim$treedThawedPixelTableSinceLastDisp),
wetlands = sim$wetlands,
cohortData = copy(sim$cohortData),
pixelGroupMap = sim$pixelGroupMap,
rasterToMatch = sim$rasterToMatch,
species = copy(sim$species),
speciesEcoregion = copy(sim$speciesEcoregion),
cohortDefinitionCols = c("pixelGroup", "speciesCode", "age"),
initialB = 10L,
inactivePixelIndex = sim$inactivePixelIndex,
currentTime = NULL,
successionTimestep = 10L
)A data.table with columns: pixelGroup, ecoregionGroup,
speciesCode, and optionally age, B, mortality, aNPPAct, and sumB.
the columns in cohortData that define unique cohorts
logical. Determines whether to output postFirePixelCohortData.
Defaults to FALSE
a data.table summarizing for which species serotiny/resprouting were
activated and in how many pixels, for each year. Only necessary if calibrate = TRUE.
data.table with 3 columns: pixelIndex,
pixelGroup, and burnTime. Each row represents a forested pixel that was
burned up to and including this year, since last dispersal event, with its
corresponding pixelGroup and time it occurred Pixel group IDs correspond to
the last year's pixelGroupMap and not necessarily the pixelGroupMap of
the burnTime year.
raster layer with burnt pixels in currentTime.
Usually generated by a fire spread module (or collection of modules) like
fireSense. Values in the raster should contain 0's for unburnt pixels and
values > 0 for burn pixels. NA's are assumed to be outside of the study area.
an internal object to Biomass_core that track of
inactive pixels.
A RasterLayer with pixel values equal to a pixel group
number that corresponds exactly to pixelGroup column in cohortData.
numeric. Current simulation time step (as in time(sim))
A RasterLayer objects to use as the template for all subsequent
raster operations (i.e., the one used throughout the simulation).
a data.table with species traits such as longevity, shade tolerance, etc.
Must have column speciesCode, with species names/IDs. The following is a
list of default trait columns:
"species" same as "speciesCode" -- species ID name
"speciesCode"
"Area" -- inherited from LANDIS-II default table, the Canadian ecoregion from which traits where derived. Not used during the simulation
"firetolerance" -- modulerelative (to other species) fire tolerance
"growthcurve" and "mortalityshape" -- growth curve shape parameters.
"longevity" -- maximum species age
"postfireregen" -- post-fire regeneration strategy ("serotiny", "resprout" or "none")
"resproutprob" -- probability of resprouting
"resproutage_min" -- minimum age at which species is capable of resprouting
"resproutage_max" -- maximum age at which species is capable of resprouting
"seeddistance_eff" -- effective dispersal distance
"seeddistance_max" -- maximum dispersal distance
"shadetolerance" -- relative (to other species) shade tolerance
"sexualmature" -- age at sexual maturity Known optional parameters added/needed by some modules (the user may add others for their own modules):
"inflationFactor" -- Biomass_speciesParameters module: inflation factor for maxB
"growthCurveSource" -- Biomass_speciesParameters module: how "growthcurve" was estimated
"mANPPproportion" -- Biomass_speciesParameters module: multiplication factor to calculate maxANPP from maxB
"thermokarsttol" -- Biomass_disturbances module: proportion of biomass surviving after thermokarst (i.e. permafrost thaw). Applied equally across cohorts.
Parameters inherited from LANDIS-II default table, but not used in LandR at the moment:
"leaflongevity"
"wooddecayrate"
"leafLignin"
"hardsoft" Please see the LANDIS-II Biomass Succession Extension v3.2.1 manual (Scheller and Miranda 2015) for further detail.
a data.frame (not data.table!) containing probability
of establishment, given a site's light conditions (X0-X5) for each level
of a species shade tolerance (1-5).
A data.table with species-ecoregion-specific species trait values.
Ecoregion refers to "ecolocation", a categorical variable grouping sites with similar biophysical
characteristics. The table should have at least the following columns: speciesCode and
ecoregionGroup, character representation of species and ecoregion groups respectively,
maxB the maximum biomass for the species in a given 'ecoregion', maxANPP the maximum
aboveground net primary productivity and SEP the species establishment probability.
May contain columns inflationFactor (used to adjust maxB) and mANPPproportion
(used to calculate maxANPP).
the initial biomass of new cohorts. Defaults to 10.
If NULL or NA, initial cohort biomass is calculated as in LANDIS-II Biomass Succession
Extension v3.2.1 (Scheller & Miranda, 2015):
initialB = asInteger(pmin(maxANPP, asInteger(pmax(1, maxANPP \* exp(-1.6 \* sumB / maxB_eco)))))
where maxANPP and maxB_eco are the maximum ANPP and B parameters of the species
in question within the pixel's ecolocation, and sumB is the total stand biomass
excluding cohorts with ages less than successionTimestep.
The time between successive seed dispersal events. In LANDIS-II, this is called "Succession Timestep".
A logical indicating whether some internal tests should be run to
ensure the function is running correctly.
Default: getOption("LandR.assertions", TRUE).
Controls message output. Defaults to getOption("LandR.verbose")
character. cohortData columns used to find identical pixels in terms of
cohort composition, and group them into pixelGroups.
logical. Should partial mortality be calculated as in LANDIS-II Dynamic Fire System v3.0.
Must be TRUE for the time being.
data.table defining upper age limit of cohorts killed by fire.
See LANDIS-II Dynamic Fire System v3.0 Manual for an example.
raster layer of critical spread rate for crowning (m/min) for each burned pixel. If not provided dummy values are used.
raster layer of equilibrium rate of spread (m/min) for each burned pixel. If not provided dummy values are used.
raster layer of crown fraction burnt for each burned pixel. If not provided dummy values are used.
a data.frame with the cut points to classify stand shadiness.
integer. Vector of pixel IDs than underwent thermokarst (and were converted to wetlands) in the current year (not the last thermokarst event).
data.table with 3 columns: pixelIndex,
pixelGroup, and burnTime. Each row represents a forested pixel that was
burned up to and including this year, since last dispersal event, with its
corresponding pixelGroup and time it occurred Pixel group IDs correspond to
the last year's pixelGroupMap and not necessarily the pixelGroupMap of
the burnTime year.
binary SpatRaster with current wetland pixels.
a list of objects to be exported to sim:
cohortData
pixelGroupMap
lastFireYear
treedFirePixelTableSinceLastDisp
serotinyResproutSuccessPixels
severityBMap
severityData
postFireRegenSummary (if calibrate == TRUE and !is.null(postFireRegenSummary))
FireDisturbance() simulates post-fire mortality, serotiny and regeneration sequentially occurring after a fire.
Post-fire mortality is assumed to be 100% (stand-replacement). The serotiny and regeneration
algorithms are based on those in LANDIS-II Biomass Succession extension, v3.2.1, with modifications
Requires the following objects in sim (passed as sim$*):
@template FireDisturbance.
For any given burnt pixel, the function begins by killing all cohorts
(i.e. removing them from cohortData). Then it activates serotiny for
serotinous species that had been present pre-fire, and reprouting for reprouter
species. Whether a species successfully regenerates via serotiny or resprouting
depends on its traits (whether it is serotinous, resprouter, both or none;
species table), pre-fire cohort age (in cohortData table), its light/shade
requirements (species table) and its local maxB (speciesEcoregion)
table (see Scheller & Miranda, 2015 and Scheller & Mladenoff, 2004 for details).
Unlike in LANDIS-II Biomass Succession extension, v3.2.1, here we allow serotiny
and resprouting to occur in the same pixel to reflect the competitive advantage
of reprouters. However, for a given species only serotiny (takes precedence)
or resprouting can be activated.
The species table must contain the columns:
sexualmature -- age at sexual maturity
postfireregen -- post-fire regeneration strategy ("serotiny", "resprout" or "none")
shadetolerance -- shade tolerance value relative to other species.
resproutage_min, resproutage_max -- minimum and maximum age at which species can repsrout
resproutprob -- probability of resporuting success (before light/shade suitability is assessed)
FireDisturbancePM() simulates partial post-fire mortality, serotiny and regeneration
sequentially after a fire. The level of mortality depends of fire severity,
and, by default, follows the mechanisms in LANDIS-II Dynamic Fire System v3.0.
Serotiny and regeneration algorithms algorithms are based on those in
LANDIS-II Biomass Succession extension, v3.2.1, with modifications (see FireDisturbance()).
Requires the following objects in sim (and passed as sim$*):
@template FireDisturbance
fireDamageTable
fireRSORas (Critical spread rate for crowning)
fireROSRas (Equilibrium Head Fire Rate of Spread)
fireCFBRas (Crown Fraction Burnt)
minRelativeB
Rasters of fire behaviour properties (fireRSORas, fireROSRas and fireCFBRas)
can be calculated using the cffdrs package.
The species table must contain the columns:
firetolerance -- fire tolerance value relative to other species.
longevity -- maximum species age
sexualmature -- age at sexual maturity
postfireregen -- post-fire regeneration strategy ("serotiny", "resprout" or "none")
shadetolerance -- shade tolerance value relative to other species.
resproutage_min, resproutage_max -- minimum and maximum age at which species can repsrout
resproutprob -- probability of resporuting success (before light/shade suitability is assessed)
PeatlandThermokarst() simulates tree cohort survival/mortality after
peatland permafrost thermokarst. The level of mortality depends on species
tolerance to thermokarst, determined by the thermokarsttol trait column
in the species traits table. At the moment, this level of tolerance is used
as the proportion of a cohort biomass that survives (is kept) when a pixel undergoes
thermokarst. This is similar to the partial disturbance effects used in LANDIS-II Biomass
Harvest v4.0. Requires the following objects in sim (and passed as sim$*):
thawedPixIDs
treedThawedPixelTableSinceLastDisp
wetlands
cohortData
pixelGroupMap
rasterToMatch
species
speciesEcoregion
inactivePixelIndex
The species table must contain the columns:
thermokarsttol -- proportion of cohort biomass (B) that survives thermokarst
Scheller, R.M. & Miranda, B.R. (2015). LANDIS-II Biomass Succession v3.2 Extension – User Guide.
Scheller, R.M. & Mladenoff, D.J. (2004). A forest growth and biomass module for a landscape simulation model, LANDIS: design, validation, and application. Ecological Modelling, 180, 211–229.
Sturtevant, B.R., Miranda, B.R., Scheller, R.M. & Shinneman, D. (2018). LANDIS-II Dynamic Fire System Extension v3.0 – User Guide.
Scheller, R.M. & Domingo, J.B. (2021). LANDIS-II Biomass Harvest v4.4 Extension – User Guide