2222 "f0" : 40 ,
2323}
2424
25- par1 = {"ny" : 8 , "nx" : 10 , "nt" : 20 , "dtype" : "float32" } # even
26- par2 = {"ny" : 9 , "nx" : 11 , "nt" : 21 , "dtype" : "float32" } # odd
25+ par1 = {"ny" : 8 , "nx" : 10 , "nt" : 20 , "kind" : "p" , "dtype" : "float32" } # even, p
26+ par2 = {"ny" : 9 , "nx" : 11 , "nt" : 21 , "kind" : "p" , "dtype" : "float32" } # odd, p
27+ par1v = {"ny" : 8 , "nx" : 10 , "nt" : 20 , "kind" : "vz" , "dtype" : "float32" } # even, vz
28+ par2v = {"ny" : 9 , "nx" : 11 , "nt" : 21 , "kind" : "vz" , "dtype" : "float32" } # odd, vz
2729
2830# deghosting params
2931vel_sep = 1000.0 # velocity at separation level
3436wav = ricker (t [:41 ], f0 = parmod ["f0" ])[0 ]
3537
3638
37- @pytest .fixture ( scope = "module" )
39+ @pytest .fixture
3840def create_data2D ():
3941 """Create 2d dataset"""
40- t0_plus = np .array ([0.02 , 0.08 ])
41- t0_minus = t0_plus + 0.04
42- vrms = np .array ([1400.0 , 1800.0 ])
43- amp = np .array ([1.0 , - 0.6 ])
4442
45- p2d_minus = hyperbolic2d (x , t , t0_minus , vrms , amp , wav )[1 ].T
43+ def core (datakind ):
44+ t0_plus = np .array ([0.02 , 0.08 ])
45+ t0_minus = t0_plus + 0.04
46+ vrms = np .array ([1400.0 , 1800.0 ])
47+ amp = np .array ([1.0 , - 0.6 ])
4648
47- kx = np .fft .ifftshift (np .fft .fftfreq (parmod ["nx" ], parmod ["dx" ]))
48- freq = np .fft .rfftfreq (parmod ["nt" ], parmod ["dt" ])
49+ p2d_minus = hyperbolic2d (x , t , t0_minus , vrms , amp , wav )[1 ].T
4950
50- Pop = - PhaseShift (vel_sep , 2 * zrec , parmod ["nt" ], freq , kx )
51+ kx = np .fft .ifftshift (np .fft .fftfreq (parmod ["nx" ], parmod ["dx" ]))
52+ freq = np .fft .rfftfreq (parmod ["nt" ], parmod ["dt" ])
5153
52- # Decomposition operator
53- Dupop = Identity (parmod ["nt" ] * parmod ["nx" ]) + Pop
54+ Pop = - PhaseShift (vel_sep , 2 * zrec , parmod ["nt" ], freq , kx )
5455
55- p2d = Dupop * p2d_minus .ravel ()
56- p2d = p2d .reshape (parmod ["nt" ], parmod ["nx" ])
57- return p2d , p2d_minus
56+ # Decomposition operator
57+ Dupop = Identity (parmod ["nt" ] * parmod ["nx" ]) + datakind * Pop
58+
59+ p2d = Dupop * p2d_minus .ravel ()
60+ p2d = p2d .reshape (parmod ["nt" ], parmod ["nx" ])
61+ return p2d , p2d_minus
62+
63+ return core
5864
5965
6066@pytest .mark .parametrize ("par" , [(par1 ), (par2 )])
@@ -87,10 +93,10 @@ def test_PhaseShift_3dsignal(par):
8793 )
8894
8995
90- @pytest .mark .parametrize ("par" , [(par1 ), (par2 )])
96+ @pytest .mark .parametrize ("par" , [(par1 ), (par2 ), ( par1v ), ( par2v ) ])
9197def test_Deghosting_2dsignal (par , create_data2D ):
9298 """Deghosting of 2d data"""
93- p2d , p2d_minus = create_data2D
99+ p2d , p2d_minus = create_data2D ( 1 if par [ "kind" ] is "p" else - 1 )
94100
95101 p2d_minus_inv , p2d_plus_inv = Deghosting (
96102 p2d ,
@@ -100,6 +106,7 @@ def test_Deghosting_2dsignal(par, create_data2D):
100106 parmod ["dx" ],
101107 vel_sep ,
102108 zrec ,
109+ kind = par ["kind" ],
103110 win = np .ones_like (p2d ),
104111 npad = 0 ,
105112 ntaper = 0 ,
0 commit comments