コード例 #1
0
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
コード例 #2
0
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)
コード例 #3
0
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]
コード例 #4
0
ファイル: Sonda.py プロジェクト: LuizFelipeNeves/Sonda-import
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)
コード例 #5
0
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()
コード例 #6
0
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
コード例 #7
0
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