Membuat Grid 3D Cube

Pemrograman matriks kali ini belajar mengenai cara membuat 3D grid cube dengan MATLAB. Sistem 3D cube ini dalam geofisika bermanfaat untuk membuat model tomografi 3 dimensi. Bila dalam tomografi 2 dimensi setiap blok dinyatakan sebagai luasan, maka dalam tomografi 3 dimensi setiap blok kecil dinyatakan sebagai suatu volume. Dalam membuat pemodelan setiap blok diberi nilai properties tertentu misal slowness (kebalikan dari kecepatan, 1/v), rock quality (selaras dengan kebalikan atenuasi, 1/a), atau sifat-sifat fisis lainnya.

Sebelum melangkah lebih jauh mengisi nilai-nilai property dari setiap cube dan melakukan inversi, ada baiknya belajar cara membuat cube terlebih dahulu. Kali ini dengan menggunakan program MATLAB (R2010a). Berikut ini syntax dan penjelasan pemrogramannya:

clear all;
clc;
% Data diskrit dari -4 s.d 4 dengan step 1 untuk koordinat X,Y,Z
x = -4:1:4; y = -4:1:4; z = -4:1:4;

% pengaturan komponen X
[X1 Y1 Z1] = meshgrid(x([1 end]),y,z);
% mengatur dimensi X, Y, Z vektor
X1 = permute(X1,[2 1 3]);
Y1 = permute(Y1,[2 1 3]);
Z1 = permute(Z1,[2 1 3]);
% mengosongkan nilai
X1(end+1,:,:) = NaN;
Y1(end+1,:,:) = NaN;
Z1(end+1,:,:) = NaN;

% pengaturan komponen Y
[X2 Y2 Z2] = meshgrid(x,y([1 end]),z);
% mengosongkan nilai
X2(end+1,:,:) = NaN;
Y2(end+1,:,:) = NaN;
Z2(end+1,:,:) = NaN;

% pengaturan komponen Z
[X3 Y3 Z3] = meshgrid(x,y,z([1 end]));
% mengatur dimensi X, Y, Z vektor
X3 = permute(X3,[3 1 2]);
Y3 = permute(Y3,[3 1 2]);
Z3 = permute(Z3,[3 1 2]);
% mengosongkan nilai
X3(end+1,:,:) = NaN;
Y3(end+1,:,:) = NaN;
Z3(end+1,:,:) = NaN;

% membuat garis yang menghubungkan antar sesama komponen vektor
h = line([X1(:);X2(:);X3(:)], [Y1(:);Y2(:);Y3(:)], [Z1(:);Z2(:);Z3(:)]);

% membuat gambar prespektif
set(h, 'Color',[0.5 0.5 1], 'LineWidth',1, 'LineStyle','-')
axis off
view(3), axis vis3d
camproj perspective, rotate3d on

Author: Muh.Ahsan

Geoscience application specialist, technical evangelist, music lover, movie buff, and active blogger.

One thought on “Membuat Grid 3D Cube”

Tinggalkan Tanggapan

This site uses Akismet to reduce spam. Learn how your comment data is processed.