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

104 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
Todas as alterações relevantes do projeto são registradas neste arquivo.
Formato baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/).
---
## [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).