diff --git a/QtPyLoT.py b/QtPyLoT.py index ef494399..66560ab8 100755 --- a/QtPyLoT.py +++ b/QtPyLoT.py @@ -47,6 +47,7 @@ from pylot.core.io.data import Data from pylot.core.io.inputs import FilterOptions, AutoPickParameter from pylot.core.pick.autopick import autopickevent from pylot.core.pick.compare import Comparison +from pylot.core.pick.utils import symmetrize_error from pylot.core.io.phases import picksdict_from_picks import pylot.core.loc.nll as nll from pylot.core.util.defaults import FILTERDEFAULTS, COMPNAME_MAP, \ @@ -894,6 +895,8 @@ class MainWindow(QMainWindow): epp = picks['epp'] - stime lpp = picks['lpp'] - stime spe = picks['spe'] + if not spe: + spe = symmetrize_error(mpp - epp, lpp - mpp) if picktype == 'manual': ax.fill_between([epp, lpp], ylims[0], ylims[1], diff --git a/pylot/core/pick/utils.py b/pylot/core/pick/utils.py index 09405fb1..20c2227c 100644 --- a/pylot/core/pick/utils.py +++ b/pylot/core/pick/utils.py @@ -103,7 +103,7 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=None, stealth_mode=False): # by weighting latest possible pick two times earliest possible pick diffti_tl = LPick - Pick1 diffti_te = Pick1 - EPick - PickError = (diffti_te + 2 * diffti_tl) / 3 + PickError = symmetrize_error(diffti_te, diffti_tl) if iplot > 1: p = plt.figure(iplot) @@ -325,6 +325,17 @@ def crossings_nonzero_all(data): return ((pos[:-1] & npos[1:]) | (npos[:-1] & pos[1:])).nonzero()[0] +def symmetrize_error(dte, dtl): + """ + takes earliest and latest possible pick and returns the symmetrized pick + uncertainty value + :param dte: relative lower uncertainty + :param dtl: relative upper uncertainty + :return: symmetrized error + """ + return (dte + 2 * dtl) / 3 + + def getSNR(X, TSNR, t1, tracenum=0): ''' Function to calculate SNR of certain part of seismogram relative to