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 pywt
|
||||||
|
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
from joblib import Parallel, delayed
|
||||||
|
|
||||||
from scipy.fft import fft, fftfreq
|
from scipy.fft import fft, fftfreq
|
||||||
from scipy.signal import find_peaks, hilbert, butter, filtfilt, correlate, sosfiltfilt
|
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
|
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)
|
output = callback(e_time, e_filtered[mod], s_filtered[mod], freq_rtol=0.3)
|
||||||
res.append({
|
return {
|
||||||
'mode': mod,
|
'mode': mod,
|
||||||
'freq': output['freq_e'],
|
'freq': output['freq_e'],
|
||||||
'phase': output['phase'],
|
'phase': output['phase'],
|
||||||
'delay': output['delay']
|
'delay': output['delay']
|
||||||
})
|
}
|
||||||
return pd.DataFrame(res)
|
|
||||||
|
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):
|
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]})
|
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):
|
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')
|
freq = df[df['mode'] == mod].get('freq')
|
||||||
phase = df[df['mode'] == mod].get('phase')
|
phase = df[df['mode'] == mod].get('phase')
|
||||||
delay = df[df['mode'] == mod].get('delay')
|
delay = df[df['mode'] == mod].get('delay')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue