Пример #1
0
    def mapeia_texto(self, nome_arquivo_entrada):
       
        # exemplo:  nome_arquivo_entrada = 'IPDO-22-06-2016 - unlocked.pdf'
        nome_arquivo_saida = nome_arquivo_entrada + '-unlocked.pdf'
        
        # exemplo:  nome_arquivo_entrada = 'IPDO-22-06-2016.pdf'
        nome_arquivo_entrada = nome_arquivo_entrada + '.pdf'
    
        ferramenta = Ferramentas()
         
        self.log_arquivo_ipdo = {}          # log de ocorrências
        
        ferramenta.desbloqueia(nome_arquivo_entrada, nome_arquivo_saida)

# Imprime no começo da execução, antes de dar qlqr erro
        self.html_extraido = ferramenta.pdf_para_html(nome_arquivo_saida)  
        
        imprimir = ImprimeArquivosTexto()
        
        imprimir.texto_em_html(self.html_extraido, 'texto_extraido.html')
        
        self.objeto_bs = BeautifulSoup(self.html_extraido, 'html.parser')

        self.balanco_energetico_resumido = self.extrair_balanco_energetico_resumido()

        self.balanco_energetico_detalhado = self.extrair_balanco_energetico_detalhado()
        
        
        self.arquivo_ipdo = {}
        self.arquivo_ipdo["geral"] = self.balanco_energetico_resumido["geral"] 
        
        self.arquivo_ipdo["balanco_resumido"] = self.balanco_energetico_resumido["balanco_resumido"] 
        
        self.arquivo_ipdo["balanco_detalhado"] = self.balanco_energetico_detalhado
Пример #2
0
    def energial_potencial_armazenada_em_xlsx(self, geral, balanco_detalhado):
        
        wb_ipdo = load_workbook('IPDO.xlsx') 
        
        ws_balanco_detalhado = wb_ipdo['EnergiaPotencialArmazenada']
        
        ferramenta = Ferramentas()
        
        [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_detalhado)
        
        ultima_linha = ultima_linha + 1        
            
        indice = 'A'+str(ultima_linha)
        
        ws_balanco_detalhado[indice] = geral["data_arquivo"]
    

        subsistemas_relatorio = ["sudeste","sul","nordeste","norte"]
        
        # referência excel
        # energias_relatorio = ['ENA', 'EAR', 'EAM']
        coluna_ena_vf = 1 # primeira ena verificada
        coluna_ear_vf = 2
        coluna_eam_vf = 3
        
        for subsistema in subsistemas_relatorio:    
            coluna_ena_vf += 1
            coluna_ear_vf += 1
            coluna_eam_vf += 1
            
            indice_ena_vf = ferramenta.retorna_letra_da_coluna(coluna_ena_vf) + str(ultima_linha)
            indice_ear_vf = ferramenta.retorna_letra_da_coluna(coluna_ear_vf) + str(ultima_linha)
            indice_eam_vf = ferramenta.retorna_letra_da_coluna(coluna_eam_vf) + str(ultima_linha)
            
            for subsistema_extraido in balanco_detalhado:

                if (subsistema_extraido == subsistema):
                    ws_balanco_detalhado[indice_ena_vf] = float(balanco_detalhado[subsistema_extraido]["ena"]['verificada'])   
                    ws_balanco_detalhado[indice_ear_vf] = float(balanco_detalhado[subsistema_extraido]["ear"]['verificada'])
                    ws_balanco_detalhado[indice_eam_vf] = float(balanco_detalhado[subsistema_extraido]["eam"]['verificada'])   
                    continue
                
            coluna_ena_vf += 2
            coluna_ear_vf += 2
            coluna_eam_vf += 2
  
        wb_ipdo.save('IPDO.xlsx')   # sobrescreve resultados
        
    
        
        
Пример #3
0
    def energia_armazenada_reservatorio(self, objeto_bs, subsistema):
#    def energia_armazenada_reservatorio(self, objeto_bs, tag, left_tx, top_tx):    
        
        tag = 'div'        
        dicionario_expressoes = DicionarioRegEx()  
#        dicionario_strings = DicionarioStrings()
        
#        subsistemas = dicionario_strings.subsistemas
        
        sistema_interligado = dicionario_expressoes.sistema_interligado
        
        extrair = ExtrairDados()
        
        ferramenta = Ferramentas()
        
        ear_extraida = {}
        
#        for sub in subsistemas:
        texto_extraido_str = \
                    extrair.dados_objeto_bs(objeto_bs, tag, 
                                sistema_interligado[subsistema]['ear_lf'], 
                                sistema_interligado[subsistema]['ear_tp']
                        )
                        
        ear_extraida = {'verificada' : texto_extraido_str[0].replace('.','')}
        print "ear_extraida 1"
        print ear_extraida
        
        eh_numerico = ferramenta.eh_numerico(sistema_interligado[subsistema]['nome'], "ear", ear_extraida['verificada'])
        
        if not eh_numerico:
#                print sub
            texto_extraido_str = \
                    extrair.dados_objeto_bs(objeto_bs, tag, 
                                sistema_interligado[subsistema]['ear1_lf'], 
                                sistema_interligado[subsistema]['ear1_tp']
                        )
            
            ear_extraida = {'verificada' : texto_extraido_str[0].replace('.','')}
            
            print "ear_extraida 2"
            print ear_extraida
            eh_numerico = ferramenta.eh_numerico(sistema_interligado[subsistema]['nome'], "ear", ear_extraida['verificada'])
        
#        print ear_extraida
        return ear_extraida
Пример #4
0
    def intercambio_em_xlsx(self, geral, balanco_detalhado):
        
        wb_ipdo = load_workbook('IPDO.xlsx') 
        ws_balanco_detalhado = wb_ipdo['Intercambios']
        
        ferramenta = Ferramentas()
        
        [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_detalhado)
        
        ultima_linha = ultima_linha + 1        
            
        indice = 'A'+str(ultima_linha)
        
        ws_balanco_detalhado[indice] = geral["data_arquivo"]
        
                                        # saida-chegada
        sentido_transferencia_energia = ['norte-imperatriz', 'imperatriz-nordeste', \
                                        'itaipu-sudeste','sudeste-imperatriz', 'sul-sudeste', \
                                        'internacional-sul']
        # referência excel
        coluna_energia_pg = 1 # primeira intercambio programada
        coluna_energia_vf = 7 # primeira intercambio verificada
        
        estados = 2 # programada e verificada
        colunas_relatorio = estados * len(sentido_transferencia_energia)
       
       # zera todas as células da ultima linha
        for coluna in xrange(2, (colunas_relatorio+2)):
            indice = ferramenta.retorna_letra_da_coluna(coluna) + str(ultima_linha)
            ws_balanco_detalhado[indice] = 0 
    
        for intercambio_energia in sentido_transferencia_energia:    
            coluna_energia_pg += 1
            coluna_energia_vf += 1
            
            indice_pg = ferramenta.retorna_letra_da_coluna(coluna_energia_pg) + str(ultima_linha)
            indice_vf = ferramenta.retorna_letra_da_coluna(coluna_energia_vf) + str(ultima_linha)
            
            for intercambio_extraido in balanco_detalhado['intercambio']:
                
                if (intercambio_extraido == intercambio_energia):
                    ws_balanco_detalhado[indice_pg] = balanco_detalhado['intercambio'][intercambio_extraido]['programada']
                    ws_balanco_detalhado[indice_vf] = balanco_detalhado['intercambio'][intercambio_extraido]['verificada']                   
                    continue

        wb_ipdo.save('IPDO.xlsx')   # sobrescreve resultados
Пример #5
0
 def balanco_energia_resumido_em_xlsx(self, geral, balanco_resumido):
     
     wb_ipdo = load_workbook('IPDO.xlsx') 
     ws_balanco_resumido = wb_ipdo['BalancoResumido']
     
     ferramenta = Ferramentas()
     
     [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_resumido)
     
     ultima_linha = ultima_linha + 1        
     
     indice = 'A'+str(ultima_linha) 
        
     ws_balanco_resumido[indice] = geral["data_arquivo"]
     
     num_elementos_pg = len(balanco_resumido["programada"]) # Número de elementos do resumo
     conta_valores = 0
     
     for conta_coluna_pg in xrange(1, num_elementos_pg):
         letra = ferramenta.retorna_letra_da_coluna(conta_coluna_pg + 1)
         indice = letra + str(ultima_linha)            
         ws_balanco_resumido[indice] = float(balanco_resumido["programada"][conta_valores].replace('.',''))       
         conta_valores = conta_valores + 1
     
     num_elementos_vf = len(balanco_resumido["verificada"]) + conta_coluna_pg
     conta_valores = 0       
     
     for conta_coluna_vf in xrange(conta_coluna_pg, num_elementos_vf):
         letra = ferramenta.retorna_letra_da_coluna(conta_coluna_vf + 2)
         
         indice = letra + str(ultima_linha)            
         
         ws_balanco_resumido[indice] = balanco_resumido["verificada"][conta_valores].replace('.','')
         
         conta_valores = conta_valores + 1                
     
     wb_ipdo.save('IPDO.xlsx')   # sobrescreve resultados
Пример #6
0
    def valida_conteudo_numerico(self, balanco_detalhado):
        import sys
        
        
        ferramenta = Ferramentas()
        for subsistema in balanco_detalhado:
            
            for fonte in balanco_detalhado[subsistema]["energia"]:
#                print "   energia " + fonte
                for tipo in balanco_detalhado[subsistema]["energia"][fonte]:
#                    print "        " + tipo + " " + str(balanco_detalhado[subsistema]["energia"][fonte]["verificada"])
                    eh_numerico = ferramenta.eh_numerico(subsistema, fonte, balanco_detalhado[subsistema]["energia"][fonte]["verificada"])
                    if not eh_numerico :sys.exit()                   
                    eh_numerico = ferramenta.eh_numerico(subsistema, fonte, balanco_detalhado[subsistema]["energia"][fonte]["programada"])
                    if not eh_numerico :sys.exit()
            
            eh_numerico = ferramenta.eh_numerico(subsistema, "carga", balanco_detalhado[subsistema]["carga"]["verificada"])
            if not eh_numerico :sys.exit()            
            eh_numerico = ferramenta.eh_numerico(subsistema, "carga", balanco_detalhado[subsistema]["carga"]["programada"])
            if not eh_numerico :sys.exit()
            eh_numerico = ferramenta.eh_numerico(subsistema, "ena", balanco_detalhado[subsistema]["ena"]["verificada"])
            if not eh_numerico :sys.exit()            
#            eh_numerico = ferramenta.eh_numerico(subsistema, "ear", balanco_detalhado[subsistema]["ear"]["verificada"])            
#            if not eh_numerico :sys.exit()
Пример #7
0
    def balanco_energia_detalhado_em_xlsx(self, geral, balanco_detalhado):
        
        wb_ipdo = load_workbook('IPDO.xlsx') 
        ws_balanco_detalhado = wb_ipdo['BalancoDetalhado']
       
        ferramenta = Ferramentas()
        
        [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_detalhado)
        
        ultima_linha = ultima_linha + 1        
            
        indice = 'A'+str(ultima_linha)
        
        ws_balanco_detalhado[indice] = geral["data_arquivo"]
        
        fontes_relatorio = ["Hidro","Termo","Nuclear","Eólica","Solar","Total","Carga" ]
        subsistemas_relatorio = ["sudeste","sul","nordeste","norte"]
        
        coluna_energia_pg = 1 # primeira fonte programada
        coluna_carga_pg = 8        
        
        coluna_energia_vf = 8 # primeira fonte verificada
        coluna_carga_vf = 15
        
        estados = 2 # programada e verificada
        colunas_relatorio = estados * len(subsistemas_relatorio)*len(fontes_relatorio)
       
       # zera todas as células da ultima linha
        for coluna in xrange(2, (colunas_relatorio+2)):
            indice = ferramenta.retorna_letra_da_coluna(coluna) + str(ultima_linha)
            ws_balanco_detalhado[indice] = 0 
        
        for subsistema in subsistemas_relatorio:    

            for fonte in fontes_relatorio:
                coluna_energia_pg += 1
                coluna_energia_vf += 1
                
                indice_pg = ferramenta.retorna_letra_da_coluna(coluna_energia_pg) + str(ultima_linha)
                indice_vf = ferramenta.retorna_letra_da_coluna(coluna_energia_vf) + str(ultima_linha)
                
                indice_carga_pg = ferramenta.retorna_letra_da_coluna(coluna_carga_pg) + str(ultima_linha)
                indice_carga_vf = ferramenta.retorna_letra_da_coluna(coluna_carga_vf) + str(ultima_linha)

                for fonte_extraida in balanco_detalhado[subsistema]["energia"]:

                    if (fonte_extraida == fonte):
                        ws_balanco_detalhado[indice_pg] = float(balanco_detalhado[subsistema]["energia"][fonte]["programada"])
                        ws_balanco_detalhado[indice_vf] = float(balanco_detalhado[subsistema]["energia"][fonte]["verificada"])
                    
                    elif (fonte == "Carga"):                       
                        ws_balanco_detalhado[indice_carga_pg] = float(balanco_detalhado[subsistema]["carga"]["programada"])                        
                        ws_balanco_detalhado[indice_carga_vf] = float(balanco_detalhado[subsistema]["carga"]["verificada"])
                                                
                        continue
                        
            coluna_energia_pg += 7  # pula  fontes verificadas
            coluna_energia_vf += 7  # pula fontes programadas
            coluna_carga_pg += 14   # pula  fontes verificadas e programadas          
            coluna_carga_vf += 14 
        
        
        # Imprime geração de Itaipu    
        coluna_energia_pg = 57 # primeira 50hz programada
        coluna_energia_vf = 60        
        
        for frequencia in balanco_detalhado['itaipu']['energia']:
            coluna_energia_pg += 1
            coluna_energia_vf += 1
            
            indice_pg = ferramenta.retorna_letra_da_coluna(coluna_energia_pg) + str(ultima_linha)
            indice_vf = ferramenta.retorna_letra_da_coluna(coluna_energia_vf) + str(ultima_linha)
            print indice_pg
            print balanco_detalhado['itaipu']['energia'][frequencia]["programada"]
            
            ws_balanco_detalhado[indice_pg] = (balanco_detalhado['itaipu']['energia'][frequencia]["programada"])
            ws_balanco_detalhado[indice_vf] = (balanco_detalhado['itaipu']['energia'][frequencia]["verificada"])


        wb_ipdo.save('IPDO.xlsx')   # sobrescreve resultados
Пример #8
0
"""
Created on Mon Aug 29 12:20:38 2016

@author: Claudio
"""

import os
from bs4 import BeautifulSoup
from Utilitarios import Ferramentas
from openpyxl import load_workbook
from ExtracaoTexto import DadosBalancoEnergeticoDetalhado   
from Mapeamento import DicionarioRegEx

#arquivo_ipdo = ArquivoIPDO(nome_arquivo_entrada)
subsistema = DadosBalancoEnergeticoDetalhado()    
converte = Ferramentas()
caminho = os.getcwd()

caminho = os.getcwd()
caminho = str(caminho) + '\Scripts-py'

for dia in xrange(01,02):
    if (dia <10):
        nome_arquivo_entrada = caminho + '\IPDO-0'+str(dia)+'-05-2016'
    else:
        nome_arquivo_entrada = caminho + '\IPDO-'+str(dia)+'-05-2016'
        
   # exemplo:  nome_arquivo_entrada = 'IPDO-22-06-2016.pdf'
nome_arquivo_saida = nome_arquivo_entrada + '-unlocked.pdf'
# exemplo:  nome_arquivo_entrada = 'IPDO-22-06-2016.pdf'
nome_arquivo_entrada = nome_arquivo_entrada + '.pdf'