Tutorial
O idessem provê uma interface semelhante para todos os arquivos do modelo DESSEM. Para os arquivos de entrada, são implementadas as capacidades de leitura e escrita, permitindo uma geração automática de arquivos. Para os arquivos de saída, é implementada somente a capacidade de leitura, de modo a permitir análise facilitada de resultados.
A leitura dos arquivos é sempre implementada a partir do método read
da respectiva classe, enquanto que a escrita
dos arquivos é implementada pelo método write
da instância em questão, quando for suportada.
Um exemplo é o processamento do arquivo que contém a entrada de dados gerais entdados.dat. Sendo um arquivo de entrada, é permitido realizar a leitura e a escrita deste arquivo, modificando alguma informação de entrada caso seja desejado pelo usuário. Por exemplo, pode-se fazer uma sensibilidade de alterar o volume inicial de um reservatório:
from idessem.dessem.entdados import Entdados
arq_entdados = Entdados.read("./entdados.dat")
arq_entdados.uh(codigo_usina=6).volume_inicial
69.51
arq_entdados.uh(codigo_usina=6).volume_inicial*= 1.1
arq_entdados.uh(codigo_usina=6).volume_inicial
76.46100000000001
arq_entdados.write("./entdados.dat")
Se tratando dos arquivos de saída, não existe implementação para o método write
, mas é possível realizar
a leitura normalmente, e acessar todas as propriedades encontradas. Para o PDO_SIST.DAT, por exemplo:
from idessem.dessem.pdo_sist import PdoSist
arq_pdo_sist = PdoSist.read("./PDO_SIST.DAT")
arq_pdo_sist.tabela
estagio patamar submercado cmo demanda perdas ... corte_carga saldo recebimento geracao_termica_minima geracao_termica_maxima energia_armazenada
0 1 LEVE SE 71.48 36935.91 - ... 0.0 -3461.61 3461.61 2555.95 9489.79 122020.78
1 1 LEVE S 71.44 9974.79 - ... 0.0 3009.85 -3009.85 246.00 1348.57 14792.56
2 1 LEVE NE 71.46 11465.14 - ... 0.0 3317.36 -3317.36 4.00 5997.78 39932.58
3 1 LEVE N 73.57 7341.98 - ... 0.0 -2865.60 2865.60 1153.00 3134.21 14434.54
4 1 LEVE FC 0.00 0.00 - ... 0.0 0.00 0.00 0.00 0.00 0.00
.. ... ... ... ... ... ... ... ... ... ... ... ... ...
255 52 MEDIA SE 71.99 39910.00 - ... 0.0 -6271.76 6271.76 2544.95 9478.79 121052.53
256 52 MEDIA S 71.95 12148.00 - ... 0.0 2704.38 -2704.38 246.00 1348.57 15032.88
257 52 MEDIA NE 71.97 12032.00 - ... 0.0 6032.64 -6032.64 4.00 5997.78 40053.92
258 52 MEDIA N 75.27 7053.00 - ... 0.0 -2465.27 2465.27 1153.00 3134.21 14365.11
259 52 MEDIA FC 71.99 0.00 - ... 0.0 0.00 0.00 0.00 0.00 0.00
[260 rows x 20 columns]
Alguns arquivos do modelo DESSEM podem sofrer alterações de sintaxe conforme são feitas atualizações no modelo.
Desta forma, poderia ser necessário criar mais de uma classe para dar suporte ao mesmo arquivo. Todavia, o framework
cfinterface possui uma modelagem para dar suporte a mais de uma
versão do mesmo arquivo fazendo uso do método set_version
de cada uma das classes. Caso não seja especificada a versão
por meio do método set_version
, será considerada a versão mais recente do arquivo. Por exemplo, o arquivo
AVL_FPHA1.DAT possui diferentes formatos dependendo da versão do modelo DESSEM:
* MODELO DESSEM - VERSAO 19.3 - Janeiro de 2023 (CPLEX) *
-----;--------------;-------;---------;------------;-------------;-------------;-------------;
USIH ; Nome ;SegFPHA; Fcorrec ; Rhs ; Varm ; Qtur ; Qlat ;
-----;--------------;-------;---------;------------;-------------;-------------;-------------;
001 ; CAMARGOS ; 1 ; 1.00000 ; -11.8461 ; 0.020604 ; 0.224440 ; 0.000000 ;
001 ; CAMARGOS ; 2 ; 1.00000 ; -5.7558 ; 0.020604 ; 0.186494 ; 0.000000 ;
001 ; CAMARGOS ; 3 ; 1.00000 ; 0.0000 ; 0.000000 ; 0.225931 ; 0.000000 ;
001 ; CAMARGOS ; 4 ; 1.00000 ; 7.0475 ; 0.000000 ; 0.182021 ; 0.000000 ;
* MODELO DESSEM - VERSAO 19.3.1 - Fevereiro de 2023 (CPLEX) *
-----;--------------;-------;---------;--------;------------;-------------;-------------;-------------;
USIH ; Nome ;SegFPHA; Fcorrec ; QlatpM ; Rhs ; Varm ; Qtur ; Qlat ;
-----;--------------;-------;---------;--------;------------;-------------;-------------;-------------;
001 ; CAMARGOS ; 1 ; 1.00000 ; 0.00 ; -11.4690 ; 0.020604 ; 0.223018 ; 0.000000 ;
001 ; CAMARGOS ; 2 ; 1.00000 ; 0.00 ; -7.8204 ; 0.013736 ; 0.225763 ; 0.000000 ;
001 ; CAMARGOS ; 3 ; 1.00000 ; 0.00 ; -7.7113 ; 0.013736 ; 0.224743 ; 0.000000 ;
001 ; CAMARGOS ; 4 ; 1.00000 ; 0.00 ; -5.2177 ; 0.020604 ; 0.184069 ; 0.000000 ;
Para a leitura deste arquivo gerado em uma versão inferior do modelo DESSEM, deve ser especificada a versão desejada antes de efetuar a leitura do arquivo.
from idessem.dessem.avlfpha1 import AvlFpha1
AvlFpha1.set_version("19.3")
arq_avfpha1 = AvlFpha1.read("./AVL_FPHA1.DAT")