У меня есть поток данных, поступающих от датчиков на моем распи, и я хочу собрать эти значения в длину размера окна "X", как только окно получит число чтений из потока X, оно вычислит усреднить и передать этот вывод в другую функцию. Вот код:
##---------------------------------------------------------------------------------------------------------------------------------------*
##Alpha trimmer filter, uses the stream to take values of "windowsize" and "alpha" to filter unusually large or small data from the stream.
##---------------------------------------------------------------------------------------------------------------------------------------*
def alpha_mean(window, alpha):
cut = alpha//2
data = sorted(window)[cut:-cut]
store =[]
for item in data:
store.append(int(item))
return sum(store)/len(data)
def alphatrimmer(window_size, alpha, sensor_stream):
window = []
for item in (sensor_stream):
window.append(item)
if len(window) >= window_size:
break
print(window) ***The code stores each integer in the stream into separate parts ex: 256, 225, 285 etc is stored as 2,5,6 and 2,2,5 but I want it to store 256,255,285 etc depending on the window size I allocate***
yield alpha_mean(window, alpha)
for item in sensor_stream:
window.pop(0)
window.append(item)
yield alpha_mean(window,alpha)
Исходный поток, который дал мне идею для кода: Как фильтровать поток данных