Initial project import

This commit is contained in:
Lucas
2026-06-26 18:07:04 -03:00
commit 6443c0e2dc
48 changed files with 3948 additions and 0 deletions

72
scripts/01_config.py Normal file
View File

@@ -0,0 +1,72 @@
"""Configuracao central dos scripts do Planejador Missao.
Entradas:
Estrutura padrao do projeto, com pastas dados/, src/ e resultados/.
Saidas:
Constantes de caminho, parametros operacionais, nomes de arquivos e pesos
usados pelos scripts de execucao, validacao e teste.
Papel no pipeline:
Evita caminhos absolutos e concentra convencoes para que o projeto rode em
qualquer computador mantendo a mesma estrutura de diretorios.
"""
from __future__ import annotations
from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parents[1]
SCRIPTS_DIR = PROJECT_ROOT / "scripts"
SRC_DIR = PROJECT_ROOT / "src"
DADOS_DIR = PROJECT_ROOT / "dados"
RESULTADOS_DIR = PROJECT_ROOT / "resultados"
VALIDACAO_DIR = RESULTADOS_DIR / "validacao"
LOGS_DIR = PROJECT_ROOT / "logs"
TEMP_DIR = PROJECT_ROOT / "temp"
ARQUIVO_PARAMETROS = DADOS_DIR / "parametros_missao.csv"
ARQUIVO_CADASTRO_LOCAL = DADOS_DIR / "Modelagem_C98_ETA2_local.xlsx"
ARQUIVO_CADASTRO_ORIGINAL = DADOS_DIR / "Modelagem C98 ETA2.xlsx"
ARQUIVO_CATALOGO_OIS = DADOS_DIR / "catalogo_ois.xlsx"
ARQUIVO_INDISPONIBILIDADES = DADOS_DIR / "indisponibilidades_2026.xlsx"
ARQUIVO_HISTORICO = DADOS_DIR / "historico_horas_voadas.csv"
ARQUIVO_QUADRO_VOO_2025 = DADOS_DIR / "Quadro de Voo 2025 (2).xlsx"
ARQUIVO_VOOS_2025 = DADOS_DIR / "validacao" / "voos_2025.csv"
LOG_EXECUCAO = LOGS_DIR / "execucao.log"
AERONAVES = ["C98", "C97", "C95"]
META_HORAS_PADRAO = 50.0
VALIDACAO_TEMPO_LIMITE_SEGUNDOS = 180.0
VALIDACAO_GAP_RELATIVO = 0.05
PESOS_OBJETIVO = {
"rota_acionada": 100000,
"missao_local": 1000,
"sobreaviso": 0,
"meta_50": 100,
"meta_110": 100,
"beneficio_paop": 10,
"custo_financeiro": -0.05,
}
ABAS = {
"cadastro": "BANCO DE DADOS 2026",
"catalogo_ois": "catalogo_ois",
"voos_2025": "VOOS",
"relatorio_diario": "ESCALA DIARIA",
}
ARQUIVOS_ENTRADA_OBRIGATORIOS = [
ARQUIVO_CATALOGO_OIS,
ARQUIVO_INDISPONIBILIDADES,
ARQUIVO_PARAMETROS,
]
def garantir_diretorios() -> None:
"""Cria diretorios de saida e apoio usados pelos scripts."""
for path in [RESULTADOS_DIR, VALIDACAO_DIR, LOGS_DIR, TEMP_DIR, ARQUIVO_VOOS_2025.parent]:
path.mkdir(parents=True, exist_ok=True)