まず、データ(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補正で使用した速度の順番に対応している。
作成した cvspanel_demo.su は以後不要なので消去してよい。
定速度重合(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 &
$ sort -n pick.txt > pick_sorted.txt
読んだ時間と速度の値のファイルを次のNMO補正のプログラムの入力に使えるように形式を整える。
$ mkparfile < pick.txt > pick.par string1=tnmo string2=vnmopick.txt と pick.par の内容を確認しておく。
$ cat pick.txt $ cat pick.par
$ 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')。 sunmo では '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本並べてある)、比較しやすいように間隔を開けて(振幅が 0 のトレースを並べてある)、右が元の波形。S/Nが向上していることがわかる。
CMP重合後のトレースは、オフセットがゼロ、すなわち、震源と受振点とが同一の点にある場合に得られる記録になる。これをゼロオフセット記録という。
$ 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