Capture problems during data fitting.

This commit is contained in:
Ludger Küperkoch 2020-07-21 11:55:27 +02:00
parent 32c95757c6
commit 7617958a1c
2 changed files with 18 additions and 10 deletions

View File

@ -326,14 +326,17 @@ class AICPicker(AutoPicker):
dataslope = aicsmooth[pickindex: iaicmax] dataslope = aicsmooth[pickindex: iaicmax]
# calculate slope as polynomal fit of order 1 # calculate slope as polynomal fit of order 1
xslope = np.arange(0, len(dataslope), 1) xslope = np.arange(0, len(dataslope), 1)
P = np.polyfit(xslope, dataslope, 1) try:
datafit = np.polyval(P, xslope) P = np.polyfit(xslope, dataslope, 1)
if datafit[0] >= datafit[-1]: datafit = np.polyval(P, xslope)
print('AICPicker: Negative slope, bad onset skipped!') if datafit[0] >= datafit[-1]:
else: print('AICPicker: Negative slope, bad onset skipped!')
self.slope = 1 / (len(dataslope) * self.Data[0].stats.delta) * (datafit[-1] - datafit[0]) else:
# normalize slope to maximum of cf to make it unit independent self.slope = 1 / (len(dataslope) * self.Data[0].stats.delta) * (datafit[-1] - datafit[0])
self.slope /= aicsmooth[iaicmax] # normalize slope to maximum of cf to make it unit independent
self.slope /= aicsmooth[iaicmax]
except ValueError as e:
print("AICPicker: Problems with data fitting! {}".format(e))
else: else:
self.SNR = None self.SNR = None

View File

@ -270,8 +270,13 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None, linecolor='k'):
islope1 = np.where((t >= Pick) & (t <= Pick + t[imax1])) islope1 = np.where((t >= Pick) & (t <= Pick + t[imax1]))
# calculate slope as polynomal fit of order 1 # calculate slope as polynomal fit of order 1
xslope1 = np.arange(0, len(xraw[islope1]), 1) xslope1 = np.arange(0, len(xraw[islope1]), 1)
P1 = np.polyfit(xslope1, xraw[islope1], 1) try:
datafit1 = np.polyval(P1, xslope1) P1 = np.polyfit(xslope1, xraw[islope1], 1)
datafit1 = np.polyval(P1, xslope1)
except ValueError as e:
print("fmpicker: Problems with data fit! {}".format(e))
print("Skip first motion determination!")
return FM
# now using filterd trace # now using filterd trace
# next zero crossings after most likely pick # next zero crossings after most likely pick