Código fonte para inewave.nwlistop.modelos.mediasmerc
from typing import Dict
import numpy as np # type: ignore
from inewave.config import SUBMERCADOS, NUM_VARIAVEIS_MEDIAS
[documentos]class MediasMerc:
"""
Armazena os dados das saídas referentes às médias de diversas variáveis
agrupadas por submercado.
Esta classe lida com as informações de saída fornecidas pelo
NWLISTOP e reproduzidas nos `MEDIAS-MERC.CSV`.
**Parâmetros**
- mes_pmo: `int`
- tabela: `np.ndarray`
"""
def __init__(self,
mes_pmo: int,
tabela: np.ndarray):
self.mes_pmo = mes_pmo
self.tabela = tabela
def __eq__(self, o: object) -> bool:
"""
A igualdade entre MediasMerc avalia todos os valores da tabela.
"""
if not isinstance(o, MediasMerc):
return False
medias: MediasMerc = o
eq_mes_pmo = self.mes_pmo == medias.mes_pmo
return eq_mes_pmo and np.array_equal(self.tabela, medias.tabela)
def _extrai_variavel_tabela(self,
indice_variavel: int) -> Dict[str,
np.ndarray]:
"""
Lógica para extrair uma variável qualquer da tabela de médias,
partindo do índice dela (num. da linha) dentro do seu submercado.
"""
valores: Dict[str, np.ndarray] = {sub: np.array([])
for sub in SUBMERCADOS}
for i, sub in enumerate(SUBMERCADOS):
lin = NUM_VARIAVEIS_MEDIAS * i + indice_variavel
valores[sub] = self.tabela[lin, :]
return valores
@property
def energias_armazenadas_absolutas(self) -> Dict[str,
np.ndarray]:
"""
Energias armazenadas em valores absolutos (MWmed) para
cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(0)
@property
def energias_armazenadas_percentuais(self) -> Dict[str,
np.ndarray]:
"""
Energias armazenadas em valores em percentual da EARMax
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(1)
@property
def percentil_10_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 10% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(2)
@property
def percentil_20_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 20% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(3)
@property
def percentil_30_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 30% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(4)
@property
def percentil_40_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 40% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(5)
@property
def percentil_50_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 50% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(6)
@property
def percentil_60_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 60% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(7)
@property
def percentil_70_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 70% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(8)
@property
def percentil_80_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 80% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(9)
@property
def percentil_90_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 90% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(10)
@property
def percentil_100_energias_armazenadas(self) -> Dict[str,
np.ndarray]:
"""
Valores para o percentil 100% da energia armazenada
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(11)
@property
def energia_natural_afluente(self) -> Dict[str,
np.ndarray]:
"""
Energias naturais afluentes em valores absolutos (MWmed)
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(12)
@property
def energia_controlavel_corrigida(self) -> Dict[str,
np.ndarray]:
"""
Energias controláveis corrigidas em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(13)
@property
def energia_fio_dagua_bruta(self) -> Dict[str,
np.ndarray]:
"""
Energias fio d'água brutas em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(14)
@property
def energia_fio_dagua_liquida(self) -> Dict[str,
np.ndarray]:
"""
Energias fio d'água líquidas em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(15)
@property
def geracao_hidraulica_maxima(self) -> Dict[str,
np.ndarray]:
"""
Gerações hidráulicas máximas em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(16)
@property
def geracao_hidraulica_total(self) -> Dict[str,
np.ndarray]:
"""
Gerações hidráulicas totais em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(18)
@property
def geracao_hidraulica_controlavel(self) -> Dict[str,
np.ndarray]:
"""
Gerações hidráulicas controláveis em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(19)
@property
def geracao_hidraulica_fio_dagua_liquida(self) -> Dict[str,
np.ndarray]:
"""
Gerações hidráulicas fio d'água líquidas em valores
absolutos (MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica
retornada é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(20)
@property
def geracao_eolica(self) -> Dict[str,
np.ndarray]:
"""
Gerações eólicas em valores absolutos (MWmed) para cada um
dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida mensalmente,
para todo o período de estudo.
"""
return self._extrai_variavel_tabela(21)
@property
def geracao_solar(self) -> Dict[str,
np.ndarray]:
"""
Gerações solares em valores absolutos (MWmed) para cada um
dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida mensalmente,
para todo o período de estudo.
"""
return self._extrai_variavel_tabela(22)
@property
def vertimento_total(self) -> Dict[str,
np.ndarray]:
"""
Perdas por vertimento totais em valores absolutos (MWmed)
para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida
mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(23)
@property
def vertimento_controlavel(self) -> Dict[str,
np.ndarray]:
"""
Perdas por vertimento controlável em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(24)
@property
def vertimento_fio_dagua(self) -> Dict[str,
np.ndarray]:
"""
Perdas por vertimento fio d'água em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(25)
@property
def vertimento_turbinavel(self) -> Dict[str,
np.ndarray]:
"""
Vertimentos turbináveis em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(26)
@property
def energia_evaporada(self) -> Dict[str,
np.ndarray]:
"""
Perdas por energia evaporada em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(40)
@property
def geracao_termica(self) -> Dict[str,
np.ndarray]:
"""
Gerações de usinas termelétricas em valores absolutos
(MWmed) para cada um dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada
é dividida mensalmente, para todo o período de estudo.
"""
return self._extrai_variavel_tabela(42)
@property
def deficit(self) -> Dict[str,
np.ndarray]:
"""
Déficits de carga em valores absolutos (MWmed) para cada um
dos submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida mensalmente,
para todo o período de estudo.
"""
return self._extrai_variavel_tabela(43)
@property
def custo_marginal_operacao(self) -> Dict[str,
np.ndarray]:
"""
Custos marginais de operação (R$) para cada um dos
submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida mensalmente,
para todo o período de estudo.
"""
return self._extrai_variavel_tabela(45)
@property
def custo_deficit(self) -> Dict[str,
np.ndarray]:
"""
Custos de déficit (R$) para cada um dos
submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida mensalmente,
para todo o período de estudo.
"""
return self._extrai_variavel_tabela(46)
@property
def custo_termica(self) -> Dict[str,
np.ndarray]:
"""
Custos de térmicas (R$) para cada um dos
submercados.
**Retorna**
`Dict[str, np.ndarray]`
**Sobre**
A série histórica retornada é dividida mensalmente,
para todo o período de estudo.
"""
return self._extrai_variavel_tabela(47)