Sortimentos
Obtenha os produtos gerados pelo inventário florestal com base em uma tabela de produtos. Use funções de afilamente e redes neurais artificiais para estimar o volume comercial e não comercial gerado pela floresta. Estime volumes usando equações volumétricas ajustadas.
Parâmetros de classe
Assortments(df, assortments_priority=None)
Parâmetros | Descrição |
---|---|
df | O dataframe contendo os dados dos sortimentos. |
assortments_priority | (Opcional) O nome da coluna que define a prioridade dos sortimentos. Se None , usa a ordem padrão do dataframe. |
Métodos da Classe
Assortments.get_assortments(model, model_path, trees_df, tree_dbh, tree_height,
stump=0.1, initial_height=None)#(1)!
Assortments.get_taper_volumes(model, model_path, trees_df, tree_dbh,
tree_height, bark_factor=None, stump=0.1)#(2)!
Assortments.get_volumes(model, model_path, trees_df, tree_dbh,
tree_height, bark_factor=None)#(3)!
-
model = O nome da função de afilamento ou 'ann' a ser usada para calcular os sortimentos.
model_path = Caminho para o arquivo.json
contendo os coeficientes dos modelos ajustados ou o arquivo.pkl
contendo a rede neural artificial ajustada.
trees_df = DataFrame do Pandas contendo o inventário para o qual os sortimentos devem ser calculados.
tree_dbh = Nome da coluna contendo os valores do diâmetro à altura do peito (DAP) em centímetros.
tree_height = Nome da coluna contendo os valores da altura total das árvores em metros.
stump = (Opcional) Altura do toco (metros) a ser considerada no cálculo do sortimento. Sestump==None
, o padrão é0.1
.
initial_height = (Opcional) Altura (metros) a partir da qual os produtos começam a ser gerados. Útil para casos em que a base da árvore foi danificada por incêndio ou utilizada para extração de resina. -
model = O nome da função de afilamento ou 'ann' a ser usada para calcular o volume.
model_path = Caminho para o arquivo.json
contendo os coeficientes dos modelos ajustados ou o arquivo.pkl
contendo a rede neural artificial ajustada.
trees_df = DataFrame do Pandas contendo o inventário para o qual os volumes devem ser calculados.
tree_dbh = Nome da coluna contendo os valores do diâmetro à altura do peito (DAP) em centímetros.
tree_height = Nome da coluna contendo os valores da altura total das árvores em metros.
bark_factor = (Opcional) Valor do fator de casca a ser utilizado para calcular volumes sem casca.
stump = (Opcional) Altura do toco (metros) a ser considerada no cálculo dos volumes. Sestump==None
, o padrão é0.1
. -
model = O nome da função volumétrica ou 'ann' volumétrica a ser usada para calcular o volume.
model_path = Caminho para o arquivo.json
contendo os coeficientes dos modelos ajustados ou o arquivo.pkl
contendo a rede neural artificial ajustada.
trees_df = DataFrame do Pandas contendo o inventário para o qual os volumes devem ser calculados.
tree_dbh = Nome da coluna contendo os valores do diâmetro à altura do peito (DAP) em centímetros.
tree_height = Nome da coluna contendo os valores da altura total das árvores em metros.
bark_factor = (Opcional) Valor do fator de casca a ser utilizado para calcular volumes sem casca.
Métodos | Descrição |
---|---|
.get_assortments() | Retorna o DataFrame trees_df com colunas adicionais indicando a quantidade de produtos gerados para cada sortimento, bem como o volume gerado para cada sortimento em cada árvore. Calcula também o volume comercial, o volume total da árvore e o volume desperdiçado. |
.get_taper_volumes() | Retorna o trees_df com os volumes calculados com base na integração das funções de afilamento. Calcula o volume total com casca e sem casca. |
.get_volumes() | Retorna o trees_df com os volumes calculados com base nas funções volumétricas ajustadas. Calcula o volume total com casca e sem casca. |
Exemplo de Uso
Considere uma base de dados de inventário composta por 50 árvores do gênero Eucalyptus, nas quais os diâmetros a altura do peito (DAP) e altura total foram mensurados.
Primeiras 5 linhas do arquivo:
Fazenda | Árvore | DAP (cm) | HT (m) |
---|---|---|---|
Fazenda 1 | 1 | 24,8 | 28,0 |
Fazenda 1 | 2 | 21,2 | 27,1 |
Fazenda 1 | 3 | 26,8 | 37,8 |
Fazenda 1 | 4 | 37,6 | 43,0 |
Fazenda 1 | 5 | 35,7 | 42,8 |
Para o funcionamento desse módulo, é necessário especificar um DataFrame contendo a descrição dos produtos que se deseja extrair de cada árvore. Essa tabela deve incluir, para cada produto, as seguintes informações: nome do produto, comprimento mínimo e máximo, diâmetro mínimo, perda associada ao corte (gerada pela serra do equipamento) e, opcionalmente, uma coluna definindo a prioridade de extração de cada produto.
Exemplo de tabela de sortimentos
Product | Length min (m) | Length max (m) | D min (cm) | Loss (cm) | Priority |
---|---|---|---|---|---|
Prod. 1 | 4,5 | 5 | 15 | 0,5 | 1 |
Prod. 2 | 2 | 2 | 8 | 0,5 | 2 |
Prod. 3 | 1 | 1 | 3 | 0,5 | 3 |
A ordem das colunas deve ser seguida.
taper_functions_example.py | |
---|---|
- Importa a classe
Assortments
. - Importa o
pandas
para manipulação de dados.
Para esse exemplo, vamos utilizar as equações ajustadas para o iterator "Fazenda 1". Desse modo, vamos filtrar os dados para calcular produtos somente para as árvores da "Fazenda 1". Utilizaremos os arquivos gerados pelo módulo Volumetrics
Baixar o arquivo taper_functions_coefficients_Fazenda 1.json.
Baixar o arquivo volumetrics_functions_coefficients_Fazenda 1.json.
- Carrega o DataFrame
assortments_df
a partir de um arquivoxlsx
. - Carrega o DataFrame
inventory_df
a partir de um arquivoxlsx
. - Filtra os dados para obter apenas dados onda a coluna
Fazenda
é igual aFazenda 1
. - Cria a variável
Prod
contendo a classeAssortments
e utilizando o DataFrameassortments_df
como produtos. - Calcula os sortimentos para cada árvore no
inventory_df
usando o modelokozak
, a colunaDAP
para valores de DAP e a colunaHT
para valores de altura das árvores, salvando na variávelassortments
. - Calcula volumes com integração da função
bi
para cada árvore noinventory_df
usando o modelobi
, a colunaDAP
para valores de DAP e a colunaHT
para valores de altura das árvores. Também utiliza um fator de casca de90%
. - Calcula volumes com função volumétrica para cada árvore no
inventory_df
usando o modelomeyer
, a colunaDAP
para valores de DAP e a colunaHT
para valores de altura das árvores. Também utiliza um fator de casca de85%
.
Saídas
Tabelas
assortments
(1)
- DataFrame inicial com as seguintes colunas adicionadas:
Para cada produto definido na tabela assortments_df, serão criadas duas colunas: uma informando a quantidade de produtos extraídos por árvore e outra indicando o volume total gerado (em metros cúbicos) para aquele produto.
Além disso, o DataFrame contará com as colunascommercial_volume
,tree_volume
ewasted_volume
, que representam, respectivamente, o volume comercial aproveitado, o volume total da árvore e o volume de madeira desperdiçado.
Fazenda | Árvore | DAP | HT | Prod. 1_quantity | Prod. 1_volume | Prod. 2_quantity | Prod. 2_volume | Prod. 3_quantity | Prod. 3_volume | comercial_volume | tree_volume | wasted_volume |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Fazenda 1 | 1 | 24,84076433 | 28 | 2 | 0,36529298 | 5 | 0,160465831 | 6 | 0,022446226 | 0,548205036 | 0,548793726 | 0,00058869 |
Fazenda 1 | 2 | 21,17834395 | 27,1 | 1 | 0,15662905 | 7 | 0,205798888 | 5 | 0,016228224 | 0,378656162 | 0,379971069 | 0,001314907 |
Fazenda 1 | 3 | 26,81528662 | 37,8 | 4 | 0,738422477 | 5 | 0,129884459 | 5 | 0,016047425 | 0,884354362 | 0,88558894 | 0,001234578 |
Fazenda 1 | 4 | 37,57961783 | 43 | 6 | 1,899253966 | 3 | 0,090801352 | 5 | 0,021413892 | 2,01146921 | 2,01247906 | 0,00100985 |
Fazenda 1 | 5 | 35,66878981 | 42,8 | 6 | 1,705021305 | 3 | 0,07966354 | 5 | 0,018106349 | 1,802791194 | 1,803503982 | 0,000712789 |
taper_volumes
(1)
- DataFrame inicial com as seguintes colunas adicionadas:
Tree_volume
: Volume total da árvore calculado pela integração da função de afilamento informada.Tree_volume_without_bark
:Tree_volume
multiplicado pelo fator de cásca informado.
Fazenda | Árvore | DAP | HT | Tree_volume | Tree_volume_without_bark |
---|---|---|---|---|---|
Fazenda 1 | 1 | 24,84076433 | 28 | 0,545157869 | 0,490642083 |
Fazenda 1 | 2 | 21,17834395 | 27,1 | 0,38299769 | 0,344697921 |
Fazenda 1 | 3 | 26,81528662 | 37,8 | 0,870697291 | 0,783627562 |
Fazenda 1 | 4 | 37,57961783 | 43 | 2,005436616 | 1,804892954 |
Fazenda 1 | 5 | 35,66878981 | 42,8 | 1,790646854 | 1,611582169 |
volumes
(1)
- DataFrame inicial com as seguintes colunas adicionadas:
Tree_volume
: Volume total da árvore calculado pela equação volumétrica informada.Tree_volume_without_bark
:Tree_volume
multiplicado pelo fator de cásca informado.
Fazenda | Árvore | DAP | HT | Tree_volume | Tree_volume_without_bark |
---|---|---|---|---|---|
Fazenda 1 | 1 | 24,84076433 | 28 | 0,550907023 | 0,468270969 |
Fazenda 1 | 2 | 21,17834395 | 27,1 | 0,380017894 | 0,32301521 |
Fazenda 1 | 3 | 26,81528662 | 37,8 | 0,902103615 | 0,766788073 |
Fazenda 1 | 4 | 37,57961783 | 43 | 2,036722755 | 1,731214342 |
Fazenda 1 | 5 | 35,66878981 | 42,8 | 1,825198637 | 1,551418842 |
Caso o usuário deseje utilizar um dos modelos de rede neural treinados para cada função, basta substituir o nome do modelo por ann
e especificar o diretório do arquivo .pkl
contendo os parâmetros da rede neural ajustada.
Baixar o arquivo taper_model_ann_Fazenda 1.pkl.
Baixar o arquivo volumetric_ann_Fazenda 1.pkl.
- Calcula os sortimentos para cada árvore no
inventory_df
usando o redes neurais artificiais, a colunaDAP
para valores de DAP e a colunaHT
para valores de altura das árvores, salvando na variávelassortments
. - Calcula volumes com integração da rede neural artificial para cada árvore no
inventory_df
, a colunaDAP
para valores de DAP e a colunaHT
para valores de altura das árvores. Também utiliza um fator de casca de90%
. - Calcula volumes com rede neural artificial volumétrica para cada árvore no
inventory_df
, a colunaDAP
para valores de DAP e a colunaHT
para valores de altura das árvores. Também utiliza um fator de casca de85%
.