def arraymedias(array): hora = [*range(len(array))] newarray = [] for i in range(len(array)): newarray.append(integral(hora, array[i], len(array[i]))) return newarray
def formatadia(dia, data, rede): temp = selectdia(dia, data, rede) minuto = temp[0] ir = temp[1] final = 24 * [None] if (contarelemento(ir) > (len(ir) / 24) * 8): m = minuto[1] - minuto[0] media = integral(minuto, ir, 1440 / m) if (media != None): final = escalatemp2(minuto, ir) return final
def validar_diaria(dia, mes, ano, rede, sigla, ir, minuto, opcao): # Dias com falta de dados durante mais de 180 minutos (3h) sao descartados. elementos = (len(ir) / 24) * 8 if (contarelemento(ir) > elementos): minutonovo = [i * 60 for i in minuto] m = minutonovo[1] - minutonovo[0] media = integral(minutonovo, ir, 1440 / m) temp_day = diajuliano(dia, mes, ano) if (media != None): media = round(media, 3) ir_anual_sp[temp_day - 1] = media ymensal[dia - 1] = media figuradiaria(dia, rede, sigla, ano, mes, opcao, minuto, ir, media) else: ymensal[dia - 1] = None temp_day = diajuliano(dia, mes, ano) ir_anual_sp[temp_day - 1] = None intSP.append(None) intGL1x.append(None) intDia.append(dia)
def figuradiaria(dia, rede, sigla, ano, mes, opcao, minuto, ir, mediasp): global ir_anual_gl1x, ir_anual_gl3x, ir_anual_gl5x data = GLbinarios(sigla, 'ListaUnicaCompleta_201606.txt', dia, mes, ano) minutonovo = gerarhoras() minutonovo = [i * 60 for i in minutonovo] ir = escalatemp2([i * 60 for i in minuto], ir) gl1x = escalatemp2(minutonovo, data[0]) gl3x = escalatemp2(minutonovo, data[1]) gl5x = escalatemp2(minutonovo, data[2]) hora = [*range(24)] minutonovo = hora mediagl1x = integral(minutonovo, gl1x, len(gl1x)) mediagl3x = integral(minutonovo, gl3x, len(gl1x)) mediagl5x = integral(minutonovo, gl5x, len(gl1x)) if (mediagl1x != None): mediagl1x = round(mediagl1x, 3) if (mediagl3x != None): mediagl3x = round(mediagl3x, 3) if (mediagl5x != None): mediagl5x = round(mediagl5x, 3) temp_day = diajuliano(dia, mes, ano) ir_anual_gl1x[temp_day - 1] = mediagl1x ir_anual_gl3x[temp_day - 1] = mediagl3x ir_anual_gl5x[temp_day - 1] = mediagl5x if (mediasp != 0.0): intSP.append(formatn(mediasp)) else: intSP.append(None) if (mediagl1x != 0.0): intGL1x.append(formatn(mediagl1x)) else: intGL1x.append(None) intDia.append(dia) # Superficie dp_sp = str(formatn(desviopadrao(ir))) err_sp = str(formatn(erropadrao(dp_sp, ir))) # GL 1x dp_gl1x = str(formatn(desviopadrao(gl1x))) err_gl1x = str(formatn(erropadrao(dp_gl1x, gl1x))) # GL 3x dp_gl3x = str(formatn(desviopadrao(gl3x))) err_gl3x = str(formatn(erropadrao(dp_gl3x, gl3x))) # GL 5x dp_gl5x = str(formatn(desviopadrao(gl5x))) err_gl5x = str(formatn(erropadrao(dp_gl5x, gl5x))) labelsp = 'Média SP Min: ' + str(formatn( mediasp)) + '\n' + 'DP SP: ' + dp_sp + '\n' + 'EP SP: ' + err_sp labelgl1x = 'Média GL 1x: ' + str( formatn(mediagl1x) ) + '\n' + 'DP GL 1x: ' + dp_gl1x + '\n' + 'EP GL 1x: ' + err_gl1x labelgl3x = 'Média GL 3x: ' + str( formatn(mediagl3x) ) + '\n' + 'DP GL 3x: ' + dp_gl3x + '\n' + 'EP GL 3x: ' + err_gl3x labelgl5x = 'Média GL 5x: ' + str( formatn(mediagl5x) ) + '\n' + 'DP GL 5x: ' + dp_gl5x + '\n' + 'EP GL 5x: ' + err_gl5x if (mediasp != None): plt.figure(dia) plt.cla() # Limpa os eixos plt.clf() # Limpa a figura plt.plot(hora, ir, 'k-', label=labelsp) # preto plt.plot(hora, gl1x, 'r-', label=labelgl1x) # GL vermelho plt.plot(hora, gl3x, 'g-', label=labelgl3x) # GL 3x verde plt.plot(hora, gl5x, 'y-', label=labelgl5x) # GL 5x amarelo plt.title('Rede ' + rede + ' - ' + sigla + str(ano) + format(mes, '02d') + format(dia, '02d') + " - Dia [" + str(dia) + "]") plt.ylabel('Irradiância (Wm-2)') plt.xlabel('Tempo (Hora UTC)') plt.legend(loc='upper left') plt.ylim(0, 1500) plt.xlim(0, 25) createdir(ano, mes, sigla, rede) diretorio = './DADOS/IMAGENS/' + rede + '/' + str( ano) + '/' + sigla + '/' + format(mes, '02d') plt.savefig(diretorio + '/' + str(dia) + '.png') if opcao == 0: plt.close() plt.cla() # Limpa os eixos plt.clf() # Limpa a figura
def plotgeral(mes, ano, estacoes): opcao = 0 diainicial = 1 diafinal = diames(ano, mes) listaunica = 'ListaUnicaCompleta_201606.txt' header = [] dataestacoes = [] posicoes = [] for i in range(len(estacoes)): try: sigla = estacoes[i] temploc = getLoc(sigla, listaunica) idd = temploc[0] lat = formatn(temploc[1]) long = formatn(temploc[2]) rede = temploc[3] readdata = lermes(diafinal, mes, ano, sigla, rede) latfinal = 22 - 0.04 loninicial = -100 linha = int(((latfinal - lat) / .04 + 0.5)) coluna = int((long - loninicial) / .04 + 0.5) posicoes.append([linha, coluna]) header.append([idd, lat, long]) dataestacoes.append([sigla, rede, readdata]) except FileNotFoundError: pass dataallestacoes = len(dataestacoes) * [diafinal * [24 * [None]]] dataallgl1x = len(dataestacoes) * [diafinal * [24 * [None]]] dataallgl3x = len(dataestacoes) * [diafinal * [24 * [None]]] dataallgl5x = len(dataestacoes) * [diafinal * [24 * [None]]] # Para apenas um dia, set dia inicial e final para o dia, aqui! for dia in range(diainicial, diafinal + 1): anomesdia = ano * 10000 + mes * 100 + dia minutonovo = gerarhoras() minutonovo = [i * 60 for i in minutonovo] datagl = GLbinarios(dia, mes, ano, posicoes) for i in range(len(datagl)): # 1x 3x 5x for x in range(len(datagl[i])): # estacoes datagl[i][x] = escalatemp2(minutonovo, datagl[i][x]) datasp = len(posicoes) * [24 * [None]] for i in range(len(dataestacoes)): sigla = dataestacoes[i][0] rede = dataestacoes[i][1] datasp[i] = formatadia(dia, dataestacoes[i][2], rede) # datagl[0][estacao] gl1x = datagl[0][i] gl3x = datagl[1][i] gl5x = datagl[2][i] csp = contarelemento(datasp[i]) cgl1x = contarelemento(gl1x) cgl3x = contarelemento(gl3x) cgl5x = contarelemento(gl5x) if (cgl1x < 7): gl1x = len(gl1x) * [None] if (cgl3x < 7): gl3x = len(gl1x) * [None] if (cgl5x < 7): gl5x = len(gl1x) * [None] dataallgl1x[i][dia - 1] = gl1x dataallgl3x[i][dia - 1] = gl3x dataallgl5x[i][dia - 1] = gl5x hora = [*range(24)] mediasp = integral(hora, datasp[i], len(datasp[i])) mediagl1x = integral(hora, gl1x, len(gl1x)) mediagl3x = integral(hora, gl3x, len(gl3x)) mediagl5x = integral(hora, gl5x, len(gl5x)) if (csp > 7): dataallestacoes[i][dia - 1] = datasp[i] figuradiaria(dia, sigla, ano, mes, opcao, hora, datasp[i], gl1x, gl3x, gl5x, mediasp, mediagl1x, mediagl3x, mediagl5x, rede) if (contarelemento(datagl[0][0]) > 7): gravardados(anomesdia, header, datasp, 'SP') gravardados(anomesdia, header, datagl[0], 'GL1X') gravardados(anomesdia, header, datagl[1], 'GL3X') gravardados(anomesdia, header, datagl[2], 'GL5X') #gerargraficodiferenca(dia, 'SOLRADNET', ano, mes, opcao, dataallestacoes, dataallgl1x) # gerar figura com dados das varias estacoes # salvar arquivo for p in range(len(dataestacoes)): sigla = dataestacoes[p][0] G = arraymedias(dataallestacoes[p]) GLir = GL(sigla, listaunica, mes, ano) DIAS = [*range(1, diafinal + 1)] gravartexto(ano, mes, sigla, DIAS, G, GLir) # load tabela GL. >> plotmensal(opcao, rede, sigla, mes, ano) dataestacoes.clear() # limpa da memoria print('Concluido: ' + format(mes, '02d') + '-' + str(ano))