.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/plot_sintese_operacao.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_plot_sintese_operacao.py: ======================================== Síntese da Operação ======================================== .. GENERATED FROM PYTHON SOURCE LINES 8-18 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 .. GENERATED FROM PYTHON SOURCE LINES 20-53 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 # .. GENERATED FROM PYTHON SOURCE LINES 55-57 Os arquivos serão salvos no subdiretório `sintese`. Para realizar o processamento, pode ser utilizado o próprio `python`: .. GENERATED FROM PYTHON SOURCE LINES 57-62 .. code-block:: Python import plotly.express as px import plotly.graph_objects as go import pandas as pd .. GENERATED FROM PYTHON SOURCE LINES 63-65 Para a síntese da operação é produzido um arquivo com as informações das sínteses que foram realizadas: .. GENERATED FROM PYTHON SOURCE LINES 65-69 .. code-block:: Python metadados = pd.read_parquet("sintese/METADADOS_OPERACAO.parquet") print(metadados.head(10)) .. rst-class:: sphx-glr-script-out .. code-block:: none chave nome_curto_variavel ... calculado limitado 0 CMO_SBM CMO ... False False 1 VAGUA_REE VAGUA ... False False 2 VAGUA_UHE VAGUA ... False False 3 VAGUAI_UHE VAGUA Incremental ... False False 4 CTER_SBM Custo de GT ... False False 5 CTER_SIN Custo de GT ... False False 6 COP_SIN COPER ... False False 7 ENAA_REE ENA ... False False 8 ENAA_SBM ENA ... False False 9 ENAA_SIN ENA ... False False [10 rows x 8 columns] .. GENERATED FROM PYTHON SOURCE LINES 70-72 Os arquivos com os nomes das sínteses de operação armazenam os dados de todos os cenários simulados. .. GENERATED FROM PYTHON SOURCE LINES 72-77 .. code-block:: Python cmo = pd.read_parquet("sintese/CMO_SBM.parquet") earmf = pd.read_parquet("sintese/EARMF_SIN.parquet") varmf = pd.read_parquet("sintese/VARMF_UHE.parquet") .. GENERATED FROM PYTHON SOURCE LINES 78-79 O formato dos dados de CMO: .. GENERATED FROM PYTHON SOURCE LINES 79-81 .. code-block:: Python print(cmo.head(10)) .. rst-class:: sphx-glr-script-out .. code-block:: none codigo_submercado estagio ... limite_inferior limite_superior 0 1 1 ... -inf inf 1 1 1 ... -inf inf 2 1 1 ... -inf inf 3 1 1 ... -inf inf 4 1 1 ... -inf inf 5 1 1 ... -inf inf 6 1 1 ... -inf inf 7 1 1 ... -inf inf 8 1 1 ... -inf inf 9 1 1 ... -inf inf [10 rows x 10 columns] .. GENERATED FROM PYTHON SOURCE LINES 82-83 Os tipos de dados da síntese de CMO: .. GENERATED FROM PYTHON SOURCE LINES 83-85 .. code-block:: Python cmo.dtypes .. rst-class:: sphx-glr-script-out .. code-block:: none codigo_submercado int64 estagio int64 data_inicio datetime64[ns, UTC] data_fim datetime64[ns, UTC] cenario int64 patamar int64 duracao_patamar float64 valor float64 limite_inferior float64 limite_superior float64 dtype: object .. GENERATED FROM PYTHON SOURCE LINES 86-87 O formato dos dados de EARMF: .. GENERATED FROM PYTHON SOURCE LINES 87-89 .. code-block:: Python print(earmf.head(10)) .. rst-class:: sphx-glr-script-out .. code-block:: none estagio data_inicio ... limite_inferior limite_superior 0 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 2 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 3 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 4 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 5 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 6 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 1 1 2023-10-01 00:00:00+00:00 ... 61712.0 292509.0 31 2 2023-11-01 00:00:00+00:00 ... 61724.0 292574.0 32 2 2023-11-01 00:00:00+00:00 ... 61724.0 292574.0 33 2 2023-11-01 00:00:00+00:00 ... 61724.0 292574.0 [10 rows x 9 columns] .. GENERATED FROM PYTHON SOURCE LINES 90-91 Os tipos de dados da síntese de EARMF: .. GENERATED FROM PYTHON SOURCE LINES 91-93 .. code-block:: Python earmf.dtypes .. rst-class:: sphx-glr-script-out .. code-block:: none estagio int64 data_inicio datetime64[ns, UTC] data_fim datetime64[ns, UTC] cenario int64 patamar int64 duracao_patamar float64 valor float64 limite_inferior float64 limite_superior float64 dtype: object .. GENERATED FROM PYTHON SOURCE LINES 94-95 O formato dos dados de VARMF: .. GENERATED FROM PYTHON SOURCE LINES 95-97 .. code-block:: Python print(varmf.head(10)) .. rst-class:: sphx-glr-script-out .. code-block:: none codigo_usina codigo_ree ... limite_inferior limite_superior 0 1 10 ... 120.0 792.0 1 1 10 ... 120.0 792.0 2 1 10 ... 120.0 792.0 3 1 10 ... 120.0 792.0 4 1 10 ... 120.0 792.0 5 1 10 ... 120.0 792.0 6 1 10 ... 120.0 792.0 30 1 10 ... 120.0 792.0 31 1 10 ... 120.0 792.0 32 1 10 ... 120.0 792.0 [10 rows x 12 columns] .. GENERATED FROM PYTHON SOURCE LINES 98-99 Os tipos de dados da síntese de VARMF: .. GENERATED FROM PYTHON SOURCE LINES 99-101 .. code-block:: Python varmf.dtypes .. rst-class:: sphx-glr-script-out .. code-block:: none codigo_usina int64 codigo_ree int64 codigo_submercado int64 estagio int64 data_inicio datetime64[ns, UTC] data_fim datetime64[ns, UTC] cenario int64 patamar int64 duracao_patamar float64 valor float64 limite_inferior float64 limite_superior float64 dtype: object .. GENERATED FROM PYTHON SOURCE LINES 102-107 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`. .. GENERATED FROM PYTHON SOURCE LINES 109-111 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. .. GENERATED FROM PYTHON SOURCE LINES 111-115 .. code-block:: Python cenarios = earmf["cenario"].unique().tolist() print(cenarios) .. rst-class:: sphx-glr-script-out .. code-block:: none [1, 3, 4, 5, 6, 7, 2] .. GENERATED FROM PYTHON SOURCE LINES 116-118 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: .. GENERATED FROM PYTHON SOURCE LINES 118-122 .. code-block:: Python fig = px.box(earmf, x="data_inicio", y="valor") fig .. raw:: html


.. GENERATED FROM PYTHON SOURCE LINES 123-125 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: .. GENERATED FROM PYTHON SOURCE LINES 125-135 .. code-block:: Python cmos_2omes = cmo.loc[cmo["estagio"] == 2] fig = px.violin( cmos_2omes, y="valor", color="codigo_submercado", box=True, ) fig .. raw:: html


.. GENERATED FROM PYTHON SOURCE LINES 136-138 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: .. GENERATED FROM PYTHON SOURCE LINES 138-151 .. code-block:: Python varmf_1oano = varmf.loc[ (varmf["estagio"] <= 12) & varmf["codigo_usina"].isin([6, 169, 251, 275]) ] fig = px.box( varmf_1oano, x="data_inicio", y="valor", facet_col_wrap=2, facet_col="codigo_usina", ) fig .. raw:: html


.. GENERATED FROM PYTHON SOURCE LINES 152-154 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: .. GENERATED FROM PYTHON SOURCE LINES 154-158 .. code-block:: Python estatisticas = pd.read_parquet("sintese/ESTATISTICAS_OPERACAO_UHE.parquet") print(estatisticas.head(10)) .. rst-class:: sphx-glr-script-out .. code-block:: none variavel estagio ... limite_inferior limite_superior 0 VAGUA 1 ... -inf inf 1 VAGUAI 1 ... -inf inf 2 VTUR 1 ... 0.0 562.82 3 VVER 1 ... 0.0 inf 4 QTUR 1 ... 0.0 214.00 5 QVER 1 ... 0.0 inf 6 QAFL 1 ... 0.0 inf 7 QINC 1 ... -inf inf 8 VAFL 1 ... 0.0 inf 9 VINC 1 ... -inf inf [10 rows x 13 columns] .. GENERATED FROM PYTHON SOURCE LINES 159-160 As informações dos arquivos de estatísticas são: .. GENERATED FROM PYTHON SOURCE LINES 160-162 .. code-block:: Python print(estatisticas.columns) .. rst-class:: sphx-glr-script-out .. code-block:: none Index(['variavel', 'estagio', 'data_inicio', 'data_fim', 'cenario', 'patamar', 'duracao_patamar', 'valor', 'codigo_usina', 'codigo_ree', 'codigo_submercado', 'limite_inferior', 'limite_superior'], dtype='object') .. GENERATED FROM PYTHON SOURCE LINES 163-165 Um arquivo único é gerado para as estatísticas de todas as variáveis, agregadas por cada elemento do sistema.: .. GENERATED FROM PYTHON SOURCE LINES 165-168 .. code-block:: Python print(estatisticas["variavel"].unique()) .. rst-class:: sphx-glr-script-out .. code-block:: none [ 'VAGUA', 'VAGUAI', 'VTUR', 'VVER', 'QTUR', 'QVER', 'QAFL', 'QINC', 'VAFL', 'VINC', 'QDEF', 'VDEF', 'VRET', 'VDES', 'QRET', 'QDES', 'VARMF', 'VARMI', 'VARPF', 'VARPI', 'GHID', 'VGHMIN', 'VFPHA', 'HMON', 'HJUS', 'HLIQ', 'VEVP', 'VPOSEVAP', 'VNEGEVAP', 'VEVAP'] Length: 30, dtype: string .. GENERATED FROM PYTHON SOURCE LINES 169-171 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: .. GENERATED FROM PYTHON SOURCE LINES 171-172 .. code-block:: Python print(estatisticas["cenario"].unique()) .. rst-class:: sphx-glr-script-out .. code-block:: none ['max' 'mean' 'median' 'min' 'p10' 'p15' 'p20' 'p25' 'p30' 'p35' 'p40' 'p45' 'p5' 'p55' 'p60' 'p65' 'p70' 'p75' 'p80' 'p85' 'p90' 'p95' 'std'] .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.594 seconds) .. _sphx_glr_download_examples_plot_sintese_operacao.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_sintese_operacao.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_sintese_operacao.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_sintese_operacao.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_