- Complete routing engine: ingest, optimizer (CG+B&B), maintenance monitor, metrics, pipeline, quality checks - Streamlit dashboard with Input/Output tab structure, editable data editors, interactive Folium map with satellite layer and maintenance base highlights, FH stacked bar chart with TTM availability - CSV data files: AERONAVES, CHECKS, AIRPORTS, ESCALA DE VOO - README, CONTEXTO and CHANGELOG added - Remove legacy pre_process scripts and raw binary files (PDFs/xlsx) - Update .gitignore to exclude outputs/, data/, raw/*.pdf, raw/*.xlsx Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.2 KiB
5.2 KiB
Changelog
Todas as alterações relevantes do projeto são registradas neste arquivo.
Formato baseado em Keep a Changelog.
[Não lançado]
Adicionado
README.mdcom documentação do projeto, estrutura de pastas, instruções de instalação e conceitos-chaveCONTEXTO.mdcom contexto operacional, motivação e decisões de projetoCHANGELOG.md(este arquivo)
[0.5.0] — 2026-06-17
Adicionado
- Mapa interativo de rotas (aba
🗺 Mapa): rotas por aeronave exibidas comfolium+streamlit-folium; controle de camadas para alternar entre CartoDB positron e satélite Esri World Imagery - Destaque de bases de manutenção no mapa: marcador laranja (raio duplo) com tooltip
🔧 Base de manutençãonos aeroportos comIS_MAINTENANCE_BASE = 1 folium>=0.14.0estreamlit-folium>=0.22.0adicionados aorequirements.txt
Corrigido
- TTM disponível zerava após check: a lógica anterior usava apenas o primeiro evento de manutenção por aeronave e subtraía todo
fh_aposdo TTM do segundo ciclo. Agora todos os eventos são acumulados (all_maint) efh_after_last = total_fh − Σ(accum_fh_at_check)calcula corretamente as FH voadas após a última manutenção - Linha "Média" na tabela Frota não tinha mais cor de fundo (removido
background-color:#e8f4f8); mantém apenas negrito
[0.4.0] — 2026-06-16
Adicionado
- Aba
🗺 Mapano Output: representação geográfica das rotas por aeronave usandoplotly.graph_objects.Scattergeo(substituído na v0.5.0) - Biblioteca
airportsdatapara lookup de coordenadas por código ICAO, sem necessidade de API key airportsdata>=20240101adicionado aorequirements.txt- Coordenadas de DEP/ARR lidas diretamente da
Escala com Atribuição(campo compartilhadoraw_sched_atrib)
Alterado
- Gráfico de FH por aeronave e métricas de horas disponíveis transferidos da aba
Escala com Atribuiçãopara a abaManutenção e Aeronaves(renomeada) - Cor da coluna "FH de TTM perdidas por aeronave / ciclo" alterada para vermelho
[0.3.0] — 2026-06-15
Adicionado
- Gráfico de FH por aeronave na aba
Manutenção e Aeronavescom quatro segmentos empilhados:- FH Iniciais (cinza
#94a3b8) - FH Planejadas antes da manutenção (azul
#3b82f6) - FH Planejadas após a manutenção (âmbar
#f59e0b) - FH Disponíveis até a próxima manutenção (verde
#22c55e, opacidade 0.55) - Marcador diamante vermelho indicando o evento de check
- FH Iniciais (cinza
- Métricas de horas disponíveis por aeronave (metric cards) abaixo do gráfico
- Campo para adicionar N linhas de uma vez na Escala de Voo (Input), com botão "Limpar tudo"
- Exclusão de linhas habilitada na tabela de Escala de Voo (
num_rows="dynamic")
Alterado
- Abas
ResumoeGanttunificadas em📊 Resumo - Altura do gráfico de FH dobrada (800 px)
Corrigido
- Variável
_c4renomeada para_(sem uso) tatacessado viast.session_state.get("tat", 60)para evitar erro quando o botão de execução é pressionado antes de o sub-tab Aeronaves ser visitado
[0.2.0] — 2026-06-14
Adicionado
- Aba
🔧 Manutenção: tabela com eventos de manutenção (aeronave, OFRAG anterior, threshold, FH acumuladas, perda de TTM, início/fim calendário) e gráficos de FH perdidas e FH verificadas - Aba
✈ Frota: tabela de utilização com colunaMédiae gráficos de utilização TTM e FH por aeronave - Campo Tempo do Solver (s) e botão Executar Otimização movidos para a aba Input (acima das sub-abas)
- Mensagem de conclusão com tempo decorrido da otimização (
⏱ Otimização concluída em Xm Ys.) - Cor de fundo das células da Escala com Atribuição alterada para transparente
Removido
- Aba
Parâmetrosdo sidebar (TAT mínimo movido para sub-aba Aeronaves; ano de planejamento removido — inferido depd.Timestamp.now().year)
Alterado
- Campo TAT mínimo movido para a sub-aba
Aeronavesdo Input - Largura do campo Tempo do Solver reduzida com
st.columns([1, 1, 4])
[0.1.0] — 2026-06-13
Adicionado
- Reescrita completa do dashboard (
app/dashboard.py) com estrutura em duas abas principais:📥 Inpute📤 Output - Sub-abas de Input:
Escala de Voo,Aeronaves,Checks,Bases de Manutençãocomst.data_editoreditável - Suporte a DataFrames em memória no pipeline:
load_from_dfs()emingest.pyaceita dados do editor sem gravar em disco - Parâmetro
raw_dfsemRoutingPipeline.run()para passar dados in-memory - Parsing de datas no formato
DD/MM/AAAAem_parse_br_date()(além do legadoDD/mon) - Backup do dashboard original em
app/dashboard_backup.py
Alterado
src/routing_engine/pipeline.py:run()receberaw_dfsopcional; chamaload_from_dfsse fornecidosrc/routing_engine/ingest.py: adicionada funçãoload_from_dfs()com normalização de sinônimos de colunas
[0.0.x] — antes de 2026-06-13
Commits iniciais do repositório: estrutura de pastas, configuração de CI, scripts de inspeção de arquivos, engine de otimização (config, ingest, network_generator, optimizer, maintenance_monitor, metrics, pipeline, quality).