This script is designed to create parameter files containing succession parameters for each PFG (one file for each of them) used in the core module of FATE.

PRE_FATE.params_PFGsuccession(
  name.simulation,
  mat.PFG.succ,
  strata.limits = c(0, 20, 50, 150, 400, 1000, 2000, 5000, 10000),
  strata.limits_reduce = TRUE,
  opt.folder.name = NULL
)

Arguments

name.simulation

a string corresponding to the main directory or simulation name of the FATE simulation

mat.PFG.succ

a data.frame with at least 5 columns :
PFG, type, height, maturity, longevity
(and optionally, max_abundance, potential_fecundity, immature_size, is_alien, flammability)
(see Details)

strata.limits

a vector of integer containing values among which height strata limits will be chosen

strata.limits_reduce

default TRUE.
If TRUE, stratum height limits are checked to try and bring several PFGs together in a same stratum

opt.folder.name

(optional)
a string corresponding to the name of the folder that will be created into the name.simulation/DATA/PFGS/SUCC/ directory to store the results

Value

A .txt file per PFG into the name.simulation/DATA/PFGS/SUCC/ directory with the following parameters :

NAME

name of the PFG

TYPE

PFG life-form (H: herbaceous C: chamaephyte P: phanerophyte)

HEIGHT

PFG maximum height (in cm)

MATURITY

PFG maturity age (in years)

LONGEVITY

PFG life span (in years)

MAX_STRATUM

maximum height stratum that the PFG can reach

MAX_ABUNDANCE

maximum abundance / space (quantitative) that the PFG is able to produce / occupy
(1: Low 2: Medium 3: High)

IMM_SIZE

PFG immature relative size (integer between 0 and 100%)

CHANG_STR_AGES

ages at which the PFG goes in the upper stratum
(in years, put a value higher than the PFG life span if it is not supposed to rise a stratum)

SEED_POOL_LIFE

maximum number of years seeds are able to survive (for active and dormant pool)

SEED_DORMANCY

are the seeds dormant or not (0: No 1: Yes)

POTENTIAL_
FECUNDITY

maximum number of seeds produced by the PFG

IS_ALIEN

is the PFG an alien or not (0: No 1: Yes)

FLAMMABILITY

how easily the PFG burns (numeric)

A SUCC_COMPLETE_TABLE.csv file summarizing information for all groups into the name.simulation/DATA/PFGS/ directory.

This file can be used to parameterize the disturbance files (see PRE_FATE.params_PFGdisturbance).

If the opt.folder.name has been used, the files will be into the folder name.simulation/DATA/PFGS/SUCC/opt.folder.name/.

Details

The core module of FATE allows the user to simulate a primary vegetation succession based on a demography model.

Several parameters, given within mat.PFG.succ, are required for each PFG in order to set up this life cycle :

type

or life-form, based on Raunkier.
It should be either H (herbaceous), C (chamaephyte) or P (phanerophyte) for now

height

the maximum or average height that reach the PFG

maturity

the age from which the PFG can reproduce

longevity

the maximum or average lifespan of the PFG

(max_abundance)

the maximum abundance of mature PFG

(potential_fecundity)

the maximum number of seeds produced by the PFG
(otherwise the value is given within the global parameter file, see PRE_FATE.params_globalParameters)

(immature_size)

the relative size of immature versus mature plants

(is_alien)

if the PFG is to be considered as an alien (1) or not (0)

(flammability)

how easily the PFG burns

These values will allow to calculate or define a set of characteristics for all PFG :

STRATA_LIMITS

= height values that define each stratum.

Two methods to define these limits are available :

  • from predefined rules (using strata.limits_reduce = TRUE, strata.limits, height) :

    • limits should go exponentially and are selected among strata.limits

    • PFG are separated according to these strata.limits and then grouped making sure to have $$\text{number of PFG per stratum} \geq \sqrt{\text{total number of PFG}} - 2$$ to try to homogenize the number of PFG within each stratum.

  • from user data : (using strata.limits_reduce = FALSE)
    with the values contained within the strata.limits column, if provided

and a set of characteristics for each PFG :

MAX_STRATUM

= maximum stratum that each PFG can reach

MAX_ABUNDANCE

= maximum abundance of mature PFG
= It can be seen as a proxy of maximum carrying capacity for mature individuals
(and therefore as a broad proxy of the amount of space a PFG can occupy within a pixel (herbaceous should be more numerous than phanerophytes).

Two methods to define these abundances are available :

  • from predefined rules (using type, MAX_STRATUM) :

    MAX_STRATUM123+
    H (herbaceous)3322
    C (chamaephyte)3221
    P (phanerophyte)3211
  • from user data :
    with the values contained within the max_abundance column, if provided

IMM_SIZE

= relative size of immature versus mature plants
= for example, immature herbaceous take as much space as mature herbaceous, while immature phanerophytes take less space (and contribute to shade half less) than mature individuals

Two methods to define these sizes are available :

  • from predefined rules (using type, MAX_STRATUM) :

    MAX_STRATUM123+
    H (herbaceous)100%80%50%50%
    C (chamaephyte)100%50%50%50%
    P (phanerophyte)50%50%50%10%
  • from user data :
    with the values contained within the immature_size column, if provided

CHANG_STR_AGES

= at what age each PFG goes into the upper stratum

It is defined using a logistic growth curve with 2 points to parameterize it :

  1. at \(age = \text{maturity}/2\), \(height = \text{IMM_SIZE} * \text{height}\)

  2. at \(age = \text{longevity}\), \(height = \text{height}\)

POTENTIAL_FECUNDITY

= maximum number of seeds produced by the PFG

Two methods to define this number are available :

  • from predefined rules : same value for all PFG, given within the global parameter file
    (see PRE_FATE.params_globalParameters)

  • from user data :
    with the values contained within the potential_fecundity column, if provided

IS_ALIEN

= if the PFG is to be considered as an alien (1) or not (0)

FLAMMABILITY

= how easily the PFG burns

Author

Isabelle Boulangeat, Damien Georges, Maya Guéguen

Examples


## Create a skeleton folder with the default name ('FATE_simulation')
PRE_FATE.skeletonDirectory()

## Create PFG succession parameter files -----------------------------------------------------
tab.succ = data.frame(PFG = paste0('PFG', 1:6)
                      , type = c('C', 'C', 'H', 'H', 'P', 'P')
                      , height = c(10, 250, 36, 68, 1250, 550)
                      , maturity = c(5, 5, 3, 3, 8, 9)
                      , longevity = c(12, 200, 25, 4, 110, 70))
PRE_FATE.params_PFGsuccession(name.simulation = 'FATE_simulation'
                              , mat.PFG.succ = tab.succ)
                                                        

## Create PFG succession parameter files (with immature_size) --------------------------------
tab.succ = data.frame(PFG = paste0('PFG', 1:6)
                      , type = c('C', 'C', 'H', 'H', 'P', 'P')
                      , height = c(10, 250, 36, 68, 1250, 550)
                      , maturity = c(5, 5, 3, 3, 8, 9)
                      , longevity = c(12, 200, 25, 4, 110, 70)
                      , immature_size = c(100, 80, 100, 100, 10, 50))
PRE_FATE.params_PFGsuccession(name.simulation = 'FATE_simulation'
                              , mat.PFG.succ = tab.succ)
                                                        
                                                        
## -------------------------------------------------------------------------------------------


## Load example data
Champsaur_params = .loadData('Champsaur_params', 'RData')

## Create a skeleton folder
PRE_FATE.skeletonDirectory(name.simulation = 'FATE_Champsaur')



## PFG traits for succession
tab.succ = Champsaur_params$tab.SUCC
str(tab.succ)

## Create PFG succession parameter files -----------------------------------------------------
PRE_FATE.params_PFGsuccession(name.simulation = 'FATE_Champsaur'
                           , mat.PFG.succ = tab.succ)

## Create PFG succession parameter files (fixing strata limits) ------------------------------
PRE_FATE.params_PFGsuccession(name.simulation = 'FATE_Champsaur'
                              , mat.PFG.succ = tab.succ
                              , strata.limits = c(0, 20, 50, 150, 400, 1000, 2000)
                              , strata.limits_reduce = FALSE)