Código fonte para idecomp.decomp.sumario

from idecomp._utils.bloco import Bloco
from idecomp.decomp.modelos.sumario import BlocoCMOSumario
from idecomp.decomp.modelos.sumario import BlocoGeracaoTermicaSubsistemaSumario
from idecomp.decomp.modelos.sumario import BlocoEnergiaArmazenadaREESumario
from idecomp.decomp.modelos.sumario import BlocoEnergiaArmazenadaSubsistemaSumario  # noqa
from idecomp.decomp.modelos.sumario import LeituraSumario
from idecomp._utils.arquivo import ArquivoBlocos
from idecomp._utils.dadosarquivo import DadosArquivoBlocos
from typing import Type
import pandas as pd  # type: ignore


[documentos]class Sumario(ArquivoBlocos): """ Armazena os dados de saída do DECOMP referentes ao acompanhamento do programa. Esta classe lida com as informações de entrada fornecidas ao DECOMP e reproduzidas no `sumario.rvx`, bem como as saídas finais da execução: custos de operação, despacho de térmicas, etc. """ def __init__(self, dados: DadosArquivoBlocos) -> None: super().__init__(dados) # Override
[documentos] @classmethod def le_arquivo(cls, diretorio: str, nome_arquivo="sumario.rv0") -> 'Sumario': """ Realiza a leitura de um arquivo "sumario.rvx" existente em um diretório. :param diretorio: O caminho relativo ou completo para o diretório onde se encontra o arquivo :type diretorio: str :param nome_arquivo: Nome do arquivo a ser lido, potencialmente especificando a revisão. Tem como valor default "sumario.rv0" :type nome_arquivo: str, optional :return: Um objeto :class:`Sumario` com informações do arquivo lido """ leitor = LeituraSumario(diretorio) r = leitor.le_arquivo(nome_arquivo) return cls(r)
def __obtem_bloco(self, tipo: Type[Bloco]) -> Bloco: """ """ for b in self._blocos: if isinstance(b, tipo): return b raise ValueError(f"Não foi encontrado um bloco do tipo {tipo}") @property def cmo_medio_subsistema(self) -> pd.DataFrame: """ Obtém a tabela de CMO existente no :class:`Sumario` :return: A tabela de CMO como um `pd.DataFrame`. """ b = self.__obtem_bloco(BlocoCMOSumario) return b.dados @property def geracao_termica_subsistema(self) -> pd.DataFrame: """ Obtém a tabela de Geração Térmica existente no :class:`Sumario` :return: A tabela de Geração Térmica como um `pd.DataFrame`. """ b = self.__obtem_bloco(BlocoGeracaoTermicaSubsistemaSumario) return b.dados @property def energia_armazenada_ree(self) -> pd.DataFrame: """ Obtém a tabela de Energia Armazenada por REE (em %) existente no :class:`Sumario` :return: A tabela de EARM como um `pd.DataFrame`. """ b = self.__obtem_bloco(BlocoEnergiaArmazenadaREESumario) return b.dados @property def energia_armazenada_subsistema(self) -> pd.DataFrame: """ Obtém a tabela de Energia Armazenada por Subsistema (em %) existente no :class:`Sumario` :return: A tabela de EARM como um `pd.DataFrame`. """ b = self.__obtem_bloco(BlocoEnergiaArmazenadaSubsistemaSumario) return b.dados