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.jsoncontendo os coeficientes dos modelos ajustados ou o arquivo.pklcontendo 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.jsoncontendo os coeficientes dos modelos ajustados ou o arquivo.pklcontendo 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.jsoncontendo os coeficientes dos modelos ajustados ou o arquivo.pklcontendo 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 
pandaspara 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_dfa partir de um arquivoxlsx. - Carrega o DataFrame 
inventory_dfa partir de um arquivoxlsx. - Filtra os dados para obter apenas dados onda a coluna 
Fazendaé igual aFazenda 1. - Cria a variável 
Prodcontendo a classeAssortmentse utilizando o DataFrameassortments_dfcomo produtos. - Calcula os sortimentos para cada árvore no 
inventory_dfusando o modelokozak, a colunaDAPpara valores de DAP e a colunaHTpara valores de altura das árvores, salvando na variávelassortments. - Calcula volumes com integração da função 
bipara cada árvore noinventory_dfusando o modelobi, a colunaDAPpara valores de DAP e a colunaHTpara 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_dfusando o modelomeyer, a colunaDAPpara valores de DAP e a colunaHTpara 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_volumeewasted_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_volumemultiplicado 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_volumemultiplicado 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_dfusando o redes neurais artificiais, a colunaDAPpara valores de DAP e a colunaHTpara 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 colunaDAPpara valores de DAP e a colunaHTpara 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 colunaDAPpara valores de DAP e a colunaHTpara valores de altura das árvores. Também utiliza um fator de casca de85%.