Sortimentos
Warning
Esta biblioteca está em desenvolvimento, nenhuma das soluções apresentadas está disponível para download.
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. |
Funções 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%
.