Skip to content

Commit

Permalink
Development update
Browse files Browse the repository at this point in the history
  • Loading branch information
miili authored Jul 17, 2024
1 parent c832c32 commit e744bab
Show file tree
Hide file tree
Showing 44 changed files with 2,365 additions and 871 deletions.
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
- id: mixed-line-ending
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.3.2
rev: v0.5.2
hooks:
- id: ruff
- id: ruff-format
Expand Down
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,24 @@ Qseek is an earthquake detection and localisation framework based on stacking an

Key features are of the earthquake detection and localisation framework are:

* Earthquake phase detection using machine-learning pickers from [SeisBench](https://github.com/seisbench/seisbench)
* Earthquake phase detection using machine-learning model from [SeisBench](https://github.com/seisbench/seisbench), pre-trained on different data sets.
* [PhaseNet (Zhu and Beroza, 2018](https://doi.org/10.1093/gji/ggy423)
* [EQTransformer (Mousavi et al., 2020)](https://doi.org/10.1038/s41467-020-17591-w)
* [OBSTransformer (Niksejel and Zahng, 2024)](https://doi.org/10.1093/gji/ggae049)
* LFEDetect
* Octree localisation approach for efficient and accurate search
* Different velocity models:
* Constant velocity
* 1D Layered velocity model
* 3D fast-marching velocity model (NonLinLoc compatible)
* Extraction of earthquake event features:
* Local magnitudes
* Ground motion attributes
* Moment Magnitudes (MW) based on modelled peak ground motions
* Local magnitudes (ML), different models
* Ground motion attributes (e.g. PGA, PGV, ...)
* Automatic extraction of modelled and picked travel times
* Calculation and application of station corrections / station delay times
* Station Corrections
* station specific corrections (SST)
* source specific station corrections (SSST)

Qseek is built on top of [Pyrocko](https://pyrocko.org).

Expand Down
8 changes: 5 additions & 3 deletions docs/components/image_function.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

For image functions this version of Qseek relies heavily on machine learning pickers delivered by [SeisBench](https://github.com/seisbench/seisbench).

## PhaseNet Image Function
## SeisBench Image Function

SeisBench offers access to a variety of machine learning phase pickers pre-trained on various data sets.

!!! abstract "Citation PhaseNet"
*Zhu, Weiqiang, and Gregory C. Beroza. "PhaseNet: A Deep-Neural-Network-Based Seismic Arrival Time Picking Method." arXiv preprint arXiv:1803.03211 (2018).*

```python exec='on'
from qseek.utils import generate_docs
from qseek.images.phase_net import PhaseNet
from qseek.images.seisbench import SeisBench

print(generate_docs(PhaseNet()))
print(generate_docs(SeisBench()))
```
2 changes: 1 addition & 1 deletion docs/components/seismic_data.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ To prepare your data for EQ detection and localisation, **organize it in a MiniS
from qseek.utils import generate_docs
from qseek.waveforms.squirrel import PyrockoSquirrel

print(generate_docs(PyrockoSquirrel()))
print(generate_docs(PyrockoSquirrel(persistent="docs")))
```

## Meta Data
Expand Down
14 changes: 9 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,18 @@ The detector is leveraging [Pyrocko](https://pyrocko.org) and [SeisBench](https:
## Features

* [x] Earthquake phase detection using machine-learning pickers from [SeisBench](https://github.com/seisbench/seisbench)
* [x] [PhaseNet (Zhu and Beroza, 2018](https://doi.org/10.1093/gji/ggy423)
* [x] [EQTransformer (Mousavi et al., 2020)](https://doi.org/10.1038/s41467-020-17591-w)
* [x] [OBSTransformer (Niksejel and Zahng, 2024)](https://doi.org/10.1093/gji/ggae049)
* [x] LFEDetect
* [x] Octree localisation approach for efficient and accurate search
* [x] Different velocity models:
* [x] Constant velocity
* [x] 1D Layered velocity model
* [x] 3D fast-marching velocity model (NonLinLoc compatible)
* [x] Constant velocity
* [x] 1D Layered velocity model
* [x] 3D fast-marching velocity model (NonLinLoc compatible)
* [x] Extraction of earthquake event features:
* [x] Local magnitudes
* [x] Ground motion attributes
* [x] Local magnitudes
* [x] Ground motion attributes
* [x] Automatic extraction of modelled and picked travel times
* [x] Calculation and application of station corrections / station delay times
* [ ] Real-time analytics on streaming data (e.g. SeedLink)
Expand Down
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ nav:
- Getting Started 🚀: getting_started.md
- Visualising Detections: visualizing_results.md
- Benchmark: benchmark.md
- Usage:
- Configuration:
- The Search: components/configuration.md
- Seismic Data: components/seismic_data.md
- Ray Tracer: components/ray_tracer.md
Expand Down
35 changes: 23 additions & 12 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ keywords = [
]

dependencies = [
"numpy>=1.17.3",
"numpy>=1.17.3, <2",
"scipy>=1.8.0",
"pyrocko>=2022.06.10",
"seisbench>=0.5.0",
Expand All @@ -45,7 +45,10 @@ dependencies = [
"rich>=13.4",
"nest_asyncio>=1.5",
"pyevtk>=1.6",
"psutil>=5.9",
"aiofiles>=23.0",
"typer >=0.12.3",
"scikit-fmm >= 2024.05",
]

classifiers = [
Expand All @@ -62,18 +65,12 @@ classifiers = [
]

[project.optional-dependencies]
dev = [
"pre-commit>=3.4",
"black>=23.7",
"ruff>=0.1.14",
"pytest>=7.4",
"pytest-asyncio>=0.21",
]
dev = ["pre-commit>=3.4", "ruff>=0.3.0", "pytest>=7.4", "pytest-asyncio>=0.21"]

docs = [
"mkdocs-material>=9.5.13",
"mkdocstrings[python]>=0.23",
"markdown-exec>=1.8.0",
"mkdocs-material>=9.5",
"mkdocstrings[python]>=0.25",
"markdown-exec>=1.9",
]
completion = ["argcomplete>=3.2"]

Expand Down Expand Up @@ -106,13 +103,27 @@ extend-select = [
'I',
'RUF',
'T20',
'D',
]

ignore = ["RUF012", "RUF009"]
ignore = [
"RUF012",
"RUF009",
"D100",
"D101",
"D102",
"D103",
"D104",
"D105",
"D107",
]

[tool.ruff]
target-version = 'py311'

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.pytest.ini_options]
markers = ["plot: plot figures in tests"]

Expand Down
Loading

0 comments on commit e744bab

Please sign in to comment.