Earthquakes have substantial worldwide effects, and accurate forecasting can greatly assist in emergency responses and preparedness efforts. Slow Slip Events (SSEs), exhibit quasi-periodic patterns, making them more predictable and significant for earthquake forecasting research. SSEs contribute to the moment budget, play a part in the seismic cycle, and may even trigger regular earthquakes. Due to the highly non-linear nature of friction and the potential significance of short and long-term patterns in SSEs, machine learning (ML), especially deep learning, is utilized.
SSEs are observed in nature, reproduced in laboratories, and simulated using various techniques. Previous studies have used ML in slow earthquake research for detection, time to failure prediction, and time-series forecasting, employing different ML architectures.
In this research project, we employed machine learning techniques to predict labquakes and Slow Slip Events (SSEs). Our study addressed three key research questions: (1) matching the state-of-the-art accuracy for labquake predictions and improving performance through feature engineering, (2) applying our LSTM and TCN models to Cascadia data for single and multiple segment forecasts, and (3) investigating the impact of pre-training with simulated data and lab data and transfer learning to Cascadia. We achieved a 9.4% performance enhancement for labquake predictions, obtained maximum R^2 scores of 0.8729 and 0.5219 for Cascadia forecasts, and found that pre-training marginally improved labquake predictions. However, transfer learning results for Cascadia remained inconclusive. Notably, the LSTM model consistently outperformed the TCN model across all domains.
- archive/ for all the archived code written as part of the project
- assets/ for assets such as user profile pictures used in the README
- notebooks/ for the main Jupyter notebooks of the project
- scripts/ for the training scripts and PyTorch models
- scripts/models/ for the models developed
- utils/ for the main utilities used to develop our pre-processing pipeline
Below are links to the original dataset used in our repository.
dataset name | type | source & metadata | paper |
---|---|---|---|
p4581 | labquake | Marone Lab | Lyu et al., 2019 |
p4679 | labquake | Marone Lab | Lyu et al., 2019 |
b698 | labquake | INGVLab | Mele Veedu et al., 2020 |
sim b698 | simulated-lab | geolandi/labquakesde | Gualandi et al., 2023 |
cascadia 1-6 | nature | ftp://ftp.gps.caltech.edu/pub/avouac/Cascadia_SSE_Nature/Data_for_Nature | Michel et al., 2019 |
You can download the data in a structure ready to use in our notebooks and scripts from Google Drive. You will be prompted to request permission from Adriano Gualandi to access these folders. Once downloaded, save the three data folders in the following location within your working directory (create new folders as necessary): ../earthquake-predictability/data_local/gtc_quakes_data/
To get setup and tryout the code, follow these steps:
- Install Miniconda or Anaconda (if not already installed) from the official website: https://docs.conda.io/en/latest/miniconda.html
- Open a terminal or command prompt.
- Clone the repository to your local machine.
- Navigate to the repository root.
- Create a new conda environment using the yaml file by running the following
command:
conda env create -f environment.yaml
- Activate the newly created environment using the following command:
conda activate gtc_env
- To enable the
utils
packages to be accessible to the Python path, run the following command:conda develop “<your local path>/earthquake-predictability"
Note: The code was tested on Python 3.12.
To get started we recommend taking a look at notebooks/AI4ER GTC - Slow Earthquake Time Series Forecasting.ipynb. This notebook provides a full overview of the pipeline and documentation.
The code in this repository is made available for public use under the MIT Open Source license. For full details see LICENSE.
We would like to thank our faculty supervisor Dr Adriano Gualandi as well as our project mentor Andrew McDonald. We benefited greatly from their guidance and support.
Camilla Billari | Pritthijit Nath | Jakob Poffley | |||
Tom Ratsakatika | Alexandre Shinebourne |