Example #1
0
 def test_Grid2Dfs(self):
     g = rg.Grid2d(self.x, self.z, method='FSM', cell_slowness=0)
     tt = g.raytrace(self.src, self.rcv, slowness=self.slowness)
     tt = g.get_grid_traveltimes()
     tt = tt.flatten()
     tt_ref = get_tt('fsm2d_d_p_gc_src2d_all_tt.vtr')
     self.assertLess(
         np.sum(np.abs(tt - tt_ref)) / tt.size, 0.01,
         'FSM accuracy failed (slowness at nodes)')
Example #2
0
 def test_Grid2Dsp(self):
     g = rg.Grid2d(self.x, self.z, method='SPM', nsnx=5, nsnz=5)
     tt = g.raytrace(self.src, self.rcv, slowness=self.slowness)
     tt = g.get_grid_traveltimes()
     tt = tt.flatten()
     tt_ref = get_tt('spm2d_d_p_lc_05_src2d_all_tt.vtr')
     self.assertLess(
         np.sum(np.abs(tt - tt_ref)) / tt.size, 0.01,
         'SPM accuracy failed (slowness in cells)')
Example #3
0

# %% Construction de la grille pour le tracé de rais

dx = 5.0
dz = 5.0
xmin = 0.0
zmin = 0.0
xmax = 150.0
zmax = 300.0
nx = int((xmax-xmin)/dx+0.001)
nz = int((zmax-xmin)/dz+0.001)
xg = np.linspace(xmin, xmax, nx+1)
zg = np.linspace(zmin, zmax, nz+1)

g = rg.Grid2d(xg, zg, method='SPM', nsnx=10, nsnz=10)

# %% Lecture des données

data = np.loadtxt('model1_tt.dat')
Tx = data[:, :2].copy()
Rx = data[:, 2:4].copy()
dobs = data[:, -1]


# %%
# modèle initial, on prend la lenteur apparente moyenne
Ldroit = rg.Grid2d.data_kernel_straight_rays(Tx, Rx, xg, zg)  # matrice L pour des rais droits
l_rai =                 # longueur des rais
lent_app = dobs/l_rai                     # lenteurs apparentes
m0 = np.mean(lent_app) + np.zeros((nx*nz,))