From 7d6285464b477e7d054093b2a673595ccd613619 Mon Sep 17 00:00:00 2001 From: "Mads M. Pedersen" <mmpe@dtu.dk> Date: Wed, 12 Jul 2017 08:49:03 +0200 Subject: [PATCH] suppress runtime warning for nanmean([]) in rainflowcount.py and fatigue.py --- wetb/fatigue_tools/fatigue.py | 12 +++++++----- wetb/fatigue_tools/rainflowcounting/rainflowcount.py | 3 ++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/wetb/fatigue_tools/fatigue.py b/wetb/fatigue_tools/fatigue.py index 0aa8713..85625df 100644 --- a/wetb/fatigue_tools/fatigue.py +++ b/wetb/fatigue_tools/fatigue.py @@ -19,6 +19,7 @@ from __future__ import print_function from __future__ import unicode_literals from __future__ import absolute_import from future import standard_library +import warnings standard_library.install_aliases() import numpy as np from wetb.fatigue_tools.rainflowcounting import rainflowcount @@ -156,11 +157,12 @@ def cycle_matrix(signals, ampl_bins=10, mean_bins=10, rainflow_func=rainflow_win if isinstance(ampl_bins, int): ampl_bins = np.linspace(0, 1, num=ampl_bins + 1) * ampls[weights>0].max() cycles, ampl_edges, mean_edges = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights) - - ampl_bin_sum = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights * ampls)[0] - ampl_bin_mean = np.nanmean(ampl_bin_sum / np.where(cycles,cycles,np.nan),1) - mean_bin_sum = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights * means)[0] - mean_bin_mean = np.nanmean(mean_bin_sum / np.where(cycles, cycles, np.nan), 1) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + ampl_bin_sum = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights * ampls)[0] + ampl_bin_mean = np.nanmean(ampl_bin_sum / np.where(cycles,cycles,np.nan),1) + mean_bin_sum = np.histogram2d(ampls, means, [ampl_bins, mean_bins], weights=weights * means)[0] + mean_bin_mean = np.nanmean(mean_bin_sum / np.where(cycles, cycles, np.nan), 1) cycles = cycles / 2 # to get full cycles return cycles, ampl_bin_mean, ampl_edges, mean_bin_mean, mean_edges diff --git a/wetb/fatigue_tools/rainflowcounting/rainflowcount.py b/wetb/fatigue_tools/rainflowcounting/rainflowcount.py index bac7c26..146cf9c 100644 --- a/wetb/fatigue_tools/rainflowcounting/rainflowcount.py +++ b/wetb/fatigue_tools/rainflowcounting/rainflowcount.py @@ -64,7 +64,8 @@ def rainflow_windap(signal, levels=255., thresshold=(255 / 50)): check_signal(signal) #type <double> is required by <find_extreme> and <rainflow> signal = signal.astype(np.double) - + if np.all(np.isnan(signal)): + return None offset = np.nanmin(signal) signal -= offset if np.nanmax(signal) > 0: -- GitLab