Marilah kita gunakan data interval velocity dan data seismic yang sebelumnya saya gunakan di sini.
Oleh karena data kecepatan yang kita miliki adalah interval velocity, maka langkah pertama adalah melakukan konversi dari interval velocity menjadi Average Velocity.
Gunakan perintah berikut untuk mengkonversi format su menjadi ascii:
suascii < velocity.su bare=1 > velocity.ascii
Selanjutnya buatlah kode octave dengan gedit dan berilah nama rmsvelgen.m:
clear; clc
nocmp=574; %%no cmp veocity harus sama dengan no cmp seismic
nosamp=751; %%no samples
nocmporig=2301; %%no cmp origial pada model kecepatan (kita harus melakuka desimasi)
data1=load('velocity.ascii');
data2=reshape(data1,nosamp,[]);
ind=[4:4:nocmporig-4]; %% desimasi cmp
data3=data2(:,ind);
for i=1:nocmp
trace{i}=data3(:,i);
end
for j=1:nocmp
trace{j}=data(:,j);
trace{j}(1)=trace{j}(1);
for i=1:nosamp-1
trace{j}(i+1)=trace{j}(i)+trace{j}(i+1);
end
end
for j=1:nocmp
for i=1:nosamp-1
traceb{j}(i)=trace{j}(i)/i;
end
end
vel2=cell2mat(traceb');
vel3=vel2';
save -ascii velrms.txt vel3
Run kode octave di atas dengan mengetik rmsvelgen pada terminal octave.
Pada terminal linux, ketiklah perintah berikut untuk mengkonversi dari ascii ke binary:
a2b < velrms.txt > velrms.bin
Convert dari binary ke su, flip dan tampilkan lalu QC:
suaddhead ns=574 < velrms.bin | sushw key=dt a=4000 > velrms.su
suflip flip=0 < velrms.su > velrms1.su
mv velrms1.su velrms.su
suximage < velrms.su legend=1 &
Ubah menjadi binary kembali, lalu smoothing, batasi hingga t=2.75s (menghindari noise) dan QC dengan menampilkannya:
sustrip < velrms.su > velrms.h@ ftn=0
smooth2 < velrms.h@ n1=750 n2=574 r1=20 r2=20 > smoothvelrms
suaddhead ns=750 < smoothvelrms | sushw key=dt a=4000 > smoothvelrms.su
suwind < smoothvelrms.su > smoothvelrms1.su tmax=2.75
mv smoothvelrms1.su smoothvelrms.su
suximage < smoothvelrms.su legend=1 &
Setelah window ximage aktif, tekan huruf 'h' pada keyboard untuk mengubah skala warna.
Ubah kembali ke binary:
sustrip < smoothvelrms.su > smoothvelrms.h@ ftn=0
Untuk data seismik, lakukan sorting untuk membuat domain Common Offset dan membatasinya hingga t=2.75s
susort offset gx < data.su > data_co.su
suwind < data_co.su > data_co1.su tmax=2.75
mv data_co1.su data_co.su
QC Offset -800
suwind < data_co.su key=offset min=-800 max=-800 | suximage perc=90 title="offset -800m"
PreSTM dilakukan offset by offset, sehingga buatlah kode Bourne Shell untuk menjalankan PreSTM. Lakukan surange untuk mempelajari parameter-parameternya.
#!/bin/sh
##set -x
offsetmin=-2575
offsetmax=-200
offdist=25
filein=data_co.su
vfile=smoothvelrms.h@
#################################################
n=$offsetmin
while [ $n -le $offsetmax ]
do
suwind < $filein key=offset min=$n max=$n | suktmig2d vfile=$vfile dx=25 > data_pstm_co$n.su
n=$((n+$offdist))
done
Setelah kode Bourne Shell tersebut dijalankan, maka anda akan memperoleh hasil PreSTM untuk masing-masing offset.
Buatlah Kode Bourne Shell Berikut untuk melakukan penggabungan file Common Offset:
#!/bin/sh
##set -x
offsetmin=-2575
offsetmax=-200
offdist=25
fileout=data_pstm_co.su
echo "#!/bin/sh" >> gabung
echo "##set -x" >> gabung
echo "cat \\" >> gabung
n=$offsetmin
while [ $n -le $((offsetmax)) ]
do
echo "data_pstm_co$n.su \\" >> gabung
n=$((n+$offdist))
done
echo "| sushw key=tracl a=1 > $fileout" >> gabung
Setelah selesai jalankan sh gabung, sehingga diperoleh file data_pstm_co.su
Lakukan sorting data sehingga diperoleh cdp gather:
susort cdp offset < data_pstm_co.su > data_pstm_cdp.su
Lakukan QC sehingga diperoleh gambar berikut:
suwind < data_pstm_cdp.su key=cdp min=100 max=103 | suxwigb perc=90 &
Lakukan Mute:
sumute < data_pstm_cdp.su > data_pstm_cdp_mute.su xmute=-2575,-200 tmute=1.1,0.1 key=offset
Lakukan QC:
suwind < data_pstm_cdp_mute.su key=cdp min=100 max=103 | suxwigb perc=90 &
Lakukan Stacking untuk memperoleh hasil Stack PreSTM:
sustack < data_pstm_cdp_mute.su | suximage perc=90 &
clear; clc
nocmp=22; %%% katakanlah pada model Marmousi kita hanya melakukan analisa kecepatan untuk 22 cmp
cmpint=20; %%% dengan interval cmp=20
ts=0.004; %%%sampling waktu
tmin=0; %%%waktu t0
tmax=3-ts; %%%waktu maksimum pada data Marmousi awal
cmp1=100; %%%CMP pertama dari analisa kecepatan
cmp2=520; %%%CMP terakhir dari analisa kecepatan
cmp1x=1; %%%CMP awal pada seismik
cmp2x=574; %%%CMP akhir pada seismik
ns=750; %%%jumlah sample pada data seismik
%File dari hasil analisa kecepatan atau Velocity Picker,
%hapus 2 baris pertama, tnmo=, vnmo=, dan \ (spasi \).
%dengan demikian filenya bisa dibaca oleh octave
fid=fopen('vpick.txt','rt');
for i=1:(nocmp*2)
line=fgets(fid);
tv{i}=str2num(line);
end
for i=1:nocmp
time{i}=[tmin,tv{i*2-1},tmax];
end
for i=1:nocmp
a=size(tv{i*2})(1,1); b=size(tv{i*2})(1,2);
vel{i}=[tv{i*2}(a),tv{i*2},tv{i*2}(b)];
end
%interpolasi dan regularisasi
tnew=[tmin:ts:tmax];
for i=1:nocmp
vnew{i}=interp1(time{i},vel{i},tnew);
end
vall=cell2mat(vnew');
vel1=vall';
velearly=repmat(vel1(:,cmp1x),1,(cmp1-cmp1x));
vellast=repmat(vel1(:,nocmp),1,(cmp2x-cmp2));
for i=1:ns
valhornew{i}=interp1([cmp1:cmpint:cmp2]', vall(:,i),[cmp1:cmp2]');
end
velmid=cell2mat(valhornew);
vel2=velmid';
velocity=[velearly,vel2,vellast];
save -ascii velocity.txt velocity
Lakukan proses di atas untuk melakukan smoothing dan konversi ke binary.
Gambar berikut adalah RMS Velocity dengan interpolasi dari hasil analisa kecepatan.
No comments:
Post a Comment