knitr::opts_chunk$set(collapse = T, comment = "#>") knitr::opts_chunk$set(fig.width=7, fig.height=5) options(tibble.print_min = 6L, tibble.print_max = 6L) library(forestmangr)
Let's calculate the section volume of felled trees using Smalian's method, according to the formula: $$ V_{secao} = \frac{AS_{i} + AS_{i+1}}{2} . L $$
We'll use the exfm7 dataframe as an exemple:
library(forestmangr) data(exfm7) data_ex <- exfm7 data_ex
First we'll calculate the volume with bark of each section with the smalianwb
function. In it we input the dataframe, and names for the section diameter with bark, section height and tree variables:
data_ex_sma <- smalianwb(data_ex,"di_wb", "hi","TREE") head(as.data.frame(data_ex_sma))
Now, we'll calculate the volume without bark per secction, using the smalianwb
function. We'll input the same variables as before, and the variable name for the bark thickness. In our data, this variable is in millimeters, so, we'll use the bt_mm_to_cm
as TRUE
to convert it to centimeters:
data_ex_sma <- smalianwob(data_ex_sma,"di_wb","hi","bark_t","TREE",bt_mm_to_cm=T) head(as.data.frame(data_ex_sma))
This can be done directly using pipes (%>%
):
data_ex_sma <- data_ex %>% smalianwb("di_wb", "hi", "TREE") %>% smalianwob("di_wb", "hi", "bark_t", "TREE", bt_mm_to_cm=T) head(as.data.frame(data_ex_sma))
We can also visualize the mean curve form of the trees in the area, using Kozak's model with the average_tree_curve
function:
avg_tree_curve(df=data_ex_sma,d="di_wb",dbh="DBH",h="hi",th="TH")
To calculate the volume of each tree, we'll use the vol_summarise
function. We input the data, and dbhm height, volume with bark, volume without bark and tree variables:
data_ex_vol_arvore <- vol_summarise(data_ex_sma, dbh = "DBH", th = "TH", vwb="VWB",tree = "TREE",vwob="VWOB") data_ex_vol_arvore
Now to determine the most adequate volumetric model for this data, we'll fit two models, and compare them using plots for their residuals with the resid_plot
function.
Schumacher's volumetric model: $$ Ln(V) = \beta_0 + \beta_1Ln(dbh) + \beta_2Ln(H) $$
Husch's volumetric model: $$ Ln(V) = \beta_0 + \beta_1*Ln(dbh) $$
We'll use the output "merge_est" from the lm_table
function. This will estimate the volume for the observed data automatically. Then, we'll use resid_plot
to compare the observed variable with the estimated ones:
data_ex_vol_arvore %>% lm_table(log(VWB) ~ log(DBH) + log(TH),output="merge_est",est.name="Schumacher") %>% lm_table(log(VWB) ~ log(DBH),output="merge_est",est.name="Husch") %>% resid_plot("VWB", "Schumacher", "Husch")
Schumacher's model was more symmetrical, and can be considered the better model for this dataset. To safe it's coefficients in a dataframe, we'll fit the model again, but with the standard output:
tabcoef_vwb <- lm_table(data_ex_vol_arvore, log(VWB) ~ log(DBH) + log(TH) ) tabcoef_vwb
And do the same for the volume without bark:
tabcoef_vwob <- lm_table(data_ex_vol_arvore, log(VWOB) ~ log(DBH) + log(TH) ) tabcoef_vwob
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.