Professional Documents
Culture Documents
Visualisasi Data Seismik 2 Dimensi Dengan Matlab
Visualisasi Data Seismik 2 Dimensi Dengan Matlab
Visualisasi Data Seismik 2 Dimensi Dengan Matlab
% Visualisasi data
for i = 1:200
data2 = data([1:1500],i).*a;
new = (data2+10000*i)./10000;
level_max = max(new);
level_min = min(new);
level_ave = ((level_max+level_min)/2)+0.05;
plot(new,time);
hold on;
area(max(new, level_ave),time,level_ave,'EdgeColor','none','FaceColor','b')
area(min(new, level_ave),time,level_ave,'EdgeColor','none','FaceColor','r')
set(gca,'Ydir','reverse')
set(gca,'XAxisLocation','top');
end
xlabel('CMP')
ylabel('time(s)')
axis([0 200 0 3])
hold off
data100 = data([1:1500],100).*a;
y = data100; % y data
level = 3; % level
figure
plot(y,time)
hold on
area(max(y, level),time, level, 'EdgeColor', 'none', 'FaceColor', 'b')
area(min(y, level),time, level, 'EdgeColor', 'none', 'FaceColor', 'r')
set(gca,'Ydir','reverse')
set(gca,'XAxisLocation','top');
xlabel('CMP')
ylabel('time(s)')
2.Spektrum data seismik sebagai fungsi
kedalaman.
% Copyright: 2018 - Teknik Geofisika, Universitas Pertamina
% URL: https://sites.google.com/site/metkomup/programming
% Cite: Aisy, Safira Rihhadatul; Elsalama, Nadiah Faridah Firdausi; Anugrah, Sari Atika;
Nabila, Afviya;
% Nugraha, Rama Desta (2018): Spektrum Data Seismik sebagai Fungsi Kedalaman. figshare.
https://doi.org/10.6084/m9.figshare.5946658.v1
clear; clc; close;
[data,TraceHeaderInfo,SegyTraceHeaders,SegyHeader] = ReadSegy('seismic_stack.sgy');
clear TraceHeaderInfo, SegyTraceHeaders, SegyHeader;
for i = 1:5
plot((data(:,i)+5000*i),[1:3001]*0.002,'b');
title('Data Seismik');
xlabel('Offset');
ylabel('Time(ms)');
ylim([0 3])
set(gca,'YDir','reverse');
hold on
end
% Memilih trace untuk analisa frekuensi
figure
data100 = data([1:1501],100); %%select data-nth
subplot(2,2,1)
plot(data100,[0:1500]*0.002);
title('Data Seismik');
xlabel('Offset');
ylabel('Time(s)');
ylim([0 3])
set(gca,'YDir','reverse');
subplot(2,2,2)
plot(data100(500:800),[500:800]*0.002);
title('Data Seismik Dangkal');
xlabel('Offset');
ylabel('Time(s)');
ylim([1 1.6])
set(gca,'YDir','reverse');
subplot(2,2,3)
plot(data100(800:1200),[800:1200]*0.002);
title('Data Seismik Menengah');
xlabel('Offset');
ylabel('Time(s)');
ylim([1.6 2.4])
set(gca,'YDir','reverse');
subplot(2,2,4)
plot(data100(1200:1500),[1200:1500]*0.002);
title('Data Seismik Dalam');
xlabel('Offset');
ylabel('Time(s)');
ylim([2.4 3])
set(gca,'YDir','reverse');
% Memilih trace untuk analisa frekuensi
XA = data100(500:1500);
XS = data100(500:800);
XM = data100(800:1200);
XD = data100(1200:1500);
T = 0.002;
Fs = 1/T;
LA = length(XA);
YA = fft(XA);
P2A = abs(YA/LA);
P1A = P2A(1:LA/2+1);
fA = Fs*(0:(LA/2))/LA;
T = 0.002;
Fs = 1/T;
LS = length(XS);
YS = fft(XS);
P2S = abs(YS/LS);
P1S = P2S(1:LS/2+1);
fS = Fs*(0:(LS/2))/LS;
T = 0.002;
Fs = 1/T;
LM = length(XM);
YM = fft(XM);
P2M = abs(YM/LM);
P1M = P2M(1:LM/2+1);
fM = Fs*(0:(LM/2))/LM;
T = 0.002;
Fs = 1/T;
LD = length(XD);
YD = fft(XD);
P2D = abs(YD/LD);
P1D = P2D(1:LD/2+1);
fD = Fs*(0:(LD/2))/LD;
figure
% memilih trace untuk analisa frekuensi
subplot(2,2,1)
plot(fA,P1A)
title('Spectrum All')
xlabel('f(Hz)')
ylabel('Amplitude')
axis([0 70 0 350])
subplot(2,2,2)
plot(fS(1:75),P1S(1:75))
title('Spectrum Dangkal')
xlabel('f(Hz)')
ylabel('Amplitude')
axis([0 70 0 350])
subplot(2,2,3)
plot(fM(1:75),P1M(1:75))
title('Spectrum Menengah')
xlabel('f(Hz)')
ylabel('Amplitude')
axis([0 70 0 350])
subplot(2,2,4)
plot(fD(1:75),P1D(1:75))
title('Spectrum Dalam')
xlabel('f(Hz)')
ylabel('Amplitude')
axis([0 70 0 350])
figure
% memilih trace untuk analisa frekuensi
plot(fA,P1A,'k',fS,P1S,'r',fM,P1M,'g',fD,P1D,'b')
title('Spectrum Comparison')
xlabel('f(Hz)')
ylabel('Amplitude')
axis([0 70 0 350])
legend('all','shallow','middle','deep')
rA = [fA',P1A];
rS = [fS',P1S];
rM = [fM',P1M];
rD = [fD',P1D];
save -ascii rA100.txt rA
save -ascii rS100.txt rS
save -ascii rM100.txt rM
save -ascii rD100.txt rD
save('P1A.txt')
% Input Data
N = input('Masukkan banyak trace: ');
data = ReadSegy('Bla-bla.sgy'); %Membaca Data Seismik
t = [0:500]*0.004; %Rentang Waktu
figure (m)
for i = iper:iked
plot (data(:,i)+2000*i,time,'m');
set (gca,'Ydir','reverse')
hold on;
end
%Picking
[xq,tq] = ginput (p);
wi = b+wf;
wf = wi+p-1;
xA(wi:wf) = xq;
tA(wi:wf) = tq;
n = n+1;
%Gambar bulet
m = m+1;
figure (m)
plot(xq,tq,'ro');
end
% Simpan data picking
datapick = [xA,tA];
save('datapick.txt','datapick','-ascii');
% Gambar Total
figure (m+1)
plot(xA,tA,'ro');
xlabel('\bf\fontsize{12}\fontname{Consolase}Length (m)');
ylabel('\bf\fontsize{12}\fontname{Consolase}Length (m)');
set(gca,'Ydir','reverse')
title('\bf\fontsize{15}\fontname{Consolase}Data Refraksi Seismik');
Bz(i) = Uo*Mz*((a1-a2)-(a3-a4))/(2*phi);
end
%Kurva medan magnetik
figure(1)
subplot(5,1,[1 2])
plot(x,Bz,'.','color','b','markersize',15);
xlim([min(x) max(x)]);
xlabel('\bf\fontsize{12}\fontname{times}Posisi (km)');
ylabel('\bf\fontsize{12}\fontname{times}\delta B (nT)');
title('\bf\fontsize{12}\fontname{times}Modeling Magnetik-Block');
%Gambar objek dibawah tanah
X = [Xo-m,Xo+m,Xo+m,Xo-m];
Y = [z1,z1,z2,z2];
subplot(5,1,[4 5])
fill(X,Y,'b');
xlim([x(1) x(end)]);
ylim([0 30]);
set(gca,'ydir','reverse');
xlabel('\bf\fontsize{12}\fontname{times}Posisi (km)');
ylabel('\bf\fontsize{12}\fontname{times}Kedalaman (km)');
title('\bf\fontsize{12}\fontname{times}Modeling Magnetik-Block');
hold on
[in, on] = inpolygon(xq, yq, xv, yv)
plot(xq(in), yq(in), 'ro')
set(gca,'Color','cyan')
hold off
A = xq(in);disp(A)
B = yq(in);disp(B)
C = zq(in)
%SIMPAN FILE
fileku = fopen('OutputCropping.txt','wt');
A = A;
B = B;
C = C;
LL = length(A)
FormSpec = '%.2f\t\t%.2f\t%.2f\n';
fprintf(fileku,'A\t\tB\tC\n');
for i = 1:LL
fprintf(fileku,FormSpec,A(i),B(i),C(i))
end
fclose(fileku);
%Matrix 100
n1 = 100;
h = waitbar(0,'Travel Time N-1, Please wait...');
steps = n1;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B1 = magic (n1);
A1 = 0.01.*B1;
C1 = A1*B1;
[U,S,V] = svd(A1);
%Hitung B~V*So*U'
for i = 1:n1
for j = 1:n1
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A1 = V*So*U';
Bc = A1*C1;
elapsedtime1 = cputime-t;
%Matrix 200
n2 = 200;
h = waitbar(0,'Travel Time N-2, Please wait...');
steps = n2;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B2 = magic (n2);
A2 = 0.01.*B2;
C2 = A2*B2;
[U,S,V] = svd(A2);
%Hitung B~V*So*U'
for i = 1:n2
for j = 1:n2
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A2 = V*So*U';
B2 = A2*C2;
elapsedtime2 = cputime-t;
%Matrix 300
n3 = 300;
h = waitbar(0,'Travel Time N-3, Please wait...');
steps = n3;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B3 = magic (n3);
A3 = 0.01.*B3;
C3 = A3*B3;
[U,S,V] = svd(A3);
%Hitung B~V*So*U'
for i = 1:n3
for j = 1:n3
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A3 = V*So*U';
B3 = A3*C3;
elapsedtime3 = cputime-t;
%Matrix 400
n4 = 400;
h = waitbar(0,'Travel Time N-4, Please wait...');
steps = n4;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B4 = magic (n4);
A4 = 0.01.*B4;
C4 = A4*B4;
[U,S,V] = svd(A4);
%Hitung B~V*So*U'
for i = 1:n4
for j = 1:n4
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A4 = V*So*U';
B4 = A4*C4;
elapsedtime4 = cputime-t;
%Matrix 500
n5 = 500;
h = waitbar(0,'Travel Time N-5, Please wait...');
steps = n5;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B5 = magic (n5);
A5 = 0.01.*B5;
C5 = A5*B5;
[U,S,V] = svd(A5);
%Hitung B~V*So*U'
for i = 1:n5
for j = 1:n5
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A5 = V*So*U';
B5 = A5*C5;
elapsedtime5 = cputime-t;
%Matrix 600
n6 = 600;
h = waitbar(0,'Travel Time N-6, Please wait...');
steps = n6;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B6 = magic (n6);
A6 = 0.01.*B6;
C6 = A6*B6;
[U,S,V] = svd(A6);
%Hitung B~V*So*U'
for i = 1:n6
for j = 1:n6
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A6 = V*So*U';
B6 = A6*C6;
elapsedtime6 = cputime-t;
%Matrix 700
n7 = 700;
h = waitbar(0,'Travel Time N-7, Please wait...');
steps = n7;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close (h)
t = cputime;
B7 = magic (n7);
A7 = 0.01.*B7;
C7 = A7*B7;
[U,S,V] = svd(A7);
%Hitung B~V*So*U'
for i = 1:n7
for j = 1:n7
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A7 = V*So*U';
B7 = A7*C7;
elapsedtime7 = cputime-t;
%Matrix 800
n8 = 800;
h = waitbar(0,'Travel Time N-8, Please wait...');
steps = n8;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close (h)
t = cputime;
B8 = magic (n8);
A8 = 0.01.*B8;
C8 = A8*B8;
[U,S,V] = svd(A8);
%Hitung B~V*So*U'
for i = 1:n8
for j = 1:n8
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A8 = V*So*U';
B8 = A8*C8;
elapsedtime8 = cputime-t;
%Matrix 900
n9 = 900;
h = waitbar(0,'Travel Time N-9, Please wait...');
steps = n9;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B9 = magic (n9);
A9 = 0.01.*B9;
C9 = A9*B9;
[U,S,V] = svd(A9);
%Hitung B~V*So*U'
for i = 1:n9
for j = 1:n9
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A9 = V*So*U';
B9 = A9*C9;
elapsedtime9 = cputime-t;
%Matrix 1000
n10 = 1000;
h = waitbar(0,'Travel Time N-10, Please wait...');
steps = n10;
for step = 1:steps
% computations take place here
waitbar(step/steps)
end
close(h)
t = cputime;
B10 = magic (n10);
A10 = 0.01.*B10;
C10 = A10*B10;
[U,S,V] = svd(A10);
%Hitung B~V*So*U'
for i = 1:n10
for j = 1:n10
if S(i,j)> 0.0001
So(i,j) = 1/S(i,j);
else
So(i,j) = 0;
end
end
end
A10 = V*So*U';
B10 = A10*C10;
elapsedtime10 = cputime-t;
%Penutup
disp('===================================')
disp('========Nilai Travel Time==========')
disp('====Sudah Disimpan Dalam Folder====')
disp('===================================')
%Figure Kurva
y = [0
elapsedtime1,elapsedtime2,elapsedtime3,elapsedtime4,elapsedtime5,elapsedtime6,elapsedtime
7,elapsedtime8,elapsedtime9,elapsedtime10];
x = [0 n1 n2 n3 n4 n5 n6 n7 n8 n9 n10];
plot (x,y,'--b*','LineWidth',1.5)
legend ('Travel Time')
title('\bf \fontsize {14}\fontname{times}Grafik Travel Time Menurut banyaknya
data','color','m')
xlabel('\bf \fontsize{12}\fontname{times}Banyak Data','color','c');
ylabel('\bf \fontsize{12}\fontname{times}Waktu (s)','color','r');
grid on
fprintf(elacme,'<<=============================================>>\n');
fprintf(elacme,'<<===============DATA TRAVEL TIME==============>>\n');
fprintf(elacme,'<<=============================================>>\n\n');
fprintf(elacme,'<<========================================>>\n');
fprintf(elacme,['Travel Time N ke 1=',num2str(elapsedtime1),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 2=',num2str(elapsedtime2),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 3=',num2str(elapsedtime3),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 4=',num2str(elapsedtime4),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 5=',num2str(elapsedtime5),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 6=',num2str(elapsedtime6),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 7=',num2str(elapsedtime7),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 8=',num2str(elapsedtime8),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 9=',num2str(elapsedtime9),'\tSec\n']);
fprintf(elacme,['Travel Time N ke 10=',num2str(elapsedtime10),'\tSec\n']);
fprintf(elacme,'<<========================================>>\n\n');
elseif n == 2
for i = 9:-1:2;
k = k+(x(i)*(2^(m)));
m = m+1;
end
for j = 10:32
l = l+(x(j)*(2^(a)));
a = a-1;
end
%% IEEE
IEEE = -1^sign*(1+l)*2^(k-127)
else
disp('Nilai yang anda masukkan salah')
end