The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Vamos calcular o volume da seção de dados cubados pelo método de Smalian, conforme a fórmula: \[ V_{secao} = \frac{AS_{i} + AS_{i+1}}{2} . L \]
Vamos utilizar como exemplo os dado exfm7:
library(forestmangr)
data(exfm7)
dados <- exfm7
dados
#> # A tibble: 3,393 × 11
#> MAP PROJECT SPACING STRATA GENCODE TREE DBH TH hi di_wb bark_t
#> <chr> <fct> <fct> <int> <fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 FOREST1 PEQUI 3x3 4 FM00100 1 12.4 22.1 0.1 13.1 6
#> 2 FOREST1 PEQUI 3x3 4 FM00100 1 12.4 22.1 0.5 12.6 6
#> 3 FOREST1 PEQUI 3x3 4 FM00100 1 12.4 22.1 1 12.4 5
#> 4 FOREST1 PEQUI 3x3 4 FM00100 1 12.4 22.1 1.5 12.3 5
#> 5 FOREST1 PEQUI 3x3 4 FM00100 1 12.4 22.1 2 11.8 4
#> 6 FOREST1 PEQUI 3x3 4 FM00100 1 12.4 22.1 4 11.3 4
#> # ℹ 3,387 more rows
Primeiro, calculamos o volume com casca por seção, com a função
smalianwb
. Inserimos nela o dataframe, o diametro com
casca, a altura da seção, e a variável árvore:
dados_sma <- smalianwb(dados,"di_wb", "hi","TREE")
head(as.data.frame(dados_sma))
#> MAP PROJECT SPACING STRATA GENCODE TREE DBH TH hi di_wb bark_t
#> 1 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 0.1 13.05071 6
#> 2 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 0.5 12.57324 6
#> 3 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 1.0 12.41409 5
#> 4 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 1.5 12.25493 5
#> 5 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 2.0 11.77747 4
#> 6 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 4.0 11.30000 4
#> CSA_WB VWB
#> 1 0.01337697 0.005158610
#> 2 0.01241607 0.006129952
#> 3 0.01210373 0.005974776
#> 4 0.01179537 0.005672382
#> 5 0.01089416 0.020922907
#> 6 0.01002875 0.018694737
Agora, calculamos o volume sem casca por seção, utilizamos a função
smalianwb
. Fornecemos as mesmas variáveis de antes, e a
variável correspondente à espessura da casca. Como essa variável está em
milímetros, utilizamos o argumento bt_mm_to_cm
como
verdadeiro, para converte-la para centímetros:
dados_sma <- smalianwob(dados_sma, "di_wb", "hi", "bark_t","TREE", bt_mm_to_cm = T)
head(as.data.frame(dados_sma))
#> MAP PROJECT SPACING STRATA GENCODE TREE DBH TH hi di_wb bark_t
#> 1 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 0.1 13.05071 0.6
#> 2 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 0.5 12.57324 0.6
#> 3 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 1.0 12.41409 0.5
#> 4 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 1.5 12.25493 0.5
#> 5 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 2.0 11.77747 0.4
#> 6 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 4.0 11.30000 0.4
#> CSA_WB VWB di_wob CSA_WOB VWOB
#> 1 0.01337697 0.005158610 11.85071 0.011030070 0.004237849
#> 2 0.01241607 0.006129952 11.37324 0.010159172 0.005097861
#> 3 0.01210373 0.005974776 11.41409 0.010232273 0.005045296
#> 4 0.01179537 0.005672382 11.25493 0.009948911 0.004853333
#> 5 0.01089416 0.020922907 10.97747 0.009464421 0.018123438
#> 6 0.01002875 0.018694737 10.50000 0.008659016 0.016363277
Esse processo pode ser feito de forma direta, utilizando pipes
(%>%
)
dados_sma <- dados %>%
smalianwb("di_wb", "hi", "TREE") %>%
smalianwob("di_wb", "hi", "bark_t", "TREE", bt_mm_to_cm = T)
head(as.data.frame(dados_sma))
#> MAP PROJECT SPACING STRATA GENCODE TREE DBH TH hi di_wb bark_t
#> 1 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 0.1 13.05071 0.6
#> 2 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 0.5 12.57324 0.6
#> 3 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 1.0 12.41409 0.5
#> 4 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 1.5 12.25493 0.5
#> 5 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 2.0 11.77747 0.4
#> 6 FOREST1 PEQUI 3x3 4 FM00100 1 12.41409 22.1 4.0 11.30000 0.4
#> CSA_WB VWB di_wob CSA_WOB VWOB
#> 1 0.01337697 0.005158610 11.85071 0.011030070 0.004237849
#> 2 0.01241607 0.006129952 11.37324 0.010159172 0.005097861
#> 3 0.01210373 0.005974776 11.41409 0.010232273 0.005045296
#> 4 0.01179537 0.005672382 11.25493 0.009948911 0.004853333
#> 5 0.01089416 0.020922907 10.97747 0.009464421 0.018123438
#> 6 0.01002875 0.018694737 10.50000 0.008659016 0.016363277
Podemos visualizar a curva média das árvores desta área, utilizando o
modelo de Kozak, com a função average_tree_curve
:
Para calcular o volume por árvore, utilizamos a função
vol_summarise
. Informamos o dataframe e as variáveis dap,
altura, volume com casca e sem casca, e árvore:
dados_vol_arvore <- vol_summarise(dados_sma, dbh = "DBH", th = "TH",
vwb="VWB",tree = "TREE",vwob="VWOB")
dados_vol_arvore
#> # A tibble: 197 × 10
#> TREE DBH TH CSA VWB VWOB FFWB FFWOB FFWB_mean FFWOB_mean
#> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 12.4 22.1 0.0121 0.131 0.113 0.489 0.424 0.468 0.412
#> 2 2 13.1 22.3 0.0134 0.145 0.126 0.487 0.423 0.468 0.412
#> 3 3 13.2 20 0.0137 0.126 0.108 0.459 0.393 0.468 0.412
#> 4 4 13.2 19.4 0.0137 0.139 0.123 0.521 0.463 0.468 0.412
#> 5 5 13.4 23.7 0.0140 0.156 0.133 0.470 0.401 0.468 0.412
#> 6 6 13.5 21.5 0.0144 0.139 0.124 0.450 0.401 0.468 0.412
#> # ℹ 191 more rows
Agora, para determinar o modelo volumétrico mais adequado para os
dados, vamos ajustar dois modelos, e compará-los utilizando
resid_plot
.
Modelo volumétrico de Schumacher: \[ Ln(V) = \beta_0 + \beta_1*Ln(dbh) + \beta_2*Ln(H) \]
Modelo volumétrico de Husch: \[ Ln(V) = \beta_0 + \beta_1*Ln(dbh) \]
Vamos utilizar o o output merge_est
da função
lm_table
. Isso irá estimar o volume para os dados
observados automaticamente. Em seguida, iremos utilizar a função
resid_plot
, e comparar a variável observada com as
estimadas:
dados_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")
O modelo de schumacher foi mais simétrico, portanto vamos utilizá-lo. Para salvar os coeficientes em um dataframe, ajustamos o modelo novamente, e utilizamos o output padrão:
tabcoef_vwb <- lm_table(dados_vol_arvore, log(VWB) ~ log(DBH) + log(TH) )
tabcoef_vwb
#> b0 b1 b2 Rsqr Rsqr_adj Std.Error
#> 1 -9.595863 1.889372 0.9071631 0.9966646 0.9966303 0.04855508
Fazemos o mesmo para o volume sem casca:
tabcoef_vwob <- lm_table(dados_vol_arvore, log(VWOB) ~ log(DBH) + log(TH) )
tabcoef_vwob
#> b0 b1 b2 Rsqr Rsqr_adj Std.Error
#> 1 -9.808975 1.918007 0.908154 0.9961152 0.9960752 0.05301495
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.