Title: | Forest Carbon Sequestration and Potential Productivity Calculation |
---|---|
Description: | Include assessing site classes based on the stand height growth and establishing a nonlinear mixed-effect biomass model under different site classes based on the whole stand model to achieve more accurate estimation of carbon sequestration. In particular, a carbon sequestration potential productivity calculation method based on the potential mean annual increment is proposed. This package is applicable to both natural forests and plantations. It can quantitatively assess stand’s potential productivity, realized productivity, and possible improvement under certain site, and can be used in many aspects such as site quality assessment, tree species suitability evaluation, and forest degradation evaluation. Reference: Lei X, Fu L, Li H, et al (2018) <doi:10.11707/j.1001-7488.20181213>. Fu L, Sharma R P, Zhu G, et al (2017) <doi:10.3390/f8040119>. |
Authors: | Liyong Fu [aut], Shirong Liu [aut], Shouzheng Tang [aut], Guangshuang Duan [aut], Zhong Wang [aut], Linyan Feng [aut], Dongbo Xie [aut], Yuanyuan Han [aut, cre] |
Maintainer: | Yuanyuan Han <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.1.0 |
Built: | 2024-11-20 04:05:04 UTC |
Source: | https://github.com/caf-ifrit/forestat |
Calculation of degraded forest grade.
calc_degraded_forest_grade(plot_data)
calc_degraded_forest_grade(plot_data)
plot_data |
Preprocessed plot_data |
Calculation of degraded forest grade, icluding p1, p2,p3, p4, p5, p1m, p2m, p3m, p4m, Z1, Z2, Z3, Z4, Z5, Z, Z_weights, Z_grade, Z_weights_grade etc.
res_data with degraded forest grade
# Load forest survey data data(tree_1) data(tree_2) data(tree_3) data(plot_1) data(plot_2) data(plot_3) # Preprocess the degraded forest data plot_data <- degraded_forest_preprocess(tree_1,tree_2,tree_3,plot_1,plot_2,plot_3) # Calculation of degraded forest grade res_data <- calc_degraded_forest_grade(plot_data)
# Load forest survey data data(tree_1) data(tree_2) data(tree_3) data(plot_1) data(plot_2) data(plot_3) # Preprocess the degraded forest data plot_data <- degraded_forest_preprocess(tree_1,tree_2,tree_3,plot_1,plot_2,plot_3) # Calculation of degraded forest grade res_data <- calc_degraded_forest_grade(plot_data)
class.plot adds new variables: the original height classes and the adjusted height classes. And the existing variables are retained.
class.plot( data, model = "Richards", interval = 5, number = 5, maxiter = 1000, H_start = c(a = 20, b = 0.05, c = 1), BA_start = c(a = 80, b = 1e-04, c = 8, d = 0.1), Bio_start = c(a = 450, b = 1e-04, c = 12, d = 0.1) )
class.plot( data, model = "Richards", interval = 5, number = 5, maxiter = 1000, H_start = c(a = 20, b = 0.05, c = 1), BA_start = c(a = 80, b = 1e-04, c = 8, d = 0.1), Bio_start = c(a = 450, b = 1e-04, c = 12, d = 0.1) )
data |
A data.frame data in which at least four columns are required as input: ID, code, AGE, H. |
model |
Type of model used for building the H-model (stand height model), options are 'Logistic', 'Richards', 'Korf', 'Gompertz', 'Weibull', or 'Schumacher'. |
interval |
The initial stand age interval for height classes. |
number |
The maximum number of initial height classes. |
maxiter |
The maximum number of iterations to fit the H-model. |
H_start |
The initial parameters for fitting the H-model, the default value is c(a=20,b=0.05,c=1.0). |
BA_start |
The initial parameters for fitting the BA-model, the default value is c(a = 80, b = 0.0001, c = 8, d = 0.1). |
Bio_start |
The initial parameters for fitting the Bio-model, the default value is c(a=450, b=0.0001, c=12, d=0.1). |
Input takes a data.frame with three variables ID, AGE, H and returns height classes of every sample (rows in the data.frame).
A data of forestData class with output values, models and model parameters.
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0))
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0))
Preprocess the degraded forest data and return the plot_data.
degraded_forest_preprocess(tree_1, tree_2, tree_3, plot_1, plot_2, plot_3)
degraded_forest_preprocess(tree_1, tree_2, tree_3, plot_1, plot_2, plot_3)
tree_1 |
Tree data for the 1st period |
tree_2 |
Tree data for the 2nd period |
tree_3 |
Tree data for the 3rd period |
plot_1 |
Sample plot data for the 1st period |
plot_2 |
Sample plot data for the 2nd period |
plot_3 |
Sample plot data for the 3rd period |
tree_1, tree_2, tree_3 are required to include the fields "plot_id", "inspection_type", and "tree_species_code". plot_1, plot_2, and plot_3 are required to include the fields "plot_id", "standing_stock", "forest_cutting_stock", "crown_density", "disaster_level", "origin", "dominant_tree_species", "age_group", "naturalness", and "land_type".
Preprocessed plot_data
# Load forest survey data data(tree_1) data(tree_2) data(tree_3) data(plot_1) data(plot_2) data(plot_3) # Preprocess the degraded forest data plot_data <- degraded_forest_preprocess(tree_1,tree_2,tree_3,plot_1,plot_2,plot_3)
# Load forest survey data data(tree_1) data(tree_2) data(tree_3) data(plot_1) data(plot_2) data(plot_3) # Preprocess the degraded forest data plot_data <- degraded_forest_preprocess(tree_1,tree_2,tree_3,plot_1,plot_2,plot_3)
Mixed birch-broadleaf forest data
forestData
forestData
'forestData' A data frame with 320 rows and 16 columns:
Plot ID
The average age of the stand
Stand height
Stand basal area
Stand biomass
Stand density index
Forest type code of plot
...
The 1st period sample plot survey data (e.g. 2005)
plot_1
plot_1
'plot_1' A data frame with 62 rows and 23 columns:
Plot ID
Standing stock
Forest cutting stock
Crown density
Disaster level
origin
Dominant tree species
Age group
Naturalness
Land type
...
The 2nd period sample plot survey data (e.g. 2010)
plot_2
plot_2
'plot_2' A data frame with 100 rows and 5 columns:
Plot ID
Standing stock
Forest cutting stock
Crown density
Disaster level
origin
Dominant tree species
Age group
Naturalness
Land type
...
The 3rd period sample plot survey data (e.g. 2015)
plot_3
plot_3
'plot_3' A data frame with 100 rows and 5 columns:
Plot ID
Standing stock
Forest cutting stock
Crown density
Disaster level
origin
Dominant tree species
Age group
Naturalness
Land type
...
Plot graphs about the forestData.
## S3 method for class 'forestData' plot( x, model.type = "H", plot.type = "Curve", xlab = NA, ylab = NA, legend.lab = "Site class", title = "Mixed birch-broadleaf forest", ... )
## S3 method for class 'forestData' plot( x, model.type = "H", plot.type = "Curve", xlab = NA, ylab = NA, legend.lab = "Site class", title = "Mixed birch-broadleaf forest", ... )
x |
A data of forestData class. |
model.type |
Type of model used for fitting, options are 'H' (stand height growth model), 'BA' (stand basal area model), or 'Bio' (stand biomass model). |
plot.type |
Type of plot, options are 'Curve' (curve plot), 'Scatter_Curve' (scatter plot with curve), 'Residual' (residual plot), or 'Scatter' (scatter plot). |
xlab |
The title for the x axis. |
ylab |
The title for the y axis. |
legend.lab |
The title for the legends. |
title |
The text for the Plot title. |
... |
Additional arguments affecting the figure plotted. |
A trellis plot object
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Plot the curve of the height classes plot(forestData, model.type="H", plot.type="Curve", xlab="Stand age (year)",ylab="Height (m)",legend.lab="Site class", title="The H-model curve of the mixed birch-broadleaf forest")
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Plot the curve of the height classes plot(forestData, model.type="H", plot.type="Curve", xlab="Stand age (year)",ylab="Height (m)",legend.lab="Site class", title="The H-model curve of the mixed birch-broadleaf forest")
potential.productivity calculate the potential productivity of stand based on model parameters(obtained from the parameterOutput function).
potential.productivity( forestData, code = 1, age.min = 5, age.max = 150, left = 0.05, right = 100, e = 1e-05, maxiter = 50 )
potential.productivity( forestData, code = 1, age.min = 5, age.max = 150, left = 0.05, right = 100, e = 1e-05, maxiter = 50 )
forestData |
A forestData class data |
code |
Codes for forest types. |
age.min |
The minimum age of the stand. |
age.max |
The maximum age of the stand. |
left |
Solving for the left boundary of the potential productivity. |
right |
Solving for the right boundary of the potential productivity. |
e |
Accuracy parameters for solving the stand density index according to Newton's iterative method. |
maxiter |
Maximum number of iterations parameter for solving the stand density index according to Newton's iteration method. |
potential.productivity takes data_BA,data_V parameters as required inputs.
A forestData class in which a data.frame with potential productivity parameters is added.
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Calculate the potential productivity of the forestData object forestData <- potential.productivity(forestData,code=1, age.min=5,age.max=150, left=0.05,right=100, e=1e-05,maxiter=50)
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Calculate the potential productivity of the forestData object forestData <- potential.productivity(forestData,code=1, age.min=5,age.max=150, left=0.05,right=100, e=1e-05,maxiter=50)
realized.productivity calculate the realized productivity of each stand based on model parameters (obtained from the parameterOutput function).
realized.productivity(forestData, left = 0.05, right = 100)
realized.productivity(forestData, left = 0.05, right = 100)
forestData |
A forestData class data |
left |
Solving for the left boundary of the realized productivity. |
right |
Solving for the right boundary of the realized productivity. |
realized.productivity takes data,data_BA,data_V parameters as required inputs.
A forestData class in which a data.frame with realized productivity parameters is added.
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Calculate the realized productivity of the forestData object forestData <- realized.productivity(forestData,left=0.05,right=100)
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Calculate the realized productivity of the forestData object forestData <- realized.productivity(forestData,left=0.05,right=100)
Generates summary statistics for forestData objects.
## S3 method for class 'forestData' summary(object, ...)
## S3 method for class 'forestData' summary(object, ...)
object |
A forestData object (after class.plot). |
... |
Additional arguments affecting the summary produced. |
The summary includes the summary of raw data, the model, the model parameters, potential productivity and real productivity in forestData(if available)
A summary object of class "summary.forestData"
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Get the summary data of the forestData object summary(forestData)
# Load sample data data("forestData") # Build a model based on the forestData and return a forestData class object forestData <- class.plot(forestData,model="Richards", interval=5,number=5,maxiter=1000, H_start=c(a=20,b=0.05,c=1.0)) # Get the summary data of the forestData object summary(forestData)
The 1st period trees survey data (e.g. 2005)
tree_1
tree_1
'tree_1' A data frame with 1634 rows and 5 columns:
Plot ID
Inspection type
Tree species code
...
The 2nd period trees survey data (e.g. 2010)
tree_2
tree_2
'tree_2' A data frame with 4778 rows and 5 columns:
Plot ID
Inspection type
Tree species code
...
The 3rd period trees survey data (e.g. 2015)
tree_3
tree_3
'tree_3' A data frame with 4528 rows and 5 columns:
Plot ID
Inspection type
Tree species code
...