electroAnalysis.py 3.88 KB
Newer Older
lcn's avatar
lcn committed
1 2 3 4
import time


def findStart(timeelectro="timeelectro", timeelectro_last="", ahead=0):
wang.wenrong's avatar
wang.wenrong committed
5 6 7 8 9
    timeelectro_last_stemp = int(
        time.mktime(time.strptime(timeelectro_last, "%Y-%m-%d %H:%M:%S")))
    timeelectro_stemp = [
        int(time.mktime(time.strptime(each_time, "%Y-%m-%d %H:%M:%S"))) for
        each_time in timeelectro]
lcn's avatar
lcn committed
10 11 12 13

    if ahead < len(timeelectro) - 1:
        time_substruct = [1000000 if timeelectro_stemp[
                                         each_timeelectro_stemp] - timeelectro_last_stemp <= 0 or each_timeelectro_stemp < ahead else
wang.wenrong's avatar
wang.wenrong committed
14 15 16
                          timeelectro_stemp[
                              each_timeelectro_stemp] - timeelectro_last_stemp
                          for each_timeelectro_stemp
lcn's avatar
lcn committed
17 18
                          in range(len(timeelectro_stemp))]
    else:
wang.wenrong's avatar
wang.wenrong committed
19 20 21 22 23 24 25
        time_substruct = [
            1000000 if timeelectro_last_stemp - timeelectro_stemp[
                each_timeelectro_stemp] <= 0 or each_timeelectro_stemp < ahead else timeelectro_last_stemp -
                                                                                    timeelectro_stemp[
                                                                                        each_timeelectro_stemp]
            for
            each_timeelectro_stemp in range(len(timeelectro_stemp))]
lcn's avatar
lcn committed
26 27 28 29 30

    index = time_substruct.index(min(time_substruct))
    return index


wang.wenrong's avatar
wang.wenrong committed
31 32 33 34 35
def electroAnalysis(stateselectro="stateselectro",
                    stateselectro_off="stateselectro_off"
                    , timeelectro="timeelectro",
                    timeelectro_off="timeelectro_off",
                    eachdata_pow="eachdata_pow"
lcn's avatar
lcn committed
36 37 38
                    , eachdata_cur="eachdata_cur", timer="timer"):
    electroRunStages = []

wang.wenrong's avatar
wang.wenrong committed
39 40
    timeelectro_chang = [each.split(" ")[1][:-3].split(":") for each in
                         timeelectro]
lcn's avatar
lcn committed
41 42
    timeelectro_hour = [each[0] for each in timeelectro_chang]
    timeelectro_minute = [each[1] for each in timeelectro_chang]
wang.wenrong's avatar
wang.wenrong committed
43 44
    timeelectro_off_chang = [each.split(" ")[1][:-3].split(":") for each in
                             timeelectro_off]
lcn's avatar
lcn committed
45 46 47 48 49 50 51 52
    timeelectro_off_hour = [each[0] for each in timeelectro_off_chang]
    timeelectro_off_minute = [each[1] for each in timeelectro_off_chang]

    flag = 0
    electroRunStages = []
    electroRunStages.append(timeelectro[0])
    for each_off in range(1, len(timeelectro_off)):
        # if each_off==len(timeaircond_off)-1:
wang.wenrong's avatar
wang.wenrong committed
53 54
        if int(timeelectro_off_hour[-1]) - int(
                timeelectro_off_hour[-2]) > 2 and each_off == len(
lcn's avatar
lcn committed
55 56
                timeelectro_off_hour) - 1:
            if flag == 1:
wang.wenrong's avatar
wang.wenrong committed
57 58 59
                index = findStart(timeelectro=timeelectro,
                                  timeelectro_last=timeelectro_off[each_off],
                                  ahead=each_off)
lcn's avatar
lcn committed
60 61
                electroRunStages.append(timeelectro[index])
            electroRunStages.append(timeelectro_off[each_off])
wang.wenrong's avatar
wang.wenrong committed
62 63
        elif int(timeelectro_off_hour[each_off]) - int(
                timeelectro_off_hour[each_off - 1]) <= 1:
lcn's avatar
lcn committed
64 65 66 67
            continue
        else:
            if each_off < len(timeelectro_off_hour) - 1:
                electroRunStages.append(timeelectro_off[each_off - 1])
wang.wenrong's avatar
wang.wenrong committed
68 69 70
                index = findStart(timeelectro=timeelectro,
                                  timeelectro_last=timeelectro_off[
                                      each_off - 1],
lcn's avatar
lcn committed
71 72
                                  ahead=each_off)
                electroRunStages.append(timeelectro[index])
wang.wenrong's avatar
wang.wenrong committed
73 74 75 76
                if int(timeelectro_off_hour[each_off]) - int(
                        timeelectro_hour[index]) <= 1 and int(
                        timeelectro_off_hour[each_off]) - int(
                    timeelectro_off_hour[each_off + 1]) < -1:
lcn's avatar
lcn committed
77 78 79 80 81 82 83 84
                    electroRunStages.append(timeelectro_off[each_off])
                    flag = 1

            else:
                electroRunStages.append(timeelectro_off[each_off])
                flag = 1

    return electroRunStages