Myria · Pulsar
O Pulsar gera o VAZOES.RVx que o DECOMP lê, a partir do mesmo deck que o ONS publica. Para isso usamos apenas os relatórios do CEPEL, a documentação LIBS, livros e artigos, e os arquivos que o próprio ONS divulga. Cada decisão do código tem uma linha que diz de onde ela veio: de um documento, de uma comparação com um arquivo oficial (com teste) ou de uma escolha nossa, nos pontos em que os documentos não dizem nada.
Repositório aberto, Licença Apache 2.0: github.com/Myria-solucoes/pulsar
$ ./ambiente/py src/pulsar/cli.py decks/ons-pacote-gevazp/202609 --revisao RV0 --semente 1 ▍
Fluxo
A sequência segue o Manual do Usuário (§2.1), a Figura 4.4 do Manual de Metodologia e o capítulo 4 do relatório do PAR(p)-A. Clique numa etapa para ver o que ela faz, como ela se compara ao arquivo oficial e quais decisões a sustentam.
Fontes
O projeto inteiro se apoia em quatro tipos de material, todos abertos. O número em cada cartão conta quantas decisões do registro citam aquela fonte, e as etapas mostram em que ponto do fluxo ela entra. Os relatórios do CEPEL estão no portal de documentação técnica, e as páginas LIBS no manual online do CEPEL.
execucoes/, com o pedido exato e a revisão que veio depois.Resultados
Contamos as palavras de 4 bytes iguais entre o VAZOES.RVx do Pulsar e o publicado pelo ONS, pela mediana de 20 sementes. As partes determinísticas saem idênticas. Nas partes sorteadas, quase todas as palavras iguais vêm de colunas sem dispersão, porque os ruídos que o ONS usou não são públicos (lacuna L6).
Fonte: docs/relatorio-final.md §2.1, tests/test_t12_ponta_a_ponta.py e ferramentas/relatorio_f9.py.
Fração das colunas em que a estatística oficial cai na faixa [mín, máx] das 20 sementes. O traço marca a referência de um gerador idêntico ao oficial.
Lacunas
São 24 pontos que nenhuma fonte pública descreve por inteiro. Para cada um, anotamos se dá para descobrir a resposta com arquivos públicos e o que foi feito. Toda escolha no código aponta para uma delas. Clique num cartão para abrir.
Decisões
Aqui está o PROVENIENCIA.md inteiro. Nenhum detalhe entra no código sem uma linha nesse arquivo, e tests/test_proveniencia.py falha se uma linha não tiver tipo, citar um teste ou caminho que não existe, ou deixar uma escolha sem lacuna.