statistic plots added
This commit is contained in:
parent
5170a0b1c6
commit
8893a8ec6b
@ -107,3 +107,131 @@ def cleanUp(survey):
|
||||
|
||||
for shot in survey.data.values():
|
||||
shot.traces4plot = {}
|
||||
|
||||
# def plotScatterStats(survey, key, ax = None):
|
||||
# import matplotlib.pyplot as plt
|
||||
# x = []; y = []; value = []
|
||||
# stats = survey.getStats()
|
||||
# for shotnumber in stats.keys():
|
||||
# if type(value) == list:
|
||||
# value.append(stats[shotnumber][key][0])
|
||||
# else:
|
||||
# value.append(stats[shotnumber][key])
|
||||
# x.append(survey.data[shotnumber].getSrcLoc()[0])
|
||||
# y.append(survey.data[shotnumber].getSrcLoc()[1])
|
||||
|
||||
# if ax == None:
|
||||
# fig = plt.figure()
|
||||
# ax = fig.add_subplot(111)
|
||||
|
||||
# sc = ax.scatter(x, y, s = value, c = value)
|
||||
# plt.xlabel('X')
|
||||
# plt.ylabel('Y')
|
||||
# cbar = plt.colorbar(sc)
|
||||
# cbar.set_label(key)
|
||||
|
||||
def plotScatterStats4Shots(survey, key):
|
||||
'''
|
||||
Statistics, scatter plot.
|
||||
key can be 'mean SNR', 'median SNR', 'mean SPE', 'median SPE', or 'picked traces'
|
||||
'''
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
statsShot = {}
|
||||
x = []; y = []; value = []
|
||||
for shot in survey.data.values():
|
||||
for traceID in shot.getTraceIDlist():
|
||||
if not shot in statsShot.keys():
|
||||
statsShot[shot] = {'x': shot.getSrcLoc()[0],
|
||||
'y': shot.getSrcLoc()[1],
|
||||
'SNR': [],
|
||||
'SPE': [],
|
||||
'picked traces': 0}
|
||||
|
||||
statsShot[shot]['SNR'].append(shot.getSNR(traceID)[0])
|
||||
if shot.getPickFlag(traceID) == 1:
|
||||
statsShot[shot]['picked traces'] += 1
|
||||
statsShot[shot]['SPE'].append(shot.getSymmetricPickError(traceID))
|
||||
|
||||
for shot in statsShot.keys():
|
||||
statsShot[shot]['mean SNR'] = np.mean(statsShot[shot]['SNR'])
|
||||
statsShot[shot]['median SNR'] = np.median(statsShot[shot]['SNR'])
|
||||
statsShot[shot]['mean SPE'] = np.mean(statsShot[shot]['SPE'])
|
||||
statsShot[shot]['median SPE'] = np.median(statsShot[shot]['SPE'])
|
||||
|
||||
for shot in statsShot.keys():
|
||||
x.append(statsShot[shot]['x'])
|
||||
y.append(statsShot[shot]['y'])
|
||||
value.append(statsShot[shot][key])
|
||||
|
||||
fig = plt.figure()
|
||||
ax = fig.add_subplot(111)
|
||||
|
||||
size = []
|
||||
for val in value:
|
||||
size.append(100 * val / max(value))
|
||||
|
||||
sc = ax.scatter(x, y, s = size, c = value)
|
||||
plt.title('Plot of all shots')
|
||||
plt.xlabel('X')
|
||||
plt.ylabel('Y')
|
||||
cbar = plt.colorbar(sc)
|
||||
cbar.set_label(key)
|
||||
|
||||
for shot in statsShot.keys():
|
||||
ax.annotate(' %s' %shot.getShotnumber() , xy = (shot.getSrcLoc()[0], shot.getSrcLoc()[1]),
|
||||
fontsize = 'x-small', color = 'k')
|
||||
|
||||
def plotScatterStats4Receivers(survey, key):
|
||||
'''
|
||||
Statistics, scatter plot.
|
||||
key can be 'mean SNR', 'median SNR', 'mean SPE', 'median SPE', or 'picked traces'
|
||||
'''
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
statsRec = {}
|
||||
x = []; y = []; value = []
|
||||
for shot in survey.data.values():
|
||||
for traceID in shot.getTraceIDlist():
|
||||
if not traceID in statsRec.keys():
|
||||
statsRec[traceID] = {'x': shot.getRecLoc(traceID)[0],
|
||||
'y': shot.getRecLoc(traceID)[1],
|
||||
'SNR': [],
|
||||
'SPE': [],
|
||||
'picked traces': 0}
|
||||
|
||||
statsRec[traceID]['SNR'].append(shot.getSNR(traceID)[0])
|
||||
if shot.getPickFlag(traceID) == 1:
|
||||
statsRec[traceID]['picked traces'] += 1
|
||||
statsRec[traceID]['SPE'].append(shot.getSymmetricPickError(traceID))
|
||||
|
||||
|
||||
for traceID in statsRec.keys():
|
||||
statsRec[traceID]['mean SNR'] = np.mean(statsRec[traceID]['SNR'])
|
||||
statsRec[traceID]['median SNR'] = np.median(statsRec[traceID]['SNR'])
|
||||
statsRec[traceID]['mean SPE'] = np.mean(statsRec[traceID]['SPE'])
|
||||
statsRec[traceID]['median SPE'] = np.median(statsRec[traceID]['SPE'])
|
||||
|
||||
for traceID in statsRec.keys():
|
||||
x.append(statsRec[traceID]['x'])
|
||||
y.append(statsRec[traceID]['y'])
|
||||
value.append(statsRec[traceID][key])
|
||||
|
||||
fig = plt.figure()
|
||||
ax = fig.add_subplot(111)
|
||||
|
||||
size = []
|
||||
for val in value:
|
||||
size.append(100 * val / max(value))
|
||||
|
||||
sc = ax.scatter(x, y, s = size, c = value)
|
||||
plt.title('Plot of all receivers')
|
||||
plt.xlabel('X')
|
||||
plt.ylabel('Y')
|
||||
cbar = plt.colorbar(sc)
|
||||
cbar.set_label(key)
|
||||
|
||||
shot = survey.data.values()[0]
|
||||
for traceID in shot.getTraceIDlist():
|
||||
ax.annotate(' %s' %traceID , xy = (shot.getRecLoc(traceID)[0], shot.getRecLoc(traceID)[1]),
|
||||
fontsize = 'x-small', color = 'k')
|
||||
|
Loading…
Reference in New Issue
Block a user