フィルターのクリア

draw a geological faults (break down in surface of rock formations

2 ビュー (過去 30 日間)
Moustafa Abedel Fattah
Moustafa Abedel Fattah 2024 年 3 月 21 日
I do a trail of following MATLAB code : to clasfying the geological faults which are broken on rock formations represnting by inverted depths ( z_inv_Bouguer) whch can reading from the annexed Excel file : I need to draw faults like in annexed figure dependenig on basis of angles (Theta) drived from gradient of each curve.
N = 9; % Number of stacked layers
M = 201; % Number of digitized points
xc = data(:, 1); % x-axis direction
z_inv_Bouguer = data(:,3:end) ; % z_inv_Bouguer curves
% Initialize arrays to store fault locations based on angle classifications
normal_fault_locations = [];
reverse_fault_locations = [];
strike_slip_fault_locations = [];
other_fault_locations = [];
for i = 1:N
% Calculate gradient of z_inv_Bouguer curves
for j = 1:M
Theta = rad2deg(atan(z_inv_Bouguer(j,i) ./ xc(j)));
% Define thresholds for classifying faults
normal_fault_threshold = 90; % Adjust as needed
reverse_fault_threshold = 45; % Adjust as needed
% Classify faults based on angle
if abs(Theta) <= normal_fault_threshold
normal_fault_locations = [normal_fault_locations; [xc(j),...
z(i)]];
elseif abs(Theta) > reverse_fault_threshold
reverse_fault_locations = [reverse_fault_locations; [xc(j),...
z(i)]];
elseif abs(Theta) > normal_fault_threshold...
&& abs(Theta) <= reverse_fault_threshold
strike_slip_fault_locations = [strike_slip_fault_locations;
[xc(j), z(i)]];
else
other_fault_locations = [other_fault_locations; [xc(j), z(i)]];
end
end
end
% Plotting results
figure;
% Plot z_inv_Bouguer curves
for i = 1:N
plot(xc, z_inv_Bouguer(:, i), 'LineWidth', 1);
hold on;
end
% Plot normal fault locations
if ~isempty(normal_fault_locations)
scatter(normal_fault_locations(:, 1),...
normal_fault_locations(:, 2),...
'r', 'filled', 's', 'DisplayName', 'Normal Faults');
hold on;
end
% Plot reverse fault locations
if ~isempty(reverse_fault_locations)
scatter(reverse_fault_locations(:, 1)...
, reverse_fault_locations(:, 2)...
, 'b', 'filled', 'o', 'DisplayName', 'Reverse Faults');
hold on;
end
% Plot strike-slip fault locations
if ~isempty(strike_slip_fault_locations)
scatter(strike_slip_fault_locations(:, 1)...
, strike_slip_fault_locations(:, 2)...
, 'g', '+', 'DisplayName', 'Strike-Slip Faults');
hold on;
end
% Plot other fault locations (if any)
if ~isempty(other_fault_locations)
scatter(other_fault_locations(:, 1)...
, repmat(min(z), size(other_fault_locations, 1), 1)...
, 'm', 'filled', 'v', 'DisplayName', 'Other Faults');
hold on;
end
set(gca, 'YDir', 'reverse');
title(' z_inv_Bouguer with Classified Faults');
xlabel('Profile Points-xc');
ylabel('Depth (km)');
legend('show');
grid on;
%Thanks in advance

回答 (0 件)

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

製品


リリース

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by