Síntese dos Cenários

Para realizar a síntese dos cenários 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 dos cenários gerados são extraídos dos arquivos binários energiafXXX.dat, vazaofXXX.dat, etc. 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 cenarios --processadores 4

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

>>> 2024-04-22 09:53:56,845 INFO: # Realizando síntese dos CENÁRIOS #
>>> 2024-07-16 17:34:18,473 INFO: Realizando síntese de ENAA_REE_FOR
>>> 2024-07-16 17:34:19,201 INFO: Obtendo energias forward da it. 1
>>> 2024-07-16 17:34:19,202 INFO: Obtendo energias forward da it. 4
>>> 2024-07-16 17:34:19,201 INFO: Obtendo energias forward da it. 3
>>> 2024-07-16 17:34:19,202 INFO: Obtendo energias forward da it. 2
>>> 2024-07-16 17:34:19,229 INFO: Obtendo energias forward da it. 5
>>> 2024-07-16 17:34:19,229 INFO: Obtendo energias forward da it. 6
>>> 2024-07-16 17:34:19,229 INFO: Obtendo energias forward da it. 7
>>> 2024-07-16 17:34:19,279 INFO: Obtendo energias forward da it. 9
>>> 2024-07-16 17:34:19,279 INFO: Obtendo energias forward da it. 10
>>> 2024-07-16 17:34:19,279 INFO: Obtendo energias forward da it. 8
>>> 2024-07-16 17:34:21,179 INFO: Tempo para obter energias forward: 1.99 s
>>> 2024-07-16 17:34:21,182 INFO: Tempo para compactacao dos dados: 0.00 s
>>> 2024-07-16 17:34:27,813 INFO: Tempo para calculo da MLT por REE: 6.62 s
>>> 2024-07-16 17:34:27,834 INFO: Tempo para exportacao dos dados: 0.01 s
>>> 2024-07-16 17:34:27,834 INFO: Tempo para sintese de ENAA_REE_FOR: 9.36 s
>>> .
>>> .
>>> .
>>> 2024-07-16 17:34:35,766 INFO: Realizando síntese de QINC_SIN_SF
>>> 2024-07-16 17:34:35,786 INFO: Tempo para exportacao dos dados: 0.00 s
>>> 2024-07-16 17:34:35,786 INFO: Tempo para sintese de QINC_SIN_SF: 0.02 s
>>> 2024-07-16 17:34:35,952 INFO: Tempo para síntese dos cenários: 17.50 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 plotly.express as px
import plotly.graph_objects as go
import pandas as pd

Para a síntese dos cenários é produzido um arquivo com as informações das sínteses que foram realizadas:

metadados = pd.read_parquet("sintese/METADADOS_CENARIOS.parquet")
print(metadados.head(10))
          chave nome_curto_variavel  ... nome_longo_etapa unidade
0  ENAA_REE_FOR                 ENA  ...          Forward   MWmes
1  ENAA_REE_BKW                 ENA  ...         Backward   MWmes
2   ENAA_REE_SF                 ENA  ...  Simulação Final   MWmes
3  ENAA_SBM_FOR                 ENA  ...          Forward   MWmes
4  ENAA_SBM_BKW                 ENA  ...         Backward   MWmes
5   ENAA_SBM_SF                 ENA  ...  Simulação Final   MWmes
6  ENAA_SIN_FOR                 ENA  ...          Forward   MWmes
7  ENAA_SIN_BKW                 ENA  ...         Backward   MWmes
8   ENAA_SIN_SF                 ENA  ...  Simulação Final   MWmes
9  QINC_UHE_FOR                QINC  ...          Forward    m3/s

[10 rows x 8 columns]

Os arquivos com os nomes das sínteses de cenários armazenam os dados de todos os cenários gerados.

cenarios_uhe_for = pd.read_parquet("sintese/QINC_UHE_FOR.parquet")
cenarios_ree_sf = pd.read_parquet("sintese/ENAA_REE_SF.parquet")
cenarios_sin_bkw = pd.read_parquet("sintese/ENAA_SIN_BKW.parquet")

O formato dos dados por UHE:

   codigo_usina  codigo_ree  codigo_submercado  ...   valor         mlt valor_mlt
0             1          10                  1  ...   70.11   75.835165  0.924505
1             1          10                  1  ...   62.76   75.835165  0.827584
2             1          10                  1  ...  126.97   75.835165  1.674289
3             1          10                  1  ...   59.80   75.835165  0.788552
4             1          10                  1  ...   99.89  108.087912  0.924155
5             1          10                  1  ...  102.26  108.087912  0.946082
6             1          10                  1  ...  104.01  108.087912  0.962272
7             1          10                  1  ...   93.62  108.087912  0.866147
8             1          10                  1  ...  168.77  175.703297  0.960540
9             1          10                  1  ...  173.14  175.703297  0.985411

[10 rows x 11 columns]

Os tipos de dados da síntese de cenários por UHE:

codigo_usina                       int64
codigo_ree                         int64
codigo_submercado                  int64
iteracao                           int64
estagio                            int64
data_inicio          datetime64[ns, UTC]
data_fim             datetime64[ns, UTC]
cenario                            int64
valor                            float64
mlt                              float64
valor_mlt                        float64
dtype: object

O formato dos dados por REE:

   codigo_ree  codigo_submercado  estagio  ...        valor          mlt  valor_mlt
0           1                  1        1  ...  2316.709658  3157.023187   0.733827
1           1                  1        1  ...  2060.123382  3157.023187   0.652553
2           1                  1        1  ...  3641.376648  3157.023187   1.153421
3           1                  1        1  ...  3273.191547  3157.023187   1.036797
4           1                  1        1  ...  2678.370192  3157.023187   0.848385
5           1                  1        1  ...  2605.539787  3157.023187   0.825315
6           1                  1        1  ...  3076.620755  3157.023187   0.974532
7           1                  1        2  ...  4523.646878  5104.207582   0.886258
8           1                  1        2  ...  4418.961990  5104.207582   0.865749
9           1                  1        2  ...  4815.703108  5104.207582   0.943477

[10 rows x 9 columns]

Os tipos de dados da síntese de cenários por REE:

codigo_ree                         int64
codigo_submercado                  int64
estagio                            int64
data_inicio          datetime64[ns, UTC]
data_fim             datetime64[ns, UTC]
cenario                            int64
valor                            float64
mlt                              float64
valor_mlt                        float64
dtype: object

O formato dos dados para o SIN:

   iteracao  estagio  ...           mlt valor_mlt
0         1        1  ...  42548.775165  0.828014
1         1        1  ...  42548.775165  0.828014
2         1        1  ...  42548.775165  0.828014
3         1        1  ...  42548.775165  0.828014
4         1        2  ...  50163.234945  1.006599
5         1        2  ...  50163.234945  0.851505
6         1        2  ...  50163.234945  1.299124
7         1        2  ...  50163.234945  0.976602
8         1        3  ...  73506.076923  0.754332
9         1        3  ...  73506.076923  0.747752

[10 rows x 9 columns]

Os tipos de dados da síntese de cenários para o SIN:

iteracao                     int64
estagio                      int64
data_inicio    datetime64[ns, UTC]
data_fim       datetime64[ns, UTC]
cenario                      int64
abertura                     int64
valor                      float64
mlt                        float64
valor_mlt                  float64
dtype: object

De modo geral, os arquivos das sínteses de cenários sempre possuem as colunas estagio, data_inicio, data_fim, cenario, valor, mlt e valor_mlt. A depender se o arquivo é referente à etapa forward ou backward,existirá uma coluna adicional iteracao. Apenas na etapa backward existirá a coluna abertura.

Da mesma maneira que para as demais sínteses, é possível produzir visualizações e estatísticas a partir dos arquivos gerados.

fig = px.box(
    cenarios_sin_bkw,
    x="estagio",
    y="valor_mlt",
    color="iteracao",
)
fig


Repare que para os arquivos da síntese da operação, a referência da numeração dos estágios é diferente da numeração dos estágios da síntese dos cenários. Na síntese dos cenários, como os arquivos processados são os binários do modelo, o estágio “1” não se refere necessariamente ao primeiro mês do período do estudo.

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 = pd.read_parquet("sintese/ESTATISTICAS_CENARIOS_UHE_FOR.parquet")
print(estatisticas.head(10))
  variavel  codigo_usina  codigo_ree  ...     valor        mlt  valor_mlt
0     QINC             1          10  ...  126.9700  75.835165   1.674289
1     QINC             1          10  ...   79.9100  75.835165   1.053733
2     QINC             1          10  ...   66.4350  75.835165   0.876045
3     QINC             1          10  ...   59.8000  75.835165   0.788552
4     QINC             1          10  ...   60.6880  75.835165   0.800262
5     QINC             1          10  ...   61.1320  75.835165   0.806117
6     QINC             1          10  ...   61.5760  75.835165   0.811972
7     QINC             1          10  ...   62.0200  75.835165   0.817826
8     QINC             1          10  ...   62.4640  75.835165   0.823681
9     QINC             1          10  ...   63.1275  75.835165   0.832430

[10 rows x 12 columns]

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

Index(['variavel', 'codigo_usina', 'codigo_ree', 'codigo_submercado',
       'iteracao', 'estagio', 'data_inicio', 'data_fim', 'cenario', 'valor',
       'mlt', 'valor_mlt'],
      dtype='object')

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())
<StringArray>
[   'max',   'mean', 'median',    'min',    'p10',    'p15',    'p20',
    'p25',    'p30',    'p35',    'p40',    'p45',     'p5',    'p55',
    'p60',    'p65',    'p70',    'p75',    'p80',    'p85',    'p90',
    'p95',    'std']
Length: 23, dtype: string

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

Gallery generated by Sphinx-Gallery