Thursday, November 25, 2010

Seismic Processing with Seismic Unix - Part5

Lihat tahapan sebelumnya

Tahap 11:



Pada tahapan ini, saya akan menunjukkan bagaimana caranya melakukan edit geometry. Edit geometry sangat penting dilakukan karena bermanfaat untuk sorting dari shot gather ke CMP gather, koreksi statik, regularisasi bin, dll.

Jika kita melakukan surange, berikut adalah key yang kita miliki:



Dari hasil surange di atas terlihat bahwa data tersebut belum memiliki informasi geometri seperti koordinat sumber, penerima, offset, cdp, dll.

Marilah kita lihat kembali 3 file geometri untuk data ini i.e. Line_001.SPS (sumber), Line_001.RPS (receiver), Line_001.XPS (relational).

Jika kita membuka file Line_001.SPS dengan gedit, maka akan diperoleh informasi sbb:
Di dalam file Line_001.SPS, baris ke 1 s/d 20 merupakan header yang menjelaskan lokasi kolom (COLS) untuk setiap parameter sumber: point number (nomor sumber), Static Correction, Map grid easting (X coordinate), Map grid northing (Y coordinate), Surface Elevation, dll.

Data ini memiliki point number (shot number) 701, 703, 705, ...1201. Informasi 1V1 bukanlah bagian dari point number (lihat kembali header, COLS dari point number adalah 18-25), dengan gedit informasi posisi baris (Ln) dan kolom (Col) bisa dilihat di pojok kanan bawah. Dari sini kita mengetahui bahwa jumlah sumber (shot) adalah (1201-701)/2+1 = 251 shots. Koreksi statik untuk shot pertama dan seterusnya: -50, -50, -51, dst. Koordinat X shot pertama: 688081.8, koordinat Y shot pertama: 3838302.1, dan elevasi shot pertama: 46.0.

Demikian juga dengan file Line_001.RPS (informasi receiver):




Point number (receiver number) adalah 561, 562, ..., 1342. Koreksi statik untuk receiver 561: -48, Koordinat X untuk receiver 561:684590.2, koordinat Y receiver 561:3837867.6, dan elevasi receiver 561:41.0.

Sedangkan file Line_001.XPS, memuat informasi hubungan sumber penerima:


Perhatikan informasi di atas dengan sebaik-baiknya:
Point Number (COLS 30-37): 701, 703, ...1201 merupakan penomoran untuk shot pertama, kedua, dst.

From receiver untuk shot 701: 561 (receiver pertama untuk shot 701)
To receiver untuk shot 701:842 (receiver terakhir untuk shot 701)
From Channel : 1 dan To Channel: 282 untuk semua shot adalah sama artinya setiap shot memiliki jumlah trace 282.

Setelah kita memahami konfigurasi file di atas, saya akan membuat sebuah matrix dengan jumlah kolom 10 i.e. [sx,xy,selev,sstat,gx,gy,gelev,gstat,cdp,offset] dengan jumlah baris sebanyak jumlah trace yang saya miliki (70782).

Dengan menggunakan gedit copy-lah kode berikut, save, lalu beri nama geom

#!/bin/sh
# skip header dengan (NR>20), remove 1V1
# ekstrak source number (col2), sx (col8),sy (col9), selev (col10),sstat (col3)
awk ' gsub(/1V1/,"") {if (NR > 20) {print $2,$8, $9, $10,$3 }}' Line_001.SPS > sps.txt

# skip header dengan (NR>20), remove 1G1
# ekstrak receiver number (col2), gx (col8),gy (col9), gelev (col10),gstat (col3)
awk ' gsub(/1G1/,"") {if (NR > 20) {print $2,$8, $9, $10,$3 }}' Line_001.RPS > rps.txt


Pada terminal linux ketik sh geom

Lalu dengan gedit copy-lah kode berikut, save, lalu beri nama geomoctave.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear; clc
load sps.txt
load rps.txt

% Ingat no of shots: 251,no of receiver in each shot: 282,total number of traces is 251*282=70782

%%%menyusun matrix sps untuk seluruh trace (70782)%%%%%%
for i=1:251
sps_for_traces_in_each_shot{i}=repmat(sps(i,:),282,1);
end
sps_all_traces=cell2mat(sps_for_traces_in_each_shot');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%menyusun matrix rps untuk seluruh trace (70782)%%%%%%
for i=1:251
rps_for_traces_in_each_shot{i}=rps([(i*2)-1:281+(i*2)-1]',:);
end
rps_all_traces=cell2mat(rps_for_traces_in_each_shot');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%% menghitung offset
sx=sps_all_traces(:,2);
sy=sps_all_traces(:,3);
selev=sps_all_traces(:,4);
sstat=sps_all_traces(:,5);

gx=rps_all_traces(:,2);
gy=rps_all_traces(:,3);
gelev=rps_all_traces(:,4);
gstat=rps_all_traces(:,5);
ox=gx-sx;
oy=gy-sy;
offset=sqrt(ox.^2+oy.^2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%menghitung cdp untuk masing-masing trace
%%%dikarenakan interval geophone 25m dan interval sumber 50m, maka:
%%%cdp untuk shot pertama adalah 1 s/d 282
%%%cdp untuk shot kedua adalah 5 s/d 286
%%%cdp untuk shot ketiga adalah 9 s/d 290 dst....(lihat ilustrasi stacking diagram dibawah untuk memahaminya)
for i=1:251
cdp_each_shot{i}=[(4*i-3):281+(4*i-3)]';
end
cdp_all_traces=cell2mat(cdp_each_shot');

geom_header=[sx,sy,selev,sstat,gx,gy,gelev,gstat,cdp_all_traces,offset];

save -ascii geom_header.txt geom_header


%%%%plot koordinat sumber dan penerima
plot(sx,sy,'r*'); hold on
plot(gx,gy,'b^')
%%%%akhir dari kode

Lalu ketik octave untuk memasuki terminal octave. Jika belum memiliki octave (octave adalah open source yang mirip dengan Matlab), anda bisa menginstall dengan mengetik sudo apt-get install octave3.2

Pada terminal octave ketik geomoctave untuk mengeksekusi kode di atas sehingga kita akan memiliki matriks geom_header.txt dan plot koordinat sumber dan penerima.

Keluarlah dari octave dengan menekan ctrl+z

Gambar dibawah ini adalah ilustrasi stacking chart untuk interval sumber 2X interval receiver. Perhatikan CDP yang pertama untuk shot kedua terletak pada CDP ke 5 dari shot pertama, CDP yang pertama untuk shot ketiga terletak pada CDP ke 9 untuk shot kedua, dst.

courtesy freeusp.org


Gambar di bawah ini adalah koordinat sumber (merah) dan penerima (biru). Perhatikan bahwa posisi sumber dan penerima tidak benar-benar berada dalam satu garis lurus, hal demikian terjadi karena kondisi medan yang bersangkutan. Jadi, walaupun secara teoritik kita menghendaki group interval 25m dan shot interval 50m, tetapi pada kenyataannya sangat sulit untuk diwujudkan.

Selanjutnya, ubahlah format dari geom_header.txt menjadi binary dengan mengetikkan:

a2b < geom_header.txt n1=10 > geom_header.bin

a2b adalah perintah untuk mengubah format ascii ke binary, n1=10 adalah jumlah kolom dalam matriks geom_header.txt

Check-lah dengan mengetikkan ls -l, lihat jika ukuran file geom_header.bin adalah 2831280 byte atau 4*10(kolom)*70782(jumlah baris = jumlah trace).

Setelah itu anda siap untuk menuliskan geom_header.bin ke dalam trace header dari data anda dengan perintah di bawah ini (buat dalam satu baris):

sushw < Line_001_kill_vibro_agc_d2_fk_flt_decon.su infile=geom_header.bin key=sx,sy,selev,sstat,gx,gy,gelev,gstat,cdp,offset > Line_001_kill_vibro_agc_d2_fk_flt_decon_geom.su

Dengan perintah

surange < Line_001_kill_vibro_agc_d2_fk_flt_decon_geom.su


Perhatikan bahwa informasi geometry dan cdp sudah berada dalam trace header data seismik anda.

Untuk keperluan sorting dari shot gather ke CMP gather, dua informasi penting yang harus dimiliki adalah cdp dan offset.

Data ini memiliki cdp: 1 1282 (1 - 1282), jika angka yang berada di luar kurung sama dengan yang berada di dalam kurung maka penomoran cdp data ini benar, sedangkan jika kita lihat nilai offset: 12 3525 (3518 - 3509), rentang angkanya berbeda. Hal ini terjadi karena angka offset yang exact sangat sulit diperoleh akibat medan akuisi (lihat plot x-y coordinate sebelumnya). Oleh mengantisipasi hal ini, saya akan melakukan 'regularisasi' offset.

Kita mengetahui dari shot gather bahwa geometri akuisisi data tersebut adalah split-spread dengan interval geophone = 25m dan jarak dari sumber ke geophone pertama=25m.

Ketik gedit copy, paste kode di bawah ini dan save dengan nama regoff.m

clear; clc
%%%offset regularization...
right=[25:25:3525]';
left=[-3525:25:-25]';
offset_each_shot=[left;right];
offset_all_shot=repmat(offset_each_shot,251,1);

%%%mengganti offset pada geom_header.txt dengan offset yang baru
load geom_header.txt
geom_header_reg_offset=[geom_header(:,[1:9]),offset_all_shot];
save -ascii geom_header_reg_offset.txt geom_header_reg_offset
%%%%%


Ketik octave, lalu pada terminal octave ketik regoff

Keluar dari octave dengan ctrl+z, lalu pada terminal linux ketik:

a2b < geom_header_reg_offset.txt n1=10 > geom_header.bin

Ulangi perintah sushw di atas, lalu dengan surange diperoleh:


Dari hasil surange di atas, terlihat bahwa cdp dan offset memiliki nilai yang sama antara di luar kurung dan dalam kurung.


Tahap 12:
Pada tahap ini, kita akan melakukan sorting dari shot ke cmp gather dengan perintah susort berikut (buat dalam satu baris):


susort cdp offset <Line_001_kill_vibro_agc_d2_fk_flt_decon_geom.su > Line_001_kill_vibro_agc_d2_fk_flt_decon_geom_cdp.su

Lalu pilihlah cdp tertentu dan tampilkan:

suwind < Line_001_kill_vibro_agc_d2_fk_flt_decon_geom_cdp.su key=cdp min=1000 max=1002 | suxwigb perc=95

Sehingga diperoleh gambar sbb (klik untuk memperbesar):
Tahap berikutnya

No comments: