Código fonte para inewave.newave.curva

from inewave._utils.arquivo import Arquivo
from inewave._utils.dadosarquivo import DadosArquivo
from inewave._utils.escrita import Escrita
from inewave.newave.modelos.curva import LeituraCurva

import numpy as np  # type: ignore
import pandas as pd  # type: ignore


[documentos]class Curva(Arquivo): """ Armazena os dados de entrada do NEWAVE referentes à curva para penalização por volume mínimo dos reservatórios. **Parâmetros** """ def __init__(self, dados: DadosArquivo) -> None: super().__init__(dados) # Override
[documentos] @classmethod def le_arquivo(cls, diretorio: str, nome_arquivo="curva.dat") -> 'Curva': """ """ leitor = LeituraCurva(diretorio) r = leitor.le_arquivo(nome_arquivo) return cls(r)
[documentos] def escreve_arquivo(self, diretorio: str, nome_arquivo="curva.dat"): """ """ escritor = Escrita(diretorio) escritor.escreve_arquivo(self._dados, nome_arquivo)
@property def configuracoes_penalizacao(self) -> np.ndarray: """ Linha de configuração das opções de penalização do arquivo curva.dat. **Retorna** `np.ndarray` **Sobre** Retorna um array com três elementos: - O primeiro é o tipo de penalização: 0 - FIXA e 1 - MAXIMA - O segundo é o mês de penalização: entre 1 e 12 - O terceiro é a sazonalização do VminP: 0 para não e 1 para sim """ return self._blocos[0].dados @configuracoes_penalizacao.setter def configuracoes_penalizacao(self, config: np.ndarray): self._blocos[0].dados = config @property def penalidades_ree(self) -> pd.DataFrame: """ Tabela com os custos de penalidades por violação de VminP em cada REE. **Retorna** `pd.DataFrame` **Sobre** """ return self._blocos[1].dados @penalidades_ree.setter def penalidades_ree(self, penalidades: pd.DataFrame): self._blocos[1].dados = penalidades @property def curva_seguranca(self) -> pd.DataFrame: """ Tabela com os valores da curva de segurança de operação para cada mês/ano de cada REE. **Retorna** `pd.DataFrame` **Sobre** """ return self._blocos[2].dados @curva_seguranca.setter def curva_seguranca(self, curva: pd.DataFrame): self._blocos[2].dados = curva