Skip to content

Commit c9904fe

Browse files
committed
Restructuring Murat.mat
+ Separating Murat.mat fields + remobing dataParallelized.m
1 parent 3f28675 commit c9904fe

9 files changed

+128
-133
lines changed

MuRAT3.mlx

-58 Bytes
Binary file not shown.

Murat_inputMSH.mlx

268 Bytes
Binary file not shown.

Murat_inputRomania.mlx

267 Bytes
Binary file not shown.

Murat_inputToba.mlx

265 Bytes
Binary file not shown.

bin/Murat_data.m

+17-16
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
cf = Murat.input.centralFrequency;
2222
lcf = length(cf);
2323

24+
workers = Murat.input.workers;
2425
origin = Murat.input.origin;
2526
originTime = Murat.input.originTime;
2627
PTime = Murat.input.PTime;
@@ -68,7 +69,7 @@
6869
% on peak delays and coda attenuation.
6970
count_trash = 0;
7071

71-
for i = 1:lengthData
72+
parfor (i = 1:lengthData,workers)
7273

7374
if isequal(mod(i,100),0)
7475

@@ -182,21 +183,21 @@
182183
end
183184

184185
% Setting up the final data vectors and matrices with checks on values
185-
Murat.data.locationsDeg = locationDeg;
186-
Murat.data.locationsM = locationM;
187-
Murat.data.theoreticalTime = theoreticalTime;
188-
Murat.data.peakDelay = peakDelay;
189-
Murat.data.inversionMatrixPeakDelay = inversionMatrixPeakDelay;
190-
Murat.data.inversionMatrixQ = inversionMatrixQ;
191-
Murat.data.totalLengthRay = totalLengthRay;
192-
Murat.data.raysPlot = raysPlot;
193-
Murat.data.rayCrossing = sum(rayCrossing);
194-
Murat.data.inverseQc = inverseQc;
195-
Murat.data.uncertaintyQc = uncertaintyQc;
196-
Murat.data.inversionMatrixQc = inversionMatrixQc;
197-
Murat.data.energyRatioBodyCoda = energyRatioBodyCoda;
198-
Murat.data.energyRatioCodaNoise = energyRatioCodaNoise;
199-
Murat.data.tCoda = tCoda;
186+
Murat.rays.locationsDeg = locationDeg;
187+
Murat.rays.locationsM = locationM;
188+
Murat.rays.theoreticalTime = theoreticalTime;
189+
Murat.PD.peakDelay = peakDelay;
190+
Murat.PD.inversionMatrixPeakDelay = inversionMatrixPeakDelay;
191+
Murat.Q.inversionMatrixQ = inversionMatrixQ;
192+
Murat.rays.totalLengthRay = totalLengthRay;
193+
Murat.rays.raysPlot = raysPlot;
194+
Murat.rays.rayCrossing = sum(rayCrossing);
195+
Murat.Qc.inverseQc = inverseQc;
196+
Murat.Qc.uncertaintyQc = uncertaintyQc;
197+
Murat.Qc.inversionMatrixQc = inversionMatrixQc;
198+
Murat.Q.energyRatioBodyCoda = energyRatioBodyCoda;
199+
Murat.Q.energyRatioCodaNoise = energyRatioCodaNoise;
200+
Murat.Qc.tCoda = tCoda;
200201

201202
Murat = Murat_selection(Murat);
202203

bin/Murat_declustering.m

+23-25
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
y = Murat.input.y;
1414
z = Murat.input.z;
1515

16-
locationsDeg = Murat.data.locationsDeg;
17-
uncertaintyQc = Murat.data.uncertaintyQc;
18-
Murat.data.locDegOriginal = locationsDeg;
16+
locationsDeg = Murat.rays.locationsDeg;
17+
uncertaintyQc = Murat.Qc.uncertaintyQc;
18+
Murat.rays.locDegOriginal = locationsDeg;
1919

2020
disp(['used waveforms before declustering: ',...
2121
num2str(length(locationsDeg)*components)])
@@ -67,28 +67,26 @@
6767

6868
%% remove deleted data from Murat structure variable
6969
ind_to_keep = new_evestaz(:,8);
70-
Murat.data.energyRatioBodyCoda =...
71-
Murat.data.energyRatioBodyCoda(ind_to_keep,:);
72-
Murat.data.energyRatioCodaNoise =...
73-
Murat.data.energyRatioCodaNoise(ind_to_keep,:);
74-
Murat.data.inverseQc = Murat.data.inverseQc(ind_to_keep,:);
75-
Murat.data.inversionMatrixPeakDelay =...
76-
Murat.data.inversionMatrixPeakDelay(ind_to_keep,:);
77-
Murat.data.inversionMatrixQ =...
78-
Murat.data.inversionMatrixQ(ind_to_keep,:);
79-
Murat.data.inversionMatrixQc=...
80-
Murat.data.inversionMatrixQc(ind_to_keep,:);
81-
Murat.data.locationsDeg = Murat.data.locationsDeg(ind_to_keep,:);
82-
Murat.data.peakDelay = Murat.data.peakDelay(ind_to_keep,:);
83-
Murat.data.retainPeakDelay = Murat.data.retainPeakDelay(ind_to_keep,:);
84-
Murat.data.retainQ = Murat.data.retainQ(ind_to_keep,:);
85-
Murat.data.retainQc = Murat.data.retainQc(ind_to_keep,:);
86-
Murat.data.tCoda = Murat.data.tCoda(ind_to_keep,:);
87-
Murat.data.totalLengthRay = Murat.data.totalLengthRay(ind_to_keep,:);
88-
Murat.data.travelTime = Murat.data.travelTime(ind_to_keep,:);
89-
Murat.data.uncertaintyQc = Murat.data.uncertaintyQc(ind_to_keep,:);
90-
Murat.data.variationPeakDelay =...
91-
Murat.data.variationPeakDelay(ind_to_keep,:);
70+
Murat.Q.energyRatioBodyCoda =...
71+
Murat.Q.energyRatioBodyCoda(ind_to_keep,:);
72+
Murat.Q.energyRatioCodaNoise=...
73+
Murat.Q.energyRatioCodaNoise(ind_to_keep,:);
74+
Murat.Qc.inverseQc = Murat.Qc.inverseQc(ind_to_keep,:);
75+
Murat.PD.inversionMatrixPeakDelay...
76+
=...
77+
Murat.PD.inversionMatrixPeakDelay(ind_to_keep,:);
78+
Murat.Q.inversionMatrixQ = Murat.Q.inversionMatrixQ(ind_to_keep,:);
79+
Murat.Qc.inversionMatrixQc = Murat.Qc.inversionMatrixQc(ind_to_keep,:);
80+
Murat.rays.locationsDeg = Murat.rays.locationsDeg(ind_to_keep,:);
81+
Murat.PD.peakDelay = Murat.PD.peakDelay(ind_to_keep,:);
82+
Murat.PD.retainPeakDelay = Murat.PD.retainPeakDelay(ind_to_keep,:);
83+
Murat.Q.retainQ = Murat.Q.retainQ(ind_to_keep,:);
84+
Murat.Qc.retainQc = Murat.Qc.retainQc(ind_to_keep,:);
85+
Murat.Qc.tCoda = Murat.Qc.tCoda(ind_to_keep,:);
86+
Murat.rays.totalLengthRay = Murat.rays.totalLengthRay(ind_to_keep,:);
87+
Murat.rays.travelTime = Murat.rays.travelTime(ind_to_keep,:);
88+
Murat.Qc.uncertaintyQc = Murat.Qc.uncertaintyQc(ind_to_keep,:);
89+
Murat.PD.variationPeakDelay = Murat.PD.variationPeakDelay(ind_to_keep,:);
9290

9391
disp(['used waveforms after declustering: ',...
9492
num2str(length(ind_to_keep)*components)])

bin/Murat_inversion.m

+22-23
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,22 @@
2727
lCurveQ = Murat.input.lCurveQ;
2828
muratHeader = Murat.input.header;
2929

30-
Apd_i =...
31-
Murat.data.inversionMatrixPeakDelay;
32-
Ac_i = Murat.data.inversionMatrixQc;
33-
A_i = Murat.data.inversionMatrixQ;
34-
luntot = Murat.data.totalLengthRay;
35-
time0 = Murat.data.travelTime;
36-
Qm = Murat.data.inverseQc;
37-
RZZ = Murat.data.uncertaintyQc;
38-
lpdelta = Murat.data.variationPeakDelay;
39-
rapsp = Murat.data.energyRatioBodyCoda;
40-
retain_pd = Murat.data.retainPeakDelay;
41-
retain_Qc = Murat.data.retainQc;
42-
retain_Q = Murat.data.retainQ;
43-
ray_crosses_pd = Murat.data.raysPeakDelay;
44-
ray_crosses_Qc = Murat.data.raysQc;
45-
ray_crosses_Q = Murat.data.raysQ;
46-
tCoda = Murat.data.tCoda;
30+
Apd_i = Murat.PD.inversionMatrixPeakDelay;
31+
Ac_i = Murat.Qc.inversionMatrixQc;
32+
A_i = Murat.Q.inversionMatrixQ;
33+
luntot = Murat.rays.totalLengthRay;
34+
time0 = Murat.rays.travelTime;
35+
Qm = Murat.Qc.inverseQc;
36+
RZZ = Murat.Qc.uncertaintyQc;
37+
lpdelta = Murat.PD.variationPeakDelay;
38+
rapsp = Murat.Q.energyRatioBodyCoda;
39+
retain_pd = Murat.PD.retainPeakDelay;
40+
retain_Qc = Murat.Qc.retainQc;
41+
retain_Q = Murat.Q.retainQ;
42+
ray_crosses_pd = Murat.PD.raysPeakDelay;
43+
ray_crosses_Qc = Murat.Qc.raysQc;
44+
ray_crosses_Q = Murat.Q.raysQ;
45+
tCoda = Murat.Qc.tCoda;
4746
FPath = './';
4847

4948
lMF = size(ray_crosses_pd);
@@ -250,10 +249,10 @@
250249

251250
%%
252251
% Save in Murat
253-
Murat.data.residualQc = residualQc;
254-
Murat.data.const_Qc = const_Qc;
255-
Murat.data.residualQ = residualQ;
256-
Murat.data.modvPeakDelay = modv_pd;
257-
Murat.data.modvQc = modv_Qc;
258-
Murat.data.modvQ = modv_Q;
252+
Murat.Qc.residualQc = residualQc;
253+
Murat.Q.const_Qc = const_Qc;
254+
Murat.Q.residualQ = residualQ;
255+
Murat.PD.modvPeakDelay = modv_pd;
256+
Murat.Qc.modvQc = modv_Qc;
257+
Murat.Q.modvQ = modv_Q;
259258
writetable(muratHeader,fullfile(FPath, FLabel, 'TXT', 'DataHeaders.xlsx'));

bin/Murat_plot.m

+28-30
Original file line numberDiff line numberDiff line change
@@ -27,32 +27,31 @@
2727
modvQc(:,2) = modvQc(:,2) + stepgY;
2828
modvQc(:,3) = modvQc(:,3) + stepgZ;
2929

30-
Qm = Murat.data.inverseQc;
31-
time0 = Murat.data.travelTime;
32-
retainPeakDelay = Murat.data.retainPeakDelay;
33-
retainQc = Murat.data.retainQc;
34-
retainQ = Murat.data.retainQ;
35-
ray_crosses_pd = Murat.data.raysPeakDelay;
36-
ray_crosses_Qc = Murat.data.raysQc;
37-
ray_crosses_Q = Murat.data.raysQ;
38-
fitrobust = Murat.data.fitrobust;
39-
peakData = Murat.data.peakDelay;
40-
luntot = Murat.data.totalLengthRay;
41-
rma = Murat.data.raysPlot;
42-
modv_pd = Murat.data.modvPeakDelay;
43-
modv_Qc = Murat.data.modvQc;
44-
modv_Q = Murat.data.modvQ;
45-
evestazDegrees = Murat.data.locationsDeg;
46-
energyRatio = Murat.data.energyRatioBodyCoda;
47-
codaNoiseRatio = Murat.data.energyRatioCodaNoise;
48-
Ac_i = Murat.data.inversionMatrixQc;
49-
RZZ = Murat.data.uncertaintyQc;
50-
A_i = Murat.data.inversionMatrixQ;
51-
residualQc = Murat.data.residualQc;
52-
residualQ = Murat.data.residualQ;
53-
locationM = Murat.data.locationsM;
54-
tCoda = Murat.data.tCoda;
55-
rapsp = Murat.data.energyRatioBodyCoda;
30+
Qm = Murat.Qc.inverseQc;
31+
time0 = Murat.rays.travelTime;
32+
retainPeakDelay = Murat.PD.retainPeakDelay;
33+
retainQc = Murat.Qc.retainQc;
34+
retainQ = Murat.Q.retainQ;
35+
ray_crosses_pd = Murat.PD.raysPeakDelay;
36+
ray_crosses_Qc = Murat.Qc.raysQc;
37+
ray_crosses_Q = Murat.Q.raysQ;
38+
fitrobust = Murat.PD.fitrobust;
39+
peakData = Murat.PD.peakDelay;
40+
luntot = Murat.rays.totalLengthRay;
41+
rma = Murat.rays.raysPlot;
42+
modv_pd = Murat.PD.modvPeakDelay;
43+
modv_Qc = Murat.Qc.modvQc;
44+
modv_Q = Murat.Q.modvQ;
45+
evestazDegrees = Murat.rays.locationsDeg;
46+
energyRatio = Murat.Q.energyRatioBodyCoda;
47+
codaNoiseRatio = Murat.Q.energyRatioCodaNoise;
48+
Ac_i = Murat.Qc.inversionMatrixQc;
49+
RZZ = Murat.Qc.uncertaintyQc;
50+
A_i = Murat.Q.inversionMatrixQ;
51+
residualQc = Murat.Qc.residualQc;
52+
residualQ = Murat.Q.residualQ;
53+
locationM = Murat.rays.locationsM;
54+
tCoda = Murat.Qc.tCoda;
5655

5756
FPath = './';
5857
sizeTitle = 18;
@@ -64,7 +63,7 @@
6463
% Declustering is done before any frequency analysis, here we show the 2D
6564
% rays before and after
6665
if Murat.input.declustering > 0
67-
locDegOriginal = Murat.data.locDegOriginal;
66+
locDegOriginal = Murat.rays.locDegOriginal;
6867
FName_Cluster = 'Clustering';
6968
clustering = Murat_imageDeclustering(...
7069
locDegOriginal,evestazDegrees,origin,ending,FName_Cluster);
@@ -195,7 +194,7 @@
195194
A_k = A_i(rtQk,rcQk);
196195
luntot_k = luntot(rtQk);
197196
time0_k = time0(rtQk);
198-
rapsp_k = rapsp(rtQk,k);
197+
rapsp_k = energyRatio(rtQk,k);
199198
tCm = tCoda(rtQk,k);
200199
Q_k = Qm(rtQk,k);
201200

@@ -220,7 +219,6 @@
220219
modv_Qc_k = modv_Qc(:,:,k);
221220
modv_Q_k = modv_Q(:,:,k);
222221
[X,Y,Z1,mPD] = Murat_fold(x,y,z,modv_pd_k(:,4));
223-
[~,~,~,PD_cts] = Murat_fold(x,y,z,modv_pd_k(:,5));
224222
[~,~,~,mQc] = Murat_fold(x,y,z,modv_Qc_k(:,4));
225223
[~,~,~,mQ] = Murat_fold(x,y,z,modv_Q_k(:,4));
226224
Z = Z1/1000;
@@ -442,7 +440,7 @@
442440
%%
443441
% Final figure is the Qc vs frequency relation
444442
storeFolder = 'Tests';
445-
Murat.data.averageQcFrequency = averageQcFrequency;
443+
Murat.Qc.averageQcFrequency = averageQcFrequency;
446444
Qcf_title = 'Qc vs Frequency';
447445
QcFrequency = Murat_imageQcFrequency(cf,...
448446
averageQcFrequency,sizeTitle,Qcf_title);

bin/Murat_selection.m

+38-39
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,19 @@
1111
fT = Murat.input.fitTresholdLinear;
1212
QcM = Murat.input.QcMeasurement;
1313

14-
Apd_i =...
15-
Murat.data.inversionMatrixPeakDelay;
16-
A_i = Murat.data.inversionMatrixQ;
17-
Ac_i = Murat.data.inversionMatrixQc;
18-
peakd = Murat.data.peakDelay;
19-
luntot = Murat.data.totalLengthRay;
20-
tPS = Murat.data.theoreticalTime;
21-
evestaz = Murat.data.locationsDeg;
22-
Qm = Murat.data.inverseQc;
23-
RZZ = Murat.data.uncertaintyQc;
24-
rapsp = Murat.data.energyRatioBodyCoda;
25-
rapspcn = Murat.data.energyRatioCodaNoise;
26-
raysplot = Murat.data.raysPlot;
27-
tCoda = Murat.data.tCoda;
14+
Apd_i = Murat.PD.inversionMatrixPeakDelay;
15+
A_i = Murat.Q.inversionMatrixQ;
16+
Ac_i = Murat.Qc.inversionMatrixQc;
17+
peakd = Murat.PD.peakDelay;
18+
luntot = Murat.rays.totalLengthRay;
19+
tPS = Murat.rays.theoreticalTime;
20+
evestaz = Murat.rays.locationsDeg;
21+
Qm = Murat.Qc.inverseQc;
22+
RZZ = Murat.Qc.uncertaintyQc;
23+
rapsp = Murat.Q.energyRatioBodyCoda;
24+
rapspcn = Murat.Q.energyRatioCodaNoise;
25+
raysplot = Murat.rays.raysPlot;
26+
tCoda = Murat.Qc.tCoda;
2827

2928
dataL = size(peakd,1);
3029
dataFreq = size(peakd,2);
@@ -118,30 +117,30 @@
118117

119118
end
120119

121-
Murat.data.peakDelay = peakd;
122-
Murat.data.totalLengthRay = luntot;
123-
Murat.data.tCoda = tCoda;
124-
Murat.data.locationsDeg = evestaz;
125-
Murat.data.inverseQc = Qm;
126-
Murat.data.uncertaintyQc = RZZ;
127-
Murat.data.problemPD = problemPD;
128-
Murat.data.problemQc = problemQc;
129-
Murat.data.problemRZZ = problemRZZ;
130-
Murat.data.problemQ = problemQ;
131-
Murat.data.energyRatioBodyCoda = rapsp;
132-
Murat.data.energyRatioCodaNoise = rapspcn;
133-
Murat.data.raysPlot = raysplot;
134-
Murat.data.variationPeakDelay = lpdelta;
135-
Murat.data.travelTime = time0;
136-
Murat.data.fitrobust = fitrobust;
137-
Murat.data.retainPeakDelay = retain_pd;
138-
Murat.data.retainQc = retain_Qm;
139-
Murat.data.retainQ = retain_Q;
140-
Murat.data.raysPeakDelay = ray_crosses_pd;
141-
Murat.data.raysQc = ray_crosses_Qc;
142-
Murat.data.raysQ = ray_crosses_Q;
143-
Murat.data.inversionMatrixPeakDelay = Apd_i;
144-
Murat.data.inversionMatrixQc = Ac_i;
145-
Murat.data.inversionMatrixQ = A_i;
120+
Murat.PD.peakDelay = peakd;
121+
Murat.rays.totalLengthRay = luntot;
122+
Murat.Qc.tCoda = tCoda;
123+
Murat.rays.locationsDeg = evestaz;
124+
Murat.Qc.inverseQc = Qm;
125+
Murat.Qc.uncertaintyQc = RZZ;
126+
Murat.PD.problemPD = problemPD;
127+
Murat.Qc.problemQc = problemQc;
128+
Murat.Qc.problemRZZ = problemRZZ;
129+
Murat.Q.problemQ = problemQ;
130+
Murat.Q.energyRatioBodyCoda = rapsp;
131+
Murat.Q.energyRatioCodaNoise = rapspcn;
132+
Murat.rays.raysPlot = raysplot;
133+
Murat.PD.variationPeakDelay = lpdelta;
134+
Murat.rays.travelTime = time0;
135+
Murat.PD.fitrobust = fitrobust;
136+
Murat.PD.retainPeakDelay = retain_pd;
137+
Murat.Qc.retainQc = retain_Qm;
138+
Murat.Q.retainQ = retain_Q;
139+
Murat.PD.raysPeakDelay = ray_crosses_pd;
140+
Murat.Qc.raysQc = ray_crosses_Qc;
141+
Murat.Q.raysQ = ray_crosses_Q;
142+
Murat.PD.inversionMatrixPeakDelay = Apd_i;
143+
Murat.Qc.inversionMatrixQc = Ac_i;
144+
Murat.Q.inversionMatrixQ = A_i;
146145

147146
end

0 commit comments

Comments
 (0)