bugfix: add new tests and refactor get_none
This commit is contained in:
		
							parent
							
								
									e68fc849f0
								
							
						
					
					
						commit
						e9da81376e
					
				
							
								
								
									
										6
									
								
								PyLoT.py
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								PyLoT.py
									
									
									
									
									
								
							@ -76,7 +76,7 @@ from pylot.core.util.utils import fnConstructor, getLogin, \
 | 
				
			|||||||
    full_range, readFilterInformation, pick_color_plt, \
 | 
					    full_range, readFilterInformation, pick_color_plt, \
 | 
				
			||||||
    pick_linestyle_plt, identifyPhaseID, excludeQualityClasses, \
 | 
					    pick_linestyle_plt, identifyPhaseID, excludeQualityClasses, \
 | 
				
			||||||
    transform_colors_mpl, transform_colors_mpl_str, getAutoFilteroptions, check_all_obspy, \
 | 
					    transform_colors_mpl, transform_colors_mpl_str, getAutoFilteroptions, check_all_obspy, \
 | 
				
			||||||
    check_all_pylot, get_bool, get_None
 | 
					    check_all_pylot, get_bool, get_none
 | 
				
			||||||
from pylot.core.util.gui import make_pen
 | 
					from pylot.core.util.gui import make_pen
 | 
				
			||||||
from pylot.core.util.event import Event
 | 
					from pylot.core.util.event import Event
 | 
				
			||||||
from pylot.core.io.location import create_creation_info, create_event
 | 
					from pylot.core.io.location import create_creation_info, create_event
 | 
				
			||||||
@ -1956,8 +1956,8 @@ class MainWindow(QMainWindow):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if len(curr_event.origins) > 0:
 | 
					        if len(curr_event.origins) > 0:
 | 
				
			||||||
            origin_time = curr_event.origins[0].time
 | 
					            origin_time = curr_event.origins[0].time
 | 
				
			||||||
            tstart = settings.value('tstart') if get_None(settings.value('tstart')) else 0
 | 
					            tstart = settings.value('tstart') if get_none(settings.value('tstart')) else 0
 | 
				
			||||||
            tstop = settings.value('tstop') if get_None(settings.value('tstop')) else 0
 | 
					            tstop = settings.value('tstop') if get_none(settings.value('tstop')) else 0
 | 
				
			||||||
            tstart = origin_time + float(tstart)
 | 
					            tstart = origin_time + float(tstart)
 | 
				
			||||||
            tstop = origin_time + float(tstop)
 | 
					            tstop = origin_time + float(tstop)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								autoPyLoT.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								autoPyLoT.py
									
									
									
									
									
								
							@ -28,7 +28,7 @@ from pylot.core.util.dataprocessing import restitute_data, Metadata
 | 
				
			|||||||
from pylot.core.util.defaults import SEPARATOR
 | 
					from pylot.core.util.defaults import SEPARATOR
 | 
				
			||||||
from pylot.core.util.event import Event
 | 
					from pylot.core.util.event import Event
 | 
				
			||||||
from pylot.core.util.structure import DATASTRUCTURE
 | 
					from pylot.core.util.structure import DATASTRUCTURE
 | 
				
			||||||
from pylot.core.util.utils import get_None, trim_station_components, check4gapsAndRemove, check4doubled, \
 | 
					from pylot.core.util.utils import get_none, trim_station_components, check4gapsAndRemove, check4doubled, \
 | 
				
			||||||
    check4rotated
 | 
					    check4rotated
 | 
				
			||||||
from pylot.core.util.version import get_git_version as _getVersionString
 | 
					from pylot.core.util.version import get_git_version as _getVersionString
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -91,9 +91,9 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
 | 
				
			|||||||
                                                              sp=sp_info)
 | 
					                                                              sp=sp_info)
 | 
				
			||||||
    print(splash)
 | 
					    print(splash)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    parameter = get_None(parameter)
 | 
					    parameter = get_none(parameter)
 | 
				
			||||||
    inputfile = get_None(inputfile)
 | 
					    inputfile = get_none(inputfile)
 | 
				
			||||||
    eventid = get_None(eventid)
 | 
					    eventid = get_none(eventid)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fig_dict = None
 | 
					    fig_dict = None
 | 
				
			||||||
    fig_dict_wadatijack = None
 | 
					    fig_dict_wadatijack = None
 | 
				
			||||||
@ -154,7 +154,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
 | 
				
			|||||||
        datastructure.setExpandFields(exf)
 | 
					        datastructure.setExpandFields(exf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # check if default location routine NLLoc is available and all stations are used
 | 
					        # check if default location routine NLLoc is available and all stations are used
 | 
				
			||||||
        if get_None(parameter['nllocbin']) and station == 'all':
 | 
					        if get_none(parameter['nllocbin']) and station == 'all':
 | 
				
			||||||
            locflag = 1
 | 
					            locflag = 1
 | 
				
			||||||
            # get NLLoc-root path
 | 
					            # get NLLoc-root path
 | 
				
			||||||
            nllocroot = parameter.get('nllocroot')
 | 
					            nllocroot = parameter.get('nllocroot')
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ from pylot.core.pick.picker import AICPicker, PragPicker
 | 
				
			|||||||
from pylot.core.pick.utils import checksignallength, checkZ4S, earllatepicker, \
 | 
					from pylot.core.pick.utils import checksignallength, checkZ4S, earllatepicker, \
 | 
				
			||||||
    getSNR, fmpicker, checkPonsets, wadaticheck, get_quality_class
 | 
					    getSNR, fmpicker, checkPonsets, wadaticheck, get_quality_class
 | 
				
			||||||
from pylot.core.util.utils import getPatternLine, gen_Pool, \
 | 
					from pylot.core.util.utils import getPatternLine, gen_Pool, \
 | 
				
			||||||
    get_bool, identifyPhaseID, get_None, correct_iplot
 | 
					    get_bool, identifyPhaseID, get_none, correct_iplot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None, ncores=0, metadata=None, origin=None):
 | 
					def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None, ncores=0, metadata=None, origin=None):
 | 
				
			||||||
@ -272,7 +272,7 @@ class AutopickStation(object):
 | 
				
			|||||||
        self.pickparams = copy.deepcopy(pickparam)
 | 
					        self.pickparams = copy.deepcopy(pickparam)
 | 
				
			||||||
        self.verbose = verbose
 | 
					        self.verbose = verbose
 | 
				
			||||||
        self.iplot = correct_iplot(iplot)
 | 
					        self.iplot = correct_iplot(iplot)
 | 
				
			||||||
        self.fig_dict = get_None(fig_dict)
 | 
					        self.fig_dict = get_none(fig_dict)
 | 
				
			||||||
        self.metadata = metadata
 | 
					        self.metadata = metadata
 | 
				
			||||||
        self.origin = origin
 | 
					        self.origin = origin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ import numpy as np
 | 
				
			|||||||
from obspy.core import Stream, UTCDateTime
 | 
					from obspy.core import Stream, UTCDateTime
 | 
				
			||||||
from scipy.signal import argrelmax
 | 
					from scipy.signal import argrelmax
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from pylot.core.util.utils import get_bool, get_None, SetChannelComponents
 | 
					from pylot.core.util.utils import get_bool, get_none, SetChannelComponents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None, linecolor='k'):
 | 
					def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None, linecolor='k'):
 | 
				
			||||||
@ -136,7 +136,7 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None, linecol
 | 
				
			|||||||
    PickError = symmetrize_error(diffti_te, diffti_tl)
 | 
					    PickError = symmetrize_error(diffti_te, diffti_tl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if iplot > 1:
 | 
					    if iplot > 1:
 | 
				
			||||||
        if get_None(fig) is None:
 | 
					        if get_none(fig) is None:
 | 
				
			||||||
            fig = plt.figure()  # iplot)
 | 
					            fig = plt.figure()  # iplot)
 | 
				
			||||||
            plt_flag = 1
 | 
					            plt_flag = 1
 | 
				
			||||||
        fig._tight = True
 | 
					        fig._tight = True
 | 
				
			||||||
@ -344,7 +344,7 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None, linecolor='k'):
 | 
				
			|||||||
        print("fmpicker: Found polarity %s" % FM)
 | 
					        print("fmpicker: Found polarity %s" % FM)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if iplot > 1:
 | 
					    if iplot > 1:
 | 
				
			||||||
        if get_None(fig) is None:
 | 
					        if get_none(fig) is None:
 | 
				
			||||||
            fig = plt.figure()  # iplot)
 | 
					            fig = plt.figure()  # iplot)
 | 
				
			||||||
            plt_flag = 1
 | 
					            plt_flag = 1
 | 
				
			||||||
        fig._tight = True
 | 
					        fig._tight = True
 | 
				
			||||||
@ -868,7 +868,7 @@ def checksignallength(X, pick, minsiglength, pickparams, iplot=0, fig=None, line
 | 
				
			|||||||
            returnflag = 0
 | 
					            returnflag = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if iplot > 1:
 | 
					    if iplot > 1:
 | 
				
			||||||
        if get_None(fig) is None:
 | 
					        if get_none(fig) is None:
 | 
				
			||||||
            fig = plt.figure()  # iplot)
 | 
					            fig = plt.figure()  # iplot)
 | 
				
			||||||
            plt_flag = 1
 | 
					            plt_flag = 1
 | 
				
			||||||
        fig._tight = True
 | 
					        fig._tight = True
 | 
				
			||||||
@ -1211,14 +1211,14 @@ def checkZ4S(X, pick, pickparams, iplot, fig=None, linecolor='k'):
 | 
				
			|||||||
            t = np.linspace(diff_dict[key], trace.stats.endtime - trace.stats.starttime + diff_dict[key],
 | 
					            t = np.linspace(diff_dict[key], trace.stats.endtime - trace.stats.starttime + diff_dict[key],
 | 
				
			||||||
                            trace.stats.npts)
 | 
					                            trace.stats.npts)
 | 
				
			||||||
            if i == 0:
 | 
					            if i == 0:
 | 
				
			||||||
                if get_None(fig) is None:
 | 
					                if get_none(fig) is None:
 | 
				
			||||||
                    fig = plt.figure()  # self.iplot) ### WHY? MP MP
 | 
					                    fig = plt.figure()  # self.iplot) ### WHY? MP MP
 | 
				
			||||||
                    plt_flag = 1
 | 
					                    plt_flag = 1
 | 
				
			||||||
                ax1 = fig.add_subplot(3, 1, i + 1)
 | 
					                ax1 = fig.add_subplot(3, 1, i + 1)
 | 
				
			||||||
                ax = ax1
 | 
					                ax = ax1
 | 
				
			||||||
                ax.set_title('CheckZ4S, Station %s' % zdat[0].stats.station)
 | 
					                ax.set_title('CheckZ4S, Station %s' % zdat[0].stats.station)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                if get_None(fig) is None:
 | 
					                if get_none(fig) is None:
 | 
				
			||||||
                    fig = plt.figure()  # self.iplot) ### WHY? MP MP
 | 
					                    fig = plt.figure()  # self.iplot) ### WHY? MP MP
 | 
				
			||||||
                    plt_flag = 1
 | 
					                    plt_flag = 1
 | 
				
			||||||
                ax = fig.add_subplot(3, 1, i + 1, sharex=ax1)
 | 
					                ax = fig.add_subplot(3, 1, i + 1, sharex=ax1)
 | 
				
			||||||
@ -1508,7 +1508,7 @@ def getQualityFromUncertainty(uncertainty, Errors):
 | 
				
			|||||||
    # set initial quality to 4 (worst) and change only if one condition is hit
 | 
					    # set initial quality to 4 (worst) and change only if one condition is hit
 | 
				
			||||||
    quality = 4
 | 
					    quality = 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if get_None(uncertainty) is None:
 | 
					    if get_none(uncertainty) is None:
 | 
				
			||||||
        return quality
 | 
					        return quality
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if uncertainty <= Errors[0]:
 | 
					    if uncertainty <= Errors[0]:
 | 
				
			||||||
 | 
				
			|||||||
@ -313,15 +313,32 @@ def fnConstructor(s):
 | 
				
			|||||||
    return fn
 | 
					    return fn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_None(value):
 | 
					def get_none(value):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Convert "None" to None
 | 
					    Convert "None" to None
 | 
				
			||||||
    :param value:
 | 
					    :param value:
 | 
				
			||||||
    :type value: str, bool
 | 
					    :type value: str, NoneType
 | 
				
			||||||
    :return:
 | 
					    :return:
 | 
				
			||||||
    :rtype: bool
 | 
					    :rtype: type(value) or NoneType
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    >>> st = read()
 | 
				
			||||||
 | 
					    >>> print(get_none(st))
 | 
				
			||||||
 | 
					    3 Trace(s) in Stream:
 | 
				
			||||||
 | 
					    BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:32.990000Z | 100.0 Hz, 3000 samples
 | 
				
			||||||
 | 
					    BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:32.990000Z | 100.0 Hz, 3000 samples
 | 
				
			||||||
 | 
					    BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:32.990000Z | 100.0 Hz, 3000 samples
 | 
				
			||||||
 | 
					    >>> get_none('Stream')
 | 
				
			||||||
 | 
					    'Stream'
 | 
				
			||||||
 | 
					    >>> get_none(0)
 | 
				
			||||||
 | 
					    0
 | 
				
			||||||
 | 
					    >>> get_none(0.)
 | 
				
			||||||
 | 
					    0.0
 | 
				
			||||||
 | 
					    >>> print(get_none('None'))
 | 
				
			||||||
 | 
					    None
 | 
				
			||||||
 | 
					    >>> print(get_none(None))
 | 
				
			||||||
 | 
					    None
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    if value == 'None':
 | 
					    if value is None or (type(value) is str and value == 'None'):
 | 
				
			||||||
        return None
 | 
					        return None
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        return value
 | 
					        return value
 | 
				
			||||||
 | 
				
			|||||||
@ -53,7 +53,7 @@ from pylot.core.util.utils import prepTimeAxis, full_range, demeanTrace, isSorte
 | 
				
			|||||||
    pick_linestyle_plt, pick_color_plt, \
 | 
					    pick_linestyle_plt, pick_color_plt, \
 | 
				
			||||||
    check4rotated, check4doubled, merge_stream, identifyPhase, \
 | 
					    check4rotated, check4doubled, merge_stream, identifyPhase, \
 | 
				
			||||||
    loopIdentifyPhase, trim_station_components, transformFilteroptions2String, \
 | 
					    loopIdentifyPhase, trim_station_components, transformFilteroptions2String, \
 | 
				
			||||||
    identifyPhaseID, get_bool, get_None, pick_color, getAutoFilteroptions, SetChannelComponents, \
 | 
					    identifyPhaseID, get_bool, get_none, pick_color, getAutoFilteroptions, SetChannelComponents, \
 | 
				
			||||||
    station_id_remove_channel
 | 
					    station_id_remove_channel
 | 
				
			||||||
from autoPyLoT import autoPyLoT
 | 
					from autoPyLoT import autoPyLoT
 | 
				
			||||||
from pylot.core.util.thread import Thread
 | 
					from pylot.core.util.thread import Thread
 | 
				
			||||||
@ -4669,8 +4669,8 @@ class InputsTab(PropTab):
 | 
				
			|||||||
        self.tstopBox = QSpinBox()
 | 
					        self.tstopBox = QSpinBox()
 | 
				
			||||||
        for spinbox in [self.tstartBox, self.tstopBox]:
 | 
					        for spinbox in [self.tstartBox, self.tstopBox]:
 | 
				
			||||||
            spinbox.setRange(-99999, 99999)
 | 
					            spinbox.setRange(-99999, 99999)
 | 
				
			||||||
        self.tstartBox.setValue(float(settings.value('tstart')) if get_None(settings.value('tstart')) else 0)
 | 
					        self.tstartBox.setValue(float(settings.value('tstart')) if get_none(settings.value('tstart')) else 0)
 | 
				
			||||||
        self.tstopBox.setValue(float(settings.value('tstop')) if get_None(settings.value('tstop')) else 1e6)
 | 
					        self.tstopBox.setValue(float(settings.value('tstop')) if get_none(settings.value('tstop')) else 1e6)
 | 
				
			||||||
        self.cuttimesLayout.addWidget(self.tstartBox, 10)
 | 
					        self.cuttimesLayout.addWidget(self.tstartBox, 10)
 | 
				
			||||||
        self.cuttimesLayout.addWidget(QLabel('[s] and'), 0)
 | 
					        self.cuttimesLayout.addWidget(QLabel('[s] and'), 0)
 | 
				
			||||||
        self.cuttimesLayout.addWidget(self.tstopBox, 10)
 | 
					        self.cuttimesLayout.addWidget(self.tstopBox, 10)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user