C ++, как синтезировать и выравнивать интервалы временных рядов?

Работая в C ++, у меня есть данные временных рядов, сгенерированные с интервалом в одну секунду, например:

Data begins;
2014 Dec 14 13:59:57   8.7
2014 Dec 14 13:59:58   6.6
2014 Dec 14 13:59:59   2.1
2014 Dec 14 14:00:00   0.5
2014 Dec 14 14:00:01   2.3
2014 Dec 14 14:00:02   3.5
2014 Dec 14 14:00:04   1.0 <--- Intentional gap; could be that no data is generated in a given second
2014 Dec 14 14:00:05   7.3
2014 Dec 14 14:00:06   4.8
and so on ........

Отметки времени имеют boost::posix_time::ptime тип.

Я хотел бы взять эти данные и синтезировать из них данные временных рядов с большими интервалами, например, 2, 5, 10 секунд или любое другое целое кратное число.

Значение, связанное с любым заданным интервалом, будет средним значением из этого предыдущего количества секунд.

Таким образом, значение временного ряда первого 2-секундного интервала будет средним значением;

2014 Dec 14 13:59:57   8.7
2014 Dec 14 13:59:58   6.6

и сам будет;

2014 Dec 14 13:59:58   7.7 <-- first synthesized 2 second interval time-series data element.

Теперь ряд исходных данных может начаться в любое время. Я хотел бы сделать так, чтобы синтезированные интервалы временных рядов совпадали с их естественными целыми кратными и натуральными точками во времени.

Таким образом, первый элемент данных с 5-секундным интервалом будет представлять собой среднее значение ТОЛЬКО четырех предыдущих 1-секундных элементов данных:

2014 Dec 14 13:59:57   8.7
2014 Dec 14 13:59:58   6.6
2014 Dec 14 13:59:59   2.1
2014 Dec 14 14:00:00   0.5

дать:

2014 Dec 14 14:00:00   4.5 <--- first synthesized 5 second interval time-series data element.

и при естественном повороте минуты и часа новое 5-секундное накопление начнется в:

 2014 Dec 14 14:00:01   2.3

Это будет принимать значения;

2014 Dec 14 14:00:01   2.3
2014 Dec 14 14:00:02   3.5
2014 Dec 14 14:00:04   1.0 <--- Intentional gap; could be that no data is generated in a given second
2014 Dec 14 14:00:05   7.3

и синтезировать их в:

2014 Dec 14 14:00:05   3.5 <---- Aligned second synthesized 5 second interval time-series data element.

Я впервые пытаюсь это сделать, поэтому я хотел бы спросить предложения библиотек с открытым исходным кодом, которые выполняют такую ​​функциональность или подходы, которые я мог бы использовать для достижения цели синтеза временных рядов с более высокими интервалами в C ++?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]