| 1 |
def select_data( x, y, t, t_start, delta_t ): |
| 2 |
""" делает выборку из данных такую, что: |
| 3 |
* ! данные отсортированы по времени |
| 4 |
* delta_t число минут. |
| 5 |
* в выборку попадают |
| 6 |
* t_point <= t < t_point + delta""" |
| 7 |
t_end = t_start + timedelta ( minutes = delta_t ) |
| 8 |
i_start = 0 |
| 9 |
i_end = len ( x ) |
| 10 |
# print( f" select_data { t_start= } { t_end= } { delta_t= } " ) |
| 11 |
ret_x = |
| 12 |
ret_y = |
| 13 |
ret_t = |
| 14 |
# вычисляем индекс начала выборки |
| 15 |
# если такого индекса нет, то сразу |
| 16 |
# возвращаем пустой результат |
| 17 |
while t i_start < t_start : |
| 18 |
i_start += 1 |
| 19 |
if i_start >= i_end: |
| 20 |
return ret_x, ret_y, ret_t |
| 21 |
# заполняем результат |
| 22 |
for i in range ( i_start, i_end ) : |
| 23 |
if t i < t_end : |
| 24 |
ret_x.append ( x i ) |
| 25 |
ret_y.append (y i ) |
| 26 |
ret_t.append ( t i ) |
| 27 |
else : |
| 28 |
break |
| 29 |
return ret_x, ret_y, ret_t, t_end |
Комментарии