Enabled plotting of figures when called from terminal.

This commit is contained in:
Ludger Küperkoch
2017-08-08 16:38:29 +02:00
parent ab410b790c
commit 811f52c95c
4 changed files with 66 additions and 29 deletions

View File

@@ -44,27 +44,27 @@ def autopickevent(data, param, iplot=0, fig_dict=None, ncores=0, metadata=None,
for station in stations:
topick = data.select(station=station)
if not iplot:
input_tuples.append((topick, param, apverbose, metadata, origin))
if iplot > 0:
all_onsets[station] = autopickstation(topick, param, verbose=apverbose,
iplot=iplot, fig_dict=fig_dict,
metadata=metadata, origin=origin)
#if not iplot:
# input_tuples.append((topick, param, apverbose, metadata, origin))
#if iplot > 0:
all_onsets[station] = autopickstation(topick, param, verbose=apverbose,
iplot=iplot, fig_dict=fig_dict,
metadata=metadata, origin=origin)
if iplot > 0:
print('iPlot Flag active: NO MULTIPROCESSING possible.')
return all_onsets
#if iplot > 0:
# print('iPlot Flag active: NO MULTIPROCESSING possible.')
# return all_onsets
pool = gen_Pool(ncores)
result = pool.map(call_autopickstation, input_tuples)
pool.close()
#pool = gen_Pool(ncores)
#result = pool.map(call_autopickstation, input_tuples)
#pool.close()
for pick in result:
station = pick['station']
pick.pop('station')
all_onsets[station] = pick
#for pick in result:
# station = pick['station']
# pick.pop('station')
# all_onsets[station] = pick
return all_onsets
#return all_onsets
# quality control
# median check and jackknife on P-onset times
@@ -95,10 +95,9 @@ def autopickstation(wfstream, pickparam, verbose=False,
# declaring pickparam variables (only for convenience)
# read your autoPyLoT.in for details!
plt_flag = 0
# special parameters for P picking
iplot = iplot
algoP = pickparam.get('algoP')
pstart = pickparam.get('pstart')
pstop = pickparam.get('pstop')
@@ -761,6 +760,7 @@ def autopickstation(wfstream, pickparam, verbose=False,
# plot vertical trace
if not fig_dict:
fig = plt.figure()
plt_flag = 1
else:
fig = fig_dict['mainFig']
ax1 = fig.add_subplot(311)
@@ -905,6 +905,10 @@ def autopickstation(wfstream, pickparam, verbose=False,
ax3.set_xlabel('Time [s] after %s' % tr_filt.stats.starttime)
ax3.set_ylabel('Normalized Counts')
ax3.set_title(trH2_filt.stats.channel)
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
##########################################################################
# calculate "real" onset times
if lpickP is not None and lpickP == mpickP:

View File

@@ -154,6 +154,7 @@ class AICPicker(AutoPicker):
self.Pick = None
self.slope = None
self.SNR = None
plt_flag = 0
# find NaN's
nn = np.isnan(self.cf)
if len(nn) > 1:
@@ -244,6 +245,7 @@ class AICPicker(AutoPicker):
if self.iplot > 1:
if not self.fig:
fig = plt.figure() # self.iplot) ### WHY? MP MP
plt_flag = 1
else:
fig = self.fig
ax = fig.add_subplot(111)
@@ -254,6 +256,10 @@ class AICPicker(AutoPicker):
ax.set_xlabel('Time [s] since %s' % self.Data[0].stats.starttime)
ax.set_yticks([])
ax.set_title(self.Data[0].stats.station)
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
return
iislope = islope[0][0:imax]
dataslope = self.Data[0].data[iislope]
@@ -273,6 +279,7 @@ class AICPicker(AutoPicker):
if self.iplot > 1:
if not self.fig:
fig = plt.figure() # self.iplot)
plt_flag = 1
else:
fig = self.fig
ax1 = fig.add_subplot(211)
@@ -307,8 +314,16 @@ class AICPicker(AutoPicker):
ax2.set_ylabel('Counts')
ax2.set_yticks([])
ax2.legend()
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
else:
ax1.set_title(self.Data[0].stats.station)
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
if self.Pick == None:
print('AICPicker: Could not find minimum, picking window too short?')
@@ -330,6 +345,7 @@ class PragPicker(AutoPicker):
self.SNR = None
self.slope = None
pickflag = 0
plt_flag = 0
# smooth CF
ismooth = int(round(self.Tsmooth / self.dt))
cfsmooth = np.zeros(len(self.cf))
@@ -408,6 +424,7 @@ class PragPicker(AutoPicker):
if self.getiplot() > 1:
if not self.fig:
fig = plt.figure() # self.getiplot())
plt_flag = 1
else:
fig = self.fig
ax = fig.add_subplot(111)
@@ -419,6 +436,10 @@ class PragPicker(AutoPicker):
ax.set_yticks([])
ax.set_title(self.Data[0].stats.station)
ax.legend()
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
return
else:

View File

@@ -50,6 +50,7 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None):
LPick = None
EPick = None
PickError = None
plt_flag = 0
if verbosity:
print('earllatepicker: Get earliest and latest possible pick'
' relative to most likely pick ...')
@@ -120,6 +121,7 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None):
if iplot > 1:
if not fig:
fig = plt.figure() # iplot)
plt_flag = 1
ax = fig.add_subplot(111)
ax.plot(t, x, 'k', label='Data')
ax.axvspan(t[inoise[0]], t[inoise[-1]], color='y', alpha=0.2, lw=0, label='Noise Window')
@@ -141,6 +143,10 @@ def earllatepicker(X, nfac, TSNR, Pick1, iplot=0, verbosity=1, fig=None):
'Earliest-/Latest Possible/Most Likely Pick & Symmetric Pick Error, %s' %
X[0].stats.station)
ax.legend()
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
return EPick, LPick, PickError
@@ -167,6 +173,7 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None):
:type: int
'''
plt_flag = 0
warnings.simplefilter('ignore', np.RankWarning)
assert isinstance(Xraw, Stream), "%s is not a stream object" % str(Xraw)
@@ -292,6 +299,7 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None):
if iplot > 1:
if not fig:
fig = plt.figure() # iplot)
plt_flag = 1
ax1 = fig.add_subplot(211)
ax1.plot(t, xraw, 'k')
ax1.plot([Pick, Pick], [max(xraw), -max(xraw)], 'b', linewidth=2, label='Pick')
@@ -317,6 +325,10 @@ def fmpicker(Xraw, Xfilt, pickwin, Pick, iplot=0, fig=None):
ax2.text(Pick + 0.02, max(xraw) / 2, '%s' % FM, fontsize=14)
ax2.set_xlabel('Time [s] since %s' % Xraw[0].stats.starttime)
ax2.set_yticks([])
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
return FM
@@ -685,6 +697,7 @@ def checksignallength(X, pick, TSNR, minsiglength, nfac, minpercent, iplot=0, fi
: type: int
'''
plt_flag = 0
assert isinstance(X, Stream), "%s is not a stream object" % str(X)
print("Checking signal length ...")
@@ -729,6 +742,7 @@ def checksignallength(X, pick, TSNR, minsiglength, nfac, minpercent, iplot=0, fi
if iplot == 2:
if not fig:
fig = plt.figure() # iplot)
plt_flag = 1
ax = fig.add_subplot(111)
ax.plot(t, rms, 'k', label='RMS Data')
ax.axvspan(t[inoise[0]], t[inoise[-1]], color='y', alpha=0.2, lw=0, label='Noise Window')
@@ -741,6 +755,10 @@ def checksignallength(X, pick, TSNR, minsiglength, nfac, minpercent, iplot=0, fi
ax.set_ylabel('Counts')
ax.set_title('Check for Signal Length, Station %s' % X[0].stats.station)
ax.set_yticks([])
if plt_flag == 1:
fig.show()
raw_input()
plt.close(fig)
return returnflag