地殻構造探査学

データ解析演習(その4)

課題その3へ < 課題その4 > 課題その5へ

NMO補正

この課題ではサンプルデータ demo_nmo.su を使用する。 データがなければここを参考にしてコピーする。

まず、データ(CMPギャザー)を表示する。

$ suximage < demo_nmo.su perc=98 &
このCMPギャザーを一定速度 v=1500 m/s でNMO補正し、結果を表示する。
$ sunmo < demo_nmo.su vnmo=1500 | suximage perc=98 &

図:NMO補正、(左)オリジナル、(右)速度1500 m/sでNMOした結果。

vnmo の値を 1600, 1700, 1800, 1900, 2000, 2100, 2200 と変化させて、NMO補正の結果がどのよう になるか調べよう。

$ sunmo < demo_nmo.su vnmo=1600 | suximage perc=98 &
$ sunmo < demo_nmo.su vnmo=1700 | suximage perc=98 &
.....

自動的に速度を変えながら一定速度でNMO補正を行う 定速度スキャン(CVS)を表示するシェルスクリプト create_CVS_panel.sh を動かしてみる。 スクリプトの最初を見ると、

------------------------------------
# Parameters
vmin=1200
vmax=2500
dv=50
------------------------------------
ここでは速度1200 m/sから2500 m/sまで50 m/s間隔の速度でNMO補正をして並べて表示する。
$ sh create_CVS_panel.sh

図:CVSパネルのイメージ表示、(左)オリジナル、(右)速度1200 m/sから 2500 m/sまで50 m/s間隔の速度でNMOした結果。

横軸が重合速度を表示していないのでわかりにくいが、それぞれ反射波が上から1650, 1850, 2000, 2200 m/s あたりで適切にNMO補正されていることがわかる。これにより重合速度を求める ことができる。

速度を変えながらNMO補正を行った結果を動画で表示してみる。

$ suxmovie < cvspanel_demo.su n1=1601 n2=69 n3=28 loop=1 sleep=1 perc=98 &

NMO補正をした後にそれぞれのCMPの波形を重合(足し合わせる)。その効果を以下で確認する。

$ susort d2 < cvspanel_demo.su | sustack key=d2 | suxwigb &
$ susort d2 < cvspanel_demo.su | sustack key=d2 | suxwigb key=d2 &
重合の結果を表示すると、適切な速度でNMO補正されている波形の振幅が大きくなることがわかる。

図:NMO補正後に重合をした結果の波形表示。横軸は重合結果のトレース番号であるが、NMO補正で使用した速度の順番に対応している。

作成した cvspanel_demo.su は以後不要なので消去してよい。


速度解析

上記のようにNMO補正を利用して速度構造を求める方法が速度解析である。

定速度重合(CVS)したパネルを表示する。

$ suvelan fv=1200 dv=50 nv=30 < demo_nmo.su | suximage f2=1200 d2=50 &
重合速度が正しいと足しあわされた振幅が強く(この図では赤く)なる。 そこで、マウスを振幅の大きい位置に移動させ、中ボタンを押すと時間と速度の値を読み取ることができる。

図:定速度重合(CVS)センブランスパネル。縦軸は時間 (s)、横軸は重合に用いた速度 (m/s)。

次に、's' で読んだ値をファイルに書くようにする。'mpicks= ' でデータを書き込むファイル名を与える。

$ suvelan fv=1200 dv=50 nv=30 < demo_nmo.su | suximage f2=1200 d2=50 perc=98 mpicks=pick.txt & 

読んだ時間と速度の値のファイルを次のNMO補正のプログラムの入力に使えるように形式を整える。

$ mkparfile < pick.txt > pick.par string1=tnmo string2=vnmo
pick.txt と pick.par の内容を確認しておく。
$ cat pick.txt
$ cat pick.par


NMO補正とCMP重合

NMO補正をする。速度構造は tnmo と vnmo の組で下のように与えるのであるが、
$ sunmo tnmo=1.0,1.5,2.0,2.5,..... vnmo=1400,1500,1600,1700,.....  < demo_nmo.su | .....
tnmo と vnmo の内容を pick.par に書き込んであるので、ここではこれを読み込む。
$ sunmo par=pick.par smute=5 < demo_nmo.su | suximage perc=98 &
$ sunmo par=pick.par smute=1.5 < demo_nmo.su | suximage perc=98 &
NMO補正をするとオフセットの大きいところで波形が伸びてしまったり、並びが ずれてしまうことがわかる (smute=5の場合)。 そのような部分を切る操作をミュート(mute)といい、'smute=' で指定する。 ここでは、元の波形の1.5倍以上延びた部分をミュートする ('smute=1.5')。

図:NMO補正の結果。反射波が水平に並んでいることがわかる。

CMP重合(スタック)してみる。

$ sunmo par=pick.par < demo_nmo.su | sustack > trace.su
$ sunmo par=pick.par < demo_nmo.su | sustack repeat=1 nrepeat=10 > trace10.su
$ suxwigb perc=98 < trace.su &
$ suxwigb perc=98 < trace10.su &
上の図のNMO補正された複数のトレースを重合する(足す)ので上の一本のトレースになる。2番目のように、'repeat=1 nrepeat=10' とすると重合結果を10回出力する。 どのくらいS/N比が向上したか、元の図と比較してみる。

図:NMO補正と重合、(左)が波形、(右)がイメージ表示、それぞれの図内で 左が重合結果(5本並べてある)、間隔を開けて、右が元の波形。S/Nが向上していることがわかる。

CMP重合後のトレースは、オフセットがゼロ、すなわち、震源と受振点とが同一の点にある場合に得られる記録になる。これをゼロオフセット記録という。


課題

サンプルデータ demo_nmo.su にさらにノイズを加えてS/N比を下げたデータを作る。
$ suaddnoise sn=5 < demo_nmo.su > demo_nmo_more_noise.su

このデータを速度解析してNMO補正したのち、CMP重合しなさい。

とともに提出しなさい。 ノイズに反射波が埋もれてしまったデータに対しても速度解析や重合はかなり有効であることがわかるだろう。

※重合結果のトレースと元のデータを同じ振幅スケールで表示させる方法

重合結果のトレース(ここでは trace.su とする)をわかりやすいように5本並べ、 その横に元のデータを書きたい場合、cat を利用してデータを追記すればよい。

$ .... | sustack repeat=1 nrepeat=5 > trace5.su
$ cat trace5.su demo_nmo_more_noise.su > stacked_result_and_original.su
重合結果 (trace.su) が5本並んだ後に、元のデータ (demo_nmo_more_noise.su) が出力される。

※参考

演習の例では、見やすいように重合結果の波形(5本)と元のデータとの間に、値がゼロのトレースを5本並べてある。

$ sunull ntr=5 nt=1601 > null5.su
$ cat trace5.su null5.su demo_nmo_more_noise.su > stacked_result_and_original.su
トレースのサンプル数はヘッダの値の範囲を出力する surange で調べることができる。
課題その3へ < 課題その4 > 課題その5へ
戻る
Last modified: Tue Nov 28 10:06:54 JST 2023