Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,100 @@
|
|
1 |
---
|
2 |
license: apache-2.0
|
|
|
|
|
|
|
|
|
|
|
3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
license: apache-2.0
|
3 |
+
metrics:
|
4 |
+
- mae
|
5 |
+
tags:
|
6 |
+
- seismic
|
7 |
+
- earthquake
|
8 |
---
|
9 |
+
|
10 |
+
# Model Card for PhaseHunter
|
11 |
+
|
12 |
+
<!-- Provide a quick summary of what the model is/does. -->
|
13 |
+
|
14 |
+
## Model Details
|
15 |
+
|
16 |
+
### Model Description
|
17 |
+
|
18 |
+
<!-- Provide a longer summary of what this model is. -->
|
19 |
+
PhaseHunter is a state-of-the-art deep learning model designed for the precise estimation and uncertainty quantification of seismic phase onset times. The tool is especially valuable in seismology, assisting in the accurate identification of P and S wave arrival times in seismic data, which is critical for earthquake detection and characterization.
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
- **Developed by:** Artemii Novoselov
|
24 |
+
- **Model type:** Deep Learning, Seismic Data Analysis
|
25 |
+
- **License:** Apache-2.0
|
26 |
+
|
27 |
+
|
28 |
+
## Uses
|
29 |
+
|
30 |
+
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
|
31 |
+
|
32 |
+
PhaseHunter is primarily used in seismic data analysis for detecting the arrival times of P and S waves, which are crucial in earthquake studies. It is suited for both academic and industrial research settings where accurate and efficient seismic phase picking is required. The tool's capacity for uncertainty quantification adds a layer of reliability to the analysis.
|
33 |
+
|
34 |
+
### Direct Use
|
35 |
+
|
36 |
+
<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
|
37 |
+
|
38 |
+
PhaseHunter can be directly applied to raw seismic data to identify the precise onset times of seismic phases. This functionality is particularly beneficial for seismologists and researchers who are analyzing seismic events and require accurate phase picking.
|
39 |
+
|
40 |
+
|
41 |
+
### Out-of-Scope Use
|
42 |
+
|
43 |
+
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
|
44 |
+
|
45 |
+
PhaseHunter is specifically designed for seismic data analysis and may not be suitable for other types of time-series data analysis or applications outside seismology.
|
46 |
+
|
47 |
+
|
48 |
+
## Bias, Risks, and Limitations
|
49 |
+
|
50 |
+
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
|
51 |
+
|
52 |
+
The performance of PhaseHunter is dependent on the quality and characteristics of the input seismic data. As such, it may not perform optimally on low-quality or noisy data. Users should be aware of these limitations and consider preprocessing steps to enhance data quality where necessary.
|
53 |
+
|
54 |
+
### Recommendations
|
55 |
+
|
56 |
+
<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
|
57 |
+
|
58 |
+
Users are advised to familiarize themselves with the characteristics of seismic data and the specific requirements of PhaseHunter for optimal performance. It is also recommended to consult the accompanying documentation and literature for a deeper understanding of the tool's capabilities and limitations.
|
59 |
+
|
60 |
+
## How to Get Started with the Model
|
61 |
+
|
62 |
+
PhaseHunter is designed to be straightforward to use, even for those new to seismic data processing. Here's a step-by-step guide:
|
63 |
+
|
64 |
+
1. Load the Pre-trained Model:
|
65 |
+
First, import PhaseHunter
|
66 |
+
```python
|
67 |
+
import torch
|
68 |
+
from phasehunter.model import PhaseHunter
|
69 |
+
```
|
70 |
+
|
71 |
+
Then load the pre-trained PhaseHunter model from a checkpoint (if on Linux):
|
72 |
+
|
73 |
+
```python
|
74 |
+
# Auto select device, note that PhaseHunter works best on GPU
|
75 |
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
76 |
+
|
77 |
+
model = PhaseHunter.load_from_checkpoint('ckpts/30s_STEAD_decay-epoch=196.ckpt')
|
78 |
+
model = model.eval().to(device)
|
79 |
+
```
|
80 |
+
|
81 |
+
At this time, 2 pre-trained models are available:
|
82 |
+
|
83 |
+
* `ckpts/30s_STEAD_decay-epoch=196.ckpt` - 30s version of PhaseHunter trained on STEAD dataset for 200 epochs
|
84 |
+
* `ckpts/30s_ETHZ_decay-epoch=187.ckpt` - 30s version of PhaseHunter trained on ETHZ dataset for 200 epochs
|
85 |
+
|
86 |
+
2. Download or use your own waveform data, e.g.:
|
87 |
+
|
88 |
+
```python
|
89 |
+
from obspy import read
|
90 |
+
st = read('path_to_your_waveform_data')
|
91 |
+
predictions = model.process_continuous_waveform(st)
|
92 |
+
print(predictions)
|
93 |
+
```
|
94 |
+
|
95 |
+
`process_continuous_waveform` works with 3 channel Obspy streams of any length
|
96 |
+
|
97 |
+
## For a more comprehansive tutorial try PhaseHunter in Google Colab
|
98 |
+
<a target="_blank" href="https://colab.research.google.com/github/crimeacs/PhaseHunter/blob/main/notebooks/PhaseHunter_intro.ipynb">
|
99 |
+
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
|
100 |
+
</a>
|