Anda di halaman 1dari 11

Geotomo

Gian Ricardo Halim (03411640000009)


Nur Isnaini R (03411640000007
Rizki Putri Amaliastuti (03411640000008)
Christopher Salim (03411640000025)
Bagoes Idcha Mawardi (03411640000046)

1. a) FFT pada sinyal time series dan sinyal domain posisi ke domain frekuensi.
Script yang digunakan untuk menghasilkan FFT sinyal time series menjadi
domain frekuensi adalah sebagai berikut : Terlampir
Dengan demikian, dapat diperoleh plot magnitude terhadap frekuensi.
Untuk plot sinyal domain posisi, digunakan phantom image yang merepresentasikan
sinyal pada posisi x dan y;

1. b) Metodologi Script Tomografi di CT SCAN – Metode Direct Fourier


Reconstruction, DFR of a Tomographic Slice (Fourier Slice Transform, FST)
2. Forward Modelling 1 lapisan
a. Forward Modelling 1 lapisan without anomali
SCRIPT
close all
clear all
clc

%Pendefinisian besar grid dan titik awal serta titik akhir


dx= 170; %lebar pada kotak sumbu x (Horizontal)
dy= 170; %Lebar pada kotak sumbu y (Vertikal)
x0= 0; %titik awal di x
y0= 0; %titik awal di y
xend= 1200; %titik akhir di x
yend= 1200; %titik akhir di y

%koordinat untuk source dan receiver


source_x = x0;
source_y = (2*dy);
receiver_x1=xend;
receiver_y1=(2*dy);
receiver_x2=xend;
receiver_y2=(4*dy);
receiver_x3=xend;
receiver_y3=(6*dy);

source_x2 = x0;
source_y2 = (4*dy);
receiver_x4=xend;
receiver_y4=(2*dy);
receiver_x5=xend;
receiver_y5=(4*dy);
receiver_x6=xend;
receiver_y6=(6*dy);

source_x3 = x0;
source_y3 = (6*dy);
receiver_x7=xend;
receiver_y7=(2*dy);
receiver_x8=xend;
receiver_y8=(4*dy);
receiver_x9=xend;
receiver_y9=(6*dy);

X=[xend];
Y=[receiver_y1 receiver_y2 receiver_y3 receiver_y4 receiver_y5
receiver_y6 receiver_y7 receiver_y8 receiver_y9];

%kasusnya adalah HOMOGEN maka semua panjang lintasan ray tracing tiap
blok
%dianggap sama
panjang_ray=zeros(1,length(X));
for i=1:3
panjang_ray(i)=((X-(source_x)).^2+ (Y(i)-(source_y)).^2).^0.5;
end
for j=4:6
panjang_ray(j)=((X-(source_x2)).^2+ (Y(j)-(source_y2)).^2).^0.5;
end
for k=7:9
panjang_ray(k)=((X-(source_x3)).^2+ (Y(k)-(source_y3)).^2).^0.5;
end
PRB(1)=panjang_ray(1)./9;
PRB(2)=panjang_ray(2)./9;
PRB(3)=panjang_ray(3)./9;
PRB(4)=panjang_ray(4)./9;
PRB(5)=panjang_ray(5)./9;
PRB(6)=panjang_ray(6)./9;
PRB(7)=panjang_ray(7)./9;
PRB(8)=panjang_ray(8)./9;
PRB(9)=panjang_ray(9)./9;

nx=xend/dx; %jumlah kotak pada sumbu x


ny=yend/dy; %jumlah kotak pada sumbu y
V=[3600];
S=[V'].^-1; %merubah kecepatan menjadi slowness
G=[PRB(1);
PRB(2);
PRB(3);
PRB(4);
PRB(5);
PRB(6);
PRB(7);
PRB(8);
PRB(9);];

D=G*S; %menghitung waktu kalkulasi


display('waktu kalkulasi model')
D;
e=10;
Iw=diag([0.583]);
M=inv(G'*G+(e.^2)*Iw)*G'*D;
V_baru=1./M;

%plot grafik 2D untuk kecepatan model


kecepatan=[3600];
batas=[0 1200];
Kece_awal=zeros(1200,1200);
for i=1:(length(batas)-1)
Kece_awal(batas(i)+1:batas(i+1),1:end)=kecepatan(i);
end

%membuat grid yang kecepatannya anomali


Kece_awal(1:1200,1:1200)=kecepatan(1);
Z=Kece_awal;
[Xm Ym]=meshgrid(1:1:1200, 1:1:1200);
contourf(Xm,Ym,Z,3)
for i=1:3
line([x0 1200],[2*dy Y(i)],'color','r','LineStyle','-','LineWidth',3)
hold on

plot(source_x,source_y,X,Y,'o','MarkerEdgeColor','g','MarkerFaceColor','g
','MarkerSize',10)
hold on

plot(source_x,source_y,'p','MarkerEdgeColor','y','MarkerFaceColor','y','M
arkerSize',20);
end
for j=4:6
line([x0 1200],[4*dy Y(j)],'color','r','LineStyle','-','LineWidth',3)
hold on
plot(source_x2,source_y2,X,Y,'o','MarkerEdgeColor','g','MarkerFaceColor',
'g','MarkerSize',10)
hold on

plot(source_x2,source_y2,'p','MarkerEdgeColor','y','MarkerFaceColor','y',
'MarkerSize',20);
end
for k=7:9
line([x0 1200],[6*dy Y(k)],'color','r','LineStyle','-','LineWidth',3)
hold on

plot(source_x3,source_y3,X,Y,'o','MarkerEdgeColor','g','MarkerFaceColor',
'g','MarkerSize',10)
hold on

plot(source_x3,source_y3,'p','MarkerEdgeColor','y','MarkerFaceColor','y',
'MarkerSize',20);
end

set(gca,'ydir','reverse')
xlim([0 1200]); ylim([0 1200]);
xlabel('Koordinat X(m)'); ylabel('Koordinat Y (m)');
title ('Forward Modelling 1 Lapis')
b. Forward Modelling 1 lapisan with anomali
SCRIPT
close all
clear all
clc

%Pendefinisian besar grid dan titik awal serta titik akhir


dx= 170; %lebar pada kotak sumbu x (Horizontal)
dy= 170; %Lebar pada kotak sumbu y (Vertikal)
x0= 0; %titik awal di x
y0= 0; %titik awal di y
xend= 1200; %titik akhir di x
yend= 1200; %titik akhir di y

%koordinat untuk source dan receiver


source_x = x0;
source_y = (2*dy);
receiver_x1=xend;
receiver_y1=(2*dy);
receiver_x2=xend;
receiver_y2=(4*dy);
receiver_x3=xend;
receiver_y3=(6*dy);

source_x2 = x0;
source_y2 = (4*dy);
receiver_x4=xend;
receiver_y4=(2*dy);
receiver_x5=xend;
receiver_y5=(4*dy);
receiver_x6=xend;
receiver_y6=(6*dy);

source_x3 = x0;
source_y3 = (6*dy);
receiver_x7=xend;
receiver_y7=(2*dy);
receiver_x8=xend;
receiver_y8=(4*dy);
receiver_x9=xend;
receiver_y9=(6*dy);

X=[xend];
Y=[receiver_y1 receiver_y2 receiver_y3 receiver_y4 receiver_y5
receiver_y6 receiver_y7 receiver_y8 receiver_y9];

%kasusnya adalah HOMOGEN maka semua panjang lintasan ray tracing tiap
blok
%dianggap sama
panjang_ray=zeros(1,length(X));
for i=1:3
panjang_ray(i)=((X-(source_x)).^2+ (Y(i)-(source_y)).^2).^0.5;
end
for j=4:6
panjang_ray(j)=((X-(source_x2)).^2+ (Y(j)-(source_y2)).^2).^0.5;
end
for k=7:9
panjang_ray(k)=((X-(source_x3)).^2+ (Y(k)-(source_y3)).^2).^0.5;
end
PRB(1)=panjang_ray(1)./9;
PRB(2)=panjang_ray(2)./9;
PRB(3)=panjang_ray(3)./9;
PRB(4)=panjang_ray(4)./9;
PRB(5)=panjang_ray(5)./9;
PRB(6)=panjang_ray(6)./9;
PRB(7)=panjang_ray(7)./9;
PRB(8)=panjang_ray(8)./9;
PRB(9)=panjang_ray(9)./9;

nx=xend/dx; %jumlah kotak pada sumbu x


ny=yend/dy; %jumlah kotak pada sumbu y
V=[3600 5000];
S=[V'].^-1; %merubah kecepatan menjadi slowness
G=[PRB(1) PRB(1);
PRB(2) PRB(2);
PRB(3) PRB(3);
PRB(4) PRB(4);
PRB(5) PRB(5);
PRB(6) PRB(6);
PRB(7) PRB(7);
PRB(8) PRB(8);
PRB(9) PRB(9);];

D=G*S %menghitung waktu kalkulasi


display('waktu kalkulasi model')
D
e=10
Iw=diag([0.309 0.43]);
M=inv(G'*G+(e.^2)*Iw)*G'*D;
V_baru=1./M

%plot grafik 2D untuk kecepatan model


kecepatan=[V_baru(1) V_baru(2)];
batas=[0 1200];
Kece_awal=zeros(1200,1200);
for i=1:(length(batas)-1)
Kece_awal(batas(i)+1:batas(i+1),1:end)=kecepatan(i);
end

%membuat grid yang kecepatannya anomali


Kece_awal(500:850,400:800)=kecepatan(2);
Z=Kece_awal;
[Xm Ym]=meshgrid(1:1:1200, 1:1:1200);
contourf(Xm,Ym,Z,3)
for i=1:3
line([x0 1200],[2*dy Y(i)],'color','g','LineStyle','-','LineWidth',3)
hold on

plot(source_x,source_y,X,Y,'o','MarkerEdgeColor','g','MarkerFaceColor','g
','MarkerSize',10)
hold on

plot(source_x,source_y,'p','MarkerEdgeColor','y','MarkerFaceColor','y','M
arkerSize',20);
end
for j=4:6
line([x0 1200],[4*dy Y(j)],'color','g','LineStyle','-','LineWidth',3)
hold on
plot(source_x2,source_y2,X,Y,'o','MarkerEdgeColor','g','MarkerFaceColor',
'g','MarkerSize',10)
hold on

plot(source_x2,source_y2,'p','MarkerEdgeColor','y','MarkerFaceColor','y',
'MarkerSize',20);
end
for k=7:9
line([x0 1200],[6*dy Y(k)],'color','g','LineStyle','-','LineWidth',3)
hold on

plot(source_x3,source_y3,X,Y,'o','MarkerEdgeColor','g','MarkerFaceColor',
'g','MarkerSize',10)
hold on

plot(source_x3,source_y3,'p','MarkerEdgeColor','y','MarkerFaceColor','y',
'MarkerSize',20);
end

colormap(jet); colorbar;
set(gca,'ydir','reverse')
xlim([0 1200]); ylim([0 1200]);
xlabel('Koordinat X(m)'); ylabel('Koordinat Y (m)');
title ('Forward Modelling 1 Lapis + Anomali')
3. Forward Modelling 2 Lapisan
SCRIPT
%% Input Data & Parameter
clc
close all
clear all
Sourcey1=2:3:20
Sourcex1=zeros(length(Sourcey1))
Receivery1=2:3:20
Receiverx1=(ones(length(Receivery1)))*10;
%plot source dan receiver
x0 = 0;
y0 = 0;
dx = 10;
dy = 10;
Xgrid = x0:dx:10;
Ygrid = y0:dy:20;
nx = length(Xgrid)-1;
ny = length(Ygrid)-1;
[Meshx Meshy] =meshgrid(Xgrid,Ygrid);
Velocity = [1000 ;2000];
VelocityPlot = [Velocity; Velocity(size(Velocity,1),:)];
VelocityPlot = [VelocityPlot VelocityPlot(:,size(VelocityPlot,2))];
%% Ray Tracing Bending
%Bending Point
BatasLapisanX = 0:0.25:10;
BatasLapisanY = 10*ones(1,length(BatasLapisanX));
%raytrace straight diganti dengan zeros dan batas lapisan Y=sourceY
minTime = inf;
% if length
figure(1)
pcolor(Meshx,Meshy,VelocityPlot)
set(gca,'Ydir','Reverse')
hold on
plot(Sourcex1,Sourcey1,'*k')
hold on
plot(Receiverx1,Receivery1,'vb')
hold on
plot(BatasLapisanX,BatasLapisanY,'.w')
hold on
title('Bending Ray Tracing')
xlabel('Distance')
ylabel('Depth')
colorbar
hold on
for j=1:length(Sourcex1)
Sourcex=Sourcex1(j);
for k=1:length(Sourcey1)
Sourcey=Sourcey1(k);
for l=1:length(Receiverx1)
Receiverx=Receiverx1(l);
for m=1:length(Receivery1)
Receivery=Receivery1(m);
% jika source dan receiuver keduanya terletak di bawah batas
lapisan.
if and((Sourcey>BatasLapisanY(k)),Receivery>BatasLapisanY(k))==1
RayPathx1 = [Sourcex Receiverx];
RayPathy1 = [Sourcey Receivery];
plot(RayPathx1,RayPathy1,'r')
TimeCalculation=sqrt((Receivery)^2+(Sourcey)^2)/Velocity(2);
hold on
%jika source dan receiver keduanya terletak di atas batas lapisan
elseif and((Sourcey<BatasLapisanY(k)),Receivery<BatasLapisanY(k))==1
RayPathx1 = [Sourcex Receiverx];
RayPathy1 = [Sourcey Receivery];
plot(RayPathx1,RayPathy1,'r')
TimeCalculation=sqrt((Receivery)^2+(Sourcey)^2)/Velocity(1);
hold on
else %jika salah satu terletak di atas batas lapisan dan satu lagi
terletak di bawah lapisan.
for i=1:length(BatasLapisanX)
Time1=sqrt((Sourcex-BatasLapisanX(i))^2+(Sourcey-
BatasLapisanY(i))^2)/Velocity(1);
Time2=sqrt((Receiverx-BatasLapisanX(i))^2+(Receivery-
BatasLapisanY(i))^2)/Velocity(2);
TimeCalculation = Time1+Time2;
if TimeCalculation < minTime
minTime = TimeCalculation;
RayPathx = [Sourcex BatasLapisanX(i) Receiverx];
RayPathy = [Sourcey BatasLapisanY(i) Receivery];
%plot(RayPathx,RayPathy,':b')
%hold on
end
end
minTime= inf;
plot(RayPathx,RayPathy,'r')
hold on
end
timefix(1,1)=0;
timefix(k+1,1)=k;
timefix(1,m+1)=m;
timefix(k+1,m+1)=TimeCalculation;
end
end
end
end
%% Visualisasi
Tabel Velocity tiap Grid

Anda mungkin juga menyukai