25
RAY TRACING IN MATLAB RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Embed Size (px)

Citation preview

Page 1: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

RAY TRACING IN MATLABRAY TRACING IN MATLAB

Ruiqing He

University of Utah

Feb. 2003

Page 2: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

OutlineOutline

• Introduction

• Modeling

• Strategy and steps

• Reflection and multiple ray tracing

• Examples

• Conclusion

Page 3: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

IntroductionIntroduction

• Role of ray tracing in geophysics

• Practical requirements:

accuracy, speed, ray path,

reflection, multiples, 3D, amplitude.

• Matlab

Page 4: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Ray Tracing MethodsRay Tracing Methods

• Shortest path methods:

Fischer (1993), Moser (1991)

• Wave-equation-based:

Sava (2001)

Page 5: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

This Ray TracerThis Ray Tracer

• Shortest path method:

Grid of velocity is finer than or

equal to the grid of ray path.

• Versatile: reflection & multiples

• Accurate

• Robust

Page 6: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

ModelingModeling• Block model & grid model

Page 7: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

StrategyStrategy• Fermat’s principle

• Huygen’s principle:

original source and secondary source

• Data structure: V(x,z), T(x,z), Ray(x,z,1:2)

• Flag(x,z): 0-unvisited; 1-visited; 2-decided

Page 8: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

StepsSteps• Step 0: T(x0,z0)=0; Flag(x0,z0)=2;

Ray(x0,z0,1)=x0; Ray(x0,z0,2)=z0;

• Step 1: sub-ray tracing from the original source.

Page 9: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

SearchSearch

• Step 2: all visited nodes record:

T(x,z) and Ray(x,z,1:2), Flag(x,z)=1.• Step 3: search nodes Flag(x,z)==1 & min(T(x,z)).• Step 4: decided node = next secondary source, as

original source, repeat from step 0, until all

interested nodes are decided.

Page 10: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

SelectionSelection

Page 11: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Reflections and MultiplesReflections and Multiples

• Step 1: do one transmission ray tracing until all nodes on the reflector are decided.

• Step 2: keep these nodes and make them Flag=1, refresh all other nodes.

• Step 3: jump directly into step 3 in the transmission ray tracing loop.

So, 1 reflection ray tracing = 2 transmission ray tracing; 1 first order multiple ray tracing = 4 transmission ray tracing; 1 2nd order multiple ray tracing = 6 transmission ray tracing;

Page 12: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Reflections and MultiplesReflections and Multiples

Page 13: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Reflections and MultiplesReflections and Multiples

Frozen exploding reflector

Page 14: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

ExamplesExamples• Linear gradient model

50 m 100 m

50 m

100 m

Travel time field Sec.

0.05

0.08

0

Page 15: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

ComparisonComparison

T

Distance 95 m

0.09 s

0.07 s

75 m

Page 16: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Ray pathRay path

50 m100 m

100 m

50 m

Page 17: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Reflection ray tracingReflection ray tracing

50 m

50 m

100 m

100 m

Page 18: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Multiple ray tracingMultiple ray tracing

50 m

50 m

100 m

100 m

Page 19: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

3D ray tracing3D ray tracing

Page 20: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Complex model ray tracingComplex model ray tracing

12000 ft

6000 ft

25000 ft 50000 ft

14000

6000

ft/sSalt Dome Model

Page 21: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Travel Time FieldTravel Time Field

12000 ft

6000 ft

25000 ft 50000 ft

Sec.5

3

0

Page 22: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

Ray PathRay Path

6000 ft

12000 ft

25000 ft 50000 ft

Page 23: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

SpeedSpeed

10,000 40,000 90,000

Grid size

CPU Time(Sec.)

2

10

16

CPU Time on a 2.2 GHZ AMD

Page 24: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

ConclusionConclusion

• Flexibility: ray path, reflections & multiples

• Speed: depends on sub ray tracing length

• Accuracy and robustness

• Applications: tomography and migration

• Extendable: C or Fortran

• Available by email: [email protected]

Page 25: RAY TRACING IN MATLAB Ruiqing He University of Utah Feb. 2003

ThanksThanks

• 2002 members of UTAM for financial support.