Exemple #1
0
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
Exemple #2
0
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
Exemple #5
0
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))