inewave 1.7.3__py3-none-any.whl → 1.7.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- inewave/__init__.py +1 -1
- inewave/newave/modelos/adterm.py +7 -0
- inewave/newave/modelos/agrint.py +2 -0
- inewave/newave/modelos/arquivos.py +2 -0
- inewave/newave/modelos/avl_cortesfpha_nwv.py +4 -0
- inewave/newave/modelos/avl_desvfpha_s.py +2 -0
- inewave/newave/modelos/avl_desvfpha_v_q.py +2 -0
- inewave/newave/modelos/blocos/tabelacsv.py +2 -0
- inewave/newave/modelos/blocos/versaomodelo.py +4 -0
- inewave/newave/modelos/cadic.py +2 -0
- inewave/newave/modelos/caso.py +4 -0
- inewave/newave/modelos/clast.py +2 -0
- inewave/newave/modelos/confhd.py +2 -0
- inewave/newave/modelos/conft.py +2 -0
- inewave/newave/modelos/cortes.py +14 -0
- inewave/newave/modelos/cortesh.py +20 -0
- inewave/newave/modelos/curva.py +2 -0
- inewave/newave/modelos/cvar.py +2 -0
- inewave/newave/modelos/dger.py +208 -0
- inewave/newave/modelos/dsvagua.py +2 -0
- inewave/newave/modelos/eafpast.py +2 -0
- inewave/newave/modelos/enavazb.py +2 -0
- inewave/newave/modelos/enavazf.py +2 -0
- inewave/newave/modelos/energiab.py +2 -0
- inewave/newave/modelos/energiaf.py +2 -0
- inewave/newave/modelos/energias.py +48 -10
- inewave/newave/modelos/engnat.py +2 -0
- inewave/newave/modelos/exph.py +2 -0
- inewave/newave/modelos/expt.py +2 -0
- inewave/newave/modelos/forward.py +27 -0
- inewave/newave/modelos/forwarh.py +2 -0
- inewave/newave/modelos/ghmin.py +2 -0
- inewave/newave/modelos/hidr.py +2 -0
- inewave/newave/modelos/manutt.py +2 -0
- inewave/newave/modelos/modif.py +32 -0
- inewave/newave/modelos/newavetim.py +2 -0
- inewave/newave/modelos/nwv_avl_evap.py +2 -0
- inewave/newave/modelos/nwv_cortes_evap.py +2 -0
- inewave/newave/modelos/nwv_eco_evap.py +2 -0
- inewave/newave/modelos/parp.py +45 -0
- inewave/newave/modelos/parpeol.py +23 -0
- inewave/newave/modelos/parpvaz.py +37 -0
- inewave/newave/modelos/patamar.py +28 -0
- inewave/newave/modelos/penalid.py +2 -0
- inewave/newave/modelos/pmo.py +69 -2
- inewave/newave/modelos/re.py +2 -0
- inewave/newave/modelos/ree.py +2 -0
- inewave/newave/modelos/selcor.py +5 -3
- inewave/newave/modelos/shist.py +10 -6
- inewave/newave/modelos/sistema.py +10 -0
- inewave/newave/modelos/term.py +2 -0
- inewave/newave/modelos/vazaob.py +2 -0
- inewave/newave/modelos/vazaof.py +2 -0
- inewave/newave/modelos/vazaos.py +2 -0
- inewave/newave/modelos/vazinat.py +2 -0
- inewave/newave/modelos/vazoes.py +2 -0
- inewave/newave/modelos/vazpast.py +2 -0
- inewave/newave/modelos/volref_saz.py +2 -0
- inewave/newave/modif.py +2 -0
- inewave/newave/vazoes.py +2 -0
- inewave/nwlistcf/modelos/arquivos.py +2 -0
- inewave/nwlistcf/modelos/caso.py +2 -0
- inewave/nwlistcf/modelos/estados.py +10 -0
- inewave/nwlistcf/modelos/nwlistcfdat.py +2 -0
- inewave/nwlistcf/modelos/nwlistcfrel.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoclassetermicasubmercadopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoestacaobombeamentopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoparsubmercadopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoree.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivoreepatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivorestricao.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivorestricaopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosin.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosinpatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosubmercado.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivosubmercadopatamar.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivousina.py +2 -0
- inewave/nwlistop/modelos/arquivos/arquivousinapatamar.py +2 -0
- inewave/nwlistop/modelos/blocos/estacaobombeamento.py +2 -0
- inewave/nwlistop/modelos/blocos/parsubmercados.py +2 -0
- inewave/nwlistop/modelos/blocos/ree.py +2 -0
- inewave/nwlistop/modelos/blocos/restricao.py +2 -0
- inewave/nwlistop/modelos/blocos/submercado.py +2 -0
- inewave/nwlistop/modelos/blocos/usina.py +2 -0
- inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py +8 -0
- inewave/nwlistop/modelos/blocos/valoresserie.py +2 -0
- inewave/nwlistop/modelos/blocos/valoresseriepatamar.py +2 -0
- inewave/nwlistop/modelos/c_v_rhq.py +2 -0
- inewave/nwlistop/modelos/c_v_rhq_s.py +2 -0
- inewave/nwlistop/modelos/c_v_rhv.py +2 -0
- inewave/nwlistop/modelos/c_v_rhv_s.py +2 -0
- inewave/nwlistop/modelos/cbomb.py +2 -0
- inewave/nwlistop/modelos/cbombsin.py +2 -0
- inewave/nwlistop/modelos/cdef.py +2 -0
- inewave/nwlistop/modelos/cdefsin.py +2 -0
- inewave/nwlistop/modelos/celetricas.py +2 -0
- inewave/nwlistop/modelos/cmarg.py +2 -0
- inewave/nwlistop/modelos/cmargmed.py +2 -0
- inewave/nwlistop/modelos/coper.py +2 -0
- inewave/nwlistop/modelos/corteolm.py +2 -0
- inewave/nwlistop/modelos/cterm.py +2 -0
- inewave/nwlistop/modelos/ctermsin.py +2 -0
- inewave/nwlistop/modelos/def.py +2 -0
- inewave/nwlistop/modelos/defsin.py +2 -0
- inewave/nwlistop/modelos/deletricas.py +2 -0
- inewave/nwlistop/modelos/depminuh.py +2 -0
- inewave/nwlistop/modelos/desvuh.py +2 -0
- inewave/nwlistop/modelos/dflppdfmaxm.py +2 -0
- inewave/nwlistop/modelos/dflpptbmaxm.py +2 -0
- inewave/nwlistop/modelos/dfphauh.py +2 -0
- inewave/nwlistop/modelos/dlppdfmax.py +2 -0
- inewave/nwlistop/modelos/dlppdfmaxs.py +2 -0
- inewave/nwlistop/modelos/dlpptbmax.py +2 -0
- inewave/nwlistop/modelos/dlpptbmaxs.py +2 -0
- inewave/nwlistop/modelos/dnegevap.py +2 -0
- inewave/nwlistop/modelos/dposevap.py +2 -0
- inewave/nwlistop/modelos/dtbmax.py +2 -0
- inewave/nwlistop/modelos/dtbmin.py +2 -0
- inewave/nwlistop/modelos/dvazmax.py +2 -0
- inewave/nwlistop/modelos/eaf.py +2 -0
- inewave/nwlistop/modelos/eafb.py +2 -0
- inewave/nwlistop/modelos/eafbm.py +2 -0
- inewave/nwlistop/modelos/eafbsin.py +2 -0
- inewave/nwlistop/modelos/eafm.py +2 -0
- inewave/nwlistop/modelos/earmf.py +2 -0
- inewave/nwlistop/modelos/earmfm.py +2 -0
- inewave/nwlistop/modelos/earmfp.py +2 -0
- inewave/nwlistop/modelos/earmfpm.py +2 -0
- inewave/nwlistop/modelos/earmfpsin.py +2 -0
- inewave/nwlistop/modelos/earmfsin.py +2 -0
- inewave/nwlistop/modelos/edesvc.py +2 -0
- inewave/nwlistop/modelos/edesvcm.py +2 -0
- inewave/nwlistop/modelos/edesvcsin.py +2 -0
- inewave/nwlistop/modelos/evapo.py +2 -0
- inewave/nwlistop/modelos/evapom.py +2 -0
- inewave/nwlistop/modelos/evaporsin.py +2 -0
- inewave/nwlistop/modelos/evert.py +2 -0
- inewave/nwlistop/modelos/evertm.py +2 -0
- inewave/nwlistop/modelos/evertsin.py +2 -0
- inewave/nwlistop/modelos/exces.py +2 -0
- inewave/nwlistop/modelos/excessin.py +2 -0
- inewave/nwlistop/modelos/form_rhq.py +2 -0
- inewave/nwlistop/modelos/form_rhv.py +2 -0
- inewave/nwlistop/modelos/fteolm.py +2 -0
- inewave/nwlistop/modelos/fteolsin.py +2 -0
- inewave/nwlistop/modelos/geol.py +2 -0
- inewave/nwlistop/modelos/geolm.py +2 -0
- inewave/nwlistop/modelos/geolsin.py +2 -0
- inewave/nwlistop/modelos/gh_fphexat.py +2 -0
- inewave/nwlistop/modelos/ghidr.py +2 -0
- inewave/nwlistop/modelos/ghidrm.py +2 -0
- inewave/nwlistop/modelos/ghidrsin.py +2 -0
- inewave/nwlistop/modelos/ghiduh.py +2 -0
- inewave/nwlistop/modelos/ghmax.py +2 -0
- inewave/nwlistop/modelos/ghmax_fpha.py +2 -0
- inewave/nwlistop/modelos/ghmax_fphc.py +2 -0
- inewave/nwlistop/modelos/ghmaxm.py +2 -0
- inewave/nwlistop/modelos/ghmaxmr.py +2 -0
- inewave/nwlistop/modelos/ghmaxr.py +2 -0
- inewave/nwlistop/modelos/ghmaxrsin.py +2 -0
- inewave/nwlistop/modelos/ghmaxsin.py +2 -0
- inewave/nwlistop/modelos/ghtot.py +2 -0
- inewave/nwlistop/modelos/ghtotm.py +2 -0
- inewave/nwlistop/modelos/ghtotsin.py +2 -0
- inewave/nwlistop/modelos/gtert.py +2 -0
- inewave/nwlistop/modelos/gttot.py +2 -0
- inewave/nwlistop/modelos/gttotsin.py +2 -0
- inewave/nwlistop/modelos/hjus.py +2 -0
- inewave/nwlistop/modelos/hliq.py +2 -0
- inewave/nwlistop/modelos/hmont.py +2 -0
- inewave/nwlistop/modelos/intercambio.py +2 -0
- inewave/nwlistop/modelos/invade.py +2 -0
- inewave/nwlistop/modelos/invadem.py +2 -0
- inewave/nwlistop/modelos/mediasmerc.py +2 -0
- inewave/nwlistop/modelos/mediasree.py +2 -0
- inewave/nwlistop/modelos/mediasrep.py +2 -0
- inewave/nwlistop/modelos/mediasrhq.py +2 -0
- inewave/nwlistop/modelos/mediasrhv.py +2 -0
- inewave/nwlistop/modelos/mediassin.py +2 -0
- inewave/nwlistop/modelos/mediasusie.py +2 -0
- inewave/nwlistop/modelos/mediasusih.py +2 -0
- inewave/nwlistop/modelos/mediasusit.py +2 -0
- inewave/nwlistop/modelos/mercl.py +2 -0
- inewave/nwlistop/modelos/merclsin.py +2 -0
- inewave/nwlistop/modelos/mevmin.py +2 -0
- inewave/nwlistop/modelos/mevminm.py +2 -0
- inewave/nwlistop/modelos/mevminsin.py +2 -0
- inewave/nwlistop/modelos/nwlistopdat.py +11 -0
- inewave/nwlistop/modelos/perdf.py +2 -0
- inewave/nwlistop/modelos/perdfm.py +2 -0
- inewave/nwlistop/modelos/perdfsin.py +2 -0
- inewave/nwlistop/modelos/pivarm.py +2 -0
- inewave/nwlistop/modelos/pivarmincr.py +2 -0
- inewave/nwlistop/modelos/qafluh.py +2 -0
- inewave/nwlistop/modelos/qincruh.py +2 -0
- inewave/nwlistop/modelos/rhslppdf.py +2 -0
- inewave/nwlistop/modelos/rhslpptb.py +2 -0
- inewave/nwlistop/modelos/vagua.py +2 -0
- inewave/nwlistop/modelos/varmpuh.py +2 -0
- inewave/nwlistop/modelos/varmuh.py +2 -0
- inewave/nwlistop/modelos/vbomb.py +2 -0
- inewave/nwlistop/modelos/vdesviouh.py +2 -0
- inewave/nwlistop/modelos/vento.py +2 -0
- inewave/nwlistop/modelos/vertuh.py +2 -0
- inewave/nwlistop/modelos/verturb.py +2 -0
- inewave/nwlistop/modelos/verturbm.py +2 -0
- inewave/nwlistop/modelos/verturbsin.py +2 -0
- inewave/nwlistop/modelos/vevapuh.py +2 -0
- inewave/nwlistop/modelos/vevmin.py +2 -0
- inewave/nwlistop/modelos/vevminm.py +2 -0
- inewave/nwlistop/modelos/vevminsin.py +2 -0
- inewave/nwlistop/modelos/vghmin.py +2 -0
- inewave/nwlistop/modelos/vghminm.py +2 -0
- inewave/nwlistop/modelos/vghminsin.py +2 -0
- inewave/nwlistop/modelos/vghminuh.py +2 -0
- inewave/nwlistop/modelos/viol_rhq.py +2 -0
- inewave/nwlistop/modelos/viol_rhv.py +2 -0
- inewave/nwlistop/modelos/vmort.py +2 -0
- inewave/nwlistop/modelos/vmortm.py +2 -0
- inewave/nwlistop/modelos/vmortsin.py +2 -0
- inewave/nwlistop/modelos/vturuh.py +2 -0
- {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/METADATA +2 -2
- {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/RECORD +229 -229
- {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/WHEEL +1 -1
- tests/mocks/arquivos/pmo.py +16 -0
- tests/newave/test_dger.py +0 -2
- tests/newave/test_energias.py +4 -4
- {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/LICENSE.md +0 -0
- {inewave-1.7.3.dist-info → inewave-1.7.5.dist-info}/top_level.txt +0 -0
|
@@ -31,6 +31,12 @@ class BlocoSerieVazoesUHE(Block):
|
|
|
31
31
|
relativo às séries de vazões por usina.
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
|
+
__slots__ = [
|
|
35
|
+
"__campo_uhe",
|
|
36
|
+
"__campo_cfg",
|
|
37
|
+
"__linha",
|
|
38
|
+
]
|
|
39
|
+
|
|
34
40
|
BEGIN_PATTERN = "SERIE DE VAZOES DA USINA"
|
|
35
41
|
END_PATTERN = ""
|
|
36
42
|
|
|
@@ -105,6 +111,10 @@ class BlocoCorrelVazoesUHE(Block):
|
|
|
105
111
|
das vazões por usina.
|
|
106
112
|
"""
|
|
107
113
|
|
|
114
|
+
__slots__ = [
|
|
115
|
+
"__linha",
|
|
116
|
+
]
|
|
117
|
+
|
|
108
118
|
BEGIN_PATTERN = "CORRELOGRAMO DA SERIE DE VAZOES"
|
|
109
119
|
END_PATTERN = ""
|
|
110
120
|
|
|
@@ -211,6 +221,10 @@ class BlocoCorrelParcialVazoesUHE(Block):
|
|
|
211
221
|
das vazões por UHE.
|
|
212
222
|
"""
|
|
213
223
|
|
|
224
|
+
__slots__ = [
|
|
225
|
+
"__linha",
|
|
226
|
+
]
|
|
227
|
+
|
|
214
228
|
BEGIN_PATTERN = "CORRELOGRAMO PARCIAL DA SERIE DE VAZOES"
|
|
215
229
|
END_PATTERN = ""
|
|
216
230
|
|
|
@@ -317,6 +331,11 @@ class BlocoOrdemModeloUHE(Block):
|
|
|
317
331
|
seus coeficientes por UHE.
|
|
318
332
|
"""
|
|
319
333
|
|
|
334
|
+
__slots__ = [
|
|
335
|
+
"__linha",
|
|
336
|
+
"__tipo",
|
|
337
|
+
]
|
|
338
|
+
|
|
320
339
|
BEGIN_PATTERN = "DO MODELO AUTORREGRESSIVO PARA CADA PERIODO"
|
|
321
340
|
END_PATTERN = ""
|
|
322
341
|
|
|
@@ -411,6 +430,10 @@ class BlocoCoeficientesModeloUHE(Block):
|
|
|
411
430
|
Lista de coeficientes dos modelos PAR ou PAR-A por UHE.
|
|
412
431
|
"""
|
|
413
432
|
|
|
433
|
+
__slots__ = [
|
|
434
|
+
"__linha",
|
|
435
|
+
]
|
|
436
|
+
|
|
414
437
|
BEGIN_PATTERN = " COEFICIENTES DA EQUACAO DE REGRESSAO DE UM PROCESSO"
|
|
415
438
|
END_PATTERN = ""
|
|
416
439
|
|
|
@@ -473,6 +496,12 @@ class BlocoSerieRuidosUHE(Block):
|
|
|
473
496
|
relativo às séries de ruídos por usina.
|
|
474
497
|
"""
|
|
475
498
|
|
|
499
|
+
__slots__ = [
|
|
500
|
+
"__campo_ano",
|
|
501
|
+
"__campo_cfg",
|
|
502
|
+
"__linha",
|
|
503
|
+
]
|
|
504
|
+
|
|
476
505
|
BEGIN_PATTERN = "SERIE DE RUIDOS - ANO:"
|
|
477
506
|
END_PATTERN = ""
|
|
478
507
|
|
|
@@ -544,6 +573,10 @@ class BlocoCorrelRuidosUHE(Block):
|
|
|
544
573
|
dos ruídos por usina.
|
|
545
574
|
"""
|
|
546
575
|
|
|
576
|
+
__slots__ = [
|
|
577
|
+
"__linha",
|
|
578
|
+
]
|
|
579
|
+
|
|
547
580
|
BEGIN_PATTERN = "CORRELOGRAMO DA SERIE DE RUIDOS"
|
|
548
581
|
END_PATTERN = ""
|
|
549
582
|
|
|
@@ -650,6 +683,10 @@ class BlocoCorrelEspacialAnualMensalUHE(Block):
|
|
|
650
683
|
mensal para as UHEs.
|
|
651
684
|
"""
|
|
652
685
|
|
|
686
|
+
__slots__ = [
|
|
687
|
+
"__linha",
|
|
688
|
+
]
|
|
689
|
+
|
|
653
690
|
BEGIN_PATTERN = "CORRELACAO ESPACIAL HISTORICA MENSAL/ANUAL ENTRE AS UHEs"
|
|
654
691
|
END_PATTERN = ""
|
|
655
692
|
|
|
@@ -26,6 +26,11 @@ class BlocoNumeroPatamares(Section):
|
|
|
26
26
|
no caso.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
+
__slots__ = [
|
|
30
|
+
"__linha",
|
|
31
|
+
"__cabecalhos",
|
|
32
|
+
]
|
|
33
|
+
|
|
29
34
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
30
35
|
super().__init__(previous, next, data)
|
|
31
36
|
self.__linha = Line(
|
|
@@ -73,6 +78,11 @@ class BlocoDuracaoPatamar(Section):
|
|
|
73
78
|
de estudo, extraído do arquivo `patamar.dat`.
|
|
74
79
|
"""
|
|
75
80
|
|
|
81
|
+
__slots__ = [
|
|
82
|
+
"__linha",
|
|
83
|
+
"__cabecalhos",
|
|
84
|
+
]
|
|
85
|
+
|
|
76
86
|
FIM_BLOCO = "SUBSISTEMA"
|
|
77
87
|
|
|
78
88
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -172,6 +182,12 @@ class BlocoCargaPatamar(Section):
|
|
|
172
182
|
de estudo, extraído do arquivo `patamar.dat`.
|
|
173
183
|
"""
|
|
174
184
|
|
|
185
|
+
__slots__ = [
|
|
186
|
+
"__linha",
|
|
187
|
+
"__linha_subsis",
|
|
188
|
+
"__cabecalhos",
|
|
189
|
+
]
|
|
190
|
+
|
|
175
191
|
FIM_BLOCO = "9999"
|
|
176
192
|
|
|
177
193
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -306,6 +322,12 @@ class BlocoIntercambioPatamarSubsistemas(Section):
|
|
|
306
322
|
cada patamar, por mês de estudo, extraído do arquivo `patamar.dat`.
|
|
307
323
|
"""
|
|
308
324
|
|
|
325
|
+
__slots__ = [
|
|
326
|
+
"__linha",
|
|
327
|
+
"__linha_subsis",
|
|
328
|
+
"__cabecalhos",
|
|
329
|
+
]
|
|
330
|
+
|
|
309
331
|
FIM_BLOCO = "9999"
|
|
310
332
|
|
|
311
333
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -463,6 +485,12 @@ class BlocoUsinasNaoSimuladas(Section):
|
|
|
463
485
|
cada patamar, por mês de estudo, extraído do arquivo `patamar.dat`.
|
|
464
486
|
"""
|
|
465
487
|
|
|
488
|
+
__slots__ = [
|
|
489
|
+
"__linha",
|
|
490
|
+
"__linha_subsis",
|
|
491
|
+
"__cabecalhos",
|
|
492
|
+
]
|
|
493
|
+
|
|
466
494
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
467
495
|
super().__init__(previous, next, data)
|
|
468
496
|
self.__linha_subsis = Line([IntegerField(3, 1), IntegerField(3, 5)])
|
|
@@ -19,6 +19,8 @@ class BlocoPenalidades(Section):
|
|
|
19
19
|
e outras ações.
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
+
__slots__ = ["__linha", "__cabecalhos", "__numero_patamares_penalidade"]
|
|
23
|
+
|
|
22
24
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
23
25
|
super().__init__(previous, next, data)
|
|
24
26
|
self.__linha = Line(
|
inewave/newave/modelos/pmo.py
CHANGED
|
@@ -27,6 +27,8 @@ class BlocoEafPastTendenciaHidrolPMO(Block):
|
|
|
27
27
|
tendência hidrológica localizado no arquivo `pmo.dat`.
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
|
+
__slots__ = ["__line"]
|
|
31
|
+
|
|
30
32
|
BEGIN_PATTERN = "ENERGIAS AFLUENTES PASSADAS PARA A TENDENCIA HIDROLOGICA"
|
|
31
33
|
END_PATTERN = ""
|
|
32
34
|
|
|
@@ -92,6 +94,8 @@ class BlocoEafPastCfugaMedioPMO(Block):
|
|
|
92
94
|
tendência hidrológica localizado no arquivo `pmo.dat`.
|
|
93
95
|
"""
|
|
94
96
|
|
|
97
|
+
__slots__ = ["__line"]
|
|
98
|
+
|
|
95
99
|
BEGIN_PATTERN = (
|
|
96
100
|
"ENERGIAS AFLUENTES PASSADAS EM REFERENCIA A PRIMEIRA CONFIG"
|
|
97
101
|
)
|
|
@@ -282,6 +286,8 @@ class BlocoVolumeArmazenadoInicialPMO(Block):
|
|
|
282
286
|
localizado no arquivo `pmo.dat`.
|
|
283
287
|
"""
|
|
284
288
|
|
|
289
|
+
__slots__ = ["__linha"]
|
|
290
|
+
|
|
285
291
|
BEGIN_PATTERN = r" VOLUME ARMAZENADO INICIAL"
|
|
286
292
|
END_PATTERN = "X-----X------------X"
|
|
287
293
|
|
|
@@ -353,6 +359,8 @@ class BlocoGeracaoMinimaUsinasTermicasPMO(Block):
|
|
|
353
359
|
por usina existentes no arquivo `pmo.dat`.
|
|
354
360
|
"""
|
|
355
361
|
|
|
362
|
+
__slots__ = ["__line"]
|
|
363
|
+
|
|
356
364
|
BEGIN_PATTERN = "GERACAO TERMICA MINIMA POR USINA"
|
|
357
365
|
END_PATTERN = ""
|
|
358
366
|
|
|
@@ -416,7 +424,9 @@ class BlocoGeracaoMinimaUsinasTermicasPMO(Block):
|
|
|
416
424
|
# Confere se acabou
|
|
417
425
|
if len(linha) < 3 or "X--------------------" in linha:
|
|
418
426
|
tabela = tabela[:i, :]
|
|
419
|
-
self.data =
|
|
427
|
+
self.data = (
|
|
428
|
+
converte_tabela_em_df() if i > 0 else pd.DataFrame()
|
|
429
|
+
)
|
|
420
430
|
break
|
|
421
431
|
# Lê mais uma linha
|
|
422
432
|
dados = self.__line.read(linha)
|
|
@@ -437,6 +447,8 @@ class BlocoGeracaoMaximaUsinasTermicasPMO(Block):
|
|
|
437
447
|
por usina existentes no arquivo `pmo.dat`.
|
|
438
448
|
"""
|
|
439
449
|
|
|
450
|
+
__slots__ = ["__line"]
|
|
451
|
+
|
|
440
452
|
BEGIN_PATTERN = "GERACAO TERMICA MAXIMA POR USINA"
|
|
441
453
|
END_PATTERN = ""
|
|
442
454
|
|
|
@@ -500,7 +512,9 @@ class BlocoGeracaoMaximaUsinasTermicasPMO(Block):
|
|
|
500
512
|
# Confere se acabou
|
|
501
513
|
if len(linha) < 3 or "X--------------------" in linha:
|
|
502
514
|
tabela = tabela[:i, :]
|
|
503
|
-
self.data =
|
|
515
|
+
self.data = (
|
|
516
|
+
converte_tabela_em_df() if i > 0 else pd.DataFrame()
|
|
517
|
+
)
|
|
504
518
|
break
|
|
505
519
|
# Lê mais uma linha
|
|
506
520
|
dados = self.__line.read(linha)
|
|
@@ -521,6 +535,8 @@ class BlocoConvergenciaPMO(Block):
|
|
|
521
535
|
no arquivo `pmo.dat`.
|
|
522
536
|
"""
|
|
523
537
|
|
|
538
|
+
__slots__ = ["__line"]
|
|
539
|
+
|
|
524
540
|
BEGIN_PATTERN = " ITER LIM.INF. "
|
|
525
541
|
END_PATTERN = ""
|
|
526
542
|
|
|
@@ -602,6 +618,8 @@ class BlocoConfiguracoesExpansaoPMO(Block):
|
|
|
602
618
|
do sistema existentes no arquivo `pmo.dat`.
|
|
603
619
|
"""
|
|
604
620
|
|
|
621
|
+
__slots__ = ["__line"]
|
|
622
|
+
|
|
605
623
|
BEGIN_PATTERN = "CONFIGURACOES POR"
|
|
606
624
|
END_PATTERN = ""
|
|
607
625
|
|
|
@@ -663,6 +681,8 @@ class BlocoMARSPMO(Block):
|
|
|
663
681
|
existentes no arquivo `pmo.dat`.
|
|
664
682
|
"""
|
|
665
683
|
|
|
684
|
+
__slots__ = ["__line", "__ree_field"]
|
|
685
|
+
|
|
666
686
|
BEGIN_PATTERN = "PARAMETROS DAS RETAS DE PERDAS POR ENGOLIMENTO MAXIMO"
|
|
667
687
|
END_PATTERN = 'ENERGIA FIO D"AGUA LIQUIDA|CEPEL'
|
|
668
688
|
|
|
@@ -734,6 +754,8 @@ class BlocoRiscoDeficitENSPMO(Block):
|
|
|
734
754
|
ENS (energia não suprida) existentes no arquivo `pmo.dat`.
|
|
735
755
|
"""
|
|
736
756
|
|
|
757
|
+
__slots__ = ["__line"]
|
|
758
|
+
|
|
737
759
|
BEGIN_PATTERN = r"RISCO ANUAL DE DEFICIT E E\(ENS\) \(%\)" # noqa
|
|
738
760
|
END_PATTERN = ""
|
|
739
761
|
|
|
@@ -803,6 +825,8 @@ class BlocoCustoOperacaoPMO(Block):
|
|
|
803
825
|
existentes no arquivo `pmo.dat`.
|
|
804
826
|
"""
|
|
805
827
|
|
|
828
|
+
__slots__ = ["__line"]
|
|
829
|
+
|
|
806
830
|
BEGIN_PATTERN = "PARCELA V.ESPERADO"
|
|
807
831
|
END_PATTERN = ""
|
|
808
832
|
|
|
@@ -865,6 +889,8 @@ class BlocoCustoOperacaoTotalPMO(Block):
|
|
|
865
889
|
existentes no arquivo `pmo.dat`.
|
|
866
890
|
"""
|
|
867
891
|
|
|
892
|
+
__slots__ = ["__line"]
|
|
893
|
+
|
|
868
894
|
BEGIN_PATTERN = " VALOR ESPERADO TOTAL:"
|
|
869
895
|
END_PATTERN = ""
|
|
870
896
|
|
|
@@ -901,6 +927,13 @@ class BlocoProdutibilidadesConfiguracaoPMO(Block):
|
|
|
901
927
|
configuração.
|
|
902
928
|
"""
|
|
903
929
|
|
|
930
|
+
__slots__ = [
|
|
931
|
+
"__cfg_line",
|
|
932
|
+
"__prodt_line",
|
|
933
|
+
"__prodt_reserv_line",
|
|
934
|
+
"__prod_acum_line",
|
|
935
|
+
]
|
|
936
|
+
|
|
904
937
|
BEGIN_PATTERN = r"PRODUTIBILIDADES \(MW/m3/s\)"
|
|
905
938
|
END_PATTERN = ""
|
|
906
939
|
|
|
@@ -1110,6 +1143,11 @@ class BlocoPenalidadeViolacaoOutrosUsosPMO(Block):
|
|
|
1110
1143
|
outros usos da água.
|
|
1111
1144
|
"""
|
|
1112
1145
|
|
|
1146
|
+
__slots__ = [
|
|
1147
|
+
"__ree_line",
|
|
1148
|
+
"__pen_line",
|
|
1149
|
+
]
|
|
1150
|
+
|
|
1113
1151
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DOS OUTROS USOS DA AGUA "
|
|
1114
1152
|
END_PATTERN = ""
|
|
1115
1153
|
|
|
@@ -1193,6 +1231,12 @@ class BlocoPenalidadeViolacaoVazaoMinimaPMO(Block):
|
|
|
1193
1231
|
vazão mínima.
|
|
1194
1232
|
"""
|
|
1195
1233
|
|
|
1234
|
+
__slots__ = [
|
|
1235
|
+
"__ree_line",
|
|
1236
|
+
"__patamar_line",
|
|
1237
|
+
"__pen_line",
|
|
1238
|
+
]
|
|
1239
|
+
|
|
1196
1240
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DE VAZAO MINIMA "
|
|
1197
1241
|
END_PATTERN = ""
|
|
1198
1242
|
|
|
@@ -1288,6 +1332,11 @@ class BlocoPenalidadeViolacaoCurvaSegurancaPMO(Block):
|
|
|
1288
1332
|
curva-guia de segurança.
|
|
1289
1333
|
"""
|
|
1290
1334
|
|
|
1335
|
+
__slots__ = [
|
|
1336
|
+
"__ree_line",
|
|
1337
|
+
"__pen_line",
|
|
1338
|
+
]
|
|
1339
|
+
|
|
1291
1340
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DA CURVA GUIA DE SEGURANCA "
|
|
1292
1341
|
END_PATTERN = ""
|
|
1293
1342
|
|
|
@@ -1371,6 +1420,11 @@ class BlocoPenalidadeViolacaoFphaPMO(Block):
|
|
|
1371
1420
|
FPHA.
|
|
1372
1421
|
"""
|
|
1373
1422
|
|
|
1423
|
+
__slots__ = [
|
|
1424
|
+
"__ree_line",
|
|
1425
|
+
"__pen_line",
|
|
1426
|
+
]
|
|
1427
|
+
|
|
1374
1428
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DA FPHA "
|
|
1375
1429
|
END_PATTERN = ""
|
|
1376
1430
|
|
|
@@ -1454,6 +1508,11 @@ class BlocoPenalidadeViolacaoEvaporacaoPMO(Block):
|
|
|
1454
1508
|
evaporação.
|
|
1455
1509
|
"""
|
|
1456
1510
|
|
|
1511
|
+
__slots__ = [
|
|
1512
|
+
"__ree_line",
|
|
1513
|
+
"__pen_line",
|
|
1514
|
+
]
|
|
1515
|
+
|
|
1457
1516
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DA EVAPORACAO "
|
|
1458
1517
|
END_PATTERN = ""
|
|
1459
1518
|
|
|
@@ -1537,6 +1596,10 @@ class BlocoPenalidadeViolacaoTurbinamentoMaximoPMO(Block):
|
|
|
1537
1596
|
turbinamento máximo.
|
|
1538
1597
|
"""
|
|
1539
1598
|
|
|
1599
|
+
__slots__ = [
|
|
1600
|
+
"__pen_line",
|
|
1601
|
+
]
|
|
1602
|
+
|
|
1540
1603
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DE TURBINAMENTO MAXIMO "
|
|
1541
1604
|
END_PATTERN = ""
|
|
1542
1605
|
|
|
@@ -1601,6 +1664,10 @@ class BlocoPenalidadeViolacaoTurbinamentoMinimoPMO(Block):
|
|
|
1601
1664
|
turbinamento máximo.
|
|
1602
1665
|
"""
|
|
1603
1666
|
|
|
1667
|
+
__slots__ = [
|
|
1668
|
+
"__pen_line",
|
|
1669
|
+
]
|
|
1670
|
+
|
|
1604
1671
|
BEGIN_PATTERN = "PENALIDADE POR VIOLACAO DE TURBINAMENTO MINIMO "
|
|
1605
1672
|
END_PATTERN = ""
|
|
1606
1673
|
|
inewave/newave/modelos/re.py
CHANGED
inewave/newave/modelos/ree.py
CHANGED
inewave/newave/modelos/selcor.py
CHANGED
|
@@ -11,9 +11,11 @@ class BlocoDadosSelcor(Section):
|
|
|
11
11
|
de cortes existentes no arquivo `selcor.dat`.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = ["__linha", "__cabecalhos", "__comentarios", "data"]
|
|
15
|
+
|
|
14
16
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
15
17
|
super().__init__(previous, next, data)
|
|
16
|
-
self.
|
|
18
|
+
self.__linha = Line(
|
|
17
19
|
[
|
|
18
20
|
LiteralField(60, 0),
|
|
19
21
|
IntegerField(4, 63),
|
|
@@ -46,7 +48,7 @@ class BlocoDadosSelcor(Section):
|
|
|
46
48
|
# Lê as linhas de parâmetros
|
|
47
49
|
self.data: List[List[int]] = []
|
|
48
50
|
for _ in range(7):
|
|
49
|
-
dados_linha = self.
|
|
51
|
+
dados_linha = self.__linha.read(file.readline())
|
|
50
52
|
self.__comentarios.append(dados_linha[0])
|
|
51
53
|
self.data.append(dados_linha[1:])
|
|
52
54
|
|
|
@@ -58,4 +60,4 @@ class BlocoDadosSelcor(Section):
|
|
|
58
60
|
raise ValueError("Dados do selcor.dat não foram lidos com sucesso")
|
|
59
61
|
|
|
60
62
|
for c, s in zip(self.__comentarios, self.data):
|
|
61
|
-
file.write(self.
|
|
63
|
+
file.write(self.__linha.write([c] + s))
|
inewave/newave/modelos/shist.py
CHANGED
|
@@ -9,9 +9,11 @@ class BlocoVarreduraShist(Section):
|
|
|
9
9
|
Bloco de informações de varredura existente no arquivo `shist.dat`.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
13
|
+
|
|
12
14
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
13
15
|
super().__init__(previous, next, data)
|
|
14
|
-
self.
|
|
16
|
+
self.__linha = Line(
|
|
15
17
|
[
|
|
16
18
|
IntegerField(3, 0),
|
|
17
19
|
IntegerField(4, 4),
|
|
@@ -39,7 +41,7 @@ class BlocoVarreduraShist(Section):
|
|
|
39
41
|
for _ in range(2):
|
|
40
42
|
self.__cabecalhos.append(file.readline())
|
|
41
43
|
|
|
42
|
-
self.data = self.
|
|
44
|
+
self.data = self.__linha.read(file.readline())
|
|
43
45
|
|
|
44
46
|
# Override
|
|
45
47
|
def write(self, file: IO, *args, **kwargs):
|
|
@@ -48,7 +50,7 @@ class BlocoVarreduraShist(Section):
|
|
|
48
50
|
if not isinstance(self.data, list):
|
|
49
51
|
raise ValueError("Dados do shist.dat não foram lidos com sucesso")
|
|
50
52
|
|
|
51
|
-
file.write(self.
|
|
53
|
+
file.write(self.__linha.write(self.data))
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
class BlocoSeriesSimulacaoShist(Section):
|
|
@@ -57,11 +59,13 @@ class BlocoSeriesSimulacaoShist(Section):
|
|
|
57
59
|
existente no arquivo `shist.dat`.
|
|
58
60
|
"""
|
|
59
61
|
|
|
62
|
+
__slots__ = ["__linha", "__cabecalhos", "data"]
|
|
63
|
+
|
|
60
64
|
END_PATTERN = "9999"
|
|
61
65
|
|
|
62
66
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
63
67
|
super().__init__(previous, next, data)
|
|
64
|
-
self.
|
|
68
|
+
self.__linha = Line(
|
|
65
69
|
[
|
|
66
70
|
IntegerField(4, 0),
|
|
67
71
|
]
|
|
@@ -97,7 +101,7 @@ class BlocoSeriesSimulacaoShist(Section):
|
|
|
97
101
|
):
|
|
98
102
|
break
|
|
99
103
|
|
|
100
|
-
self.data.append(self.
|
|
104
|
+
self.data.append(self.__linha.read(linha)[0])
|
|
101
105
|
|
|
102
106
|
# Override
|
|
103
107
|
def write(self, file: IO, *args, **kwargs):
|
|
@@ -107,6 +111,6 @@ class BlocoSeriesSimulacaoShist(Section):
|
|
|
107
111
|
raise ValueError("Dados do shist.dat não foram lidos com sucesso")
|
|
108
112
|
|
|
109
113
|
for s in self.data:
|
|
110
|
-
file.write(self.
|
|
114
|
+
file.write(self.__linha.write([s]))
|
|
111
115
|
|
|
112
116
|
file.write(BlocoSeriesSimulacaoShist.END_PATTERN + "\n")
|
|
@@ -26,6 +26,8 @@ class BlocoNumeroPatamaresDeficit(Section):
|
|
|
26
26
|
Bloco com o número de patamares de déficit considerados.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
30
|
+
|
|
29
31
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
30
32
|
super().__init__(previous, next, data)
|
|
31
33
|
self.__linha = Line(
|
|
@@ -73,6 +75,8 @@ class BlocoCustosDeficit(Section):
|
|
|
73
75
|
patamar de déficit e o número de patamares de déficit.
|
|
74
76
|
"""
|
|
75
77
|
|
|
78
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
79
|
+
|
|
76
80
|
FIM_BLOCO = " 999"
|
|
77
81
|
|
|
78
82
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -220,6 +224,8 @@ class BlocoIntercambioSubsistema(Section):
|
|
|
220
224
|
por mês/ano de estudo para cada subsistema.
|
|
221
225
|
"""
|
|
222
226
|
|
|
227
|
+
__slots__ = ["__linha", "__linha_subsis", "__cabecalhos"]
|
|
228
|
+
|
|
223
229
|
FIM_BLOCO = " 999"
|
|
224
230
|
|
|
225
231
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -391,6 +397,8 @@ class BlocoMercadoEnergiaSistema(Section):
|
|
|
391
397
|
por mês/ano de estudo para cada subsistema.
|
|
392
398
|
"""
|
|
393
399
|
|
|
400
|
+
__slots__ = ["__linha", "__linha_subsis", "__cabecalhos"]
|
|
401
|
+
|
|
394
402
|
FIM_BLOCO = " 999"
|
|
395
403
|
|
|
396
404
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
@@ -520,6 +528,8 @@ class BlocoGeracaoUsinasNaoSimuladas(Section):
|
|
|
520
528
|
cada patamar, por mês de estudo, extraído do arquivo `sistema.dat`.
|
|
521
529
|
"""
|
|
522
530
|
|
|
531
|
+
__slots__ = ["__linha", "__linha_subsis", "__cabecalhos"]
|
|
532
|
+
|
|
523
533
|
FIM_BLOCO = " 999"
|
|
524
534
|
|
|
525
535
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
inewave/newave/modelos/term.py
CHANGED
|
@@ -19,6 +19,8 @@ class BlocoTermUTE(Section):
|
|
|
19
19
|
existentes no arquivo do NEWAVE `term.dat`.
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
23
|
+
|
|
22
24
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
23
25
|
super().__init__(previous, next, data)
|
|
24
26
|
self.__linha = Line(
|
inewave/newave/modelos/vazaob.py
CHANGED
inewave/newave/modelos/vazaof.py
CHANGED
inewave/newave/modelos/vazaos.py
CHANGED
inewave/newave/modelos/vazoes.py
CHANGED
inewave/newave/modif.py
CHANGED
inewave/newave/vazoes.py
CHANGED
|
@@ -11,6 +11,8 @@ class BlocoNomesArquivos(Section):
|
|
|
11
11
|
entrada do NWLISTCF `arquivos.dat`.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
__slots__ = ["__linha"]
|
|
15
|
+
|
|
14
16
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
15
17
|
super().__init__(previous, next, data)
|
|
16
18
|
self.__linha = Line([LiteralField(30, 0), LiteralField(40, 30)])
|
inewave/nwlistcf/modelos/caso.py
CHANGED
|
@@ -16,6 +16,16 @@ class EstadosPeriodoNwlistcf(Block):
|
|
|
16
16
|
por período na construção dos cortes da FCF.
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
+
__slots__ = [
|
|
20
|
+
"__linha_periodo",
|
|
21
|
+
"__linha",
|
|
22
|
+
"__periodo",
|
|
23
|
+
"__ireg_atual",
|
|
24
|
+
"__itec_atual",
|
|
25
|
+
"__simc_atual",
|
|
26
|
+
"__itef_atual",
|
|
27
|
+
]
|
|
28
|
+
|
|
19
29
|
BEGIN_PATTERN = "PERIODO: "
|
|
20
30
|
END_PATTERN = "PERIODO: "
|
|
21
31
|
|
|
@@ -10,6 +10,8 @@ class PeriodoImpressaoCortesEstados(Section):
|
|
|
10
10
|
início e fim para a impressão.
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
+
__slots__ = ["__linha", "__cabecalhos"]
|
|
14
|
+
|
|
13
15
|
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
14
16
|
super().__init__(previous, next, data)
|
|
15
17
|
self.__linha = Line(
|