[Bugfix] It might happen, that Lc is negative and/or pstop smaller than pstart!

This commit is contained in:
Ludger Küperkoch 2017-08-16 16:48:04 +02:00
parent 9f48b23d88
commit b64009e525

View File

@ -52,28 +52,28 @@ def autopickevent(data, param, iplot=0, fig_dict=None, ncores=0, metadata=None,
for station in stations: for station in stations:
topick = data.select(station=station) topick = data.select(station=station)
if iplot == None or iplot == 'None' or iplot == 0: #if iplot == None or iplot == 'None' or iplot == 0:
input_tuples.append((topick, param, apverbose, metadata, origin)) # input_tuples.append((topick, param, apverbose, metadata, origin))
if iplot > 0: #if iplot > 0:
all_onsets[station] = autopickstation(topick, param, verbose=apverbose, all_onsets[station] = autopickstation(topick, param, verbose=apverbose,
iplot=iplot, fig_dict=fig_dict, iplot=iplot, fig_dict=fig_dict,
metadata=metadata, origin=origin) metadata=metadata, origin=origin)
if iplot > 0: #if iplot > 0:
print('iPlot Flag active: NO MULTIPROCESSING possible.') # print('iPlot Flag active: NO MULTIPROCESSING possible.')
return all_onsets # return all_onsets
pool = gen_Pool(ncores) #pool = gen_Pool(ncores)
result = pool.map(call_autopickstation, input_tuples) #result = pool.map(call_autopickstation, input_tuples)
pool.close() #pool.close()
for pick in result: #for pick in result:
if pick: # if pick:
station = pick['station'] # station = pick['station']
pick.pop('station') # pick.pop('station')
all_onsets[station] = pick # all_onsets[station] = pick
return all_onsets #return all_onsets
# quality control # quality control
# median check and jackknife on P-onset times # median check and jackknife on P-onset times
@ -279,8 +279,8 @@ def autopickstation(wfstream, pickparam, verbose=False,
print('autopickstation: empty trace! Return!') print('autopickstation: empty trace! Return!')
return return
Ldiff = Lwf - Lc Ldiff = Lwf - abs(Lc)
if Ldiff < 0: if Ldiff < 0 or pstop <= pstart:
msg = 'autopickstation: Cutting times are too large for actual ' \ msg = 'autopickstation: Cutting times are too large for actual ' \
'waveform!\nUsing entire waveform instead!' 'waveform!\nUsing entire waveform instead!'
if verbose: print(msg) if verbose: print(msg)
@ -291,6 +291,7 @@ def autopickstation(wfstream, pickparam, verbose=False,
if algoP == 'HOS': if algoP == 'HOS':
# calculate HOS-CF using subclass HOScf of class # calculate HOS-CF using subclass HOScf of class
# CharacteristicFunction # CharacteristicFunction
print(cuttimes)
cf1 = HOScf(z_copy, cuttimes, thosmw, hosorder) # instance of HOScf cf1 = HOScf(z_copy, cuttimes, thosmw, hosorder) # instance of HOScf
elif algoP == 'ARZ': elif algoP == 'ARZ':
# calculate ARZ-CF using subclass ARZcf of class # calculate ARZ-CF using subclass ARZcf of class