plt.title('Reflectivity') plt.ylim(z[-1], z[0]); #TOM plt.figure(figsize=(10,5)) im = plt.imshow(refl_tom.T, cmap='gray', vmin = reflmin, vmax = reflmax, extent = (x[0], x[-1], z_tom[-1], z_tom[0])) plt.scatter(recs[0], recs[1], marker='v', s=150, c='b', edgecolors='k') plt.scatter(sources[0], sources[1], marker='*', s=150, c='r', edgecolors='k') plt.colorbar(im) plt.axis('tight') plt.xlabel('offset [m]'),plt.ylabel('depth [m]') plt.title('Reflectivity') plt.ylim(z_tom[-1], z_tom[0]); #%% Computes the travel time using eikonal trav, trav_srcs, trav_recs = _traveltime_table(z, x, sources, recs, vel, mode='eikonal') #TOM trav_tom, trav_srcs_tom, trav_recs_tom = _traveltime_table(z_tom, x, sources, recs, vel[:,188:376], mode='eikonal') #%% Perform LS on velocity model nt = 400 dt = 0.004 t = np.arange(nt)*dt # Generate the ricker wavelet itrav = (np.floor(trav/dt)).astype(np.int32) travd = (trav/dt - itrav) itrav = itrav.reshape(nx, nz, ns*nr) travd = travd.reshape(nx, nz, ns*nr)
plt.xlabel('x [m]'),plt.ylabel('y [m]') plt.title('Velocity') plt.xlim(x[0], x[-1]) plt.figure(figsize=(10,5)) im = plt.imshow(refl.T, cmap='gray', extent = (x[0], x[-1], z[-1], z[0])) plt.scatter(recs[0], recs[1], marker='v', s=150, c='b', edgecolors='k') plt.scatter(sources[0], sources[1], marker='*', s=150, c='r', edgecolors='k') plt.colorbar(im) plt.axis('tight') plt.xlabel('x [m]'),plt.ylabel('y [m]') plt.title('Reflectivity') plt.xlim(x[0], x[-1]); #%% Calculate the travel time trav, trav_srcs, trav_recs = _traveltime_table(z, x, sources, recs, vel, mode='eikonal') #%% nt = 651 dt = 0.004 t = np.arange(nt)*dt wav, wavt, wavc = ricker(t[:41], f0=20) itrav = (np.floor(trav/dt)).astype(np.int32) travd = (trav/dt - itrav) itrav = itrav.reshape(nx, nz, ns*nr) travd = travd.reshape(nx, nz, ns*nr) #%% # create the lsm operator lsm = LSM(z, x, t, sources, recs, v0, wav, wavc,
plt.xlabel('x [m]'),plt.ylabel('y [m]') plt.title('Velocity') plt.xlim(x[0], x[-1]) plt.figure(figsize=(10,5)) im = plt.imshow(refl.T, cmap='gray', extent = (x[0], x[-1], z[-1], z[0])) plt.scatter(recs[0], recs[1], marker='v', s=150, c='b', edgecolors='k') plt.scatter(sources[0], sources[1], marker='*', s=150, c='r', edgecolors='k') plt.colorbar(im) plt.axis('tight') plt.xlabel('x [m]'),plt.ylabel('y [m]') plt.title('Reflectivity') plt.xlim(x[0], x[-1]); #%% trav, trav_srcs, trav_recs = _traveltime_table(z, x, sources, recs, vel, mode='eikonal') #%% nt = 651 dt = 0.004 t = np.arange(nt)*dt wav, wavt, wavc = ricker(t[:41], f0=20) itrav = (np.floor(trav/dt)).astype(np.int32) travd = (trav/dt - itrav) itrav = itrav.reshape(nx, nz, ns*nr) travd = travd.reshape(nx, nz, ns*nr) #%% lsm = LSM(z, x, t, sources, recs, v0, wav, wavc, mode='analytic')