next up previous [pdf]

Next: Bibliography Up: GEO 365N/384S Seismic Data Previous: Reverse-time migration

Kirchhoff migration

How accurate is the image in Figure 8b? We can evaluate it by performing prestack depth migration (PSDM). In this part of the assignment, we will image the same dataset using prestack Kirchhoff depth migration method.

shots
shots
Figure 9.
Preprocessed shot gathers from the Teapot Dome dataset.
[pdf] [png] [scons]

psdm
psdm
Figure 10.
Kirchoff prestack depth migration of the Teapot Dome dataset (using every 10th shot).
[pdf] [png] [scons]

  1. Change directory to hw6/kirchhoff.
  2. Run
    scons -c
    
    to remove (clean) previously generated files.
  3. For the prestack migration exercise, we will use the same input as in the previous section but resort it into shot gathers (Figure 9). To display the data on your screen, run
    scons shots.view
    
  4. The first step in the Kirchhoff method is computing traveltime tables. To display the computed table on your screen (as a movie over source locations), run
    scons times.vpl
    
    In addition to traveltimes themselves, we compute the traveltime derivatives with respect to the source and receiver locations (Li and Fomel, 2013).
  5. To compute and display the PSDM image (Figure 10), run
    scons psdm.view
    
    Caution: this computation is expensive and may take some time.

  6. Your task: replace input data with the result of your processing (parabolic Radon demultiple) from the Computational Assignment 5 and compare the results.

  7. (EXTRA CREDIT) For an extra credit, replace cig=n with cig=y in the SConstruct file to generate CIGs (Common Image Point Gathers) instead of a stacked migration image. Examine the flatness of the gathers as an indication of the velocity model correctness. Can you improve the image by updating the velocity model or processing the gathers?

from rsf.proj import *

# Pre-processed CMP gathers from the rtm directory
Fetch(['paracdp.rsf','tparacdp.rsf'],
      'rtm',top='..',server='local')

# Convert to shot gathers, time-power gain and high-pass filter
Flow('shot',  'tparacdp','headermath output="(sx-3237)/25" ')
Flow('offset','tparacdp','headermath output="(offset+3237)/25" ')
Flow('head','offset shot','cat axis=1 ${SOURCES[1]}')

Flow('shots','paracdp head',
     '''
     intbin head=${SOURCES[1]} xkey=0 ykey=1 | 
     window max1=4 | pow pow1=1 | bandpass flo=5 |
     put 
     label2=Offset unit2=km o2=-3.237 d2=0.025
     label3=Shot   unit3=km o3=3.237  d3=0.025
     ''')

Result('shots',
       '''
       byte gainpanel=500 | 
       transp plane=23 memsize=5000 |
       grey3 frame1=750 frame2=500 frame3=90 
       point1=0.8 point2=0.8 flat=n
       title="Shot Gathers" 
       ''')

# Source and receiver coordinates
Flow('ys','shots','window n1=1 n2=1 | math output=x1')
Flow('xs','ys','math output=0')
Flow('zs','ys','math output=0.01')
Flow('scoord','zs ys xs','cat axis=2 ${SOURCES[1:3]} | transp')

Flow('yr',None,'math n1=1131 o1=0 d1=0.025 output=x1')
Flow('xr','yr','math output=0')
Flow('zr','yr','math output=0.006')
Flow('rcoord','zr yr xr','cat axis=2 ${SOURCES[1:3]} | transp')

# Velocity model from the rtm directory
Fetch('vofz.rsf','rtm',top='..',server='local')
Flow('velocity','vofz','remap1 n1=251 o1=0 d1=0.0125 | put o3=0')

# First-arrival traveltime tables
Flow('times tdls tdss','velocity scoord',
     '''
     eikods shotfile=${SOURCES[1]} 
     tdl1=${TARGETS[1]} tds1=${TARGETS[2]} b1=2 b2=2 |
     put o4=3.237 d4=0.025 | window
     ''')
Flow('timer tdlr tdsr','velocity rcoord',
     '''
     eikods shotfile=${SOURCES[1]} 
     tdl1=${TARGETS[1]} tds1=${TARGETS[2]} b1=2 b2=2 |
     put o4=0 d4=0.025 | window
     ''')

Plot('times',
     '''
     window j3=10 | grey color=j title="Traveltime Table" 
     scalebar=y barlabel=Time barunit=s allpos=y 
     minval=0 maxval=10
     ''',view=1)

# Kirchhoff PSDM

Flow('psdm','shots times tdss timer tdsr',
     '''
     kirmigsr cig=n type=l
     stable=${SOURCES[1]} sderiv=${SOURCES[2]}
     rtable=${SOURCES[3]} rderiv=${SOURCES[4]}
     ''',split=[3,'omp',[0]],reduce='add')

Result('psdm','grey title="Kirchhoff PSDM" ')

End()


next up previous [pdf]

Next: Bibliography Up: GEO 365N/384S Seismic Data Previous: Reverse-time migration

2016-08-17