Time vs Depth Time vs Depth MigrationMigration
Insensitive to v(z) modelInsensitive to v(z) model Sensitive to v(z) modelSensitive to v(z) model
Time migration uses bestTime migration uses bestfit hyperbolafit hyperbola
Depth migration uses bestDepth migration uses bestguess moveout curveguess moveout curve
Incoherent summationIncoherent summationif guess is wrongif guess is wrong
Coherent summationCoherent summation
Time MigrationTime Migration Depth MigrationDepth Migration
CMP GatherCMP Gather
tim
eti
me
CMP GatherCMP Gather
tim
eti
me
Easy calculation of v(z)Easy calculation of v(z) Expensive calculation of t(x,y,z)Expensive calculation of t(x,y,z)
False StructuresFalse Structures True StructuresTrue Structures
Time MigrationTime Migration Depth MigrationDepth Migration
Stacked SectionStacked Section
tim
eti
me
Stacked SectionStacked Section
tim
eti
me
M(x,T)M(x,T) M(x,z)M(x,z)
False structureFalse structure
Low-velocityLow-velocity zonezone
Low-velocityLow-velocity zonezone
Depth Migration -> Time MigrationDepth Migration -> Time Migration
We know 2z/c=We know 2z/c=TT so so
m(x,z) = m(x,z) = gg
d (d (gg, 4[(x-, 4[(x-gg)/c] + ()/c] + (2z/c2z/c) ) ) ) 22 22
zz
2-way vertical traveltime2-way vertical traveltime
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = gg
22 22
Depth Migration: Maps data into Depth Migration: Maps data into function(x,z)function(x,z)
Time Migration: Maps data into Time Migration: Maps data into function(x,function(x,TT))
m(x,z(m(x,z(TT)) = )) = gg
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) 22 22
Prestack Time MigrationPrestack Time Migration
m(x,z) = m(x,z) = g,sg,s
d (d (g,sg,s, [(x-, [(x-gg)/c] + ()/c] + (z/cz/c) ) 22 22
Depth Migration: Maps data into Depth Migration: Maps data into function(x,z)function(x,z)
[(x-[(x-ss)/c] + ()/c] + (z/cz/c) ) ) ) 2222
++
[(x-[(x-ss)/c] + )/c] + TT d (d (gg,s, [(x-,s, [(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = g,sg,s
22 22 22 22++
Time Migration for c(T)Time Migration for c(T)
d (d (gg, 4[(x-, 4[(x-gg)/c()/c(TT)] + )] + TT ) ) M(x,M(x,TT) = ) = gg
22 22
Time Migration: Maps data into function(x,Time Migration: Maps data into function(x,TT))
v1v1
v2v2
v3v3
v4v4
v5v5v6v6
TT
cc(T)(T) More generally, More generally, cc((TT) is a function of ) is a function of T!T!
MATLAB ZO Depth MigrationMATLAB ZO Depth Migration
d (d (gg, ) , ) xxggm(x,z) = m(x,z) = gg
for ixtrace=1:ntrace; for ixs=istart:iend; for izs=1:nz; r = sqrt(4*(ixtrace*dx-ixs*dx )^2+(2*izs*dx)^2); time = 1 + round( r/c/dt ); mig(ixs,izs) = mig(ixs,izs)/r + data(ixtrace,time); end; end;end;
TraveltimeTraveltime
Loop over x in modelLoop over x in modelLoop over z in modelLoop over z in model
Traveltime Table
MATLAB ZO Time MigrationMATLAB ZO Time Migration
for ixtrace=1:ntrace; for ixs=istart:iend; for iT=1:nT; time = sqrt(4*([ixtrace*dx-ixs*dx]/c(iT))^2+(iT*dt)^2); time = 1 + round( time/dt ); mig(ixs,iT) = mig(ixs,iT)/r + data(ixtrace,time); end; end;end;
TraveltimeTraveltime
Loop over x in modelLoop over x in modelLoop over iT in modelLoop over iT in model
M(x,M(x,TT) = ) = gg
22 22d (d (gg, 4[(x-, 4[(x-gg)/c()/c(TT)] + )] + TT ) )
Note: c(iT) or c(ixtrace,iT)Note: c(iT) or c(ixtrace,iT)
for ixtrace=1:ntrace; for ixs=istart:iend; for izs=1:nz; r = sqrt(4*(ixtrace*dx-ixs*dx )^2+(2*izs*dx)^2); time = 1 + round( r/c/dt ); mig(ixs,izs) = mig(ixs,izs)/r + data(ixtrace,time); end; end;end;
TraveltimeTraveltime
Loop over x in modelLoop over x in modelLoop over z in modelLoop over z in model
Traveltime Table
MATLAB ZO Time MigrationMATLAB ZO Time Migration
for ixtrace=1:ntrace; for ixtrace=1:ntrace; for ixs=istart:iend; for ixs=istart:iend; for iT=1:for iT=1:nTnT; ; time = sqrt(4*([ixtrace*dx-ixs*dx]/c(iT))^2+(iT*dt)^2); time = sqrt(4*([ixtrace*dx-ixs*dx]/c(iT))^2+(iT*dt)^2); time = 1 + round( time/dt ); time = 1 + round( time/dt ); mig(ixs,iT) = mig(ixs,iT)/r + data(ixtrace,time); mig(ixs,iT) = mig(ixs,iT)/r + data(ixtrace,time); end; end; end;end;end; end;
TraveltimeTraveltime
Loop over x in modelLoop over x in modelLoop over iT in modelLoop over iT in model
M(x,M(x,TT) = ) = gg
22 22d (d (gg, 4[(x-, 4[(x-gg)/c()/c(TT)] + )] + TT ) )
Note: c(iT) or c(ixtrace,iT)Note: c(iT) or c(ixtrace,iT)
Time Migration vs Depth MigrationTime Migration vs Depth Migration
Insensitive to c(z) modelInsensitive to c(z) model
Time migration uses bestTime migration uses bestfit hyperbolafit hyperbola
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = 22 22
Time Migration vs Depth MigrationTime Migration vs Depth Migration
Insensitive to v(z) modelInsensitive to v(z) model
Time migration uses bestTime migration uses bestfit hyperbolafit hyperbola
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = 22 22
Time Migration vs Depth MigrationTime Migration vs Depth Migration
Insensitive to v(z) modelInsensitive to v(z) model
Time migration uses bestTime migration uses bestfit hyperbolafit hyperbola
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = 22 22
Time Migration vs Depth MigrationTime Migration vs Depth Migration
Insensitive to v(z) modelInsensitive to v(z) model
Time migration uses bestTime migration uses bestfit hyperbolafit hyperbola
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = 22 22
Summary: Time Migration vs Depth MigrationSummary: Time Migration vs Depth Migration
Insensitive to v(z) modelInsensitive to v(z) model Sensitive to v(z) modelSensitive to v(z) model
Time migration uses bestTime migration uses bestfit hyperbolafit hyperbola
Depth migration uses bestDepth migration uses bestguess moveout curveguess moveout curve
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = 22 22
d (d (gg, t ) , t ) M(M(x,zx,z) = ) = ggx x
Incoherent summationIncoherent summationif guess is wrongif guess is wrong
Coherent summationCoherent summation
Cheaper: no ray tracingCheaper: no ray tracing More expensive: ray tracingMore expensive: ray tracing
Uniform wavelet thicknessUniform wavelet thickness Stretched wavelet thicknessStretched wavelet thickness
=c/f=c/f1/f1/f
Best focusing if v(x,z) correctBest focusing if v(x,z) correctBest focusing if v(x,z) really wrongBest focusing if v(x,z) really wrong
Good focusing if v(x,z) smoothGood focusing if v(x,z) smooth
•Depth Migration in Deep GOM is only Way to Go if V(x,y,z) Depth Migration in Deep GOM is only Way to Go if V(x,y,z) CorrectCorrect
•Therefore, spend time to get v(x,y,z) Correct: Tomography, Therefore, spend time to get v(x,y,z) Correct: Tomography, MVA, Waveform InversionMVA, Waveform Inversion
ConclusionsConclusions
NMO Velocity AnalysisNMO Velocity Analysis
CMPCMP
Tim
eT
ime
xx
TT
cc
d (d (gg, 4[(x-, 4[(x-gg)/c] + )/c] + TT ) ) M(x,M(x,TT) = ) = 22 22
C(T)C(T)
Nyquist Sampling Nyquist Sampling Frequency & AliasingFrequency & Aliasing
Data Aliasing ProblemData Aliasing Problemt > T/2t > T/2
Aliasing SolutionAliasing Solution
Low-pass filtering dataLow-pass filtering dataFancy InterpolationFancy InterpolationFiner time spacingFiner time spacing
digital signal
High freq. masqerade as low freq.
Migration AliasingMigration Aliasing
Data Aliasing ProblemData Aliasing Problemx > x > xx/2/2
Aliasing SolutionAliasing Solution
Low-pass filtering dataLow-pass filtering dataFancy InterpolationFancy InterpolationFiner rec-src spacingFiner rec-src spacing
2D dot product of migration 2D dot product of migration Operator and d(g,t)Operator and d(g,t)
No data aliasing: (dx/dt)min Tmin/2 > x
xx/2/2
Operator Aliasing Operator Aliasing (m(x)=dot product data by mig. Operator)(m(x)=dot product data by mig. Operator)
2D dot product of migration 2D dot product of migration Operator and d(g,t)Operator and d(g,t)
(dx/dt)min Tmin/2 > x