Skip to main content

Cálculo otimizado de valores deduzíveis para análise de patologias em pavimentos rígidos e flexíveis

Project description

🛣️ PavDedutor

Descrição

O que é?

A pavdedutor é biblioteca python voltada para otimização do cálculo de valores deduzíveis de patologias de pavimentos rígidos e flexíveis com base nas disposições normativas da DNIT 062/2004 PRO e ASTMD6433.

Por que?

Entendendo a necessidade de automação dos processo manuais presentes nas normas DNIT 062/2004 PRO e ASTMD6433, a pavdedutor propõe a substiuição da consulta manual aos ábacos de valores de deduzíveis pelo uso de funções rápidas e simples, a fim de reduzir drasticamente o tempo de análise de patologias. Assim, a pavdedutor encontra utilidade não só em trabalhos de engenharia ou geotecnologia, mas também nos campos de visão computacional e inteligência artifical, agindo como um molde normativo para as catalogações e, assim, oferencendo maior aderência aos critérios técnicos vigentes, garantindo que as análises automatizadas mantenham o rigor exigido em norma sem perder velocidade nas coletas.

Exemplificação de fluxo

A biblioteca possibilita:

  • Cálculo direto dos valores deduzíveis por tipo de patologia e tipo de pavimento;
  • Cálculo de valor deduzível corrigido total automático por tipo de pavimento.

Instalação

Instalação com pip

pip install pavdedutor

Uso

Cálculo de valor deduzível unitário

import pavdedutor as pav  # Importa a biblioteca

# Cálculo de valor deduzível
exemplo = pav.deduzivel(1, 'a', 30, 'rígido')  # Chama a função deduzivel passando: patologia 1, severidade 'a', densidade 30 e pavimento rígido
print(exemplo)  # Imprime o valor deduzível calculado

Cálculo de valor deduzível em lote

import pavdedutor as pav  # Importa a biblioteca
import pandas as pd  # Importa a biblioteca pandas

# Criação de um dicionário com dados genéricos de patologias
dic_patologias = {
    'Patologias': [1, 2, 3, 4, 5, 6, 7, 8, 9],  # Lista de códigos de patologias
    'Severidades': ['a','b','m','a','b','m','a','b','m'],  # Severidades correspondentes
    'Densidades': [10, 20, 30, 10, 20, 30, 10, 20, 30],  # Densidades para cada patologia
    'Tipo de pavimento': ['rígido']*9,  # Tipo de pavimento (todos rígidos)
    'Número da amostra': [1, 1, 1, 2, 2, 2, 3, 3, 3]  # Identifica a qual amostra cada linha pertence
}

df = pd.DataFrame(dic_patologias)  # Cria um DataFrame a partir do dicionário

resultado = []  # Lista para armazenar os resultados

# Loop para calcular o valor deduzível de cada linha
for i in range(len(df)):
    resultado.append(pav.deduzivel(
        df.loc[i, 'Patologias'], # Nome da coluna com as patologias
        df.loc[i, 'Severidades'], # Nome da coluna com as severidades correspondentes
        df.loc[i, 'Densidades'], # Nome da coluna com as densidades correspondentes
        df.loc[i, 'Tipo de pavimento'] # Nome da coluna com os tipos de pavimentos
    )
)

df['Valores deduziveis'] = resultado  # Adiciona os valores deduzíveis calculados ao DataFrame

df  # Exibe o DataFrame final

Cálculo de valor deduzível corrigido total

import pavdedutor as pav  # Importa a biblioteca pavdedutor
import pandas as pd  # Importa a biblioteca pandas

# Criação de um dicionário com dados genéricos
dic_patologias = {
    'Patologias': [1, 2, 3],  # Códigos das patologias
    'Severidades': ['a','b','m'],  # Severidades correspondentes
    'Densidades': [10, 20, 30],  # Densidades para cada patologia
    'Tipo de pavimento': ['rígido']*3,  # Tipo de pavimento (todos rígidos)
    'Valores deduziveis': [54, 17, 39]  # Valores deduzíveis previamente calculados
}

df = pd.DataFrame(dic_patologias)  # Converte o dicionário em DataFrame

# Cálculo de valor deduzível total com correção por diversidade de patologias
exemplo = pav.deduzivel_total(
    df, # DataFrame com os dados genéricos
    'Patologias',  # Nome da coluna com os códigos das patologias
    'Valores deduziveis',  # Nome da coluna com os valores deduzíveis
    'rígido'  # Tipo de pavimento
)

print(exemplo)  # Exibe o valor deduzível total corrigido

Cálculo de valor deduzível corrigido total em lote

import pavdedutor as pav  # Importa a biblioteca pavdedutor
import pandas as pd  # Importa a biblioteca pandas

# Criação do dicionário com dados simulados de patologias por amostra
dic_patologias = {
    'Patologias': [1, 2, 3, 4, 5, 6, 7, 8, 9],  # Códigos das patologias
    'Severidades': ['a','b','m','a','b','m','a','b','m'],  # Severidades correspondentes
    'Densidades': [10,20,30,10,20,30,10,20,30],  # Densidades para cada patologia
    'Tipo de pavimento': ['rígido']*9,  # Tipo de pavimento (todos rígidos)
    'Número da amostra': [1,1,1,2,2,2,3,3,3],  # Identificador da amostra
    'Valores deduzíveis': [54,17,39,16,2,10,18,7,7]  # Valores deduzíveis previamente calculados
}

df = pd.DataFrame(dic_patologias)  # Cria o DataFrame com os dados

resultado = []  # Lista para armazenar os resultados corrigidos

# Loop para calcular o valor deduzível total corrigido por amostra
for amostra in df['Número da amostra'].unique():
    
    resultado.append(pav.deduzivel_corrigido_total(
        df[df['Número da amostra'] == amostra],  # Filtra os dados da amostra atual
        'Patologias',  # Nome da coluna de patologias
        'Valores deduzíveis',  # Nome da coluna com os valores deduzíveis
        'rígido'  # Tipo de pavimento
    )
)

resultado  # Exibe os resultados finais corrigidos por amostra

Com os valores deduzíveis corrigidos, o usuário já pode obter o ICP/IPC

import pandas as pd  # Importa a biblioteca pandas

amostras = [1, 2, 3]  # Lista com os números das amostras
resultado = [66, 22, 20]  # Lista com os valores deduzíveis corrigidos por amostra

tabela_final = dict(zip(amostras, resultado))  # Cria um dicionário associando cada amostra ao seu resultado

df_final = pd.DataFrame(tabela_final.items(), columns=['Amostra', 'VDC'])  # Converte em DataFrame com colunas Amostra e VDC
df_final['ICP'] = 100 - df_final['VDC']  # Calcula o ICP como 100 - VDC

df_final  # Exibe a tabela final com VDC e ICP por amostra

Desenvolvimento do projeto

A biblioteca ainda está em processo de desenvolvimento, com novas funcionalidades a serem implementadas, assim como sua documentação. Fique a vontade para me contatar e dar sua opnião sobre o projeto no meu Linkedin, GitHub ou Email.

Licença

Copyright (c) 2025 Wellington Moura

O uso é fornecido sob a Licença do MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pavdedutor-0.0.5.tar.gz (18.5 kB view details)

Uploaded Source

File details

Details for the file pavdedutor-0.0.5.tar.gz.

File metadata

  • Download URL: pavdedutor-0.0.5.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.9

File hashes

Hashes for pavdedutor-0.0.5.tar.gz
Algorithm Hash digest
SHA256 858e18c8acfd788be8cafad9e0dd1c30abc4d4b268d233da7fb6c99233c40718
MD5 afd7831707a19d00ef162d603793ecdc
BLAKE2b-256 ccc6656a09dcb6af437e0cdc31e432e799e5595d1db829a9129b16807522f8f3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page