def getanual(ano, rede, sigla): GL = [None] * 366 G = [None] * 366 for i in range(1, 13): data = lertexto(ano, i, sigla) for p in range(len(data[0])): dia = diajuliano(p, i, ano) GL[dia] = data[0][p] G[dia] = data[1][p] return G, GL
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 selectdia(dia, data, rede): if (rede == 'SOLRADNET'): col_dia = 0 col_min = 1 col_ir = 3 select_dia = format(dia, '02d') + ':' + format(mes, '02d') + ':' + str(ano) select_ir = data.iloc[np.where(data[col_dia].values == select_dia)] ir = select_ir[col_ir].values.tolist() minuto = select_ir[col_min].values.tolist() for i in range(len(minuto)): h = int(str(minuto[i])[:2]) m = int(str(minuto[i])[3:5]) minuto[i] = ((h * 30) + (m / 2)) / 30 if (ir[i] > 1600 or ir[i] < 0 or np.isnan(ir[i])): ir[i] = None minutonovo = [i * 60 for i in minuto] return [minutonovo, ir] if (rede == 'SONDA'): if str(data.loc[0, 3]).isdigit() == True: # Sonda Novo col_dia = 2 col_min = 3 col_ir = 4 else: # Sonda Antigo col_dia = 2 col_min = 4 col_ir = 5 select = data.iloc[np.where( data[col_dia].values == diajuliano(dia, mes, ano))] minuto = select[col_min].values.tolist() ir = select[col_ir].values.tolist() for i in range(len(ir)): if (ir[i] > 1600 or ir[i] < 0 or np.isnan(ir[i])): ir[i] = None #minuto[i] = minuto[i]/60 return [minuto, ir]
def plotdiario(opcao): diainicial = 1 diafinal = diames(ano, mes) planilha = './DADOS/SONDA/' + str(ano) + '/' + sigla + '/' + sigla + str( ano)[-2:] + format(mes, '02d') + 'ED.csv' sonda = pd.read_csv(planilha, header=None, sep=';', usecols=[*range(6)]) cabecalho(str(sonda.loc[0, 3]).isdigit()) for dia in range(diainicial, diafinal + 1): select = sonda.iloc[np.where( sonda[col_dia].values == diajuliano(dia, mes, ano))] minuto = select[col_min].values.tolist() ir = select[col_ir].values.tolist() for i in range(len(ir)): if (ir[i] > 1600 or ir[i] < 0 or np.isnan(ir[i])): ir[i] = None minuto[i] = horamin(minuto[i]) validar_diaria(dia, mes, ano, rede, sigla, ir, minuto, opcao) GL(sigla, listaunica, mes, ano) plotmensal(opcao, rede, sigla, mes, ano)
def gerargraficodiferenca(dia, rede, ano, mes, opcao, dataallestacoes, dataallgl1x): diferencas = [] # dataallestacoes = mes inteiro # para um dia, for i in range(len(dataallestacoes)): # numero d estacoes d = diferenca(dataallgl1x[i][dia - 1], dataallestacoes[i][dia - 1], 0) # (a - b)-c diferencas.append(d) arraysoma = 24 * [0] arrayvalido = 24 * [0] final = 24 * [None] for i in range(len(diferencas)): # estacoes for x in range(len(diferencas[i])): # hora if (diferencas[i][x] != None): arraysoma[x] += diferencas[i][x] arrayvalido[x] += 1 for i in range(24): if (arrayvalido[i] != 0): final[i] = arraysoma[i] / arrayvalido[i] hora = [*range(24)] plt.figure('difereca') plt.plot(hora, final, 'r-', label='Diferença') # GL vermelho plt.title('Rede ' + rede + ' - Diferença - ' + str(ano) + format(mes, '02d') + format(dia, '02d') + " - Dia [" + str(diajuliano(dia, mes, ano)) + "]") plt.ylabel('Irradiância (Wm-2)') plt.xlabel('Tempo (Hora UTC)') plt.legend(loc='upper left') plt.ylim(-500, 500) plt.xlim(0, 25) plt.grid() createdir(ano, mes, 'Diferenca', 'Diferenca') diretorio = './DADOS/IMAGENS/Diferenca/' + str( ano) + '/Diferenca/' + format(mes, '02d') plt.savefig(diretorio + '/' + str(dia) + '.png') plt.close() #if opcao == 0: plt.close()
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 figuradiaria(dia, sigla, ano, mes, opcao, hora, ir, gl1x, gl3x, gl5x, mediasp, mediagl1x, mediagl3x, mediagl5x, rede): ## temp_da(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 #labelsp = 'SP' #labelgl1x = 'GL 1X' #labelgl3x = 'GL 3X' #labelgl5x = 'GL 5X' ## Plot figura plt.figure(dia) plt.cla() # Limpa os eixos plt.clf() # Limpa a figura plt.plot(hora, ir, 'k-', label=labelsp) # , label=labelsp preto plt.plot(hora, gl1x, 'r-', label=labelgl1x) # , label=labelgl1x GL vermelho plt.plot(hora, gl3x, 'g-', label=labelgl3x) # , label=labelgl3x GL 3x verde plt.plot(hora, gl5x, 'y-', label=labelgl5x) # , label=labelgl5x GL 5x amarelo plt.title('Rede ' + rede + ' - ' + sigla + str(ano) + format(mes, '02d') + format(dia, '02d') + " - Dia [" + str(diajuliano(dia, mes, ano)) + "]") plt.ylabel('Irradiância (Wm-2)') plt.xlabel('Tempo (Hora UTC)') plt.legend(loc='upper left') plt.ylim(0, 1000) plt.xlim(9, 23) plt.grid() createdir(ano, mes, sigla, rede) diretorio = './DADOS/IMAGENS/' + rede + '/' + str( ano) + '/' + sigla + '/' + format(mes, '02d') plt.savefig(diretorio + '/' + str(dia) + '.png') plt.close() #if opcao == 0: plt.close() plt.cla() # Limpa os eixos plt.clf() # Limpa a figura