Added functionality to better handle divide by zero error when taking log10.

这个提交包含在:
Craig Warren
2017-10-11 10:24:51 +01:00
父节点 e346b17cec
当前提交 e351a5fde8
共有 7 个文件被更改,包括 75 次插入29 次删除

查看文件

@@ -254,10 +254,13 @@ def dispersion_analysis(G):
# Calculate magnitude of frequency spectra of waveform
mag = np.abs(np.fft.fft(waveformvalues))**2
# Calculate power (avoiding taking a log of any zero values)
np.seterr(divide='ignore')
power = 10 * np.log10(mag)
np.seterr(divide='warn')
# Calculate power (ignore warning from taking a log of any zero values)
with np.errstate(divide='ignore'):
power = 10 * np.log10(mag)
# Replace any NaNs or Infs from zero division
power[np.invert(np.isfinite(power))] = 0
# Frequency bins
freqs = np.fft.fftfreq(power.size, d=G.dt)
# Shift powers so that frequency with maximum power is at zero decibels