[bugfix] a lot of different bugfixes
This commit is contained in:
parent
039f98a811
commit
2554534759
@ -68,9 +68,10 @@ def autopickevent(data, param, iplot=0, fig_dict=None, ncores=0, metadata=None,
|
||||
pool.close()
|
||||
|
||||
for pick in result:
|
||||
station = pick['station']
|
||||
pick.pop('station')
|
||||
all_onsets[station] = pick
|
||||
if pick:
|
||||
station = pick['station']
|
||||
pick.pop('station')
|
||||
all_onsets[station] = pick
|
||||
|
||||
return all_onsets
|
||||
|
||||
@ -206,13 +207,14 @@ def autopickstation(wfstream, pickparam, verbose=False,
|
||||
if len(ndat) == 0: # check for other components
|
||||
ndat = wfstream.select(component="1")
|
||||
|
||||
|
||||
wfstart, wfend = full_range(wfstream)
|
||||
if not zdat:
|
||||
print('No z-component found for station {}. STOP'.format(wfstream[0].stats.station))
|
||||
return
|
||||
|
||||
if algoP == 'HOS' or algoP == 'ARZ' and zdat is not None:
|
||||
msg = '##################################################\nautopickstation:' \
|
||||
' Working on P onset of station {station}\nFiltering vertical ' \
|
||||
'trace ...\n{data}'.format(station=zdat[0].stats.station,
|
||||
'trace ...\n{data}'.format(station=wfstream[0].stats.station,
|
||||
data=str(zdat))
|
||||
if verbose: print(msg)
|
||||
z_copy = zdat.copy()
|
||||
@ -972,14 +974,16 @@ def autopickstation(wfstream, pickparam, verbose=False,
|
||||
else:
|
||||
# dummy values (start of seismic trace) in order to derive
|
||||
# theoretical onset times for iteratve picking
|
||||
try:
|
||||
if edat:
|
||||
lpickS = edat[0].stats.starttime + timeerrorsS[3]
|
||||
epickS = edat[0].stats.starttime - timeerrorsS[3]
|
||||
mpickS = edat[0].stats.starttime
|
||||
except:
|
||||
elif ndat:
|
||||
lpickS = ndat[0].stats.starttime + timeerrorsS[3]
|
||||
epickS = ndat[0].stats.starttime - timeerrorsS[3]
|
||||
mpickS = ndat[0].stats.starttime
|
||||
else:
|
||||
return
|
||||
|
||||
# create dictionary
|
||||
# for P phase
|
||||
|
@ -244,7 +244,11 @@ class AICPicker(AutoPicker):
|
||||
& (self.Tcf >= self.Pick))
|
||||
# find maximum within slope determination window
|
||||
# 'cause slope should be calculated up to first local minimum only!
|
||||
imax = np.argmax(self.Data[0].data[islope[0][0]:islope[0][len(islope[0])-1]])
|
||||
dataslope = self.Data[0].data[islope[0][0]:islope[0][len(islope[0]) - 1]]
|
||||
if len(dataslope) < 1:
|
||||
print('No data in slope window found!')
|
||||
return
|
||||
imax = np.argmax(dataslope)
|
||||
iislope = islope[0][0:imax+1]
|
||||
if len(iislope) <= 2:
|
||||
# calculate slope from initial onset to maximum of AIC function
|
||||
|
@ -228,6 +228,10 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None):
|
||||
if len(zc1) == 3:
|
||||
break
|
||||
|
||||
if len(zc1) < 3:
|
||||
print('fmpicker: Could not determine zero crossings!')
|
||||
return
|
||||
|
||||
# if time difference betweeen 1st and 2cnd zero crossing
|
||||
# is too short, get time difference between 1st and 3rd
|
||||
# to derive maximum
|
||||
|
Loading…
Reference in New Issue
Block a user