Вычислить FFT на большом наборе данных Mon go - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть MongoDB с большим количеством данных. Мне нужно взять эти данные и сделать БПФ на нем. На данный момент я использую pymon go и после агрегации mon go я делаю list(agg_data), чтобы передать его функции FFTW. Проблема заключается в том, что для больших наборов данных (например, 96014823) объем оперативной памяти увеличивается до 12 ГБ, а для выполнения операции list(agg_data) требуется около 270 секунд. Есть ли какая-либо опция для извлечения из Mon go и FFT парным способом?

Данные из моего агрегата mon go выглядят так:

{ x: 0.1, y: 1.2, z: 0.9 }

Там три оси (x, y, z), и я делаю их numpy массив следующим образом:

data_frame = pd.DataFrame(list(mongo_agg_data))

accel_x = np.array(data_frame.get('x', []), dtype='float64')
accel_y = np.array(data_frame.get('y', []), dtype='float64')
accel_z = np.array(data_frame.get('z', []), dtype='float64')

Затем я делаю fft для каждого асила _ *.

...