joblib
This commit is contained in:
parent
05ac337061
commit
d8f447005e
2 changed files with 30 additions and 14 deletions
|
|
@ -1 +1 @@
|
|||
__version__ = '0.1.27'
|
||||
__version__ = '0.1.28'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import pandas as pd
|
|||
import pywt
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
from joblib import Parallel, delayed
|
||||
|
||||
from scipy.fft import fft, fftfreq
|
||||
from scipy.signal import find_peaks, hilbert, butter, filtfilt, correlate, sosfiltfilt
|
||||
|
|
@ -578,20 +578,38 @@ def analyze_signal_wavelet(time, e_signal, s_signal, freq_rtol=0.01):
|
|||
return res
|
||||
|
||||
|
||||
def get_phases(e_time, e_filtered, e_frequencies, s_filtered, n_modes, callback=analyze_signal_wavelet):
|
||||
def get_phases(e_time, e_filtered, s_filtered, n_modes, callback=analyze_signal_wavelet, n_jobs=-2):
|
||||
"""
|
||||
"""
|
||||
res = []
|
||||
|
||||
for mod in range(n_modes):
|
||||
def process_mode(mod, callback, e_time, e_filtered, s_filtered):
|
||||
"""Fonction à exécuter en parallèle pour chaque mode"""
|
||||
output = callback(e_time, e_filtered[mod], s_filtered[mod], freq_rtol=0.3)
|
||||
res.append({
|
||||
'mode': mod,
|
||||
'freq': output['freq_e'],
|
||||
'phase': output['phase'],
|
||||
'delay': output['delay']
|
||||
})
|
||||
return pd.DataFrame(res)
|
||||
return {
|
||||
'mode': mod,
|
||||
'freq': output['freq_e'],
|
||||
'phase': output['phase'],
|
||||
'delay': output['delay']
|
||||
}
|
||||
|
||||
results = Parallel(n_jobs=n_jobs)(
|
||||
delayed(process_mode)(mod, callback, e_time, e_filtered, s_filtered)
|
||||
for mod in range(n_modes)
|
||||
)
|
||||
|
||||
return pd.DataFrame(results)
|
||||
|
||||
# res = []
|
||||
#
|
||||
# for mod in range(n_modes):
|
||||
# output = callback(e_time, e_filtered[mod], s_filtered[mod], freq_rtol=0.3)
|
||||
# res.append({
|
||||
# 'mode': mod,
|
||||
# 'freq': output['freq_e'],
|
||||
# 'phase': output['phase'],
|
||||
# 'delay': output['delay']
|
||||
# })
|
||||
# return pd.DataFrame(res)
|
||||
|
||||
|
||||
def plot_phases(e_time, e_filtered, e_frequencies, s_filtered, n_modes, df, output=None):
|
||||
|
|
@ -601,8 +619,6 @@ def plot_phases(e_time, e_filtered, e_frequencies, s_filtered, n_modes, df, outp
|
|||
fig, ax = plt.subplots(nrows=n_modes, ncols=2, figsize=(12, 2 * n_modes), gridspec_kw={'width_ratios': [3, 1]})
|
||||
|
||||
for mod in range(n_modes):
|
||||
res = callback(e_time, e_filtered[mod], s_filtered[mod], freq_rtol=0.3)
|
||||
|
||||
freq = df[df['mode'] == mod].get('freq')
|
||||
phase = df[df['mode'] == mod].get('phase')
|
||||
delay = df[df['mode'] == mod].get('delay')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue