Pular para conteúdo

Planejamento de cubagem


Warning

Esta biblioteca está em desenvolvimento, nenhuma das soluções apresentadas está disponível para download.

Utilize dados de inventário florestal para planejar as árvores a serem amostradas para medição de volume, garantindo uma amostragem suficiente da plantação.


Parâmetros da Classe

TreeVolumePlanning(df, tree_dbh, tree_height)
Parâmetros Descrição
df O DataFrame contendo os dados das árvores.
tree_dbh Nome da coluna que contém os valores do diâmetro à altura do peito (DAP) das árvores (centímetros).
tree_height Nome da coluna que contém as alturas totais das árvores (metros).

Métodos da Classe

methods and parameters
  TreeVolumePlanning.resume(n_classes=None, dbh_classes=None, height_classes=None,
                        only_height_classes=False, only_dbh_classes=False)#(1)!


  TreeVolumePlanning.p_resume(n_classes=None, dbh_classes=None, height_classes=None,
                          only_height_classes=False, only_dbh_classes=False)#(2)!


  TreeVolumePlanning.get_values(n_measured_trees=10, n_classes=None, dbh_classes=None, height_classes=None,
                            only_height_classes=False, only_dbh_classes=False)#(3)!
  1. n_classes = Número de classes às quais os valores de altura e diâmetro à altura do peito serão submetidos.
    dbh_classes = (Opcional) Número de classes de DAP às quais os valores de diâmetro à altura do peito serão submetidos. Se None, usa o valor de n_classes.
    height_classes = (Opcional) Número de classes de altura às quais os valores de altura serão submetidos. Se None, usa o valor de n_classes.
    only_height_classes = (Opcional) Se True, apenas as classes de altura serão usadas para o resumo.
    only_dbh_classes = (Opcional) Se True, apenas as classes de DAP serão usadas para o resumo.

  2. n_classes = Número de classes às quais os valores de altura e diâmetro à altura do peito serão submetidos.
    dbh_classes = (Opcional) Número de classes de DAP às quais os valores de diâmetro à altura do peito serão submetidos. Se None, usa o valor de n_classes.
    height_classes = (Opcional) Número de classes de altura às quais os valores de altura serão submetidos. Se None, usa o valor de n_classes.
    only_height_classes = (Opcional) Se True, apenas as classes de altura serão usadas para o resumo.
    only_dbh_classes = (Opcional) Se True, apenas as classes de DAP serão usadas para o resumo.

  3. n_measured_trees = Número de árvores que serão selecionadas para cubagem. O padrão é 10.
    n_classes = Número de classes às quais os valores de altura e diâmetro à altura do peito serão submetidos.
    dbh_classes = (Opcional) Número de classes de DAP às quais os valores de diâmetro à altura do peito serão submetidos. Se None, usa o valor de n_classes.
    height_classes = (Opcional) Número de classes de altura às quais os valores de altura serão submetidos. Se None, usa o valor de n_classes.
    only_height_classes = (Opcional) Se True, apenas as classes de altura serão usadas para o resumo.
    only_dbh_classes = (Opcional) Se True, apenas as classes de DAP serão usadas para o resumo.

Métodos Descrição
.resume() Retorna um resumo de quantas árvores do dataframe fornecido estão em cada classe.
.p_resume() Retorna um resumo da porcentagem de árvores do dataframe fornecido em cada classe.
.get_values() Retorna um dataframe indicando quantas árvores devem ser amostradas para medição de volume em cada classe, com base na representação percentual de cada classe no inventário total.

Exemplo de Uso

Considerando os dados resultantes da relação hipsométrica realizado no módulo anterior, iremos realizar o planejamento da cubagem das árvores.

Fazer download do arquivo.

Primeiras 5 linhas do arquivo:

Parcela Dap (cm) H (m) Idade (anos) best_predicted_height selected_model
p-1 22,28 0 15 21,91910582 y = y ~ x = 1/x^2
p-1 23,87 22,2 15 22,2 Real Height
p-1 25,46 0 15 23,30513332 y = y ~ x = 1/x^2
p-1 25,78 24,5 15 24,5 Real Height
p-1 26,74 22,2 15 22,2 Real Height

taper_functions_example.py
1
2
3
from fptools.tree_volume_planning import TreeVolumePlanning#(1)!

import pandas as pd#(2)!

  1. Importa a classe TreeVolumePlanning.
  2. Importa o pandas para manipulação de dados.

taper_functions_example.py
df = pd.read_excel(r'C:\Seu\diretorio\final_results.xlsx')#(1)!

cub = TreeVolumePlanning(df ,'Dap (cm)','best_predicted_height')#(2)!

resume = cub.resumen(n_classes=6)#(3)!

percentual_resume = cub.p_resume(n_classes=6)#(4)!

to_measure = cub.get_values(n_measured_trees=50, n_classes=6)#(5)!

  1. Carrega seu arquivo .xlsx.
  2. Cria a variável cub contendo a classe TreeVolumePlanning, utilizando a coluna Dap (cm) para os valores de DAP e a coluna best_predicted_height para os valores de altura.
  3. Retorna um resumo de quantas árvores do dataframe fornecido estão em cada classe (6 classes) e salva na variável resume.
  4. Retorna um resumo da porcentagem de árvores do dataframe fornecido em cada classe (6 classes) e salva na variável percentual_resume.
  5. Retorna um dataframe indicando quantas árvores devem ser amostradas para medição de volume em cada classe, distribuindo as 50 árvores (n_measured_trees) com base na representação percentual de cada classe no inventário total, e salva na variável to_measure.

Saídas

Tabelas

resume(1)

  1. DataFrame contendo quantas árvores estão em cada uma das 6 classes de altura e dap geradas.
DBH classes H(21.904, 24.516] H(24.516, 27.113] H(27.113, 29.71] H(29.71, 32.306] H(32.306, 34.903] H(34.903, 37.5]
(22.251, 27.108] 9 2 0 3 2 0
(27.108, 31.937] 3 13 4 4 1 0
(31.937, 36.765] 0 14 8 13 2 0
(36.765, 41.593] 0 5 9 21 1 0
(41.593, 46.422] 0 2 2 6 3 1
(46.422, 51.25] 0 0 3 0 2 2

percentual_resume(1)

  1. DataFrame contendo quantas árvores estão em cada uma das 6 classes de altura e dap geradas em valores percentuais em relação ao total de árvores.
DBH classes H(21.904, 24.516] H(24.516, 27.113] H(27.113, 29.71] H(29.71, 32.306] H(32.306, 34.903] H(34.903, 37.5]
(22.251, 27.108] 6,67 1,48 0,00 2,22 1,48 0,00
(27.108, 31.937] 2,22 9,63 2,96 2,96 0,74 0,00
(31.937, 36.765] 0,00 10,37 5,93 9,63 1,48 0,00
(36.765, 41.593] 0,00 3,70 6,67 15,56 0,74 0,00
(41.593, 46.422] 0,00 1,48 1,48 4,44 2,22 0,74
(46.422, 51.25] 0,00 0,00 2,22 0,00 1,48 1,48

to_measure(1)

  1. DataFrame contendo quantas árvores (das 50 específicadas em n_measured_trees) devem ser medidas em cada das 6 classes de altura e dap.
DBH classes H(21.904, 24.516] H(24.516, 27.113] H(27.113, 29.71] H(29.71, 32.306] H(32.306, 34.903] H(34.903, 37.5]
(22.251, 27.108] 3 1 0 1 1 0
(27.108, 31.937] 1 5 2 1 0 0
(31.937, 36.765] 0 5 3 5 1 0
(36.765, 41.593] 0 2 3 8 0 0
(41.593, 46.422] 0 1 1 2 1 0
(46.422, 51.25] 0 0 1 0 1 1

Desse modo o usuário obtém quantas árvores devem ser cubadas em cada classe de dap e altura.

Sobre os intervalos de classe

Os intervalos usam a seguinte notação:
- ( indica que o valor não está incluído
- ] indica que o valor está incluído

Por exemplo, o intervalo (22.251, 27.108] inclui valores maiores que 22.251 e menores ou iguais a 27.108.


Não é obrigatório criar classes para altura e dap ao mesmo tempo, é possível criar somente classes de altura ou somente classes de dap conforme exemplo abaixo:

taper_functions_example.py
to_measure = cub.get_values(n_measured_trees=50, dbh_classes=6,
                            only_dbh_classes=True)#(1)!

  1. Define que serão medidas 50 árvores, separadas em 6 classes de dap somente.
DBH classes n_trees
(22.25, 27.108] 6
(31.937, 36.765] 14
(46.422, 51.25] 3
(36.765, 41.593] 13
(27.108, 31.937] 9
(41.593, 46.422] 5

Também é possível criar números diferentes de classes para altura ou para dap, conforme exemplo abaixo:

taper_functions_example.py
to_measure = cub.get_values(n_measured_trees=50, dbh_classes=6,
                            height_classes=2)#(1)!

  1. Define que serão medidas 50 árvores, separadas em 6 classes de dap e 2 classes de altura.
DBH classes H(21.904, 29.71] H(29.71, 37.5]
(22.251, 27.108] 4 2
(27.108, 31.937] 7 2
(31.937, 36.765] 8 6
(36.765, 41.593] 5 8
(41.593, 46.422] 2 4
(46.422, 51.25] 1 1