Pular para conteúdo

Relação Hipsométrica


Warning

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

Estime as alturas das árvores ausentes com base nas alturas medidas em campo.


Parâmetros da Classe

HypRel(x, y, df, model, iterator)
Parâmetros Descrição
x Nome da coluna que contém os diâmetros/circunferências das árvores.
y Nome da coluna que contém as alturas das árvores.
df O DataFrame contendo os dados das árvores.
model (Opcional) Uma lista de modelos usados para estimar as alturas das árvores. Se None, usará todos os modelos disponíveis.
iterator (Opcional) Nome de uma coluna usada como iterador. Pode ser o nome da fazenda, nome da parcela, código ou qualquer identificador único.

Funções da Classe

functions and parameters
  HypRel.run()  
  HypRel.view_metrics()  
  HypRel.plots(dir = None, show = None)#(1)!

  HypRel.get_coef()
  HypRel.predict()

  1. dir = O diretório onde deseja salvar seus gráficos!
    Se dir == None, os gráficos serão exibidos na tela.
    show = Exibe os gráficos na tela! Pode ser True ou False.
Parâmetros Descrição
.run() Ajusta os modelos.
.view_metrics() Retorna uma tabela com as métricas de cada modelo avaliado.
.plots(dir=None, show=True) Retorna os gráficos de altura e resíduos.
.get_coef() Retorna os coeficientes de cada modelo.
.predict() Retorna as alturas previstas e os modelos utilizados em novas colunas.

Exemplo de Uso

hyp_rel_example.py
1
2
3
from fptools.hyp_rel import HypRel#(1)!

import pandas as pd#(2)!

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

Create a variable for the HypRel Class

hyp_rel_example.py
df = pd.read_csv(r'C:/Your/path/csv_inventory_file.csv')#(1)!

reg = HypRel('CAP',"HT",df)#(2)!

results = reg.run()#(3)!

metrics = reg.view_metrics()#(4)!

reg.plots(r'C:/Your/path/to_save',show=True)#(5)!

df_coefficients =  reg.get_coef()#(6)!

final_results =  reg.predict()#(7)!

  1. Carrega seu arquivo CSV.
  2. Cria a variável reg contendo a classe HypRel.
  3. Executa os modelos e salva na variável results.
  4. Avalia os modelos ajustados e salva as métricas na variável metrics.
  5. Gera os gráficos para os modelos ajustados.
  6. Recupera os coeficientes de cada modelo ajustado.
  7. Obtém as alturas finais e os modelos utilizados para a estimativa.
flowchart LR subgraph run runText1[Executa todos os modelos disponíveis] end subgraph metrics runText2[Avalia cada modelo ajustado] end subgraph plots runText3[Gera gráficos] end subgraph coefficients runText4[Retorna os coeficientes] end subgraph predict runText5[Retorna as alturas estimadas e as funções utilizadas] end %% Links para os subgráficos: HypRel-Module --> run HypRel-Module --> metrics HypRel-Module --> plots HypRel-Module --> coefficients HypRel-Module --> predict

Modelos Disponíveis

  • curtis
  • \[ \operatorname{Altura Total} =e^{(\beta_0+β1*\frac{1}{x})} \]

  • parabolic
  • \[ \operatorname{Altura Total} = \beta_0 + \beta_1 * x + \beta_2 * x^2 \]

  • stofels
  • \[ \operatorname{Altura Total} = e^{(\beta_0+\beta_1*\ln(x))} \]

  • henriksen
  • \[ \operatorname{Altura Total} = \beta_0 + \beta_1 * \ln(x) \]

  • prodan_i
  • \[ \operatorname{Altura Total} = (\frac{x^2}{\beta_0+\beta_1*x+\beta_2* x^2}) \]

  • prodan_ii
  • \[ \operatorname{Altura Total} =(\frac{x^2}{\beta_0+\beta_1*x+\beta_2* x^2})+1.3 \]

  • smd_fm
  • Adaptação do pacote Julia "Forest Mensuration" por SILVA (2022), usado para realizar regressões utilizando diferentes tipos de transformações do diâmetro à altura do peito e altura nos processos de relação hipsométrica.

    Transformações de Y

    • \( y \)
    • \( \log(y) \)
    • \( \log(y - 1.3) \)
    • \( \log(1 + y) \)
    • \( \frac{1}{y} \)
    • \( \frac{1}{y - 1.3} \)
    • \( \frac{1}{\sqrt{y}} \)
    • \( \frac{1}{\sqrt{y - 1.3}} \)
    • \( \frac{x}{\sqrt{y}} \)
    • \( \frac{x}{\sqrt{y - 1.3}} \)
    • \( \frac{x^2}{y} \)
    • \( \frac{x^2}{y - 1.3} \)

    Transformações de X

    • \( x \)
    • \( x^2 \)
    • \( \log(x) \)
    • \( \log(x)^2 \)
    • \( \frac{1}{x} \)
    • \( \frac{1}{x^2} \)
    • \( x + x^2 \)
    • \( x + \log(x) \)
    • \( x + \log(x)^2 \)
    • \( x + \frac{1}{x} \)
    • \( x + \frac{1}{x^2} \)
    • \( x^2 + \log(x) \)
    • \( x^2 + \log(x)^2 \)
    • \( x^2 + \frac{1}{x} \)
    • \( \log(x) + \log(x)^2 \)
    • \( \log(x) + \frac{1}{x} \)
    • \( \log(x) + \frac{1}{x^2} \)
    • \( \log(x)^2 + \frac{1}{x} \)
    • \( \log(x)^2 + \frac{1}{x^2} \)
    • \( \frac{1}{x} + \frac{1}{x^2} \)

  • ann
  • Explicação sobre Redes Neurais Artificiais abaixo.

    Rede Neural Artificial

    Ao selecionar o modelo 'ann', 4 diferentes estruturas de redes neurais artificiais serão testadas. Apenas o resultado de um modelo será retornado. O modelo retornado será selecionado pela função de classificação.

    Para o modelo 'ann', o módulo sklearn.neural_network.MLPRegressor é utilizado.

    --- title: Parâmetros da ANN --- classDiagram class MLPRegressor { Épocas: 3000 Ativação: logística Modo do Solver: lbfgs Tamanho do Lote: dinâmico Taxa de Aprendizado Inicial: 0.1 Modo da Taxa de Aprendizado: adaptativo } class Model-0 { Tamanhos das Camadas Ocultas: (4,5) } class Model_1 { Tamanhos das Camadas Ocultas: (4,2) } class Model_2 { Tamanhos das Camadas Ocultas: (3,2) } class Model_3 { Tamanhos das Camadas Ocultas: (4,4) } MLPRegressor <|-- Model-0 MLPRegressor <|-- Model_1 MLPRegressor <|-- Model_2 MLPRegressor <|-- Model_3

    Função de Ranqueamento

    Para selecionar os modelos com melhor desempenho e classificá-los adequadamente, as seguintes métricas são calculadas:

    Nome da Métrica Estrutura
    Erro Médio Absoluto (MAE) \( MAE = \frac{1}{n} \sum_{i=1}^{n} \|y_i - \hat{y}_i\| \)
    Erro Percentual Médio Absoluto (MAPE) \( MAPE = \frac{100}{n} \sum_{i=1}^{n} \left\|\frac{y_i - \hat{y}_i}{y_i}\right\| \)
    Erro Quadrático Médio (MSE) \( MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \)
    Raiz do Erro Quadrático Médio (RMSE) \( RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} \)
    R² (Coeficiente de Determinação) \( R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} \)
    Variância Explicada (EV) \( EV = 1 - \frac{Var(y - \hat{y})}{Var(y)} \)
    Erro Médio \( Erro\ Médio = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i) \)

    Após obter as métricas para cada modelo testado, o melhor modelo recebe uma pontuação de 10, enquanto os demais recebem pontuações de 9, 8 e assim por diante.

    Referências

    CURTIS, R. O. (1967). Height-Diameter and Height-Diameter-Age Equations For Second-Growth Douglas-Fir. Forest Science, 13(4), 365–375. https://doi.org/10.1093/forestscience/13.4.365

    SCOLFORO, J. R. S. (2005). Biometria Florestal: Parte I: Modelos de regressão linear e não-linear; Parte II: Modelos para relação hipsométrica, volume, afilamento e preso de matéria seca. Lavras: UFLA/FAEPE, pp. 224–226.

    SILVA, M. D. (2022). Forest Mensuration.jl: Uma Introdução à Aplicações em Julia. 128 p. Trabalho de Conclusão de Curso (Graduação em Engenharia Florestal) – Universidade Federal de Santa Maria, Frederico Westphalen, RS, 2022.

    JAMES, G.; WITTEN, D.; HASTIE, T.; TIBSHIRANI, R. (2013). An Introduction to Statistical Learning. In Springer Texts in Statistics. Springer New York. https://doi.org/10.1007/978-1-4614-7138-7