#include <TempDependentNeighborhoodDisperse.h>
Public Member Functions | |
clTempDependentNeighborhoodDisperse (clSimManager *p_oSimManager) | |
Constructor. | |
~clTempDependentNeighborhoodDisperse () | |
Destructor. | |
Protected Member Functions | |
void | DoShellSetup (xercesc::DOMDocument *p_oDoc) |
Reads in parameter file values. | |
void | AddSeeds () |
Does dispersal. | |
Protected Attributes | |
float * | mp_fFecM |
Fecundity M - sized number of species. | |
float * | mp_fFecN |
Fecundity N - sized number of species. | |
float * | mp_fPresM |
Presence M - sized number of species. | |
float * | mp_fPresB |
Presence B - sized number of species. | |
float * | mp_fThreshold |
Presence threshold - sized number of species. | |
float * | mp_fA |
A parameter - sized number of species. | |
float * | mp_fB |
B parameter - sized number of species. | |
float | m_fRadius |
Neighborhood search radius. | |
float | m_fMinSaplingHeight |
Minimum sapling height. | |
bool | m_bDoPresenceTesting |
Whether or not presence testing is required for this run. |
This class disperses seeds. The number of seeds is a function of the plot annual mean temperature and the basal area of conspecific adults.
The number of seeds per square meter per year is calculated as: Seeds = a + fec*BAC, where a is a parameter, and BAC is the basal area of conspecific adults within a specified radius, in square meters.
The "fec" term is fecundity, calculated as: fec = fb*exp(-0.5*(((X-fm)/fn)^2)), where X is the plot annual mean temperature and fb, fm, and fn are parameters.
The number of seeds per square meter is multiplied by number of square meters per seed grid cell and number of years per timestep to arrive at the number of seeds per grid cell.
The above equation includes an intercept term, which means there is the possibility for bath rain of species for which there are no adults. A species for which there are adults will always disperse. A species for which there are no adults must undergo a "presence test". The site favorability for a species is given by: p = exp(-0.5*((X-pm)/pb)^2), where X is the plot annual mean temperature and pb and pm are parameters. This function is bounded between 0 and 1. There is a parameter which is the presence threshold; if the result of the function is above this value, the species is allowed to disperse.
This behavior is not connected to any specific species-type combo, but is connected to specific species. There should be applyTo tags for this behavior and a unique list of species will be compiled for those tags with the type being ignored.
This behavior's namestring and parameter file call string are both "temperature dependent neighborhood disperse".
Copyright 2010 Charles D. Canham.
clTempDependentNeighborhoodDisperse::clTempDependentNeighborhoodDisperse | ( | clSimManager * | p_oSimManager | ) |
Constructor.
p_oSimManager | Sim Manager object. |
clTempDependentNeighborhoodDisperse::~clTempDependentNeighborhoodDisperse | ( | ) |
Destructor.
void clTempDependentNeighborhoodDisperse::DoShellSetup | ( | xercesc::DOMDocument * | p_oDoc | ) | [protected, virtual] |
Reads in parameter file values.
p_oDoc | DOM tree of parsed parameter file. |
Implements clDisperseBase.
void clTempDependentNeighborhoodDisperse::AddSeeds | ( | ) | [protected, virtual] |
Does dispersal.
This starts by establishing whether there are adults of all species in the plot, if presence testing is required. If there any species for which there are no adults, the presence test function is calculated. If a species fails the test, its intercept for this time step is set to zero. Then, mean annual temperature is retrieved from the plot object and the fecundity term calculated for each species. For each grid cell, the neighborhood basal area of each species is calculated. The number of seeds per square meter is calculated and scaled to the appropriate grid cell size and number of years. The resulting number of seeds is assigned to the grid cell.
Implements clDisperseBase.
float* clTempDependentNeighborhoodDisperse::mp_fFecM [protected] |
Fecundity M - sized number of species.
float* clTempDependentNeighborhoodDisperse::mp_fFecN [protected] |
Fecundity N - sized number of species.
float* clTempDependentNeighborhoodDisperse::mp_fPresM [protected] |
Presence M - sized number of species.
float* clTempDependentNeighborhoodDisperse::mp_fPresB [protected] |
Presence B - sized number of species.
float* clTempDependentNeighborhoodDisperse::mp_fThreshold [protected] |
Presence threshold - sized number of species.
float* clTempDependentNeighborhoodDisperse::mp_fA [protected] |
A parameter - sized number of species.
float* clTempDependentNeighborhoodDisperse::mp_fB [protected] |
B parameter - sized number of species.
float clTempDependentNeighborhoodDisperse::m_fRadius [protected] |
Neighborhood search radius.
float clTempDependentNeighborhoodDisperse::m_fMinSaplingHeight [protected] |
Minimum sapling height.
For doing neighbor searches.
bool clTempDependentNeighborhoodDisperse::m_bDoPresenceTesting [protected] |
Whether or not presence testing is required for this run.
If all values in the threshold parameter are set to zero, it is not required.