.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/plot_ree.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_ree.py: ============================================================== Análise de configuração dos REEs (Reservatórios Equivalentes) ============================================================== .. GENERATED FROM PYTHON SOURCE LINES 9-13 O arquivo ree.dat contém as configurações dos REEs (Reservatórios Equivalentes de Energia) do sistema NEWAVE. Os REEs são agregações de usinas hidrelétricas que permitem uma representação simplificada do sistema hidroelétrico para fins de otimização. .. GENERATED FROM PYTHON SOURCE LINES 13-24 .. code-block:: Python import plotly.express as px import plotly.io as pio from inewave.newave import Ree pio.templates.default = "ggplot2" # Leitura do arquivo ree.dat arq_ree = Ree.read("./newave/ree.dat") .. GENERATED FROM PYTHON SOURCE LINES 25-28 **Estrutura dos REEs** Cada REE agrupa usinas hidrelétricas de uma região e está associado a um submercado: .. GENERATED FROM PYTHON SOURCE LINES 28-37 .. code-block:: Python rees = arq_ree.rees print(f"Total de REEs configurados: {len(rees)}") print("\nREEs do sistema:") print(rees) print(f"\nSubmercados representados: {sorted(rees['submercado'].unique())}") print(f"Códigos de REE: {sorted(rees['codigo'].unique())}") .. rst-class:: sphx-glr-script-out .. code-block:: none Total de REEs configurados: 12 REEs do sistema: codigo nome ... mes_fim_individualizado ano_fim_individualizado 0 1 SUDESTE ... 6.0 2026.0 1 6 MADEIRA ... 6.0 2026.0 2 7 TPIRES ... 6.0 2026.0 3 5 ITAIPU ... 6.0 2026.0 4 10 PARANA ... 6.0 2026.0 5 12 PRNPANEMA ... 6.0 2026.0 6 2 SUL ... 6.0 2026.0 7 11 IGUACU ... 6.0 2026.0 8 3 NORDESTE ... 6.0 2026.0 9 4 NORTE ... 6.0 2026.0 10 8 BMONTE ... 6.0 2026.0 11 9 MAN-AP ... 6.0 2026.0 [12 rows x 5 columns] Submercados representados: [np.int64(1), np.int64(2), np.int64(3), np.int64(4)] Códigos de REE: [np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5), np.int64(6), np.int64(7), np.int64(8), np.int64(9), np.int64(10), np.int64(11), np.int64(12)] .. GENERATED FROM PYTHON SOURCE LINES 38-41 **Análise da distribuição por submercado** Verificando como os REEs estão distribuídos entre os submercados: .. GENERATED FROM PYTHON SOURCE LINES 41-66 .. code-block:: Python print("Distribuição de REEs por submercado:") # Contagem de REEs por submercado rees_por_submercado = ( rees.groupby("submercado") .agg({"codigo": "count", "nome": lambda x: ", ".join(x)}) .rename(columns={"codigo": "quantidade_rees", "nome": "nomes_rees"}) ) print(rees_por_submercado) # Visualização da distribuição fig = px.bar( rees_por_submercado.reset_index(), x="submercado", y="quantidade_rees", title="Distribuição de REEs por Submercado", labels={ "submercado": "Submercado", "quantidade_rees": "Quantidade de REEs", }, ) fig .. rst-class:: sphx-glr-script-out .. code-block:: none Distribuição de REEs por submercado: quantidade_rees nomes_rees submercado 1 6 SUDESTE, MADEIRA, TPIRES, ITAIPU, PARANA, PRNP... 2 2 SUL, IGUACU 3 1 NORDESTE 4 3 NORTE, BMONTE, MAN-AP .. raw:: html


.. GENERATED FROM PYTHON SOURCE LINES 67-70 **Análise de períodos individualizados** Verificando configurações de individualização de usinas: .. GENERATED FROM PYTHON SOURCE LINES 70-121 .. code-block:: Python print("Análise de períodos individualizados:") # Verificar REEs com período de individualização definido rees_individualizados = rees[ (rees["mes_fim_individualizado"].notna()) & (rees["ano_fim_individualizado"].notna()) & (rees["mes_fim_individualizado"] > 0) & (rees["ano_fim_individualizado"] > 0) ] if len(rees_individualizados) > 0: print(f"REEs com individualização: {len(rees_individualizados)}") print("\nREEs individualizados:") print( rees_individualizados[ [ "codigo", "nome", "mes_fim_individualizado", "ano_fim_individualizado", ] ] ) # Criando data de fim da individualização rees_individualizados_copy = rees_individualizados.copy() rees_individualizados_copy["data_fim"] = ( rees_individualizados_copy["ano_fim_individualizado"].astype(str) + "-" + rees_individualizados_copy["mes_fim_individualizado"] .astype(str) .str.zfill(2) ) print("\nDatas de fim da individualização:") datas_fim = rees_individualizados_copy.groupby("data_fim")["codigo"].count() print(datas_fim) # Verificar configuração de remoção de fictícias remocao_ficticias = arq_ree.remocao_ficticias if remocao_ficticias is not None: print(f"\nRemoção de usinas fictícias: {remocao_ficticias}") opcoes_remocao = { 0: "Não remove fictícias", 1: "Remove fictícias no período individualizado", } descricao = opcoes_remocao.get(remocao_ficticias, "Opção desconhecida") print(f"Significado: {descricao}") .. rst-class:: sphx-glr-script-out .. code-block:: none Análise de períodos individualizados: REEs com individualização: 12 REEs individualizados: codigo nome mes_fim_individualizado ano_fim_individualizado 0 1 SUDESTE 6.0 2026.0 1 6 MADEIRA 6.0 2026.0 2 7 TPIRES 6.0 2026.0 3 5 ITAIPU 6.0 2026.0 4 10 PARANA 6.0 2026.0 5 12 PRNPANEMA 6.0 2026.0 6 2 SUL 6.0 2026.0 7 11 IGUACU 6.0 2026.0 8 3 NORDESTE 6.0 2026.0 9 4 NORTE 6.0 2026.0 10 8 BMONTE 6.0 2026.0 11 9 MAN-AP 6.0 2026.0 Datas de fim da individualização: data_fim 2026.0-6.0 12 Name: codigo, dtype: int64 Remoção de usinas fictícias: 0 Significado: Não remove fictícias .. GENERATED FROM PYTHON SOURCE LINES 122-125 **Modificação da configuração dos REEs** Exemplo de como modificar configurações para estudos específicos: .. GENERATED FROM PYTHON SOURCE LINES 125-155 .. code-block:: Python print("Exemplo de modificação de configuração:") # Cenário: Alterando período de individualização de um REE específico rees_modificado = rees.copy() # Exemplo: Extendendo individualização do primeiro REE até dezembro de 2025 if len(rees_modificado) > 0: primeiro_ree = rees_modificado.iloc[0]["codigo"] print(f"Modificando individualização do REE {primeiro_ree}:") print( f"Antes: {rees_modificado.iloc[0]['mes_fim_individualizado']}/{rees_modificado.iloc[0]['ano_fim_individualizado']}" ) # Aplicando modificação rees_modificado.iloc[ 0, rees_modificado.columns.get_loc("mes_fim_individualizado") ] = 12 rees_modificado.iloc[ 0, rees_modificado.columns.get_loc("ano_fim_individualizado") ] = 2025 print( f"Depois: {rees_modificado.iloc[0]['mes_fim_individualizado']}/{rees_modificado.iloc[0]['ano_fim_individualizado']}" ) # Aplicando modificação ao arquivo arq_ree.rees = rees_modificado print("✓ Modificação aplicada ao arquivo") .. rst-class:: sphx-glr-script-out .. code-block:: none Exemplo de modificação de configuração: Modificando individualização do REE 1: Antes: 6.0/2026.0 Depois: 12.0/2025.0 ✓ Modificação aplicada ao arquivo .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.053 seconds) .. _sphx_glr_download_examples_plot_ree.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_ree.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_ree.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_ree.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_