Coeficientes dos Cortes (cortes.dat)¶
Os coeficientes dos cortes do NEWAVE, localizados no arquivo geralmente denominado cortes.dat, são armazenados na classe:
- class Cortes(data: SectionData = <cfinterface.data.sectiondata.SectionData object>)[código-fonte]¶
Armazena os dados de saída do NEWAVE referentes aos cortes de Benders.
- property cortes: DataFrame | None¶
Retorna o conjunto dos cortes de Benders construídos durante o cálculo da política.
indice_corte (
int)iteracao_construcao (
str)indice_forward (
int)iteracao_inativacao (
int)rhs (
float)
Se o estágio em questão for agregado em REE:
pi_earm_ree1 (
float)pi_ena_ree1_lag1 (
float)…
pi_ena_ree1_lagN (
float)pi_earm_ree2 (
float)…
pi_ena_reeR_lagN (
float)… (pi_gnl, veja abaixo) …
pi_mx_sar_ree1 (
float)…
pi_mx_sar_reeR (
float)
Se o estágio em questão for individualizado:
pi_varm_uhe1 (
float)pi_qafl_uhe1_lag1 (
float)…
pi_qafl_uhe1_lagN (
float)pi_varm_uhe2 (
float)…
pi_qafl_uheU_lagN (
float)… (pi_gnl, veja abaixo) …
pi_mx_sar_uhe1 (
float)…
pi_mx_sar_uheU (
float)
Para todos os estágios:
pi_gnl_sbm1_pat1_lag1 (
float)…
pi_gnl_sbm1_pat1_lagL (
float)pi_gnl_sbm1_pat2_lag1 (
float)…
pi_gnl_sbm1_patP_lagL (
float)pi_gnl_sbm2_pat1_lag1 (
float)…
pi_gnl_sbmS_patP_lagL (
float)
Os coeficientes
pi_mx_sar_*(multiplicadores da restrição de aversão a risco / SAR) formam sempre o último bloco do registro — por UHE no caso individualizado, por REE no agregado. Em alguns casos híbridos o registro pode conter coeficientes extras entrepi_qaflepi_mx_sarque o NEWAVE não expõe nonwlistcf.rel; esses são descartados sem desalinhar os blocos nomeados (veja o CHANGELOG da versão 1.15.1).R é o número de REEs.
U é o número de UHEs.
S é o número de submercados.
N é a máxima ordem do modelo PAR(p) ajustado.
P é o número de patamares de carga.
L é o lag máximo de despacho GNL antecipado.
- Retorna:
Os coeficientes dos cortes em uma tabela.
- Tipo de retorno:
pd.DataFrame | None
- classmethod from_cortesh(content: str | bytes, cortesh: Cortesh, indice_ultimo_corte: int = 0, numero_total_cortes: int = 10000, por_estagio: bool = False) Cortes[código-fonte]¶
Lê um arquivo de cortes INDIVIDUALIZADO derivando todas as dimensões de um
Cortesh:codigos_uhesna ordem decortesh.dados_uhes(porindice_usina), considerando APENAS as UHEs não-fictícias (ficticia == 0): o registro individualizado carrega apenas essas, de forma quen_coef == 2 + G + U*(2+P)comU= número de UHEs não-fictícias. Contar as fictícias produziria umValueErrorde layout inconsistente;ordem_maxima_parpa partir das ordens do PAR(p) do cabeçalho;numero_patamareselag_maximo_gnldo cabeçalho;tamanho_registro=cortesh.tamanho_registro_individualizado.
Para uma partição passe
por_estagio=True(índices locais derivados do arquivo). Para o consolidado informeindice_ultimo_corteglobal (cortesh.ultimo_registro_cortes_estagio).Estágios agregados em REE ainda não são cobertos por este atalho — use
read()diretamente informandocodigos_rees.
- classmethod read(content: str | bytes, tamanho_registro: int = 1664, indice_ultimo_corte: int = 0, numero_total_cortes: int = 10000, codigos_rees: List[int] = [], codigos_uhes: List[int] = [], codigos_submercados: List[int] = [], ordem_maxima_parp: int = 12, numero_patamares: int = 3, lag_maximo_gnl: int = 2, por_estagio: bool = False, *args: Any, **kwargs: Any) Cortes[código-fonte]¶
Lê um arquivo de cortes de Benders.
Para o arquivo consolidado (
cortes.dat) informe o índice GLOBAL do estágio (cortesh.ultimo_registro_cortes_estagio) emindice_ultimo_corte. Para uma partição por estágio (cortes-<estagio>.dat) passepor_estagio=True— os índices locais e o número de cortes são derivados do próprio arquivo, ignorando o índice global do cabeçalho.Considere usar
from_cortesh(), que deriva automaticamente as dimensões (códigos de UHEs, ordem do PAR(p), patamares, lag GNL) a partir de umCortesh.