inewave 1.11.1__py3-none-any.whl → 1.12.0__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/dger.py +90 -50
- inewave/newave/modelos/dger.py +97 -0
- inewave/newave/modelos/penalid.py +2 -2
- inewave/newave/parp.py +3 -1
- inewave/newave/parpeol.py +3 -1
- inewave/newave/parpvaz.py +3 -1
- {inewave-1.11.1.dist-info → inewave-1.12.0.dist-info}/METADATA +1 -1
- {inewave-1.11.1.dist-info → inewave-1.12.0.dist-info}/RECORD +11 -11
- {inewave-1.11.1.dist-info → inewave-1.12.0.dist-info}/WHEEL +1 -1
- {inewave-1.11.1.dist-info → inewave-1.12.0.dist-info}/licenses/LICENSE.md +0 -0
inewave/__init__.py
CHANGED
inewave/newave/dger.py
CHANGED
|
@@ -10,6 +10,7 @@ from inewave.newave.modelos.dger import (
|
|
|
10
10
|
BlocoAnoInicioEstudo,
|
|
11
11
|
BlocoAproveitamentoBasePLsBackward,
|
|
12
12
|
BlocoBid,
|
|
13
|
+
BlocoCalculaProdtMediaSin,
|
|
13
14
|
BlocoCalculaVolInicial,
|
|
14
15
|
BlocoCanalDesvio,
|
|
15
16
|
BlocoConsideracaoDefluenciaMaxima,
|
|
@@ -28,6 +29,7 @@ from inewave.newave.modelos.dger import (
|
|
|
28
29
|
BlocoDespachoAntecipadoGNL,
|
|
29
30
|
BlocoDuracaoPeriodo,
|
|
30
31
|
BlocoDuracaoPorPatamar,
|
|
32
|
+
BlocoEliminacaoCortes,
|
|
31
33
|
BlocoElNino,
|
|
32
34
|
BlocoEnso,
|
|
33
35
|
BlocoEqualizacaoPenalInt,
|
|
@@ -95,8 +97,6 @@ from inewave.newave.modelos.dger import (
|
|
|
95
97
|
BlocoSazonalizarVminP,
|
|
96
98
|
BlocoSazonalizarVminT,
|
|
97
99
|
BlocoSelecaoCortes,
|
|
98
|
-
BlocoSementeBackward,
|
|
99
|
-
BlocoSementeForward,
|
|
100
100
|
BlocoSimFinalComData,
|
|
101
101
|
BlocoTaxaDesconto,
|
|
102
102
|
BlocoTendenciaHidrologica,
|
|
@@ -209,8 +209,8 @@ class Dger(SectionFile):
|
|
|
209
209
|
BlocoConsideracaoDefluenciaMaxima,
|
|
210
210
|
BlocoAproveitamentoBasePLsBackward,
|
|
211
211
|
BlocoImpressaoEstadosGeracaoCortes,
|
|
212
|
-
BlocoSementeForward,
|
|
213
|
-
BlocoSementeBackward,
|
|
212
|
+
# BlocoSementeForward,
|
|
213
|
+
# BlocoSementeBackward,
|
|
214
214
|
BlocoRestricaoLPPTurbinamentoMaximoREE,
|
|
215
215
|
BlocoRestricaoLPPDefluenciaMaximaREE,
|
|
216
216
|
BlocoRestricaoLPPTurbinamentoMaximoUHE,
|
|
@@ -223,6 +223,8 @@ class Dger(SectionFile):
|
|
|
223
223
|
BlocoRHQ,
|
|
224
224
|
BlocoRHV,
|
|
225
225
|
BlocoTratamentoCortes,
|
|
226
|
+
BlocoEliminacaoCortes,
|
|
227
|
+
BlocoCalculaProdtMediaSin,
|
|
226
228
|
]
|
|
227
229
|
|
|
228
230
|
@property
|
|
@@ -2210,48 +2212,48 @@ class Dger(SectionFile):
|
|
|
2210
2212
|
if isinstance(b, BlocoImpressaoEstadosGeracaoCortes):
|
|
2211
2213
|
b.valor = dado
|
|
2212
2214
|
|
|
2213
|
-
@property
|
|
2214
|
-
def semente_forward(self) -> Optional[int]:
|
|
2215
|
-
|
|
2216
|
-
|
|
2215
|
+
# @property
|
|
2216
|
+
# def semente_forward(self) -> Optional[int]:
|
|
2217
|
+
# """
|
|
2218
|
+
# Configuração da linha número 91 do arquivo `dger.dat`.
|
|
2217
2219
|
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2220
|
+
# :return: O valor do campo
|
|
2221
|
+
# :rtype: int | None
|
|
2222
|
+
# """
|
|
2223
|
+
# b = self.data.get_sections_of_type(BlocoSementeForward)
|
|
2224
|
+
# if isinstance(b, BlocoSementeForward):
|
|
2225
|
+
# return b.valor
|
|
2226
|
+
# return None
|
|
2225
2227
|
|
|
2226
|
-
@semente_forward.setter
|
|
2227
|
-
def semente_forward(self, dado: int):
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2228
|
+
# @semente_forward.setter
|
|
2229
|
+
# def semente_forward(self, dado: int):
|
|
2230
|
+
# b = self.data.get_sections_of_type(BlocoSementeForward)
|
|
2231
|
+
# if isinstance(b, BlocoSementeForward):
|
|
2232
|
+
# b.valor = dado
|
|
2231
2233
|
|
|
2232
|
-
@property
|
|
2233
|
-
def semente_backward(self) -> Optional[int]:
|
|
2234
|
-
|
|
2235
|
-
|
|
2234
|
+
# @property
|
|
2235
|
+
# def semente_backward(self) -> Optional[int]:
|
|
2236
|
+
# """
|
|
2237
|
+
# Configuração da linha número 92 do arquivo `dger.dat`.
|
|
2236
2238
|
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2239
|
+
# :return: O valor do campo
|
|
2240
|
+
# :rtype: int | None
|
|
2241
|
+
# """
|
|
2242
|
+
# b = self.data.get_sections_of_type(BlocoSementeBackward)
|
|
2243
|
+
# if isinstance(b, BlocoSementeBackward):
|
|
2244
|
+
# return b.valor
|
|
2245
|
+
# return None
|
|
2244
2246
|
|
|
2245
|
-
@semente_backward.setter
|
|
2246
|
-
def semente_backward(self, dado: int):
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2247
|
+
# @semente_backward.setter
|
|
2248
|
+
# def semente_backward(self, dado: int):
|
|
2249
|
+
# b = self.data.get_sections_of_type(BlocoSementeBackward)
|
|
2250
|
+
# if isinstance(b, BlocoSementeBackward):
|
|
2251
|
+
# b.valor = dado
|
|
2250
2252
|
|
|
2251
2253
|
@property
|
|
2252
2254
|
def restricao_lpp_turbinamento_maximo_ree(self) -> Optional[int]:
|
|
2253
2255
|
"""
|
|
2254
|
-
Configuração da linha número
|
|
2256
|
+
Configuração da linha número 91 do arquivo `dger.dat`.
|
|
2255
2257
|
|
|
2256
2258
|
:return: O valor do campo
|
|
2257
2259
|
:rtype: int | None
|
|
@@ -2274,7 +2276,7 @@ class Dger(SectionFile):
|
|
|
2274
2276
|
@property
|
|
2275
2277
|
def restricao_lpp_defluencia_maxima_ree(self) -> Optional[int]:
|
|
2276
2278
|
"""
|
|
2277
|
-
Configuração da linha número
|
|
2279
|
+
Configuração da linha número 92 do arquivo `dger.dat`.
|
|
2278
2280
|
|
|
2279
2281
|
:return: O valor do campo
|
|
2280
2282
|
:rtype: int | None
|
|
@@ -2293,7 +2295,7 @@ class Dger(SectionFile):
|
|
|
2293
2295
|
@property
|
|
2294
2296
|
def restricao_lpp_turbinamento_maximo_uhe(self) -> Optional[int]:
|
|
2295
2297
|
"""
|
|
2296
|
-
Configuração da linha número
|
|
2298
|
+
Configuração da linha número 93 do arquivo `dger.dat`.
|
|
2297
2299
|
|
|
2298
2300
|
:return: O valor do campo
|
|
2299
2301
|
:rtype: int | None
|
|
@@ -2316,7 +2318,7 @@ class Dger(SectionFile):
|
|
|
2316
2318
|
@property
|
|
2317
2319
|
def restricao_lpp_defluencia_maxima_uhe(self) -> Optional[int]:
|
|
2318
2320
|
"""
|
|
2319
|
-
Configuração da linha número
|
|
2321
|
+
Configuração da linha número 94 do arquivo `dger.dat`.
|
|
2320
2322
|
|
|
2321
2323
|
:return: O valor do campo
|
|
2322
2324
|
:rtype: int | None
|
|
@@ -2335,7 +2337,7 @@ class Dger(SectionFile):
|
|
|
2335
2337
|
@property
|
|
2336
2338
|
def restricoes_eletricas_especiais(self) -> Optional[int]:
|
|
2337
2339
|
"""
|
|
2338
|
-
Configuração da linha número
|
|
2340
|
+
Configuração da linha número 95 do arquivo `dger.dat`.
|
|
2339
2341
|
|
|
2340
2342
|
:return: O valor do campo
|
|
2341
2343
|
:rtype: int | None
|
|
@@ -2354,7 +2356,7 @@ class Dger(SectionFile):
|
|
|
2354
2356
|
@property
|
|
2355
2357
|
def funcao_producao_uhe(self) -> Optional[int]:
|
|
2356
2358
|
"""
|
|
2357
|
-
Configuração da linha número
|
|
2359
|
+
Configuração da linha número 96 do arquivo `dger.dat`.
|
|
2358
2360
|
|
|
2359
2361
|
:return: O valor do campo
|
|
2360
2362
|
:rtype: int | None
|
|
@@ -2373,7 +2375,7 @@ class Dger(SectionFile):
|
|
|
2373
2375
|
@property
|
|
2374
2376
|
def fcf_pos_estudo(self) -> Optional[int]:
|
|
2375
2377
|
"""
|
|
2376
|
-
Configuração da linha número
|
|
2378
|
+
Configuração da linha número 97 do arquivo `dger.dat`.
|
|
2377
2379
|
|
|
2378
2380
|
:return: O valor do campo
|
|
2379
2381
|
:rtype: int | None
|
|
@@ -2392,7 +2394,7 @@ class Dger(SectionFile):
|
|
|
2392
2394
|
@property
|
|
2393
2395
|
def estacoes_bombeamento(self) -> Optional[int]:
|
|
2394
2396
|
"""
|
|
2395
|
-
Configuração da linha número
|
|
2397
|
+
Configuração da linha número 98 do arquivo `dger.dat`.
|
|
2396
2398
|
|
|
2397
2399
|
:return: O valor do campo
|
|
2398
2400
|
:rtype: int | None
|
|
@@ -2411,7 +2413,7 @@ class Dger(SectionFile):
|
|
|
2411
2413
|
@property
|
|
2412
2414
|
def canal_desvio(self) -> Optional[int]:
|
|
2413
2415
|
"""
|
|
2414
|
-
Configuração da linha número
|
|
2416
|
+
Configuração da linha número 99 do arquivo `dger.dat`.
|
|
2415
2417
|
|
|
2416
2418
|
:return: O valor do campo
|
|
2417
2419
|
:rtype: int | None
|
|
@@ -2430,7 +2432,7 @@ class Dger(SectionFile):
|
|
|
2430
2432
|
@property
|
|
2431
2433
|
def restricoes_rhq(self) -> Optional[int]:
|
|
2432
2434
|
"""
|
|
2433
|
-
Configuração da linha número
|
|
2435
|
+
Configuração da linha número 100 do arquivo `dger.dat`.
|
|
2434
2436
|
|
|
2435
2437
|
:return: O valor do campo
|
|
2436
2438
|
:rtype: int | None
|
|
@@ -2449,7 +2451,7 @@ class Dger(SectionFile):
|
|
|
2449
2451
|
@property
|
|
2450
2452
|
def restricoes_rhv(self) -> Optional[int]:
|
|
2451
2453
|
"""
|
|
2452
|
-
Configuração da linha número
|
|
2454
|
+
Configuração da linha número 101 do arquivo `dger.dat`.
|
|
2453
2455
|
|
|
2454
2456
|
:return: O valor do campo
|
|
2455
2457
|
:rtype: int | None
|
|
@@ -2468,7 +2470,7 @@ class Dger(SectionFile):
|
|
|
2468
2470
|
@property
|
|
2469
2471
|
def gera_arquivo_cortes_unico(self) -> Optional[int]:
|
|
2470
2472
|
"""
|
|
2471
|
-
Configuração da linha número
|
|
2473
|
+
Configuração da linha número 102 do arquivo `dger.dat`.
|
|
2472
2474
|
|
|
2473
2475
|
:return: O valor do campo
|
|
2474
2476
|
:rtype: int | None
|
|
@@ -2487,7 +2489,7 @@ class Dger(SectionFile):
|
|
|
2487
2489
|
@property
|
|
2488
2490
|
def mantem_arquivos_cortes_por_periodo(self) -> Optional[int]:
|
|
2489
2491
|
"""
|
|
2490
|
-
Configuração da linha número
|
|
2492
|
+
Configuração da linha número 102 do arquivo `dger.dat`.
|
|
2491
2493
|
|
|
2492
2494
|
:return: O valor do campo
|
|
2493
2495
|
:rtype: int | None
|
|
@@ -2506,7 +2508,7 @@ class Dger(SectionFile):
|
|
|
2506
2508
|
@property
|
|
2507
2509
|
def periodos_manutencao_cortes(self) -> List[Optional[int]]:
|
|
2508
2510
|
"""
|
|
2509
|
-
Configuração da linha número
|
|
2511
|
+
Configuração da linha número 102 do arquivo `dger.dat`.
|
|
2510
2512
|
|
|
2511
2513
|
:return: O valor do campo
|
|
2512
2514
|
:rtype: list[int | None]
|
|
@@ -2521,3 +2523,41 @@ class Dger(SectionFile):
|
|
|
2521
2523
|
b = self.data.get_sections_of_type(BlocoTratamentoCortes)
|
|
2522
2524
|
if isinstance(b, BlocoTratamentoCortes):
|
|
2523
2525
|
b.periodos_cortes = dado
|
|
2526
|
+
|
|
2527
|
+
@property
|
|
2528
|
+
def eliminacao_cortes(self) -> Optional[int]:
|
|
2529
|
+
"""
|
|
2530
|
+
Configuração da linha número 103 do arquivo `dger.dat`.
|
|
2531
|
+
|
|
2532
|
+
:return: O valor do campo
|
|
2533
|
+
:rtype: int | None
|
|
2534
|
+
"""
|
|
2535
|
+
b = self.data.get_sections_of_type(BlocoEliminacaoCortes)
|
|
2536
|
+
if isinstance(b, BlocoEliminacaoCortes):
|
|
2537
|
+
return b.valor
|
|
2538
|
+
return None
|
|
2539
|
+
|
|
2540
|
+
@eliminacao_cortes.setter
|
|
2541
|
+
def eliminacao_cortes(self, dado: int):
|
|
2542
|
+
b = self.data.get_sections_of_type(BlocoEliminacaoCortes)
|
|
2543
|
+
if isinstance(b, BlocoEliminacaoCortes):
|
|
2544
|
+
b.valor = dado
|
|
2545
|
+
|
|
2546
|
+
@property
|
|
2547
|
+
def calcula_prodt_media_sin(self) -> Optional[int]:
|
|
2548
|
+
"""
|
|
2549
|
+
Configuração da linha número 104 do arquivo `dger.dat`.
|
|
2550
|
+
|
|
2551
|
+
:return: O valor do campo
|
|
2552
|
+
:rtype: int | None
|
|
2553
|
+
"""
|
|
2554
|
+
b = self.data.get_sections_of_type(BlocoCalculaProdtMediaSin)
|
|
2555
|
+
if isinstance(b, BlocoCalculaProdtMediaSin):
|
|
2556
|
+
return b.valor
|
|
2557
|
+
return None
|
|
2558
|
+
|
|
2559
|
+
@calcula_prodt_media_sin.setter
|
|
2560
|
+
def calcula_prodt_media_sin(self, dado: int):
|
|
2561
|
+
b = self.data.get_sections_of_type(BlocoCalculaProdtMediaSin)
|
|
2562
|
+
if isinstance(b, BlocoCalculaProdtMediaSin):
|
|
2563
|
+
b.valor = dado
|
inewave/newave/modelos/dger.py
CHANGED
|
@@ -5261,3 +5261,100 @@ class BlocoTratamentoCortes(Section):
|
|
|
5261
5261
|
elif len(v) < 3:
|
|
5262
5262
|
v = v + [None] * (3 - len(v))
|
|
5263
5263
|
self.data = self.data[0:3] + v + [self.data[-1]]
|
|
5264
|
+
|
|
5265
|
+
|
|
5266
|
+
class BlocoEliminacaoCortes(Section):
|
|
5267
|
+
"""
|
|
5268
|
+
Bloco com a escolha de habilitar ou não eliminação de cortes
|
|
5269
|
+
"""
|
|
5270
|
+
|
|
5271
|
+
__slots__ = ["__linha"]
|
|
5272
|
+
|
|
5273
|
+
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
5274
|
+
super().__init__(previous, next, data)
|
|
5275
|
+
self.__linha = Line([
|
|
5276
|
+
LiteralField(24, 0),
|
|
5277
|
+
IntegerField(1, 24),
|
|
5278
|
+
LiteralField(148, 28),
|
|
5279
|
+
])
|
|
5280
|
+
|
|
5281
|
+
def __eq__(self, o: object) -> bool:
|
|
5282
|
+
if not isinstance(o, BlocoEliminacaoCortes):
|
|
5283
|
+
return False
|
|
5284
|
+
bloco: BlocoEliminacaoCortes = o
|
|
5285
|
+
if not all([
|
|
5286
|
+
isinstance(self.data, list),
|
|
5287
|
+
isinstance(o.data, list),
|
|
5288
|
+
]):
|
|
5289
|
+
return False
|
|
5290
|
+
else:
|
|
5291
|
+
return self.data == bloco.data
|
|
5292
|
+
|
|
5293
|
+
def read(self, file: IO, *args, **kwargs):
|
|
5294
|
+
self.data = self.__linha.read(file.readline())
|
|
5295
|
+
|
|
5296
|
+
def write(self, file: IO, *args, **kwargs):
|
|
5297
|
+
file.write(self.__linha.write(self.data))
|
|
5298
|
+
|
|
5299
|
+
@property
|
|
5300
|
+
def valor(self) -> Optional[int]:
|
|
5301
|
+
"""
|
|
5302
|
+
O valor da opção configurada
|
|
5303
|
+
|
|
5304
|
+
:return: A consideração ou não de RHV
|
|
5305
|
+
:rtype: int | None
|
|
5306
|
+
"""
|
|
5307
|
+
return self.data[1]
|
|
5308
|
+
|
|
5309
|
+
@valor.setter
|
|
5310
|
+
def valor(self, v: int):
|
|
5311
|
+
self.data[1] = v
|
|
5312
|
+
|
|
5313
|
+
|
|
5314
|
+
class BlocoCalculaProdtMediaSin(Section):
|
|
5315
|
+
"""
|
|
5316
|
+
Bloco com a escolha de calcular ou não a produtibilidade
|
|
5317
|
+
média do SIN
|
|
5318
|
+
"""
|
|
5319
|
+
|
|
5320
|
+
__slots__ = ["__linha"]
|
|
5321
|
+
|
|
5322
|
+
def __init__(self, previous=None, next=None, data=None) -> None:
|
|
5323
|
+
super().__init__(previous, next, data)
|
|
5324
|
+
self.__linha = Line([
|
|
5325
|
+
LiteralField(24, 0),
|
|
5326
|
+
IntegerField(1, 24),
|
|
5327
|
+
LiteralField(148, 28),
|
|
5328
|
+
])
|
|
5329
|
+
|
|
5330
|
+
def __eq__(self, o: object) -> bool:
|
|
5331
|
+
if not isinstance(o, BlocoCalculaProdtMediaSin):
|
|
5332
|
+
return False
|
|
5333
|
+
bloco: BlocoCalculaProdtMediaSin = o
|
|
5334
|
+
if not all([
|
|
5335
|
+
isinstance(self.data, list),
|
|
5336
|
+
isinstance(o.data, list),
|
|
5337
|
+
]):
|
|
5338
|
+
return False
|
|
5339
|
+
else:
|
|
5340
|
+
return self.data == bloco.data
|
|
5341
|
+
|
|
5342
|
+
def read(self, file: IO, *args, **kwargs):
|
|
5343
|
+
self.data = self.__linha.read(file.readline())
|
|
5344
|
+
|
|
5345
|
+
def write(self, file: IO, *args, **kwargs):
|
|
5346
|
+
file.write(self.__linha.write(self.data))
|
|
5347
|
+
|
|
5348
|
+
@property
|
|
5349
|
+
def valor(self) -> Optional[int]:
|
|
5350
|
+
"""
|
|
5351
|
+
O valor da opção configurada
|
|
5352
|
+
|
|
5353
|
+
:return: A consideração ou não de RHV
|
|
5354
|
+
:rtype: int | None
|
|
5355
|
+
"""
|
|
5356
|
+
return self.data[1]
|
|
5357
|
+
|
|
5358
|
+
@valor.setter
|
|
5359
|
+
def valor(self, v: int):
|
|
5360
|
+
self.data[1] = v
|
|
@@ -126,12 +126,12 @@ class BlocoPenalidades(Section):
|
|
|
126
126
|
.iterrows()
|
|
127
127
|
):
|
|
128
128
|
df_penalid = df.loc[df["variavel"] == linha_penalidade["variavel"]]
|
|
129
|
-
if linha_penalidade["codigo_ree_submercado"]
|
|
129
|
+
if pd.notna(linha_penalidade["codigo_ree_submercado"]):
|
|
130
130
|
df_penalid = df_penalid.loc[
|
|
131
131
|
df_penalid["codigo_ree_submercado"]
|
|
132
132
|
== linha_penalidade["codigo_ree_submercado"]
|
|
133
133
|
]
|
|
134
|
-
if linha_penalidade["patamar_carga"]
|
|
134
|
+
if pd.notna(linha_penalidade["patamar_carga"]):
|
|
135
135
|
df_penalid = df_penalid.loc[
|
|
136
136
|
df_penalid["patamar_carga"]
|
|
137
137
|
== linha_penalidade["patamar_carga"]
|
inewave/newave/parp.py
CHANGED
|
@@ -214,12 +214,14 @@ class Parp(BlockFile):
|
|
|
214
214
|
ano0 = df["ano"].unique().tolist()[0]
|
|
215
215
|
filtro = (df["ano"] == ano0) & (df["ree"] == ree0)
|
|
216
216
|
n_series = df.loc[filtro].shape[0]
|
|
217
|
+
novo_vetor_anos: List[int] = []
|
|
217
218
|
for i, ree in enumerate(rees):
|
|
218
219
|
i_i = i * int(linhas_por_ree)
|
|
219
220
|
i_f = i_i + int(linhas_por_ree) - 1
|
|
220
|
-
|
|
221
|
+
novo_vetor_anos += converte_vetor_anos(
|
|
221
222
|
df.loc[i_i:i_f, "ano"].tolist(), n_series
|
|
222
223
|
)
|
|
224
|
+
df["ano"] = novo_vetor_anos
|
|
223
225
|
return df[["ree"] + cols]
|
|
224
226
|
|
|
225
227
|
def __converte_ano_mes_data(
|
inewave/newave/parpeol.py
CHANGED
|
@@ -197,12 +197,14 @@ class Parpeol(BlockFile):
|
|
|
197
197
|
ano0 = df["ano"].unique().tolist()[0]
|
|
198
198
|
filtro = (df["ano"] == ano0) & (df["uee"] == uee0)
|
|
199
199
|
n_series = df.loc[filtro].shape[0]
|
|
200
|
+
novo_vetor_anos: List[int] = []
|
|
200
201
|
for i, uee in enumerate(uees):
|
|
201
202
|
i_i = i * int(linhas_por_uee)
|
|
202
203
|
i_f = i_i + int(linhas_por_uee) - 1
|
|
203
|
-
|
|
204
|
+
novo_vetor_anos += converte_vetor_anos(
|
|
204
205
|
df.loc[i_i:i_f, "ano"].tolist(), n_series
|
|
205
206
|
)
|
|
207
|
+
df["ano"] = novo_vetor_anos
|
|
206
208
|
return df[["uee"] + cols]
|
|
207
209
|
|
|
208
210
|
def __converte_ano_mes_data(
|
inewave/newave/parpvaz.py
CHANGED
|
@@ -210,12 +210,14 @@ class Parpvaz(BlockFile):
|
|
|
210
210
|
ano0 = df["ano"].unique().tolist()[0]
|
|
211
211
|
filtro = (df["ano"] == ano0) & (df["uhe"] == uhe0)
|
|
212
212
|
n_series = df.loc[filtro].shape[0]
|
|
213
|
+
novo_vetor_anos: List[int] = []
|
|
213
214
|
for i, uhe in enumerate(uhes):
|
|
214
215
|
i_i = i * int(linhas_por_uhe)
|
|
215
216
|
i_f = i_i + int(linhas_por_uhe) - 1
|
|
216
|
-
|
|
217
|
+
novo_vetor_anos += converte_vetor_anos(
|
|
217
218
|
df.loc[i_i:i_f, "ano"].tolist(), n_series
|
|
218
219
|
)
|
|
220
|
+
df["ano"] = novo_vetor_anos
|
|
219
221
|
return df[["uhe"] + cols]
|
|
220
222
|
|
|
221
223
|
def __converte_ano_mes_data(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
inewave/__init__.py,sha256=
|
|
1
|
+
inewave/__init__.py,sha256=Yf-HfaGKOfBaSkv6oMJsgzHs85ebfL3bdW-UVkP8heA,236
|
|
2
2
|
inewave/config.py,sha256=fMgG2sqE_PNz30QCNxkgfPf78SEOAVfV07kGtO1bREE,1106
|
|
3
3
|
inewave/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
inewave/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -30,7 +30,7 @@ inewave/newave/cortes.py,sha256=X7pi4vZppetafCCq0XU91WtkimK2mvGRZZIW0bR-P-Y,3059
|
|
|
30
30
|
inewave/newave/cortesh.py,sha256=gL6z-WvPKKBscFq8KsvQO-ZAQNlVSAFkXx-owT2iKf4,12982
|
|
31
31
|
inewave/newave/curva.py,sha256=vJYRIuBfn4UeACSxW2zphutmJCyjWNAlE2I_iWWxifQ,6744
|
|
32
32
|
inewave/newave/cvar.py,sha256=2EHHWBEPin-0T_ArIZYVQJ2U32SkaPow6SP_LWIM4ko,2723
|
|
33
|
-
inewave/newave/dger.py,sha256=
|
|
33
|
+
inewave/newave/dger.py,sha256=a65IiVqh_ryzFD7SY-U-w7ZswBK9kyVzf2a2QSiR3bw,82293
|
|
34
34
|
inewave/newave/dsvagua.py,sha256=e4Kczvaj4kHkxBvBTiKFI69aCHY7MMrO2bCSTjtBJwI,1294
|
|
35
35
|
inewave/newave/eafpast.py,sha256=uSKf6mWAERHED--eRGYcJTuEcYg-SGzolo5hCFlzLVg,1203
|
|
36
36
|
inewave/newave/eco_fpha.py,sha256=-HCqfX-zLIBPPPGftLNffyDWBL91sEhA2vJjp5jhuWM,1491
|
|
@@ -65,9 +65,9 @@ inewave/newave/newavetim.py,sha256=_YCHr3e3xIBjRpR0ZYWVb0htnf5d52ZMmfZNJb-WJp4,1
|
|
|
65
65
|
inewave/newave/nwv_avl_evap.py,sha256=9N4qE7dz2DyvZ86XI_OUDn96XLfXc9M6JS2qIQG6zLA,1261
|
|
66
66
|
inewave/newave/nwv_cortes_evap.py,sha256=mKNZMTwqlrMuna3Nx1NE0LM-kutbba-pxkv4-rijvfc,1299
|
|
67
67
|
inewave/newave/nwv_eco_evap.py,sha256=S-sek-rysBTH1v1o7X75-w-Y2h99kw3HX5YDjQpMRgY,1299
|
|
68
|
-
inewave/newave/parp.py,sha256=
|
|
69
|
-
inewave/newave/parpeol.py,sha256=
|
|
70
|
-
inewave/newave/parpvaz.py,sha256=
|
|
68
|
+
inewave/newave/parp.py,sha256=Iaf4WEQKrBrTdD3-NsX90t3U-MbgI0cJvQs3KqD1vjw,18495
|
|
69
|
+
inewave/newave/parpeol.py,sha256=hrr2OmLtSHNLkVJuz6Yk4Cv98J7ED72eu7CH_9SH2Ig,12913
|
|
70
|
+
inewave/newave/parpvaz.py,sha256=vhEXtUSPf52fZfOoW6YQe1WGoYX4NWq_XLjlgunsXxc,15929
|
|
71
71
|
inewave/newave/patamar.py,sha256=yvJmHMFuc8eB7w8sdnMyYU8ZUxUjGoPxqb3CjYP_Aj0,4371
|
|
72
72
|
inewave/newave/penalid.py,sha256=BzpJADw24jsxV0UtemD8zUZOcduukV02qtVeIJeVmVQ,1234
|
|
73
73
|
inewave/newave/perda.py,sha256=RBfGVQLTr1wJmUdO95md0XYaX_JE7VNmhsndT9ixpb0,364
|
|
@@ -106,7 +106,7 @@ inewave/newave/modelos/cortes.py,sha256=csy2I9o_TkQx8t4E3ugPndwRJJFIZIwusQiBswa3
|
|
|
106
106
|
inewave/newave/modelos/cortesh.py,sha256=ayA-zWiBQ3o77J_wqehgODhl9wjeold84bYsKmKs-6g,31154
|
|
107
107
|
inewave/newave/modelos/curva.py,sha256=bkxFD8_zhnMe-cBw61C9T4unWLnVfspNnjHTnUG7NVo,13680
|
|
108
108
|
inewave/newave/modelos/cvar.py,sha256=Wu_qilEvzjT9MCoelMmiDztu9-yTI0eAC2fQMMN2E2M,7489
|
|
109
|
-
inewave/newave/modelos/dger.py,sha256=
|
|
109
|
+
inewave/newave/modelos/dger.py,sha256=09qsnS3Skr6m403ftGZLjPJJmI8B3FosscW-5p277CY,144625
|
|
110
110
|
inewave/newave/modelos/dsvagua.py,sha256=G_4PKZcQCF_vZMrBqQcnpH54edXhSEyDlHNy4aZoiIk,5592
|
|
111
111
|
inewave/newave/modelos/eafpast.py,sha256=HFKpsMyoLGwQly95uHhsK2wnrBwL7v8auzaa-UbgP5k,3322
|
|
112
112
|
inewave/newave/modelos/eco_fpha.py,sha256=q-b-ShvAW-RDpr7xlmhBvM9ixWF9DxqFvhxApA7oGdo,1646
|
|
@@ -138,7 +138,7 @@ inewave/newave/modelos/parp.py,sha256=3vtDfa9rJRo382U_L_UezMa8hk_QF-LftJm-OM-bbI
|
|
|
138
138
|
inewave/newave/modelos/parpeol.py,sha256=Ym8_2gIdfvtXXMUS3oqtfWqcoQ6n9EUlCYwKS7atbqk,17501
|
|
139
139
|
inewave/newave/modelos/parpvaz.py,sha256=SBB31Loq7ln_S5_iAls_ptGyPp6yWvG4kROEw7My9xY,24621
|
|
140
140
|
inewave/newave/modelos/patamar.py,sha256=aHypOLc_rMEzSdPvlbm8HpthQS1-yq3VXmPg-0X5_nE,21311
|
|
141
|
-
inewave/newave/modelos/penalid.py,sha256=
|
|
141
|
+
inewave/newave/modelos/penalid.py,sha256=rr07vSrePIGoKKXn_rbywKTkXrtDPnF7U1-lAfFKz8k,5652
|
|
142
142
|
inewave/newave/modelos/perda.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
143
143
|
inewave/newave/modelos/pmo.py,sha256=AN7sl0LcOHL0gutscC3Vgt418GTi_oUeLy9e0gAP_Zs,56493
|
|
144
144
|
inewave/newave/modelos/re.py,sha256=NaEKlkNN1U-UphehyJcHsAsMnJXn1kQ_eMUHCvtFGdY,6438
|
|
@@ -541,7 +541,7 @@ inewave/nwlistop/modelos/blocos/usina.py,sha256=cQvLVtG1NC8y4lP_to6-YjAKQRGRlaxO
|
|
|
541
541
|
inewave/nwlistop/modelos/blocos/valoresclassetermicaseriepatamar.py,sha256=0LV0JMFoiuNEQ3n-XVfG2T0sIq_33bnCt6gmwPOTql8,3283
|
|
542
542
|
inewave/nwlistop/modelos/blocos/valoresserie.py,sha256=Q88QBoI3zyU7y0AvHBeSqDBEVAkb3rAa3XpxA51NbF8,2143
|
|
543
543
|
inewave/nwlistop/modelos/blocos/valoresseriepatamar.py,sha256=xnRdor-_2VyR5EbWNSzU_hbABJFtfgKGlznbcRaslGg,2589
|
|
544
|
-
inewave-1.
|
|
545
|
-
inewave-1.
|
|
546
|
-
inewave-1.
|
|
547
|
-
inewave-1.
|
|
544
|
+
inewave-1.12.0.dist-info/METADATA,sha256=LNQKrDlKz03vE1GU2zZZj4F7xzLZocfpUtxJJ2eIFqA,3743
|
|
545
|
+
inewave-1.12.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
546
|
+
inewave-1.12.0.dist-info/licenses/LICENSE.md,sha256=0jOBL78mjzscN0-XI-6YtK1IqnODUbG85DaKAMH4XJ8,1070
|
|
547
|
+
inewave-1.12.0.dist-info/RECORD,,
|
|
File without changes
|