Description Usage Arguments Details Value Note Author(s) References See Also Examples
Support and didactic functions for forest simulators
1 2 3 4 5 6 7 8 9 10 11 | DH.allom(D,param)
D.H.est(D.H,D.Hmax,species.name,pdfout=F,linregout=F)
Dl.allom(D,param)
dD.rate(D,G,Dmax,param.H,param.l)
dD.dt.analysis(D,G,Dmax,param.H,param.l,D0,t,pdfout=F)
dD.dt.calibra(D,dD,Dmax,param.H,param.l)
parab1(E,Eopt,p)
env.factors.analysis(nsp,splab,FE,Eopt,param)
ge.growth(nsp,splab,FE,Eopt,param.E,Ef,param.Ef,Dmax,Gmax,param.H,param.l,D0,nt)
expon.alf(E,p)
gauss.smf(x,p)
|
D |
diameter or set of diameter values |
param |
For DH.allom: Hmax, b3, and b4. For Dl.allom: c, hc, and d. Also list of parameters for response functions |
D.H |
data frame with D and H values |
D.Hmax |
array with Dmax and Hmax |
species.name |
char string for label |
pdfout |
logical to decide to generate PDF |
linregout |
logical to decide to output the linear regression results |
G |
set of values of max growth rate |
Dmax |
Max diameter |
param.H |
parameters for function DH.allom |
param.l |
parameters for function Dl.allom |
D0 |
initial diameter |
t |
time sequence |
dD |
set of diameter increment values |
E |
Environmental factors |
Eopt |
Optimum values of E |
p |
parameter of response function |
nsp |
number of species |
splab |
labels of species |
FE |
list of response functions |
param.E |
parameters of response functions by species |
Ef |
functions Ef to generate random samples of environmental variables |
param.Ef |
parameter to generate random samples of environmental variables |
Gmax |
max or optimum growth rate coeff |
nt |
length of time sequence |
x |
soil moisture indices |
DH.allom: calculates tree height, given the diameter and parameters Hmax, b3, and b4 according to Equation 16.5 of Acevedo (2012).
D.H.est: function performs a set of linear regressions on a log-transformed H versus D allometric relation in order to determine the best coefficient b3 value for each one of a set of values of b4. Then the b3, b4 pair with the smallest residual sum-of-squares error is selected to perform nonlinear regression. Arguments are a and an array with Dmax and Hmax values. This function uses the previous function DH.allom.
Dl.allom: calculates the leaf area by applying Equation 16.7 of Acevedo(2012).
dD.rate: calculates the increment in the diameter using Equations 16.12 and 16.14 of Acevedo (2012) together with allometric functions DH.allom and Dl.allom already defined. It requires a value or a set of diameter and specification of G and seven parameters. Besides Dmax, three of these are for the H versus D relation and three others for the l versus D relation.
dD.dt.analysis: This function allows for analyzing the dD/dt increment for a given set of values of G. It uses the function dD.rate given above. Besides the values of G, it requires a set of values of D, seven parameters as described above in the function dD.rate, initial D0 condition for the numerical integration, and the time sequence t.
dD.dt.calibra: This function performs an estimation of Gmax, given a set of D and dD values together with Dmax and allometric coefficients. It uses Equation 16.26 in Acevedo (2012) and plots the corresponding growth curve for reference.
parab1: This is a simple function to evaluate a simple parabolic response to an environmental variable according to Equation 16.21 (Acevedo 2012); it takes the value 1 when E = Eopt and uses the argument p for a. Negative values are assigned zero. Although the function is not supposed to receive values of E leading to F greater than 1, we assign one to F values above 1 for caution.
env.factors.analysis: This function is designed to plot the environmental factors for several species. Their number and labels are arguments nsp and splab. Then four response functions (e.g., parab1) are passed as a list FE, Eopt as an array, and param for the functions as a list of arrays.
ge.growth: This function performs a simulation of random environmental fluctuation and uses tree response functions to calculate g(E) according to Equation 16.20. Then Gmaxg(E) is used in conjunction with the allometric parameters and Dmax to simulate tree diameter growth using dD.rate to implement the Euler method. The output includes graphs of g(E) and D versus time for each species.
expon.alf: This function implements the response given by Equation 16.31 (Acevedo, 2012). Arguments are a value of a set of values of environmental variable E and an array p containing the three parameters.
gauss.smf: This function applies Equations 16.32 and 16.33 (Acevedo, 2012) to two moisture indices and calculates the most limiting factor. Arguments are the indices and the tolerance parameters. Both are given as arrays with two components.
DH.allom: H=height
D.H.est:
b3 |
b3 estimate |
b4 |
b4 estimate |
H.est |
H values estimates |
RSS.est |
RSS estimate |
Dl.allom l=leaf area
dD.rate: dD=diameter increment
dD.dt.analysis:
D.dD |
data.frame(D,dD.dt) diameter and derivative |
t.Xt |
data.frame(t,Dt,Ht,lt), time, diameter, height, and leaf area as function of t |
dD.dt.calibra: Gmax= max value of G
parab1: F= response to env factor
env.factors.analysis: Does not return an object. It plots the results.
ge.growth:
E |
env factors |
F |
response |
X |
data.frame(t,E,G,D) |
expon.alf: F= response
gauss.smf: Returns array of response and the most limiting factor
Nominal parameter values are defined in input files. Variation of param values are defined in lists.
Input files are in 'datafiles.zip' in directory 'datafiles' and organized by chapters of Acevedo (2012). Input files are required to run the examples below.
Miguel F. Acevedo Acevedo@unt.edu
Acevedo M.F. 2012. Simulation of Ecological and Environmental Models. CRC Press.
Phipps, R.L. 1979. Simulation of wetlands forest vegetation dynamics. Ecological Modelling 7:257-288.
Urban, D.L., and H.H. Shugart. 1992. Individual-based models of forest succession. In Plant Succession: Theory and Prediction, eds. D.C. Glenn-Lewin, R.K. Peet, and T.T. Veblan, 249-292. New York: Chapman and Hall.
Forest simulation zelig.F
, forsucc.C
, semi.F
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | ## Not run:
# ---------- DH allometric
filedata <- "chp16/greenash.txt"
species.name <- "Green ash"
# Input file is in two columns, H and DBH , with labels in the header
# listed in ascending order of DBH. Maximum H and DBH on the second row
D.Hmax <- scan(filedata, skip=1, nlines=1)
D.H <- read.table(filedata, skip=2); names(D.H) <- c("D","H")
d.h <- D.H.est(D.H,D.Hmax,species.name)
Dmax <-100; D <- seq(0,Dmax,0.1)
G <- c(600,1000)
param.H <- c(20, -0.02,0.6); param.l <- c(0.16,0.8,2)
D0 <- 5; t <- seq(0,300)
rates.var <- dD.dt.analysis(D,G,Dmax,param.H,param.l,D0,t)
nsp <- 2; splab <- c("Intolerant","Tolerant")
FE <- list(parab1,parab1,parab1,parab1)
Eopt <- c(1,1,1,1)
param<- list(c(3,2,1.5,1.1), rep(1,4))
env.factors.analysis(nsp,splab,FE,Eopt,param)
Dmax <-rep(100,nsp); Gmax <- rep(1000,nsp)
param.H <- list(c(20, -0.02,0.6),c(20, -0.02,0.6))
param.l <- list(c(0.16,0.8,2),c(0.16,0.8,2))
D0 <- rep(5,nsp); t <- seq(0,50); nt <- length(t)
param.E<- list(c(3,2,1.5,1.1), rep(1,4))
Ef <- list(runif,runif,runif,runif)
param.Ef <- list(c(Eopt[1],Eopt[1]),c(0,Eopt[2]),c(Eopt[3],Eopt[3]),c(0,Eopt[4]))
t.GD <- ge.growth(nsp,splab,FE,Eopt,param.E,Ef,param.Ef,Dmax,Gmax,param.H,param.l,D0,nt)
# calibration Licania densiflora
dD <- c(0.5,0.6,0.7,0.9,0.8,1.0,1.1,1.3,1.2,1.0,1.0,0.8,0.8)
D <- seq(15,75,5)
Dmax <-100
param.H <- c(40, -0.015,0.6); param.l <- c(0.16,0.6,2.2)
dD.dt.calibra(D,dD,Dmax,param.H,param.l)
# light factor
clab <- c("Very Int","Int","Med","Tol","Very Tol")
c1<- c(1.58,1.26,1.13,1.05,1.02)
c2<- c(1.19,1.79,2.44,3.29,4.16)
c3<- c(0.15,0.12,0.09,0.06,0.03)
L <- seq(0,1,0.01); nl <- length(L)
ALF <- matrix(ncol=5,nrow=nl)
for(i in 1:5)ALF[,i] <- expon.alf(L, c(c1[i],c2[i],c3[i]))
# soil moisture factor
Elab <- c("F(1-E_WD)","F(1-E_DD)")
x <- seq(0,1,0.01)
E <- matrix(nrow=length(x),ncol=3)
y <- matrix(nrow=length(x),ncol=4)
for(i in 1:2) E[,i] <- x
p <- c(0.2,0.30)
for(i in 1:length(x))
y[i,] <- gauss.smf(E[i,],p)
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.