.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/plot_polinjus.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_polinjus.py: ===================================================== Processamento dos dados do polinjus.csv ===================================================== .. GENERATED FROM PYTHON SOURCE LINES 8-9 Para realizar o processamento do polinjus.csv, será utilizado o módulo plotly .. GENERATED FROM PYTHON SOURCE LINES 9-16 .. code-block:: Python import plotly.graph_objects as go import plotly.io as pio from numpy.polynomial import Polynomial pio.templates.default = "ggplot2" .. GENERATED FROM PYTHON SOURCE LINES 17-21 O polinjus.csv é um arquivo de entrada das LIBS, utilizado pelo modelo NEWAVE particularmente em casos com estágios individualizados, ou para execução da simulação final individualizada. Para processar a sua informação, o usuário deve importar a class `UsinasHidreletricas`, que contém todos os métodos necessários .. GENERATED FROM PYTHON SOURCE LINES 21-25 .. code-block:: Python from inewave.libs import UsinasHidreletricas arq_polinjus = UsinasHidreletricas.read("./libs/polinjus.csv") .. GENERATED FROM PYTHON SOURCE LINES 26-30 A implementação de todos os arquivos das LIBS segue o formato de arquivos por registro, contendo informações em linhas de comentários e com delimitador ';'. Além disso, a primeira coluna sempre identifica qual o registro cadastrado na linha em questão. O número total de colunas em cada linha é variável, de acordo com o valor da primeira coluna. .. GENERATED FROM PYTHON SOURCE LINES 32-34 Estão disponíveis métodos para cada registro, com argumentos opcionais para realizar filtros nos objetos a serem processados .. GENERATED FROM PYTHON SOURCE LINES 34-38 .. code-block:: Python registros = arq_polinjus.hidreletrica_curvajusante(codigo_usina=1) registros .. rst-class:: sphx-glr-script-out .. code-block:: none [, , , , ] .. GENERATED FROM PYTHON SOURCE LINES 39-41 É possível realizar a edição dos objetos retornados relacionados a cada registro. Para tal, basta atribuir valores a cada propriedade: .. GENERATED FROM PYTHON SOURCE LINES 41-44 .. code-block:: Python registros[0].indice_familia = 5 .. GENERATED FROM PYTHON SOURCE LINES 45-47 Outra possibilidade é gerar uma visualização dos conteúdos do arquivo no formato de DataFrame. Neste caso, a informação é somente leitura .. GENERATED FROM PYTHON SOURCE LINES 47-50 .. code-block:: Python df = arq_polinjus.hidreletrica_curvajusante(df=True) df.head() .. raw:: html
codigo_usina indice_familia nivel_montante_referencia
0 1 5 885.3052
1 1 2 885.4000
2 1 3 885.7000
3 1 4 885.8000
4 1 5 886.0000


.. GENERATED FROM PYTHON SOURCE LINES 51-54 Com as informações do polinjus.csv é possível gerar uma visualização para os polinômios de jusante. Em particular, o registro HIDRELETRICA-CURVAJUSANTE-POLINOMIOPORPARTES-SEGMENTO contém as informações desejadas. No caso, por exemplo, para a usina de código 7 .. GENERATED FROM PYTHON SOURCE LINES 54-58 .. code-block:: Python df = arq_polinjus.hidreletrica_curvajusante_polinomio_segmento(df=True) df = df.loc[df["codigo_usina"] == 7] df.head() .. raw:: html
codigo_usina coeficiente_a0 coeficiente_a1 coeficiente_a2 coeficiente_a3 coeficiente_a4 indice_familia indice_polinomio limite_inferior_vazao_jusante limite_superior_vazao_jusante
32 7 617.7467 0.002571 -1.632490e-07 0.000000e+00 0.000000e+00 1 1 0.000 4332.009
33 7 620.8103 0.001156 -1.888075e-15 0.000000e+00 0.000000e+00 1 2 4332.009 13081.880
34 7 619.4653 0.000017 -2.809288e-07 1.586390e-09 -5.900055e-13 2 1 0.000 1319.244
35 7 617.7467 0.002571 -1.632490e-07 0.000000e+00 0.000000e+00 2 2 1319.244 4332.009
36 7 620.8103 0.001156 -1.888075e-15 0.000000e+00 0.000000e+00 2 3 4332.009 13081.880


.. GENERATED FROM PYTHON SOURCE LINES 59-61 Para a visualização, vamos gerar 100 amostras para cada segmento, que é aproximado por um polinômio. .. GENERATED FROM PYTHON SOURCE LINES 61-86 .. code-block:: Python num_pontos = 100 ordem_polinomios = 4 cols_coeficientes = [f"coeficiente_a{i}" for i in range(ordem_polinomios + 1)] num_curvas = len(df["indice_familia"].unique()) vazoes_limites = [] pontos_familias = {} for indice_familia in range(num_curvas): df_familia = df.loc[df["indice_familia"] == indice_familia] pontos_familias[indice_familia] = {"x": [], "y": []} indices_polinomios = df_familia["indice_polinomio"].unique().tolist() for indice_polinomio in indices_polinomios: df_polinomio = df_familia.loc[ df_familia["indice_polinomio"] == indice_polinomio ] lim_inf = df_polinomio["limite_inferior_vazao_jusante"].iloc[0] lim_sup = df_polinomio["limite_superior_vazao_jusante"].iloc[0] vazoes_limites += [lim_inf, lim_sup] coeficientes = df_polinomio[cols_coeficientes].to_numpy().flatten() polinomio = Polynomial(coeficientes) x, y = polinomio.linspace(n=num_pontos, domain=[lim_inf, lim_sup]) pontos_familias[indice_familia]["x"] += list(x) pontos_familias[indice_familia]["y"] += list(y) .. GENERATED FROM PYTHON SOURCE LINES 87-88 Para visualizar: .. GENERATED FROM PYTHON SOURCE LINES 88-104 .. code-block:: Python fig = go.Figure() for familia, pontos in pontos_familias.items(): fig.add_trace( go.Scatter( x=pontos["x"], y=pontos["y"], mode="lines", name=str(familia), ) ) fig.update_xaxes(title="Vazão Defluente (m3/s)") fig.update_yaxes(title="Nível de Jusante (m)") fig.update_layout(legend_title_text="Família") fig .. raw:: html


.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.145 seconds) .. _sphx_glr_download_examples_plot_polinjus.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_polinjus.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_polinjus.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_polinjus.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_