Example #1
0
    def intercambio_sistema_interligado_nacional(self, objeto_bs, regex):
        # regex -> REGular EXpression
    
        tag = 'div'        
        
        balanco_detalhado_extrair = BalancoEnergeticoDetalhado()  
        
                                        # saida-chegada
        sentido_transferencia_energia = ['norte-imperatriz', 'imperatriz-nordeste', \
                                        'itaipu-sudeste','sudeste-imperatriz', 'sul-sudeste', \
                                        'internacional-sul']
        intercambio = {}   
        
        for intercambio_energia in sentido_transferencia_energia:            
#            print "intercambio"                                       
#            print intercambio_energia  
            intercambio_extraido = \
                    balanco_detalhado_extrair.intercambio_entre_subsistemas(
                            objeto_bs, tag, regex[intercambio_energia + '_lf'],
                                            regex[intercambio_energia + '_tp']
                                                                         )

            intercambio[intercambio_energia] = {
                                "verificada" : float(intercambio_extraido[0].replace('.','')),
                                "programada" : float(intercambio_extraido[1].replace('.',''))
                                           }              
        return intercambio
Example #2
0
    def energia_itaipu(self, objeto_bs, regex):
        # regex -> REGular EXpression
    
        tag = 'div'        
        
        balanco_detalhado_extrair = BalancoEnergeticoDetalhado()  
        
        itaipu = ['50Hz', '60Hz', 'Total']
 
        energia_extraida_vf = \
                balanco_detalhado_extrair.energia_itaipu(
                        objeto_bs, tag, regex['prod_verif_lf'],
                                        regex['prod_verif_tp']
                                                )                                                
        print energia_extraida_vf                
        
        energia_extraida_pg = \
                balanco_detalhado_extrair.energia_itaipu(
                        objeto_bs, tag, regex['prod_prog_lf'],
                                        regex['prod_prog_tp']
                                                          )
        print energia_extraida_pg  
        
        energia_itaipu = {}
        for indice, item in enumerate(itaipu):                                                  
            energia_itaipu[item] = {
                            "verificada" : float(energia_extraida_vf[indice].replace('.','')),
                            "programada" : float(energia_extraida_pg[indice].replace('.',''))
                                       }              
        print energia_itaipu
        return energia_itaipu     
Example #3
0
    def balanco_energetico_detalhado_por_subsistema(self, nome_subsistema):
        
        tag = 'div'        
        balanco_detalhado_extrair = BalancoEnergeticoDetalhado()  
        
        dicionario = DicionarioRegEx()
        
        sistema_interligado = dicionario.sistema_interligado
        
        subsistema = sistema_interligado[nome_subsistema]
        
        balanco_detalhado = {}
        
        balanco_detalhado[subsistema['nome']] = {}
#        print subsistema['nome']
        
        qtd_fontes = subsistema['qtd_programada_fontes']
#                                                                                    (objeto_bs, tag, left_tx, top_tx):  
        [fontes_lista, fontes_json]  = balanco_detalhado_extrair.fontes_energeticas(self.objeto_bs, tag, subsistema['fontes_lf'], subsistema['fontes_tp'] )
        
        balanco_detalhado[subsistema['nome']]['qtd_fontes'] = {'programada':subsistema['qtd_programada_fontes'], 'verificada':len(fontes_lista)-1} # -1 -> retira Total

        if balanco_detalhado[subsistema['nome']]['qtd_fontes']['programada'] <> balanco_detalhado[subsistema['nome']]['qtd_fontes']['verificada']:
            
            ## Log -> modificação na estrutura do arquivo
            self.log_arquivo_ipdo["fontes"] = "Erro: A quantidade de fontes verificadas é diferente da quantidade programada."            
#            self.log_arquivo_ipdo["fontes"]["verificada"] = subsistema[regex["nome"]]["qtd_fontes"]["verificada"]
#            self.log_arquivo_ipdo["fontes"]["programada"] = subsistema[regex["nome"]]["qtd_fontes"]["programada"]            
#            
            print subsistema['nome']          
            print 'Erro: A quantidade de fontes verificadas é diferente da quantidade programada.'
            print 'programada ->'  + str(balanco_detalhado[subsistema['nome']]['qtd_fontes']['programada'])
            print 'verificada ->'  + str(balanco_detalhado[subsistema['nome']]['qtd_fontes']['verificada'])
            
            import sys            
            sys.exit()     
     
        producao_vf = balanco_detalhado_extrair.producao(
                self.objeto_bs, tag, subsistema['prod_verif_lf'], subsistema['prod_verif_tp'] )
        
        producao_pg = balanco_detalhado_extrair.producao(
                self.objeto_bs, tag, subsistema['prod_prog_lf'], subsistema['prod_prog_tp'] )
        
        ##  separa a caga da produção
        if ((len(producao_vf)==(qtd_fontes+2) and (len(producao_pg)==(qtd_fontes+2)))):
            carga_vf = [producao_vf.pop(qtd_fontes+1)]
            carga_pg = [producao_pg.pop(qtd_fontes+1)]
            
        ## lê a carga a partir de uma expressão regular
        elif ((len(producao_vf)==(qtd_fontes+1)) and (len(producao_pg)==(qtd_fontes+1))):  
            
            carga_vf = balanco_detalhado_extrair.carga(
                    self.objeto_bs, tag, subsistema['carga_verif_lf'], subsistema['carga_verif_tp'] )

            carga_pg = balanco_detalhado_extrair.carga(
                self.objeto_bs, tag, subsistema['carga_prog_lf'], subsistema['carga_prog_tp'] )
            
        else:
            print 'Erro ao ler a carga do subsistema ->' +  subsistema['nome']
            print 'O arquivo deve ter mudado de estrutura.'    
        

        for indice, fonte in enumerate(fontes_lista):
            fontes_json[fonte] = {  
                'programada' : producao_pg[indice].replace('.',''), 
                'verificada' : producao_vf[indice].replace('.','')
                }
                
        balanco_detalhado[subsistema['nome']]['energia'] = fontes_json
        
        balanco_detalhado[subsistema['nome']]["carga"] = {
            "programada" : carga_pg[0].replace('.',''),
            "verificada" : carga_vf[0].replace('.','')
            }
        
        energia_natural_afluente_vf = \
                    balanco_detalhado_extrair.energia_narutal_afluente(
                            self.objeto_bs, tag, subsistema['ena_lf'], subsistema['ena_tp'] 
                    )
                    
        balanco_detalhado[subsistema['nome']]['ena'] = {
                    'verificada' : energia_natural_afluente_vf[0].replace('.','')
                    }
        balanco_detalhado[subsistema['nome']]['ena']['verificada'] = \
                        balanco_detalhado[subsistema['nome']]['ena']['verificada'].replace(',','.')


        self.valida_conteudo_numerico(balanco_detalhado)
        
        return balanco_detalhado[subsistema['nome']] 
Example #4
0
    def extrair_balanco_energetico_detalhado(self):

        dicionario = DicionarioRegEx()  
        
        mapeamento_balanco_detalhado = MapeamentoBalancoDetalhado()
        
        variacao_energia_armazenada = MapeamentoVariacaoEnergiaArmazenada()
        
#        demanda_maxima_mapear = MapeamentoDemandaInstantaneaMaxima()
        
        extrair = BalancoEnergeticoDetalhado()
        
        sistema_interligado_nacional = {}

        for subsistema in dicionario.sistema_interligado:

            sistema_interligado_nacional[subsistema] = \
                                self.balanco_energetico_detalhado_por_subsistema(
                                                            dicionario.sistema_interligado[subsistema]['nome']
                                                            )
           
            sistema_interligado_nacional[subsistema]["ear"] = \
                                extrair.energia_armazenada_reservatorio(
                                        self.objeto_bs, dicionario.sistema_interligado[subsistema]['nome']
                                        )   
            
            sistema_interligado_nacional[subsistema]["eam"] = \
                               variacao_energia_armazenada.energia_armazenada_maxima(
                                        self.objeto_bs, dicionario.sistema_interligado[subsistema]
                                        ) 
            
            print dicionario.sistema_interligado[subsistema]['nome']
            
            
#            sistema_interligado_nacional[subsistema]["demanda"] = \
#                               demanda_maxima_mapear.demanda_maxima_instantanea(
#                                        self.objeto_bs, dicionario.sistema_interligado[subsistema]
#                                        ) 
##            
#                                        
#                                        
#        sistema_interligado_nacional[subsistema]["demanda"]['unidade'] = {'carga': 'MW'}
        
        
        

        sistema_interligado_nacional['itaipu'] = {'energia' : ''}        
        sistema_interligado_nacional['itaipu'] = {'unidade' : ''}        
        sistema_interligado_nacional['itaipu']['unidade'] = {
                                                            'energia': 'MWm'
                                                            }

        sistema_interligado_nacional['itaipu']['energia']  = \
                                    mapeamento_balanco_detalhado.energia_itaipu(
                                                        self.objeto_bs, dicionario.itaipu
                                                                                )   
                                                        
                                                        
        sistema_interligado_nacional['intercambio']  = \
                mapeamento_balanco_detalhado.intercambio_sistema_interligado_nacional(
                                                        self.objeto_bs, dicionario.intercambio
                                                        )   

        return sistema_interligado_nacional