forked from monterrubio-velasco/TREMOL-Faults
-
Notifications
You must be signed in to change notification settings - Fork 0
/
separacionLACAS.py
98 lines (92 loc) · 3.01 KB
/
separacionLACAS.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# coding=utf-8
import numpy as np
def separacionLACAS(nsismo,tiempoacu,tiempo,AVANOR,kmax):
#print(vectk1)
#nsismo = vectk1[:,0];
#tiempoacu = vectk1[:,1];
#tiempo = vectk1[:,2];
#AVANOR = vectk1[:,3];
nserie = len(nsismo);
#!! las dos primeras replicas son leadings
ncas = -1;
num = 0;
nlead = 0;
nflag = 0;
k = -1;
npor = 0;
countCas = 0
tiempox = np.zeros(nserie)
nsismolead = np.zeros(nserie)
tiempoacul = np.zeros(nserie)
vectLead = np.zeros([nserie,6])
vecCas = np.zeros([nserie,5])
nsismoca = np.zeros(nserie)
tiempocas = np.zeros(nserie);
tiempoacuca = np.zeros(nserie);
vectorProbab = np.zeros(nserie)
vecNumCas = np.zeros([nserie,2])
vectorNumCasca = np.zeros(nserie)
i = 0;
deltatempl = 0.0;
tiempox[nlead] = 0.0; # ESTE VECTOR GUARDA LA DIFERENCIA ENTRE DOS LEADING AFTERSHOCKS SUCESIVOS
nsismolead[nlead] = nlead; # ESTE VECTOR GUARDA EL NUMERO SECUENCIAL DE LEADINGS
tiempoacul[nlead] = tiempoacu[i] # ESTE VECTOR GUARDA EL TIEMPO ACUMULADO EN EL QUE OCURRE CADA LEADING
vectLead[nlead,0] = nsismo[i];
vectLead[nlead,1] = nsismolead[nlead];
vectLead[nlead,2] = tiempox[nlead];
vectLead[nlead,3] = deltatempl;
vectLead[nlead,4] = tiempoacul[nlead];
vectLead[nlead,5] = AVANOR[i];
nlead = nlead+1;
i = 1;
tiempol = tiempoacu[i];
deltatempl = tiempol - tiempoacu[i-1];
tiempox[nlead] = deltatempl;
nsismolead[nlead] = nlead;
tiempoacul[nlead] = tiempoacu[i];
vectLead[nlead,0] = nsismo[i];
vectLead[nlead,1] = nsismolead[nlead];
vectLead[nlead,2] = tiempox[nlead];
vectLead[nlead,3] = deltatempl;
vectLead[nlead,4] = tiempoacul[nlead];
vectLead[nlead,5] = AVANOR[i];
for ii in np.arange(2,nserie,dtype=np.int):
if tiempoacu[ii]-tiempoacu[ii-1] > (tiempoacu[ii-1]-tiempoacu[ii-2]) and (tiempoacu[ii]-tiempol) > deltatempl:
if nflag == 1:
nflag = 0;
num = 0;
ncas = ncas+1;
nsismoca[ncas] = num;
tiempoacuca[ncas] = tiempoacul[nlead];
nlead = nlead+1;
deltatempl = tiempoacu[ii] - tiempol;
tiempol = tiempoacu[ii];
tiempox[nlead] = deltatempl+tiempox[nlead-1];
nsismolead[nlead] = nlead;
tiempoacul[nlead] = tiempoacu[ii];
vectLead[nlead,0] = nsismo[ii];
vectLead[nlead,1] = nsismolead[nlead];
vectLead[nlead,2] = tiempox[nlead];
vectLead[nlead,3] = deltatempl;
vectLead[nlead,4] = tiempoacul[nlead];
vectLead[nlead,5] = AVANOR[ii];
k=k+1;
vecCas[k,0] = nlead;
vecCas[k,1] = 0;
vecCas[k,2] = tiempo[ii];
vecCas[k,3] = tiempoacul[nlead];
vecCas[k,4] = AVANOR[ii];
else:
nflag = 1;
num = num+1;
ncas = ncas+1;
nsismoca[ncas] = num;
tiempocas[ncas] = tiempo[ii];
tiempoacuca[ncas] = tiempoacu[ii];
k=k+1;
vecCas[k,0] = num;
vecCas[k,1] = nsismoca[ncas];
vecCas[k,2] = tiempocas[ncas];
vecCas[k,3] = tiempoacuca[ncas];
vecCas[k,4] = AVANOR[ii];
return vectLead[1:nlead,:]