Files
aircraftrouting_arara/CHANGELOG.md
Eduardo Carlos 3607965c88 Add OARMP routing engine, dashboard and documentation
- 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>
2026-06-17 11:52:34 -03:00

5.2 KiB
Raw Blame History

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.md com documentação do projeto, estrutura de pastas, instruções de instalação e conceitos-chave
  • CONTEXTO.md com contexto operacional, motivação e decisões de projeto
  • CHANGELOG.md (este arquivo)

[0.5.0] — 2026-06-17

Adicionado

  • Mapa interativo de rotas (aba 🗺 Mapa): rotas por aeronave exibidas com folium + 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ção nos aeroportos com IS_MAINTENANCE_BASE = 1
  • folium>=0.14.0 e streamlit-folium>=0.22.0 adicionados ao requirements.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_apos do TTM do segundo ciclo. Agora todos os eventos são acumulados (all_maint) e fh_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 🗺 Mapa no Output: representação geográfica das rotas por aeronave usando plotly.graph_objects.Scattergeo (substituído na v0.5.0)
  • Biblioteca airportsdata para lookup de coordenadas por código ICAO, sem necessidade de API key
  • airportsdata>=20240101 adicionado ao requirements.txt
  • Coordenadas de DEP/ARR lidas diretamente da Escala com Atribuição (campo compartilhado raw_sched_atrib)

Alterado

  • Gráfico de FH por aeronave e métricas de horas disponíveis transferidos da aba Escala com Atribuição para a aba Manutençã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 Aeronaves com 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
  • 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 Resumo e Gantt unificadas em 📊 Resumo
  • Altura do gráfico de FH dobrada (800 px)

Corrigido

  • Variável _c4 renomeada para _ (sem uso)
  • tat acessado via st.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 coluna Média e 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âmetros do sidebar (TAT mínimo movido para sub-aba Aeronaves; ano de planejamento removido — inferido de pd.Timestamp.now().year)

Alterado

  • Campo TAT mínimo movido para a sub-aba Aeronaves do 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: 📥 Input e 📤 Output
  • Sub-abas de Input: Escala de Voo, Aeronaves, Checks, Bases de Manutenção com st.data_editor editável
  • Suporte a DataFrames em memória no pipeline: load_from_dfs() em ingest.py aceita dados do editor sem gravar em disco
  • Parâmetro raw_dfs em RoutingPipeline.run() para passar dados in-memory
  • Parsing de datas no formato DD/MM/AAAA em _parse_br_date() (além do legado DD/mon)
  • Backup do dashboard original em app/dashboard_backup.py

Alterado

  • src/routing_engine/pipeline.py: run() recebe raw_dfs opcional; chama load_from_dfs se fornecido
  • src/routing_engine/ingest.py: adicionada função load_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).