Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
7163342
waveforms: adding seedlink streaming
Apr 15, 2025
cd041cf
various bugfixes
Apr 15, 2025
f70ac21
seedlink: bugfixes
Apr 15, 2025
489356e
seedlink: fixes
Apr 20, 2025
bb21fe5
seedlink: bugfixes
Apr 23, 2025
5f885ac
seedlink: bugfixes
Apr 24, 2025
0a91baf
octree: helper functions
Apr 24, 2025
ba66efd
fast marching: initial tracer
May 2, 2025
99fea04
cake: fixing reference
miili May 8, 2025
dc302b9
small fixes
May 10, 2025
3d4c5c4
cli: bugfix
May 10, 2025
334c13e
fast marching: update
May 10, 2025
af9d107
pre-commit: bumping ruff
miili May 10, 2025
f0143ee
tests: fixing tests
miili May 10, 2025
df703a7
fm: wip velocity models
miili May 30, 2025
6c654ed
fm: finalizing fast marching tracer
May 31, 2025
02fbc0c
magnitudes: fixing short traces
miili May 31, 2025
1dfda7b
mojo extensions
miili Jun 2, 2025
383fdf5
mojo: adding dtype metaprogramming
miili Jun 3, 2025
b3c0b3c
mojo: adding stack and reduce
miili Jun 29, 2025
d4f3331
mojo: adding stack and reduce
miili Jul 1, 2025
3973e70
mojo: adding stack snapshot
miili Jul 3, 2025
d407525
stack: adding qseek vectorized variants
Jul 26, 2025
79817f8
stacking: bugfix
Jul 26, 2025
5a0d613
benchmarking
Jul 26, 2025
49e26ee
squirrel: add back queue size config
miili Sep 2, 2025
392522a
NSL: better serialisation
Sep 17, 2025
d9daff7
cleaning unused files
Sep 17, 2025
07a783f
merging changes from dev
Sep 17, 2025
d93f11c
cleaning unused files
Sep 17, 2025
594e747
Revert "cleaning unused files"
Sep 17, 2025
828c471
mojo: update version API
Sep 17, 2025
b0b09b4
sesibench: changing rescale_factor to sampling_frequency
Sep 24, 2025
e55515b
seedlink: better defaults
Sep 28, 2025
252a783
seedlink: bugfixes
Sep 29, 2025
e739fc4
detection: fixing caching bug
Sep 30, 2025
1a1c4fb
layered model: fixes
Sep 30, 2025
d3a1126
layered model: bugfixes
Sep 30, 2025
d7ea480
docs: update
Sep 30, 2025
ff37272
seedlink: fixing test
Sep 30, 2025
1d47ccc
docs: update docs
Sep 30, 2025
6e21de3
docs: update docs
Sep 30, 2025
6def48d
Merge branch 'dev' into features/parstack-reduce
Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ repos:
- id: mixed-line-ending
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.8.1
rev: v0.11.9
hooks:
- id: ruff
- id: ruff-format
- args: [--fix]
id: ruff
# - repo: https://github.com/pre-commit/mirrors-clang-format
# rev: v19.1.7
# hooks:
# - id: clang-format
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.4
hooks:
- id: clang-format
5 changes: 5 additions & 0 deletions docs/api/models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Models

::: qseek.models.location.Location

::: qseek.models.detection.EventDetection
3 changes: 3 additions & 0 deletions docs/api/octree.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Octree

::: qseek.octree.Octree
3 changes: 3 additions & 0 deletions docs/api/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# API Overview

The following pages give an overview of the Python API.
3 changes: 3 additions & 0 deletions docs/api/ray_tracer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ray Tracers

::: qseek.tracers.base.RayTracer
5 changes: 5 additions & 0 deletions docs/api/stations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Station Inventory

::: qseek.models.station.Station

::: qseek.models.station.Stations
4 changes: 4 additions & 0 deletions docs/api/utils.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Utils

::: qseek.utils.Range
::: qseek.utils._Range
4 changes: 2 additions & 2 deletions docs/components/image_function.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Image Function
# Phase Arrival Image Function

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

## SeisBench Image Function

Expand Down
25 changes: 25 additions & 0 deletions docs/components/magnitudes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Earthquake Magnitude Calculation

Qseek supports earthquake magnitude calculation as Local Magnitudes in different attenuation models and Moment Magnitudes derived from forward-modelled attenuation curves.

## Local Magnitude

Local magnitude calculation relies on a tuned attenuation model.

```python exec='on'
from qseek.utils import generate_docs
from qseek.magnitudes.local_magnitude import LocalMagnitudeExtractor

print(generate_docs(LocalMagnitudeExtractor()))
```

## Moment Magnitude

Based on forward-modelled attenuation curves using [Pyrocko-GF](https://pyrocko.org/docs/current/topics/pyrocko-gf.html). For more information on the method see [Dahm et al., 2024](https://doi.org/10.26443/seismica.v3i2.1205).

```python exec='on'
from qseek.utils import generate_docs
from qseek.magnitudes.moment_magnitude import MomentMagnitudeExtractor

print(generate_docs(MomentMagnitudeExtractor()))
```
9 changes: 4 additions & 5 deletions docs/components/octree.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
# Octree
# Octree Search Volume

A 3D space is searched for sources of seismic energy. Qseek created an octree structure which is iteratively refined when energy is detected, to focus on the source' location. This speeds up the search and improves the resolution of the localisations.

![Octree Concept](../images/octree-concept.webp)

*Surface projection of the refined octree focusing on the seismic source region. In this example four levels of refinement are can be seen, refining the 3D octree from the initial 4000 nodes to 8823 nodes.*
/// caption
Surface projection of the refined octree focusing on the seismic source region. In this example four levels of refinement are can be seen, refining the 3D octree from the initial 4000 nodes to 8823 nodes.
///

```python exec='on'
from qseek.utils import generate_docs
from qseek.octree import Octree

print(generate_docs(Octree()))
```

::: qseek.octree.Octree
29 changes: 23 additions & 6 deletions docs/components/ray_tracer.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,27 @@ from qseek.tracers.constant_velocity import ConstantVelocityTracer
print(generate_docs(ConstantVelocityTracer()))
```

## 1D Layered Model
## 1D Layered Model (Eikonal)

Travel times in 1D layered media are calculated by a 2D fast-marching Eikonal solution.

*Pyrocko Cake 1D ray tracer for travel time calculation in 1D layered media*

```python exec='on'
from qseek.utils import generate_docs
from qseek.tracers.fast_marching import FastMarchingTracer

print(generate_docs(FastMarchingTracer()))
```

## 1D Layered Model (Pyrocko Cake Raytracer)

Calculation of travel times in 1D layered media is based on the [Pyrocko Cake](https://pyrocko.org/docs/current/apps/cake/manual.html#command-line-examples) ray tracer.

![Pyrocko Cake Ray Tracer](https://pyrocko.org/docs/current/_images/cake_plot_example_2.png)
*Pyrocko Cake 1D ray tracer for travel time calculation in 1D layered media*
/// caption
Pyrocko Cake 1D ray tracer for travel time calculation in 1D layered media
///

```python exec='on'
from qseek.utils import generate_docs
Expand All @@ -33,7 +48,7 @@ from qseek.tracers.cake import CakeTracer
print(generate_docs(CakeTracer(), exclude={'earthmodel': {'raw_file_data'}}))
```

## 3D Fast Marching
## 3D Fast Marching 🚀

We implement the fast marching method for calculating first arrivals of waves in 3D volumes. Currently three different 3D velocity models are supported:

Expand All @@ -42,13 +57,15 @@ We implement the fast marching method for calculating first arrivals of waves in
* [x] Constant velocity, mainly for testing purposes 🥼

![Fast Marhing Concept](../images/fmm-concept.webp)
*Conceptual 2D visualisation for seismic traveltimes calculation in heterogenous media using the fast-marching method for the Eikonal solution is presented. Traveltimes from the receiving station at the surface (indicated by a yellow triangle) towards the subsurface grid are calculated, resulting in station-specifig traveltimes for all potential source locations simultaneously.*
/// caption
Conceptual 2D visualisation for seismic traveltimes calculation in heterogenous media using the fast-marching method for the Eikonal solution is presented. Traveltimes from the receiving station at the surface (indicated by a yellow triangle) towards the subsurface grid are calculated, resulting in station-specifig traveltimes for all potential source locations simultaneously.
///

```python exec='on'
from qseek.utils import generate_docs
from qseek.insights.tracers.fast_marching import FastMarchingTracer
from qseek.insights.tracers.fast_marching_3d import FastMarching3DTracer

print(generate_docs(FastMarchingTracer()))
print(generate_docs(FastMarching3DTracer()))
```

### Visualizing 3D Models
Expand Down
8 changes: 6 additions & 2 deletions docs/components/station_corrections.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ Station corrections can be extract from previous runs to refine the localisation

## Station Specific Corrections

![Source specific delay statistic](../images/station-delay-times.webp)
![Source specific delay statistic](../images/station-delay-times.webp){ width=600 }
/// caption
*Statistics of station delay times.*
///

```python exec='on'
from qseek.utils import generate_docs
Expand All @@ -17,7 +19,9 @@ print(generate_docs(StationCorrections()))
## Source Specific Corrections

![Source specific corrections volume](../images/delay-volume.webp)
*Delay volume for a selected stations.*
/// caption
Delay volume for a selected stations.
///

```python exec='on'
from qseek.utils import generate_docs
Expand Down
6 changes: 3 additions & 3 deletions docs/components/station_metadata.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
## Station Metadata
# Station Metadata

Meta data is required primarily for **station locations and codes**.
Station metadata is required primarily for **station locations and codes**.

Supported data formats are:

* [x] [StationXML](https://www.fdsn.org/xml/station/)
* [x] [Pyrocko Station YAML](https://pyrocko.org/docs/current/formats/yaml.html)

Metadata does not need to include response information for pure detection and localisation. If local magnitudes M~L~ are extracted, response information is required.
If local magnitudes M~L~ are extracted, response information as StationXML is required.

```python exec='on'
from qseek.utils import generate_docs
Expand Down
4 changes: 4 additions & 0 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ The installation is straight-forward using pip or pipx.
pip install git+https://github.com/pyrocko/qseek
```

```sh title="From GitHub the Development Branch"
pip install git+https://github.com/pyrocko/qseek@dev
```

or

```sh title="Using pipx"
Expand Down
Binary file added docs/images/logo-subtitle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading