def gravartexto(ano, mes, sigla): diretorio = './DADOS/TXT/' + str(ano) + '/' + sigla checkdir(diretorio) arquivotxt = diretorio + '/' + sigla + str(ano)[-2:] + format( mes, '02d') + '.txt' arquivo = open(arquivotxt, 'w+', encoding="ansi") for i in range(len(GLir)): string = str(xmensal[i]) + '\t' + str(formatn( ymensal[i])) + '\t' + str(formatn(GLir[i])) + '\n' arquivo.write(string) arquivo.close()
def gravardados(anomesdia, header, matriz, nome): diretorio = './DADOS/TXT/ANOMESDIA/' + nome #checkdir(diretorio) arquivotxt = diretorio + '/' + nome + '_' + str(anomesdia) + '.txt' with open(arquivotxt, 'w+') as f: for linha in range(len(header)): for data in header[linha]: f.write(str((data)) + '\t') for i in range(len(matriz[linha]) - 1): f.write(str(formatn(matriz[linha][i])) + '\t') f.write(str(formatn(matriz[linha][-1])) + '\n')
def atualizar(ano, mes): estacoesin = './DADOS/GLESTACAO/' + str(ano) + '/estacao_' + str( ano) + format(mes, '02d') + '.txt' estacoesout = './DADOS/OUTPUT/estacao_' + str(ano) + format(mes, '02d') + '.txt' try: with open(estacoesin, "r") as tsvin, open(estacoesout, "w+") as tsvout: reader = csv.reader(tsvin, delimiter=' ') output = csv.writer(tsvout, delimiter=' ') id = getID(sigla, listaunica) for row in reader: if (id == row[0]): # Identifica a estação for coluna in range(5, numerodiasmes(mes) + 5): if (row[coluna] == "-999" ): # Verifica se o dado é Nulo(-999). posicao = findElement(coluna - 4, xmensal) # Verifica se foi encontrado dado referente ao dia. if (posicao != None): if (ymensal[posicao] != None): row[coluna] = str(formatn( ymensal[posicao])) output.writerow(row) except: pass
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 GerarFiguras(sigla, rede, ano): x = [0, 350] y = [0, 350] cores = [ 'blue', 'green', 'red', 'yellow', 'magenta', 'cyan', 'lawngreen', 'white' ] plt.cla() # Limpa os eixos plt.clf() # Limpa a figura plt.figure(sigla) plt.title(sigla) plt.xlabel('Verdade Terrestre') plt.ylabel('Modelo GL') plt.xlim(x) plt.ylim(y) plt.plot(x, y, 'k-') meses = [[12, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]] mediasGL = [] mediasG = [] labels = [] p = 0 for mesdata in meses: G = [] GL = [] lab = '' tempGL = [] tempG = [] for mes in mesdata: data = lertexto(ano, mes, sigla) GL += data[1] G += data[0] tempGL += data[1] tempG += data[0] if (lab != ''): lab += '-' lab += strmes(mes) cGL = contarelemento(GL) cG = contarelemento(G) if (cGL > 0): mGL = somararray(GL) / contarelemento(GL) else: mGL = '-999' if (cG > 0): mG = somararray(G) / contarelemento(G) else: mG = '-999' mediasGL.append(formatn(mGL)) mediasG.append(formatn(mG)) labels.append(lab) cor = cores[p] plt.scatter(G, GL, c=cor, label=lab, alpha=0.5) p += 1 print(sigla) gravarTRIMESTRAL(labels, mediasG, mediasGL) diretorio = './DADOS/IMAGENS/TRIMESTRAL/' + rede + '/' + sigla checkdir(diretorio) #plt.legend(loc='upper left') #bbox_to_anchor=(0.5, 1), loc='upper left', borderaxespad=0. plt.legend(loc='upper left') plt.savefig(diretorio + '/' + sigla + '.png', dpi=300, bbox_inches='tight') plt.close() # Fecha 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
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))