Nantes Université
Skip to content
GitLab
Explorer
Connexion
S'inscrire
Navigation principale
Rechercher ou aller à…
Projet
D
discrimination_eq_q
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de modèles
Surveillance
Service d'assistance
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Celine HOURCADE
discrimination_eq_q
Validations
99c5bd7f
Vérifiée
Valider
99c5bd7f
rédigé
il y a 2 ans
par
Mickael Bonnin
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
Indicate types of func arguments
parent
569429e6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion
!1
Homogenization of the function description and compliance to PEP8
Modifications
2
Masquer les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
data_process.py
+12
-14
12 ajouts, 14 suppressions
data_process.py
run.py
+21
-21
21 ajouts, 21 suppressions
run.py
avec
33 ajouts
et
35 suppressions
data_process.py
+
12
−
14
Voir le fichier @
99c5bd7f
...
...
@@ -12,21 +12,22 @@ from obspy.core import read
from
obspy.signal.invsim
import
cosine_taper
def
fft_taper
(
data
):
def
fft_taper
(
data
:
np
.
ndarray
())
->
np
.
ndarray
(
):
"""
Cosine taper for computation of FFT.
:type data:
array_like
.
:type data:
numpy.ndarray()
.
:param data: Input data. Vector that contains the amplitude of a seismic
trace.
:return: The tapered data window.
"""
return
data
*
cosine_taper
(
npts
=
len
(
data
)
,
p
=
0.2
)
return
data
*
cosine_taper
(
npts
=
data
.
size
,
p
=
0.2
)
def
get_fft
(
trace
,
WINDOW_LENGTH
,
OVERLAP
,
nb_pts
):
def
get_fft
(
trace
:
op
.
core
.
trace
.
Trace
(),
WINDOW_LENGTH
:
int
,
OVERLAP
:
float
,
nb_pts
:
int
)
->
tuple
:
"""
Compute the Fourier Transform of a seismic trace.
...
...
@@ -47,8 +48,6 @@ def get_fft(trace, WINDOW_LENGTH, OVERLAP, nb_pts):
s_rate
=
trace
.
stats
.
sampling_rate
#np_pts = 512
nb_pts
=
int
(
WINDOW_LENGTH
*
s_rate
)
nb_overlap
=
int
(
OVERLAP
*
nb_pts
)
window
=
fft_taper
...
...
@@ -60,20 +59,21 @@ def get_fft(trace, WINDOW_LENGTH, OVERLAP, nb_pts):
numFreqs
=
nb_pts
//
2
+
1
result
=
np
.
fft
.
fft
(
result
,
n
=
nb_pts
,
axis
=
0
)[:
numFreqs
,
:]
freqs
=
np
.
fft
.
fftfreq
(
nb_pts
,
1
/
s_rate
)[:
numFreqs
]
freqs
=
np
.
fft
.
fftfreq
(
nb_pts
,
1
/
s_rate
)[:
numFreqs
]
freqs
[
-
1
]
*=
-
1
# Discard the first element (offset)
result
=
result
[
1
:]
freqs
=
freqs
[
1
:]
result
=
np
.
abs
(
result
)
/
trace
.
data
.
size
result
=
np
.
abs
(
result
)
/
trace
.
data
.
size
result
=
result
.
ravel
()
return
result
,
freqs
def
spectro_extract_valid
(
data_dir
,
spectro_dir
,
events_list
):
def
spectro_extract_valid
(
data_dir
:
str
,
spectro_dir
:
str
,
events_list
:
list
)
->
None
:
"""
Compute the spectrograms that will be used for the validation.
The matrices are saved as NumPy objects.
...
...
@@ -108,7 +108,7 @@ def spectro_extract_valid(data_dir, spectro_dir, events_list):
nb_st
+=
1
print
(
f
'
Stream
{
nb_st
}
/
{
len
(
list_stream
)
}
\r
'
)
st
=
op
.
read
(
stream
,
dtype
=
np
.
dtype
(
float
)
)
st
=
op
.
read
(
stream
,
dtype
=
float
)
stream_name
=
(
stream
.
split
(
'
/
'
)[
-
1
]).
split
(
'
.mseed
'
)[
0
]
st
.
detrend
(
'
demean
'
)
...
...
@@ -160,7 +160,7 @@ def spectro_extract_valid(data_dir, spectro_dir, events_list):
np
.
save
(
f
'
{
spectro_dir
}
/
{
time
}
/
{
stream_name
}
.npy
'
,
spectro
)
def
spectro_extract_pred
(
data_dir
,
spectro_dir
)
:
def
spectro_extract_pred
(
data_dir
:
str
,
spectro_dir
:
str
)
->
None
:
"""
Compute the spectrogramms that will be used for the prediction.
The spectrograms are saved as NumPy objects.
...
...
@@ -191,11 +191,9 @@ def spectro_extract_pred(data_dir, spectro_dir):
nb_st
=
0
for
stream
in
list_stream
:
nb_st
+=
1
#print('EVENT', nb_evt , '/', len(events), end = "\r")
print
(
f
'
Stream
{
nb_st
}
/
{
len
(
list_stream
)
}
\r
'
)
print
(
f
'
Stream
{
nb_st
}
/
{
len
(
list_stream
)
}
\r
'
)
st
=
op
.
read
(
stream
,
dtype
=
float
)
stream_name
=
(
stream
.
split
(
'
/
'
)[
-
1
]).
split
(
'
.mseed
'
)[
0
]
st
.
detrend
(
'
demean
'
)
...
...
This diff is collapsed.
Cliquez pour l'agrandir.
run.py
+
21
−
21
Voir le fichier @
99c5bd7f
...
...
@@ -9,33 +9,33 @@ from prediction import pred, valid
from
data_process
import
spectro_extract_pred
,
spectro_extract_valid
def
read_args
():
def
read_args
()
->
argparse
.
Namespace
:
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
"
--mode
"
,
default
=
"
pred
"
,
help
=
"
train/valid/pred
"
)
parser
.
add_argument
(
'
--mode
'
,
type
=
str
,
default
=
'
pred
'
,
help
=
'
train/valid/pred
'
)
parser
.
add_argument
(
"
--model_dir
"
,
default
=
"
./model/model_2021354T1554.h5
"
,
help
=
"
Model file directory
"
)
parser
.
add_argument
(
'
--model_dir
'
,
type
=
str
,
default
=
'
./model/model_2021354T1554.h5
'
,
help
=
"
Model file directory
.
"
)
parser
.
add_argument
(
"
--data_dir
"
,
default
=
"
./mseed_demo
"
,
help
=
"
Input mseed file directory
"
)
parser
.
add_argument
(
'
--data_dir
'
,
type
=
str
,
default
=
'
./mseed_demo
'
,
help
=
"
Input mseed file directory
.
"
)
parser
.
add_argument
(
"
--spectro_dir
"
,
default
=
"
./spectro_demo
"
,
help
=
"
Output spectrogram file directory
"
)
parser
.
add_argument
(
'
--spectro_dir
'
,
type
=
str
,
default
=
'
./spectro_demo
'
,
help
=
'
Output spectrogram file directory
.
'
)
parser
.
add_argument
(
"
--csv_dir
"
,
parser
.
add_argument
(
'
--csv_dir
'
,
default
=
None
,
help
=
"
If mode valid
: Input csv file directory
"
)
help
=
"
If mode valid: Input csv file directory
"
)
parser
.
add_argument
(
"
--output_dir
"
,
default
=
'
./output_demo
'
,
help
=
"
Output directory
"
)
parser
.
add_argument
(
'
--output_dir
'
,
type
=
str
,
default
=
'
./output_demo
'
,
help
=
'
Output directory
'
)
parser
.
add_argument
(
"
--save_spec
"
,
default
=
True
,
...
...
@@ -45,15 +45,15 @@ def read_args():
return
args
def
main
(
args
):
def
main
(
args
:
argparse
.
Namespace
):
if
args
.
mode
==
"
pred
"
:
if
args
.
mode
==
'
pred
'
:
data
=
spectro_extract_pred
(
data_dir
=
args
.
data_dir
,
spectro_dir
=
args
.
spectro_dir
)
pred
(
model_dir
=
args
.
model_dir
,
spectro_dir
=
args
.
spectro_dir
,
output_dir
=
args
.
output_dir
)
if
args
.
mode
==
"
valid
"
:
if
args
.
mode
==
'
valid
'
:
events
=
np
.
genfromtxt
(
f
'
{
args
.
csv_dir
}
'
,
delimiter
=
'
,
'
,
skip_header
=
1
,
dtype
=
str
)
data
=
spectro_extract_valid
(
...
...
This diff is collapsed.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter