ArrayNet: A combined seismic phase classification and back-azimuth regression neural network for array processing pipelines, 2023.
Code and examples related to the paper ArrayNet: A combined seismic phase classification and back-azimuth regression neural network for array processing pipelines.
23/02/2026 : Added functionality to estimate phase classfication uncertainties by Neural Network Calibration (temperature scaling) and back-azimuth uncertainties by Monte Carlo Dropout. Also evaluation plots for sub-model were added.
To train an ArrayNet model (super-model) for the ARCES array run :
bash run.sh
Edit the script and adjust to your working environement
Input data for super-model in tf/data:
times_merged_arces_4Fre.npy : time stamp for seismic arrivalsX_merged_arces_4Fre.npy : co-array phase patterns for all arrivalsy_cl_merged_arces_4Fre.npy : Arrival label (phase type)y_reg_merged_arces_4Fre.npy : Back-azimuth to event source
Input data for super- and sub-model in tf/data:
times_merged_arces_4Fre_regional.npy : time stamp for seismic arrivalsX_merged_arces_4Fre_regional.npy : co-array phase patterns for all arrivalsy_cl_merged_arces_4Fre_regional.npy : Arrival label (phase type)y_reg_merged_arces_4Fre_regional.npy : Back-azimuth to event source
Edit `experiments.py' to train one of both models. Also change flag to include uncertainty estimates.
Due to limitations on file size on github we provide a reduced data set for training. However, we also provide the model trained with the full data set in (super-model only for now):
tf/output_full/
The models trained with the reduced data set which can be reproduced are in:
tf/output/
Call this script to evaluate the model trained with the full data set (super model), including confusion matrix, classification metrics, and back-azimuth residuals. For the sub-model with regional phase lables, it currently uses the model trained on the limited data. Change flags to use sub-model and/or show uncertainty estimates.
python evaluate_models.py
Call this script to generate new input data from ARCES array data (saved under tf/data/ with basename test ):
python generate_input_data.py
- Andreas Köhler, Erik B. Myklebust. ArrayNet: A combined seismic phase classification and back-azimuth regression neural network for array processing pipelines. Accepted for publication in BSSA, 2023.
See LICENSE.txt for more information.
Andreas Köhler - andreas.kohler@norsar.no - ORCID
Erik B. Myklebust - ORCID
Project Link: https://github.com/NorwegianSeismicArray/arraynet
- ArrayNet models are built with TensorFLow
- ARCES waveform data from which the input data was generated are available via the Norwegian EIDA node
- Reviewed seismic event bulletins from which the input data labels were obtained are available from the Finish National Seismic Network and NORSAR