Síntese da Operação

Para realizar a síntese da operação de um caso do NEWAVE é necessário estar em um diretório no qual estão os principais arquivos de saída do modelo. Em geral, as variáveis da operação são extraídas das saídas do programa auxiliar NWLISTOP, no modo TABELAS (opção 2). Para a síntese do CMO por submercado, por estágio, são necessários os arquivos cmargXXX-med.out. Para a síntese do EARM para o SIN, é necessário o earmfsin.out. Além dos arquivos dos quais são extraídas as variáveis em si, são lidos também alguns arquivos de entrada do modelo, como o dger.dat, ree.dat e sistema.dat. Neste contexto, basta fazer:

$ sintetizador-newave operacao --processadores 4

O sintetizador irá exibir o log da sua execução:

>>> 2024-04-22 09:53:56,845 INFO: # Realizando síntese da OPERACAO #
>>> .
>>> .
>>> .
>>> 2024-07-16 17:33:36,613 INFO: Realizando sintese de VEVAP_UHE
>>> 2024-07-16 17:33:36,615 INFO: Tempo para compactacao dos dados: 0.00 s
>>> 2024-07-16 17:33:36,616 INFO: Tempo para calculo dos limites: 0.00 s
>>> 2024-07-16 17:33:36,640 INFO: Tempo para armazenamento na cache: 0.00 s
>>> 2024-07-16 17:33:36,641 INFO: Tempo para preparacao para exportacao: 0.02 s
>>> 2024-07-16 17:33:36,646 INFO: Tempo para exportacao dos dados: 0.01 s
>>> 2024-07-16 17:33:36,647 INFO: Tempo para sintese de VEVAP_UHE: 0.03 s
>>> 2024-07-16 17:33:36,647 INFO: Realizando sintese de VEVAP_REE
>>> 2024-07-16 17:33:36,649 INFO: Tempo para compactacao dos dados: 0.00 s
>>> 2024-07-16 17:33:36,650 INFO: Tempo para calculo dos limites: 0.00 s
>>> 2024-07-16 17:33:36,676 INFO: Tempo para preparacao para exportacao: 0.03 s
>>> 2024-07-16 17:33:36,681 INFO: Tempo para exportacao dos dados: 0.01 s
>>> 2024-07-16 17:33:36,682 INFO: Tempo para sintese de VEVAP_REE: 0.03 s
>>> 2024-07-16 17:33:36,682 INFO: Realizando sintese de VEVAP_SBM
>>> 2024-07-16 17:33:36,684 INFO: Tempo para compactacao dos dados: 0.00 s
>>> 2024-07-16 17:33:36,684 INFO: Tempo para calculo dos limites: 0.00 s
>>> 2024-07-16 17:33:36,706 INFO: Tempo para preparacao para exportacao: 0.02 s
>>> 2024-07-16 17:33:36,711 INFO: Tempo para exportacao dos dados: 0.01 s
>>> 2024-07-16 17:33:36,712 INFO: Tempo para sintese de VEVAP_SBM: 0.03 s
>>> 2024-07-16 17:33:36,712 INFO: Realizando sintese de VEVAP_SIN
>>> 2024-07-16 17:33:36,714 INFO: Tempo para compactacao dos dados: 0.00 s
>>> 2024-07-16 17:33:36,714 INFO: Tempo para calculo dos limites: 0.00 s
>>> 2024-07-16 17:33:36,738 INFO: Tempo para preparacao para exportacao: 0.02 s
>>> 2024-07-16 17:33:36,743 INFO: Tempo para exportacao dos dados: 0.00 s
>>> 2024-07-16 17:33:36,743 INFO: Tempo para sintese de VEVAP_SIN: 0.03 s
>>> 2024-07-16 17:33:39,162 INFO: Tempo para sintese da operacao: 36.47 s
>>> 2024-07-16 17:33:39,187 INFO: # Fim da síntese #

Os arquivos serão salvos no subdiretório sintese. Para realizar o processamento, pode ser utilizado o próprio python:

import polars as pl
import plotly.express as px

Para a síntese da operação é produzido um arquivo com as informações das sínteses que foram realizadas. O resultado é um Polars DataFrame:

metadados = pl.read_parquet("sintese/METADADOS_OPERACAO.parquet")
print(metadados.head(10))
shape: (10, 9)
┌────────────┬────────────┬───────────┬───────────┬───┬─────────┬───────────┬──────────┬───────────┐
│ chave      ┆ nome_curto ┆ nome_long ┆ nome_curt ┆ … ┆ unidade ┆ calculado ┆ limitado ┆ __index_l │
│ ---        ┆ _variavel  ┆ o_variave ┆ o_agregac ┆   ┆ ---     ┆ ---       ┆ ---      ┆ evel_0__  │
│ str        ┆ ---        ┆ l         ┆ ao        ┆   ┆ str     ┆ bool      ┆ bool     ┆ ---       │
│            ┆ str        ┆ ---       ┆ ---       ┆   ┆         ┆           ┆          ┆ i64       │
│            ┆            ┆ str       ┆ str       ┆   ┆         ┆           ┆          ┆           │
╞════════════╪════════════╪═══════════╪═══════════╪═══╪═════════╪═══════════╪══════════╪═══════════╡
│ CMO_SBM    ┆ CMO        ┆ Custo     ┆ SBM       ┆ … ┆ R$/MWh  ┆ false     ┆ false    ┆ 0         │
│            ┆            ┆ Marginal  ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ de        ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Operação  ┆           ┆   ┆         ┆           ┆          ┆           │
│ VAGUA_REE  ┆ VAGUA      ┆ Valor da  ┆ REE       ┆ … ┆ R$/MWh  ┆ false     ┆ false    ┆ 1         │
│            ┆            ┆ Água      ┆           ┆   ┆         ┆           ┆          ┆           │
│ VAGUA_UHE  ┆ VAGUA      ┆ Valor da  ┆ UHE       ┆ … ┆ R$/hm3  ┆ false     ┆ false    ┆ 2         │
│            ┆            ┆ Água      ┆           ┆   ┆         ┆           ┆          ┆           │
│ VAGUAI_UHE ┆ VAGUA Incr ┆ Valor da  ┆ UHE       ┆ … ┆ R$/hm3  ┆ false     ┆ false    ┆ 3         │
│            ┆ emental    ┆ Água Incr ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ emental   ┆           ┆   ┆         ┆           ┆          ┆           │
│ CTER_SBM   ┆ Custo de   ┆ Custo de  ┆ SBM       ┆ … ┆ 10^6 R$ ┆ false     ┆ false    ┆ 4         │
│            ┆ GT         ┆ Geração   ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Térmica   ┆           ┆   ┆         ┆           ┆          ┆           │
│ CTER_SIN   ┆ Custo de   ┆ Custo de  ┆ SIN       ┆ … ┆ 10^6 R$ ┆ false     ┆ false    ┆ 5         │
│            ┆ GT         ┆ Geração   ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Térmica   ┆           ┆   ┆         ┆           ┆          ┆           │
│ COP_SIN    ┆ COPER      ┆ Custo de  ┆ SIN       ┆ … ┆ 10^6 R$ ┆ false     ┆ false    ┆ 6         │
│            ┆            ┆ Operação  ┆           ┆   ┆         ┆           ┆          ┆           │
│ ENAA_REE   ┆ ENA        ┆ Energia   ┆ REE       ┆ … ┆ MWmes   ┆ false     ┆ false    ┆ 7         │
│            ┆            ┆ Natural   ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Afluente  ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Absol…    ┆           ┆   ┆         ┆           ┆          ┆           │
│ ENAA_SBM   ┆ ENA        ┆ Energia   ┆ SBM       ┆ … ┆ MWmes   ┆ false     ┆ false    ┆ 8         │
│            ┆            ┆ Natural   ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Afluente  ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Absol…    ┆           ┆   ┆         ┆           ┆          ┆           │
│ ENAA_SIN   ┆ ENA        ┆ Energia   ┆ SIN       ┆ … ┆ MWmes   ┆ false     ┆ false    ┆ 9         │
│            ┆            ┆ Natural   ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Afluente  ┆           ┆   ┆         ┆           ┆          ┆           │
│            ┆            ┆ Absol…    ┆           ┆   ┆         ┆           ┆          ┆           │
└────────────┴────────────┴───────────┴───────────┴───┴─────────┴───────────┴──────────┴───────────┘

Os arquivos com os nomes das sínteses de operação armazenam os dados de todos os cenários simulados. Cada arquivo é lido como um Polars DataFrame:

cmo = pl.read_parquet("sintese/CMO_SBM.parquet")
earmf = pl.read_parquet("sintese/EARMF_SIN.parquet")
varmf = pl.read_parquet("sintese/VARMF_UHE.parquet")

O formato dos dados de CMO:

print(cmo.head(10))
shape: (10, 11)
┌────────────┬─────────┬────────────┬────────────┬───┬───────┬────────────┬────────────┬───────────┐
│ codigo_sub ┆ estagio ┆ data_inici ┆ data_fim   ┆ … ┆ valor ┆ limite_inf ┆ limite_sup ┆ __index_l │
│ mercado    ┆ ---     ┆ o          ┆ ---        ┆   ┆ ---   ┆ erior      ┆ erior      ┆ evel_0__  │
│ ---        ┆ i64     ┆ ---        ┆ datetime[n ┆   ┆ f64   ┆ ---        ┆ ---        ┆ ---       │
│ i64        ┆         ┆ datetime[n ┆ s, UTC]    ┆   ┆       ┆ f64        ┆ f64        ┆ i64       │
│            ┆         ┆ s, UTC]    ┆            ┆   ┆       ┆            ┆            ┆           │
╞════════════╪═════════╪════════════╪════════════╪═══╪═══════╪════════════╪════════════╪═══════════╡
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 0         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 1         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 2         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 3         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 4         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 5         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 6         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 7         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 8         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
│ 1          ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 0.0   ┆ -inf       ┆ inf        ┆ 9         │
│            ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆       ┆            ┆            ┆           │
│            ┆         ┆ UTC        ┆ UTC        ┆   ┆       ┆            ┆            ┆           │
└────────────┴─────────┴────────────┴────────────┴───┴───────┴────────────┴────────────┴───────────┘

O esquema de tipos de dados da síntese de CMO:

Schema({'codigo_submercado': Int64, 'estagio': Int64, 'data_inicio': Datetime(time_unit='ns', time_zone='UTC'), 'data_fim': Datetime(time_unit='ns', time_zone='UTC'), 'cenario': Int64, 'patamar': Int64, 'duracao_patamar': Float64, 'valor': Float64, 'limite_inferior': Float64, 'limite_superior': Float64, '__index_level_0__': Int64})

O formato dos dados de EARMF:

print(earmf.head(10))
shape: (10, 10)
┌─────────┬────────────┬────────────┬─────────┬───┬──────────┬────────────┬────────────┬───────────┐
│ estagio ┆ data_inici ┆ data_fim   ┆ cenario ┆ … ┆ valor    ┆ limite_inf ┆ limite_sup ┆ __index_l │
│ ---     ┆ o          ┆ ---        ┆ ---     ┆   ┆ ---      ┆ erior      ┆ erior      ┆ evel_0__  │
│ i64     ┆ ---        ┆ datetime[n ┆ i64     ┆   ┆ f64      ┆ ---        ┆ ---        ┆ ---       │
│         ┆ datetime[n ┆ s, UTC]    ┆         ┆   ┆          ┆ f64        ┆ f64        ┆ i64       │
│         ┆ s, UTC]    ┆            ┆         ┆   ┆          ┆            ┆            ┆           │
╞═════════╪════════════╪════════════╪═════════╪═══╪══════════╪════════════╪════════════╪═══════════╡
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 1       ┆ … ┆ 189151.0 ┆ 61712.0    ┆ 292509.0   ┆ 0         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 3       ┆ … ┆ 204191.0 ┆ 61712.0    ┆ 292509.0   ┆ 2         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 4       ┆ … ┆ 189375.0 ┆ 61712.0    ┆ 292509.0   ┆ 3         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 5       ┆ … ┆ 186184.0 ┆ 61712.0    ┆ 292509.0   ┆ 4         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 6       ┆ … ┆ 189921.0 ┆ 61712.0    ┆ 292509.0   ┆ 5         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 7       ┆ … ┆ 181042.0 ┆ 61712.0    ┆ 292509.0   ┆ 6         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ 2       ┆ … ┆ 187644.0 ┆ 61712.0    ┆ 292509.0   ┆ 1         │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 2       ┆ 2023-11-01 ┆ 2023-12-01 ┆ 2       ┆ … ┆ 174722.0 ┆ 61724.0    ┆ 292574.0   ┆ 31        │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 2       ┆ 2023-11-01 ┆ 2023-12-01 ┆ 3       ┆ … ┆ 194503.0 ┆ 61724.0    ┆ 292574.0   ┆ 32        │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
│ 2       ┆ 2023-11-01 ┆ 2023-12-01 ┆ 4       ┆ … ┆ 173534.0 ┆ 61724.0    ┆ 292574.0   ┆ 33        │
│         ┆ 00:00:00   ┆ 00:00:00   ┆         ┆   ┆          ┆            ┆            ┆           │
│         ┆ UTC        ┆ UTC        ┆         ┆   ┆          ┆            ┆            ┆           │
└─────────┴────────────┴────────────┴─────────┴───┴──────────┴────────────┴────────────┴───────────┘

O esquema de tipos de dados da síntese de EARMF:

Schema({'estagio': Int64, 'data_inicio': Datetime(time_unit='ns', time_zone='UTC'), 'data_fim': Datetime(time_unit='ns', time_zone='UTC'), 'cenario': Int64, 'patamar': Int64, 'duracao_patamar': Float64, 'valor': Float64, 'limite_inferior': Float64, 'limite_superior': Float64, '__index_level_0__': Int64})

O formato dos dados de VARMF:

print(varmf.head(10))
shape: (10, 13)
┌────────────┬────────────┬────────────┬─────────┬───┬────────┬────────────┬───────────┬───────────┐
│ codigo_usi ┆ codigo_ree ┆ codigo_sub ┆ estagio ┆ … ┆ valor  ┆ limite_inf ┆ limite_su ┆ __index_l │
│ na         ┆ ---        ┆ mercado    ┆ ---     ┆   ┆ ---    ┆ erior      ┆ perior    ┆ evel_0__  │
│ ---        ┆ i64        ┆ ---        ┆ i64     ┆   ┆ f64    ┆ ---        ┆ ---       ┆ ---       │
│ i64        ┆            ┆ i64        ┆         ┆   ┆        ┆ f64        ┆ f64       ┆ i64       │
╞════════════╪════════════╪════════════╪═════════╪═══╪════════╪════════════╪═══════════╪═══════════╡
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 415.66 ┆ 120.0      ┆ 792.0     ┆ 0         │
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 440.56 ┆ 120.0      ┆ 792.0     ┆ 1         │
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 517.66 ┆ 120.0      ┆ 792.0     ┆ 2         │
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 626.42 ┆ 120.0      ┆ 792.0     ┆ 3         │
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 447.5  ┆ 120.0      ┆ 792.0     ┆ 4         │
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 430.41 ┆ 120.0      ┆ 792.0     ┆ 5         │
│ 1          ┆ 10         ┆ 1          ┆ 1       ┆ … ┆ 513.29 ┆ 120.0      ┆ 792.0     ┆ 6         │
│ 1          ┆ 10         ┆ 1          ┆ 2       ┆ … ┆ 404.84 ┆ 120.0      ┆ 792.0     ┆ 30        │
│ 1          ┆ 10         ┆ 1          ┆ 2       ┆ … ┆ 354.39 ┆ 120.0      ┆ 792.0     ┆ 31        │
│ 1          ┆ 10         ┆ 1          ┆ 2       ┆ … ┆ 120.0  ┆ 120.0      ┆ 792.0     ┆ 32        │
└────────────┴────────────┴────────────┴─────────┴───┴────────┴────────────┴───────────┴───────────┘

O esquema de tipos de dados da síntese de VARMF:

Schema({'codigo_usina': Int64, 'codigo_ree': Int64, 'codigo_submercado': Int64, 'estagio': Int64, 'data_inicio': Datetime(time_unit='ns', time_zone='UTC'), 'data_fim': Datetime(time_unit='ns', time_zone='UTC'), 'cenario': Int64, 'patamar': Int64, 'duracao_patamar': Float64, 'valor': Float64, 'limite_inferior': Float64, 'limite_superior': Float64, '__index_level_0__': Int64})

De modo geral, os arquivos das sínteses de operação sempre possuem as colunas estagio, data_inicio, data_fim, cenario, patamar e valor. A depender se o arquivo é relativo a uma agregação espacial diferente de todo o SIN, existirão outras colunas adicionais para determinar de qual subconjunto da agregação o dado pertence. Por exemplo, no arquivo da síntese de CMO_SBM, existe uma coluna adicional de nome submercado.

A coluna de cenários contém somente inteiros de 1 a N, onde N é o número de séries da simulação final do modelo.

cenarios = earmf["cenario"].unique().to_list()
print(cenarios)
[1, 2, 3, 4, 5, 6, 7]

Através das estatísticas é possível fazer um gráfico de caixas, para ilustrar a dispersão da variável da operação com os cenários. O plotly aceita Polars DataFrames diretamente:

fig = px.box(earmf, x="data_inicio", y="valor")
fig


Para variáveis da operação que possuam diferentes subconjuntos, como os submercados, podem ser utilizados gráficos de violino para avaliação da dispersão:

cmos_2omes = cmo.filter(pl.col("estagio") == 2)
fig = px.violin(
    cmos_2omes,
    y="valor",
    color="codigo_submercado",
    box=True,
)
fig


Para dados por UHE, como o número de subconjuntos é muito grande, é possível fazer um subconjunto dos elementos de interesse para a visualização:

varmf_1oano = varmf.filter(
    (pl.col("estagio") <= 12) & pl.col("codigo_usina").is_in([6, 169, 251, 275])
)
fig = px.box(
    varmf_1oano,
    x="data_inicio",
    y="valor",
    facet_col_wrap=2,
    facet_col="codigo_usina",
)
fig


Além dos arquivos com as sínteses dos cenários, estão disponíveis também os arquivos que agregam estatísticas das previsões:

estatisticas = pl.read_parquet("sintese/ESTATISTICAS_OPERACAO_UHE.parquet")
print(estatisticas.head(10))
shape: (10, 13)
┌──────────┬─────────┬────────────┬────────────┬───┬───────────┬───────────┬───────────┬───────────┐
│ variavel ┆ estagio ┆ data_inici ┆ data_fim   ┆ … ┆ codigo_re ┆ codigo_su ┆ limite_in ┆ limite_su │
│ ---      ┆ ---     ┆ o          ┆ ---        ┆   ┆ e         ┆ bmercado  ┆ ferior    ┆ perior    │
│ str      ┆ i64     ┆ ---        ┆ datetime[n ┆   ┆ ---       ┆ ---       ┆ ---       ┆ ---       │
│          ┆         ┆ datetime[n ┆ s, UTC]    ┆   ┆ i64       ┆ i64       ┆ f64       ┆ f64       │
│          ┆         ┆ s, UTC]    ┆            ┆   ┆           ┆           ┆           ┆           │
╞══════════╪═════════╪════════════╪════════════╪═══╪═══════════╪═══════════╪═══════════╪═══════════╡
│ VAGUA    ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ -inf      ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ VAGUAI   ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ -inf      ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ VTUR     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ 0.0       ┆ 562.82    │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ VVER     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ 0.0       ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ QTUR     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ 0.0       ┆ 214.0     │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ QVER     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ 0.0       ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ QAFL     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ 0.0       ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ QINC     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ -inf      ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ VAFL     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ 0.0       ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
│ VINC     ┆ 1       ┆ 2023-10-01 ┆ 2023-11-01 ┆ … ┆ 10        ┆ 1         ┆ -inf      ┆ inf       │
│          ┆         ┆ 00:00:00   ┆ 00:00:00   ┆   ┆           ┆           ┆           ┆           │
│          ┆         ┆ UTC        ┆ UTC        ┆   ┆           ┆           ┆           ┆           │
└──────────┴─────────┴────────────┴────────────┴───┴───────────┴───────────┴───────────┴───────────┘

As informações dos arquivos de estatísticas são:

['variavel', 'estagio', 'data_inicio', 'data_fim', 'cenario', 'patamar', 'duracao_patamar', 'valor', 'codigo_usina', 'codigo_ree', 'codigo_submercado', 'limite_inferior', 'limite_superior']

Um arquivo único é gerado para as estatísticas de todas as variáveis, agregadas por cada elemento do sistema.:

print(estatisticas["variavel"].unique())
shape: (30,)
Series: 'variavel' [str]
[
        "VARMI"
        "VARPF"
        "VAGUA"
        "QDEF"
        "VARPI"
        …
        "VDES"
        "HMON"
        "HLIQ"
        "VFPHA"
        "VARMF"
]

As estatísticas disponíveis são os valores mínimos, máximos, médios e quantis a cada 5 percentis para cada variável de cada elemento de sistema. No caso das UHEs:

print(estatisticas["cenario"].unique())
shape: (23,)
Series: 'cenario' [str]
[
        "p60"
        "max"
        "p40"
        "p25"
        "p70"
        …
        "p20"
        "p75"
        "std"
        "p5"
        "p30"
]

Total running time of the script: (0 minutes 0.203 seconds)

Gallery generated by Sphinx-Gallery