發呀發呀

1、TDS

def deal_data1(INDEX,th):
    T=100
    x,y=time_change(INDEX)
    total_len=len(y)
    i=0
    m=1
    flag = 0  # 用於標記非冗餘數據的位置
    result_data = []  # 最後去除冗餘數據的數據
    temp_data = []  # 臨時存放冗餘數據的數組
    result_time = []  # 去除冗餘的時間數據
    TH=th
    print(INDEX)
    print(th)
    y_data=[]
    com_num=0
    for h in x:
        x_str.append(h)
    X=np.array(x_str)
    for k in y:
        y_data.append(k)
    Y=np.array(y_data)

    if(TH==0.0):
        return len(y),0,len(y)

    for a,b in zip(x,y):
        if(i==flag):
            result_time.append(X[0])
            result_data.append(Y[0])
        else:
            for j in range(flag,i,m):
                m = int(round((i-flag) / 2, 1))
                if (m == 0):
                    m = 1
                else:
                    m = int(round((i-flag) / 2, 1))
                if(i<total_len and j<total_len):
                    t1 = x[i]
                    t2 = x[j]
                    lag=(t1-t2)/0.5#加入對時間間隔的控制
                    com_num = com_num + 1
                    if Y[i] is None or Y[j] is None:
                        break
                    else:
                        b = Y[i] - Y[j]  # 加入對數據距離的控制
                        com_num = com_num + 1
                        th_Data=abs(b)
                        if(th_Data<=TH and lag<=T):
                            temp_data.append(Y[i])
                        if(th_Data>TH or lag>T):
                            result_data.append(Y[i])
                            result_time.append(X[i])
                            flag=i
                            break
        i=i+1
    # print(result_data)
    # print(len(result_data))
    print(len(result_data),com_num,len(y))
    return len(result_data),com_num,len(y)

2、DAWF

def deal_data(INDEX,th):
    print(INDEX)
    print(th)
    x,y=time_change(INDEX)
    i=0
    no_redundant_flag=0
    flag=0
    n=0
    com_num=0
    result_data=[]
    temp_data=[]
    result_time=[]
    if(th==0.0):
        return len(y),0,len(y)
    for r in zip(y):
        if(i+1<len(y)):
            if y[i] is None:
                break
            else:
                result=abs(y[i+1]-y[i])/y[i]
                com_num=com_num+2
                temp_data.append(result)
                if(result<=th):
                    n=n+1
                    if(n%50==0 and n==50):
                        means_data=mean(y[flag:flag+n])
                        com_num=com_num+n
                        flag=i
                        result_data.append(means_data)
                        result_time.append(x[i])
                        n=0
                else:
                    n=0
                    if(no_redundant_flag!=i or i==0):
                        result_data.append(y[i])
                        result_time.append(x[i])
                    result_data.append(y[i + 1])
                    result_time.append(x[i + 1])
                    no_redundant_flag = i + 1
            i=i+1
    print(len(result_data),com_num,len(y))
    return len(result_data),com_num,len(y)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章