地殻構造探査学

データ解析演習(課題その7)

課題その6へ < 課題その7 > 提出課題

処理の流れ

  1. ヘッダのチェック(前回ですみ)
  2. 周波数フィルタ(前回ですみ)
  3. 振幅回復(前回ですみ)
  4. 速度フィルタ(今回は必要なし)
  5. デコンボリューション(前回ですみ)
  6. 静補正(今回は必要なし)
  7. 速度解析
  8. NMO補正とCMP重合
  9. マイグレーション

速度解析

前回作成した練習用データtest_cdp1100_flt_gain.suを使用して練習をする (デコンボリューションをした人は test_cdp1100_flt_gain_decon.su)。

まず、速度解析(定速度重合: CVS)したパネルを表示する。

$ suvelan nv=160 dv=25 fv=1000 < test_cdp1100_flt_gain.su | suximage f2=1000 d2=25 perc=99.5 mpicks=pick.txt &

図:CVS パネル。縦軸は時間 (s)、横軸は速度 (m/s)。(左)が全体、(右)が拡大。

読みとった速度値が入ったファイル pick.txt を NMO 補正のプログラムの入力に使えるように整形する。

$ mkparfile < pick.txt > pick.par string1=tnmo string2=vnmo

NMO補正とCMP重合

NMO補正をする。
$ sunmo par=pick.par < test_cdp1100_flt_gain.su | suximage perc=98 &
$ sunmo par=pick.par < test_cdp1100_flt_gain.su | suxwigb perc=98 &

補正した結果を見てみよう。反射面が水平に並んでいれば重合(スタック)してみる。 満足しなかった場合は速度解析に戻ってやり直す。

$ sunmo par=pick.par < test_cdp1100_flt_gain.su | sustack | suxwigb perc=98 &
重合すると S/N 比が向上した一本のトレースになる。


いよいよ本番。

ここでは、作業を効率よく行うために、あらかじめ与えた interactive_velocity_analysis.sh というシェルスクリプトを使う。

interactive_velocity_analysis.sh のパラメータを編集することができる。 スクリプトを直接編集してもよいが、その部分を別ファイルに取り出した、 parameters_for_interactive_velocity_analysis.par を編集するとよい。 この名前のファイルが存在する場合には、ファイルが読み込まれ、こちらの設定が優先される。

$ emacs parameters_for_interactive_velocity_analysis.par &
$ vi parameters_for_interactive_velocity_analysis.par
など。

#================================================
# USER AREA -- SUPPLY VALUES
#------------------------------------------------
# CMPs for analysis

# CMPs
cmp1=933
cmp2=958
cmp3=983
cmp4=1008
cmp5=1033
cmp6=1058
cmp7=1083
cmp8=1108
cmp9=1133
cmp10=1158
cmp11=1183
cmp12=1208
cmp13=1233
cmp14=1258
cmp15=1283

# Number of CMPs
numCMPs=15

#------------------------------------------------
# File names

indata=Ncdps.su      # SU format
outpicks=Nvpick.txt  # ASCII file

#------------------------------------------------
# display choices

myperc=95       # perc value for plot
plottype=1      # 0 = wiggle plot,  1 = image plot

percvelan=99    # perc value for Velocity Analysis Panel

# More parameters are customizable. See the script itself.
# end
速度解析を行う点数が多い方が解析結果の精度がよいが、あまり多いと読み取り作業が大変である。少なければ明らかに精度が落ちる(やってみればよくわかる)。最低でも10点はほしい。

シェルスクリプトを実行する。

$ sh interactive_velocity_analysis.sh
読み取りを終えてできたファイル Nvpick.txt は例えば以下の通り。
$ cat Nvpick.txt
cdp=950,1050,1150,1200,1280 \
tnmo=0,6.20617,6.54153,6.85235,7.17952,7.51488,7.89113 \
vnmo=1500,1453.33,1488.89,1640,1648.89,1666.67,1915.56 \
tnmo=0,6.02364,6.59894,7.08253,7.39103,7.7162 \
vnmo=1500,1518.19,1669.86,1644.58,1631.94,1859.44 \
...
この出力は、そのまま NMO 補正のプログラムに使える形式になっている。

NMO補正とCMP重合を実行する。

$ sunmo par=Nvpick.txt < Ncdps.su | sustack > Nzerooffset.su
$ suximage perc=98 < Nzerooffset.su &
CMP重合によって S/N比が改善されたゼロオフセット記録断面が得られる。

図:CMP重合して得られたゼロオフセット記録。


速度構造の表示

ここでは、シェルスクリプト plot_velocity.sh を使用する。なければ ここを参考にしてコピーする。

このシェルには速度解析の結果 (Nvpick.txt) が必要である。このデータを用いて速度構造を表示する。 重合速度 (stacking velocity) と 区間速度 (interval velocity) の双方が表示される。

$ sh plot_velocity.sh
速度構造、特に区間速度の構造が現実にあり得ないような値(高速度あるいは低速度)になっている場合には、速度解析をやり直すことを勧める。

図:速度解析で求めた速度構造、(左)重合速度、(右)区間速度。この例の区間速度には低速度、高速度の構造が見られる。


マイグレーション

いよいよ最終段階のマイグレーション。

マイグレーションの方法はたくさんあるが、今回はf-kマイグレーションを拡張 した Stolt (1978) の時間マイグレーションの手法を使う。 最大の理由は、速度構造(深度方向のみ)を考慮でき「計算時間が短くてすぐに結果が出る」から。まずは練習。

$ sustolt cdpmin=900 cdpmax=1300 dxcdp=16.667 vmig=1500 tmig=6 < Nzerooffset.su | suximage perc=98 &
$ sustolt cdpmin=900 cdpmax=1300 dxcdp=16.667 vmig=1500 tmig=6 lstaper=20 lbtaper=100 < Nzerooffset.su | suximage perc=98 &

図:v = 1500 m/s としたマイグレーション結果。

速度を一定としていろいろな速度でマイグレーションをしてみる。上の vmig をいろ いろ変えてみればよいが、一気にやるには シェルスクリプト create_MIG_panel.sh を動かしてみるとよい。 スクリプトには

------------------------------------
indata=Nzerooffset.su
outdata=migpanel.su
vmin=1000
vmax=2000
dv=100
------------------------------------
とあり、速度 1000 m/s から 2000 m/s まで 100 m/s 間隔の一定速度でマイグレーションする(適宜変更してよい)。
$ sh create_MIG_panel.sh
結果を比べてみよう。また、動画で表示してみるとわかりやすい(かも)。
$ suxmovie n2=401 n3=11 loop=1 perc=98 title="Flame %g" sleep=1 < migpanel.su &

低速度では上向きに凸だったデフラクションカーブが、マイグレーションしすぎる(高速度すぎる)と下向きに凸のカーブになる。

図:v = 1000, 1500, 2000 m/sとしたマイグレーション結果。

精度のよいマイグレーションを行うために、

などを参考にして 1 次元速度構造を作成し、その速度構造を与えてマイグレーションを行う。
$ sustolt cdpmin=900 cdpmax=1300 dxcdp=16.667 tmig=0,6,7,8,9 vmig=1500,1500,1600,1700,1800 lstaper=20 lbtaper=100 < Nzerooffset.su > Nmig.su
$ suximage < Nmig.su perc=98 &

ここで得られたマイグレーション結果が構造断面(時間断面)である。

sustolt は深度方向の速度構造を考慮できるとは言え時間マイグレーションである。 構造が複雑な場合には、速度構造を与えた深度マイグレーションを用いると、直接深度断面が得られる。ただし、深度マイグレーションは一般に計算時間がかかり、また速度構造に依存するため、速度構造の不確定性がある場合には慎重な適用が望まれる。


深度変換

速度構造が得られていれば時間を深度に変換することができる。 実際には時間断面のままで解釈することも多い (速度情報の精度に不正確さが残るため)。

深度変換を行う。

$ suttoz t=0,6,7,8,9 v=1500,1500,1600,1700,1800 < Nmig.su > Nmigdepth.su
$ suximage < Nmigdepth.su perc=98 &
RMS速度(=~重合速度)から区間速度を求めることができる。
$ suintvel mode=1 t0=0,6,7,8,9 vs=1500,1500,1600,1700,1800 
$ suintvel mode=1 t0=0,6,7,8,9 vs=1500,1500,1600,1700,1800 outpar=intvel.dat


課題その6へ < 課題その7 > 提出課題
戻る
Last modified: Wed Oct 18 17:53:10 JST 2023