From 60d84bdf8e9d116ed115f4160e71f051d869ac2d Mon Sep 17 00:00:00 2001 From: miili Date: Tue, 31 Oct 2023 01:04:44 +0100 Subject: [PATCH] Deployed 8f499e5 with MkDocs version: 1.5.3 --- getting_started/index.html | 4 ++-- search/search_index.json | 2 +- sitemap.xml.gz | Bin 127 -> 127 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/getting_started/index.html b/getting_started/index.html index c35982e5..0786b0e7 100644 --- a/getting_started/index.html +++ b/getting_started/index.html @@ -797,9 +797,8 @@

Initializing a New Project

Check out the search.json config file and add your waveform data and velocity models.

Minimal Configuration Example -

Here is a minimal JSON configuration for Lassie -

{
+
{
   "project_dir": ".",
   "stations": {
     "station_xmls": [],
@@ -864,6 +863,7 @@ 

Initializing a New Project

"n_threads_argmax": 4, }

+

For more details and information about the component, head over to details of the modules.

Once happy, start the lassie CLI.

diff --git a/search/search_index.json b/search/search_index.json index aa69cfdc..631e82ad 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to Lassie \ud83d\udc15\u200d\ud83e\uddba","text":"

Lassie is an earthquake detection and localisation framework. It combines modern machine learning phase detection and robust migration and stacking techniques.

The detector is leveraging Pyrocko and SeisBench, it is highly-performant and can search massive data sets for seismic activity efficiently.

Citation

TDB

Seismic swarm activity at Iceland, Reykjanes Peninsula during a 2020 unrest. 15,000+ earthquakes detected, outlining a dike intrusion, preceeding the 2021 Fagradasfjall eruption. Visualized in Pyrocko Sparrow.

"},{"location":"#features","title":"Features","text":"
  • Earthquake phase detection using machine-learning pickers from SeisBench
  • 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
  • Automatic extraction of modelled and picked travel times
  • Calculation and application of station corrections / station delay times
  • Real-time analytics on streaming data (e.g. SeedLink)

Get Started!

"},{"location":"#build-with","title":"Build with","text":""},{"location":"getting_started/","title":"Getting Started","text":""},{"location":"getting_started/#installation","title":"Installation","text":"

The installation is straight-forward:

From GitHub
pip install git+https://github.com/pyrocko/lassie-v2\n
"},{"location":"getting_started/#running-lassie","title":"Running Lassie","text":"

The main entry point in the executeable is the lassie command. The provided command line interface (CLI) and a JSON config file is all what is needed to run the program.

lassie -h\n
usage: lassie [-h] [--verbose] [--version]\n              {init,search,continue,feature-extraction,corrections,serve,clear-cache,dump-schemas}\n              ...\n\nLassie - The friendly earthquake detector \ud83d\udc15\n\noptions:\n  -h, --help            show this help message and exit\n  --verbose, -v         increase verbosity of the log messages, repeat to\n                        increase. Default level is INFO\n  --version             show version and exit\n\ncommands:\n  Available commands to run Lassie. Get command help with `lassie <command>\n  --help`.\n\n  {init,search,continue,feature-extraction,corrections,serve,clear-cache,dump-schemas}\n    init                initialize a new Lassie project\n    search              start a search\n    continue            continue an aborted run\n    feature-extraction  extract features from an existing run\n    corrections         analyse station corrections from existing run\n    serve               start webserver and serve results from an existing run\n    clear-cache         clear the cach directory\n    dump-schemas        dump data models to json-schema (development)\n
"},{"location":"getting_started/#initializing-a-new-project","title":"Initializing a New Project","text":"

Once installed you can run the lassie executeable to initialize a new project.

Initialize new Project
lassie init my-project\n

Check out the search.json config file and add your waveform data and velocity models.

Minimal Configuration Example

Here is a minimal JSON configuration for Lassie

{\n  \"project_dir\": \".\",\n  \"stations\": {\n    \"station_xmls\": [],\n    \"pyrocko_station_yamls\": [\"search/pyrocko-stations.yaml\"],\n  },\n  \"data_provider\": {\n    \"provider\": \"PyrockoSquirrel\",\n    \"environment\": \".\",\n    \"waveform_dirs\": [\"data/\"],\n  },\n  \"octree\": {\n    \"location\": {\n      \"lat\": 0.0,\n      \"lon\": 0.0,\n      \"east_shift\": 0.0,\n      \"north_shift\": 0.0,\n      \"elevation\": 0.0,\n      \"depth\": 0.0\n    },\n    \"size_initial\": 2000.0,\n    \"size_limit\": 500.0,\n    \"east_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"north_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"depth_bounds\": [\n      0.0,\n      20000.0\n    ],\n    \"absorbing_boundary\": 1000.0\n  },\n  \"image_functions\": [\n    {\n      \"image\": \"PhaseNet\",\n      \"model\": \"ethz\",\n      \"torch_use_cuda\": false,\n      \"phase_map\": {\n        \"P\": \"constant:P\",\n        \"S\": \"constant:S\"\n      },\n    }\n  ],\n  \"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n  ],\n  \"station_corrections\": {},\n  \"event_features\": [],\n  \"sampling_rate\": 100,\n  \"detection_threshold\": 0.05,\n  \"detection_blinding\": \"PT2S\",\n  \"node_split_threshold\": 0.9,\n  \"window_length\": \"PT300S\",\n  \"n_threads_parstack\": 0,\n  \"n_threads_argmax\": 4,\n}\n

For more details and information about the component, head over to details of the modules.

"},{"location":"getting_started/#starting-the-search","title":"Starting the Search","text":"

Once happy, start the lassie CLI.

Start earthquake detection
lassie search search.json\n
"},{"location":"visualizing_results/","title":"Visualizing Detections","text":"

The event detections are exported in Lassie-native JSON, Pyrocko YAML format and as CSV files.

"},{"location":"visualizing_results/#pyrocko-sparrow","title":"Pyrocko Sparrow","text":"

For large data sets use the Pyrocko Sparrow to visualise seismic event detections in 3D. Also seismic stations and many other features from the Pyrocko ecosystem can be integrated into the view.

"},{"location":"visualizing_results/#qgis","title":"QGIS","text":"

QGIS can be used to import .csv and explore the data in an interactive fashion. Detections can be rendered by e.g. the detection semblance or the calculated magnitude.

"},{"location":"components/configuration/","title":"Lassie Configuration","text":"

At center is a JSON configuration file which is parsed by Pydantic.

"},{"location":"components/configuration/#example-config","title":"Example Config","text":"

See the following pages for more detailed information about the different building blocks of the config.

Minimal Lassie Config
{\n  \"project_dir\": \".\",\n  \"stations\": {\n    \"station_xmls\": [],\n    \"pyrocko_station_yamls\": [\"search/pyrocko-stations.yaml\"],\n  },\n  \"data_provider\": {\n    \"provider\": \"PyrockoSquirrel\",\n    \"environment\": \".\",\n    \"waveform_dirs\": [\"data/\"],\n  },\n  \"octree\": {\n    \"location\": {\n      \"lat\": 0.0,\n      \"lon\": 0.0,\n      \"east_shift\": 0.0,\n      \"north_shift\": 0.0,\n      \"elevation\": 0.0,\n      \"depth\": 0.0\n    },\n    \"size_initial\": 2000.0,\n    \"size_limit\": 500.0,\n    \"east_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"north_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"depth_bounds\": [\n      0.0,\n      20000.0\n    ],\n    \"absorbing_boundary\": 1000.0\n  },\n  \"image_functions\": [\n    {\n      \"image\": \"PhaseNet\",\n      \"model\": \"ethz\",\n      \"torch_use_cuda\": false,\n      \"phase_map\": {\n        \"P\": \"constant:P\",\n        \"S\": \"constant:S\"\n      },\n    }\n  ],\n  \"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n  ],\n  \"station_corrections\": {},\n  \"event_features\": [],\n  \"sampling_rate\": 100,\n  \"detection_threshold\": 0.05,\n  \"detection_blinding\": \"PT2S\",\n  \"node_split_threshold\": 0.9,\n  \"window_length\": \"PT300S\",\n  \"n_threads_parstack\": 0,\n  \"n_threads_argmax\": 4,\n}\n
"},{"location":"components/configuration/#paths","title":"Paths","text":"

Paths can be relative to the location of the config file or absolute.

"},{"location":"components/configuration/#date-and-time","title":"Date and Time","text":"

Serialisation of time, dates and date times and durations follow ISO8601 format with timezone information. E.g. 2023-10-28T01:21:21.003+00:00.

Duration are serialized like PD600S, this example shows 600 seconds - 10 minutes.

"},{"location":"components/image_function/","title":"Image Function","text":"

For image functions this version of Lassie relies heavily on machine learning pickers delivered by SeisBench.

"},{"location":"components/image_function/#phasenet-image-function","title":"PhaseNet Image Function","text":"

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).

"},{"location":"components/image_function/#exec-2--phasenet-module","title":"PhaseNet Module","text":"

PhaseNet image function. For more details see SeisBench documentation.

Config PhaseNetJSON Block model

SeisBench pre-trained PhaseNet model to use. Choose from ethz, geofon, instance, iquique, lendb, neic, obs, original, scedc, stead. For more details see SeisBench documentation

window_overlap_samples

Window overlap in samples.

torch_use_cuda

Use CUDA for inference.

torch_cpu_threads

Number of CPU threads to use if only CPU is used.

batch_size

Batch size for inference, larger values can improve performance.

stack_method

Method to stack the overlaping blocks internally. Choose from avg and max.

upscale_input

Upscale input by factor. This augments the input data from e.g. 100 Hz to 50 Hz (factor: 2). Can be useful for high-frequency earthquake signals.

phase_map

Phase mapping from SeisBench PhaseNet to Lassie phases.

weights

Weights for each phase.

JSON block for PhaseNet
{\n  \"image\": \"PhaseNet\",\n  \"model\": \"ethz\",\n  \"window_overlap_samples\": 2000,\n  \"torch_use_cuda\": false,\n  \"torch_cpu_threads\": 4,\n  \"batch_size\": 64,\n  \"stack_method\": \"avg\",\n  \"upscale_input\": 1,\n  \"phase_map\": {\n    \"P\": \"constant:P\",\n    \"S\": \"constant:S\"\n  },\n  \"weights\": {\n    \"P\": 1.0,\n    \"S\": 1.0\n  }\n}\n
"},{"location":"components/octree/","title":"Octree","text":"

A 3D space is searched for sources of seismic energy. Lassie 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.

"},{"location":"components/octree/#exec-3--octree-module","title":"Octree Module","text":"Config OctreeJSON Block location

The reference location of the octree.

size_initial

Initial size of a cubic octree node in meters.

size_limit

Smallest possible size of an octree node in meters.

east_bounds

East bounds of the octree in meters.

north_bounds

North bounds of the octree in meters.

depth_bounds

Depth bounds of the octree in meters.

absorbing_boundary

Absorbing boundary in meters. Detections inside the boundary will be tagged.

JSON block for Octree
{\n  \"location\": {\n    \"lat\": 0.0,\n    \"lon\": 0.0,\n    \"east_shift\": 0.0,\n    \"north_shift\": 0.0,\n    \"elevation\": 0.0,\n    \"depth\": 0.0\n  },\n  \"size_initial\": 2000.0,\n  \"size_limit\": 500.0,\n  \"east_bounds\": [\n    -10000.0,\n    10000.0\n  ],\n  \"north_bounds\": [\n    -10000.0,\n    10000.0\n  ],\n  \"depth_bounds\": [\n    0.0,\n    20000.0\n  ],\n  \"absorbing_boundary\": 1000.0\n}\n
"},{"location":"components/ray_tracer/","title":"Ray Tracers","text":"

The calculation of seismic travel times is a cornerstone for the migration and stacking approach. Lassie supports different ray tracers for travel time calculation, which can be adapted for different geological settings.

"},{"location":"components/ray_tracer/#constant-velocity","title":"Constant Velocity","text":"

The constant velocity models is trivial and follows:

\\[ t_{P} = \\frac{d}{v_P} \\]

This module is used for simple use cases and cross-referencing testing.

"},{"location":"components/ray_tracer/#exec-4--constantvelocitytracer-module","title":"ConstantVelocityTracer Module","text":"Config ConstantVelocityTracerJSON Block phase

Name of the phase.

velocity

Constant velocity of the phase in m/s.

JSON block for ConstantVelocityTracer
{\n  \"tracer\": \"ConstantVelocityTracer\",\n  \"phase\": \"constant:P\",\n  \"velocity\": 5000.0\n}\n
"},{"location":"components/ray_tracer/#1d-layered-model","title":"1D Layered Model","text":"

Calculation of travel times in 1D layered media is based on the Pyrocko Cake ray tracer.

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

"},{"location":"components/ray_tracer/#exec-5--caketracer-module","title":"CakeTracer Module","text":"Config CakeTracerJSON Block phases

Dictionary of phases and timings to calculate.

earthmodel

Earth model to calculate travel times for.

trim_earth_model_depth

Trim earth model to max depth of the octree.

lut_cache_size

Size of the LUT cache. Default is 2G.

JSON block for CakeTracer
{\n  \"tracer\": \"CakeTracer\",\n  \"phases\": {\n    \"cake:P\": {\n      \"definition\": \"P,p\"\n    },\n    \"cake:S\": {\n      \"definition\": \"S,s\"\n    }\n  },\n  \"earthmodel\": {\n    \"filename\": \"/home/marius/.cache/lassie/velocity_models/default.nd\",\n    \"format\": \"nd\",\n    \"crust2_profile\": \"\"\n  },\n  \"trim_earth_model_depth\": true,\n  \"lut_cache_size\": 2147483648\n}\n
"},{"location":"components/ray_tracer/#3d-fast-marching","title":"3D Fast Marching","text":"

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

  • Import NonLinLoc 3D velocity model
  • 1D layered model \ud83e\udd5e
  • Constant velocity, mainly for testing purposes \ud83e\udd7c

"},{"location":"components/ray_tracer/#exec-6--fastmarchingtracer-module","title":"FastMarchingTracer Module","text":"Config FastMarchingTracerJSON Block interpolation_method

Interpolation method for travel times.Choose from nearest, linear or cubic.

nthreads

Number of threads to use for travel time. If set to 0, cpu_count*2 will be used.

lut_cache_size

Size of the LUT cache. Default is 2G.

velocity_model

Velocity model for the ray tracer.

JSON block for FastMarchingTracer
{\n  \"tracer\": \"FastMarchingRayTracer\",\n  \"phase\": \"fm:P\",\n  \"interpolation_method\": \"linear\",\n  \"nthreads\": 0,\n  \"lut_cache_size\": 2147483648,\n  \"velocity_model\": {\n    \"model\": \"Constant3DVelocityModel\",\n    \"grid_spacing\": \"octree\",\n    \"velocity\": 5000.0\n  }\n}\n
"},{"location":"components/ray_tracer/#visualizing-3d-models","title":"Visualizing 3D Models","text":"

For quality check, all 3D velocity models are exported to vtk/ folder as .vti files. Use ParaView to inspect and explore the velocity models.

Seismic velocity model of the Utah FORGE testbed site, visualized in ParaView.

"},{"location":"components/seismic_data/","title":"Seismic Data","text":""},{"location":"components/seismic_data/#waveform-data","title":"Waveform Data","text":"

The seismic can be delivered in MiniSeed or any other format compatible with Pyrocko.

Organize your data in an SDS structure or just a single MiniSeed file.

"},{"location":"components/seismic_data/#exec-7--pyrockosquirrel-module","title":"PyrockoSquirrel Module","text":"

Waveform provider using Pyrocko's Squirrel.

Config PyrockoSquirrelJSON Block environment

Path to a Squirrel environment.

waveform_dirs

List of directories holding the waveform files.

start_time

Start time for the search in ISO8601.

end_time

End time for the search in ISO8601.

highpass

Highpass filter, corner frequency in Hz.

lowpass

Lowpass filter, corner frequency in Hz.

channel_selector

Channel selector for waveforms, use e.g. EN? for selection of all accelerometer data.

JSON block for PyrockoSquirrel
{\n  \"provider\": \"PyrockoSquirrel\",\n  \"environment\": \".\",\n  \"waveform_dirs\": [],\n  \"start_time\": null,\n  \"end_time\": null,\n  \"highpass\": null,\n  \"lowpass\": null,\n  \"channel_selector\": \"*\",\n  \"async_prefetch_batches\": 4\n}\n
"},{"location":"components/seismic_data/#meta-data","title":"Meta Data","text":"

Meta data is required primarily for station locations and codes.

Supported data formats are:

  • StationXML
  • Pyrocko Station YAML

Metadata does not need to include response information for pure detection and localisation. If local magnitudes \\(M_L\\) are extracted response information is required.

"},{"location":"components/seismic_data/#exec-8--stations-module","title":"Stations Module","text":"Config StationsJSON Block pyrocko_station_yamls

List of Pyrocko station YAML files.

station_xmls

List of StationXML files.

blacklist

Blacklist stations and exclude from detecion. Format is ['NET.STA.LOC', ...]

JSON block for Stations
{\n  \"pyrocko_station_yamls\": [],\n  \"station_xmls\": [],\n  \"blacklist\": [],\n  \"stations\": []\n}\n
"},{"location":"components/station_corrections/","title":"Station Corrections","text":"

Station corrections can be extract from previous runs to refine the localisation accuracy. The corrections can also help to improve the semblance find more events in a dataset.

"},{"location":"components/station_corrections/#exec-9--stations-module","title":"Stations Module","text":"Config StationsJSON Block pyrocko_station_yamls

List of Pyrocko station YAML files.

station_xmls

List of StationXML files.

blacklist

Blacklist stations and exclude from detecion. Format is ['NET.STA.LOC', ...]

JSON block for Stations
{\n  \"pyrocko_station_yamls\": [],\n  \"station_xmls\": [],\n  \"blacklist\": [],\n  \"stations\": []\n}\n
"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to Lassie \ud83d\udc15\u200d\ud83e\uddba","text":"

Lassie is an earthquake detection and localisation framework. It combines modern machine learning phase detection and robust migration and stacking techniques.

The detector is leveraging Pyrocko and SeisBench, it is highly-performant and can search massive data sets for seismic activity efficiently.

Citation

TDB

Seismic swarm activity at Iceland, Reykjanes Peninsula during a 2020 unrest. 15,000+ earthquakes detected, outlining a dike intrusion, preceeding the 2021 Fagradasfjall eruption. Visualized in Pyrocko Sparrow.

"},{"location":"#features","title":"Features","text":"
  • Earthquake phase detection using machine-learning pickers from SeisBench
  • 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
  • Automatic extraction of modelled and picked travel times
  • Calculation and application of station corrections / station delay times
  • Real-time analytics on streaming data (e.g. SeedLink)

Get Started!

"},{"location":"#build-with","title":"Build with","text":""},{"location":"getting_started/","title":"Getting Started","text":""},{"location":"getting_started/#installation","title":"Installation","text":"

The installation is straight-forward:

From GitHub
pip install git+https://github.com/pyrocko/lassie-v2\n
"},{"location":"getting_started/#running-lassie","title":"Running Lassie","text":"

The main entry point in the executeable is the lassie command. The provided command line interface (CLI) and a JSON config file is all what is needed to run the program.

lassie -h\n
usage: lassie [-h] [--verbose] [--version]\n              {init,search,continue,feature-extraction,corrections,serve,clear-cache,dump-schemas}\n              ...\n\nLassie - The friendly earthquake detector \ud83d\udc15\n\noptions:\n  -h, --help            show this help message and exit\n  --verbose, -v         increase verbosity of the log messages, repeat to\n                        increase. Default level is INFO\n  --version             show version and exit\n\ncommands:\n  Available commands to run Lassie. Get command help with `lassie <command>\n  --help`.\n\n  {init,search,continue,feature-extraction,corrections,serve,clear-cache,dump-schemas}\n    init                initialize a new Lassie project\n    search              start a search\n    continue            continue an aborted run\n    feature-extraction  extract features from an existing run\n    corrections         analyse station corrections from existing run\n    serve               start webserver and serve results from an existing run\n    clear-cache         clear the cach directory\n    dump-schemas        dump data models to json-schema (development)\n
"},{"location":"getting_started/#initializing-a-new-project","title":"Initializing a New Project","text":"

Once installed you can run the lassie executeable to initialize a new project.

Initialize new Project
lassie init my-project\n

Check out the search.json config file and add your waveform data and velocity models.

Minimal Configuration Example

Here is a minimal JSON configuration for Lassie

{\n  \"project_dir\": \".\",\n  \"stations\": {\n    \"station_xmls\": [],\n    \"pyrocko_station_yamls\": [\"search/pyrocko-stations.yaml\"],\n  },\n  \"data_provider\": {\n    \"provider\": \"PyrockoSquirrel\",\n    \"environment\": \".\",\n    \"waveform_dirs\": [\"data/\"],\n  },\n  \"octree\": {\n    \"location\": {\n      \"lat\": 0.0,\n      \"lon\": 0.0,\n      \"east_shift\": 0.0,\n      \"north_shift\": 0.0,\n      \"elevation\": 0.0,\n      \"depth\": 0.0\n    },\n    \"size_initial\": 2000.0,\n    \"size_limit\": 500.0,\n    \"east_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"north_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"depth_bounds\": [\n      0.0,\n      20000.0\n    ],\n    \"absorbing_boundary\": 1000.0\n  },\n  \"image_functions\": [\n    {\n      \"image\": \"PhaseNet\",\n      \"model\": \"ethz\",\n      \"torch_use_cuda\": false,\n      \"phase_map\": {\n        \"P\": \"constant:P\",\n        \"S\": \"constant:S\"\n      },\n    }\n  ],\n  \"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n  ],\n  \"station_corrections\": {},\n  \"event_features\": [],\n  \"sampling_rate\": 100,\n  \"detection_threshold\": 0.05,\n  \"detection_blinding\": \"PT2S\",\n  \"node_split_threshold\": 0.9,\n  \"window_length\": \"PT300S\",\n  \"n_threads_parstack\": 0,\n  \"n_threads_argmax\": 4,\n}\n

For more details and information about the component, head over to details of the modules.

"},{"location":"getting_started/#starting-the-search","title":"Starting the Search","text":"

Once happy, start the lassie CLI.

Start earthquake detection
lassie search search.json\n
"},{"location":"visualizing_results/","title":"Visualizing Detections","text":"

The event detections are exported in Lassie-native JSON, Pyrocko YAML format and as CSV files.

"},{"location":"visualizing_results/#pyrocko-sparrow","title":"Pyrocko Sparrow","text":"

For large data sets use the Pyrocko Sparrow to visualise seismic event detections in 3D. Also seismic stations and many other features from the Pyrocko ecosystem can be integrated into the view.

"},{"location":"visualizing_results/#qgis","title":"QGIS","text":"

QGIS can be used to import .csv and explore the data in an interactive fashion. Detections can be rendered by e.g. the detection semblance or the calculated magnitude.

"},{"location":"components/configuration/","title":"Lassie Configuration","text":"

At center is a JSON configuration file which is parsed by Pydantic.

"},{"location":"components/configuration/#example-config","title":"Example Config","text":"

See the following pages for more detailed information about the different building blocks of the config.

Minimal Lassie Config
{\n  \"project_dir\": \".\",\n  \"stations\": {\n    \"station_xmls\": [],\n    \"pyrocko_station_yamls\": [\"search/pyrocko-stations.yaml\"],\n  },\n  \"data_provider\": {\n    \"provider\": \"PyrockoSquirrel\",\n    \"environment\": \".\",\n    \"waveform_dirs\": [\"data/\"],\n  },\n  \"octree\": {\n    \"location\": {\n      \"lat\": 0.0,\n      \"lon\": 0.0,\n      \"east_shift\": 0.0,\n      \"north_shift\": 0.0,\n      \"elevation\": 0.0,\n      \"depth\": 0.0\n    },\n    \"size_initial\": 2000.0,\n    \"size_limit\": 500.0,\n    \"east_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"north_bounds\": [\n      -10000.0,\n      10000.0\n    ],\n    \"depth_bounds\": [\n      0.0,\n      20000.0\n    ],\n    \"absorbing_boundary\": 1000.0\n  },\n  \"image_functions\": [\n    {\n      \"image\": \"PhaseNet\",\n      \"model\": \"ethz\",\n      \"torch_use_cuda\": false,\n      \"phase_map\": {\n        \"P\": \"constant:P\",\n        \"S\": \"constant:S\"\n      },\n    }\n  ],\n  \"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n  ],\n  \"station_corrections\": {},\n  \"event_features\": [],\n  \"sampling_rate\": 100,\n  \"detection_threshold\": 0.05,\n  \"detection_blinding\": \"PT2S\",\n  \"node_split_threshold\": 0.9,\n  \"window_length\": \"PT300S\",\n  \"n_threads_parstack\": 0,\n  \"n_threads_argmax\": 4,\n}\n
"},{"location":"components/configuration/#paths","title":"Paths","text":"

Paths can be relative to the location of the config file or absolute.

"},{"location":"components/configuration/#date-and-time","title":"Date and Time","text":"

Serialisation of time, dates and date times and durations follow ISO8601 format with timezone information. E.g. 2023-10-28T01:21:21.003+00:00.

Duration are serialized like PD600S, this example shows 600 seconds - 10 minutes.

"},{"location":"components/image_function/","title":"Image Function","text":"

For image functions this version of Lassie relies heavily on machine learning pickers delivered by SeisBench.

"},{"location":"components/image_function/#phasenet-image-function","title":"PhaseNet Image Function","text":"

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).

"},{"location":"components/image_function/#exec-2--phasenet-module","title":"PhaseNet Module","text":"

PhaseNet image function. For more details see SeisBench documentation.

Config PhaseNetJSON Block model

SeisBench pre-trained PhaseNet model to use. Choose from ethz, geofon, instance, iquique, lendb, neic, obs, original, scedc, stead. For more details see SeisBench documentation

window_overlap_samples

Window overlap in samples.

torch_use_cuda

Use CUDA for inference.

torch_cpu_threads

Number of CPU threads to use if only CPU is used.

batch_size

Batch size for inference, larger values can improve performance.

stack_method

Method to stack the overlaping blocks internally. Choose from avg and max.

upscale_input

Upscale input by factor. This augments the input data from e.g. 100 Hz to 50 Hz (factor: 2). Can be useful for high-frequency earthquake signals.

phase_map

Phase mapping from SeisBench PhaseNet to Lassie phases.

weights

Weights for each phase.

JSON block for PhaseNet
{\n  \"image\": \"PhaseNet\",\n  \"model\": \"ethz\",\n  \"window_overlap_samples\": 2000,\n  \"torch_use_cuda\": false,\n  \"torch_cpu_threads\": 4,\n  \"batch_size\": 64,\n  \"stack_method\": \"avg\",\n  \"upscale_input\": 1,\n  \"phase_map\": {\n    \"P\": \"constant:P\",\n    \"S\": \"constant:S\"\n  },\n  \"weights\": {\n    \"P\": 1.0,\n    \"S\": 1.0\n  }\n}\n
"},{"location":"components/octree/","title":"Octree","text":"

A 3D space is searched for sources of seismic energy. Lassie 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.

"},{"location":"components/octree/#exec-3--octree-module","title":"Octree Module","text":"Config OctreeJSON Block location

The reference location of the octree.

size_initial

Initial size of a cubic octree node in meters.

size_limit

Smallest possible size of an octree node in meters.

east_bounds

East bounds of the octree in meters.

north_bounds

North bounds of the octree in meters.

depth_bounds

Depth bounds of the octree in meters.

absorbing_boundary

Absorbing boundary in meters. Detections inside the boundary will be tagged.

JSON block for Octree
{\n  \"location\": {\n    \"lat\": 0.0,\n    \"lon\": 0.0,\n    \"east_shift\": 0.0,\n    \"north_shift\": 0.0,\n    \"elevation\": 0.0,\n    \"depth\": 0.0\n  },\n  \"size_initial\": 2000.0,\n  \"size_limit\": 500.0,\n  \"east_bounds\": [\n    -10000.0,\n    10000.0\n  ],\n  \"north_bounds\": [\n    -10000.0,\n    10000.0\n  ],\n  \"depth_bounds\": [\n    0.0,\n    20000.0\n  ],\n  \"absorbing_boundary\": 1000.0\n}\n
"},{"location":"components/ray_tracer/","title":"Ray Tracers","text":"

The calculation of seismic travel times is a cornerstone for the migration and stacking approach. Lassie supports different ray tracers for travel time calculation, which can be adapted for different geological settings.

"},{"location":"components/ray_tracer/#constant-velocity","title":"Constant Velocity","text":"

The constant velocity models is trivial and follows:

\\[ t_{P} = \\frac{d}{v_P} \\]

This module is used for simple use cases and cross-referencing testing.

"},{"location":"components/ray_tracer/#exec-4--constantvelocitytracer-module","title":"ConstantVelocityTracer Module","text":"Config ConstantVelocityTracerJSON Block phase

Name of the phase.

velocity

Constant velocity of the phase in m/s.

JSON block for ConstantVelocityTracer
{\n  \"tracer\": \"ConstantVelocityTracer\",\n  \"phase\": \"constant:P\",\n  \"velocity\": 5000.0\n}\n
"},{"location":"components/ray_tracer/#1d-layered-model","title":"1D Layered Model","text":"

Calculation of travel times in 1D layered media is based on the Pyrocko Cake ray tracer.

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

"},{"location":"components/ray_tracer/#exec-5--caketracer-module","title":"CakeTracer Module","text":"Config CakeTracerJSON Block phases

Dictionary of phases and timings to calculate.

earthmodel

Earth model to calculate travel times for.

trim_earth_model_depth

Trim earth model to max depth of the octree.

lut_cache_size

Size of the LUT cache. Default is 2G.

JSON block for CakeTracer
{\n  \"tracer\": \"CakeTracer\",\n  \"phases\": {\n    \"cake:P\": {\n      \"definition\": \"P,p\"\n    },\n    \"cake:S\": {\n      \"definition\": \"S,s\"\n    }\n  },\n  \"earthmodel\": {\n    \"filename\": \"/home/marius/.cache/lassie/velocity_models/default.nd\",\n    \"format\": \"nd\",\n    \"crust2_profile\": \"\"\n  },\n  \"trim_earth_model_depth\": true,\n  \"lut_cache_size\": 2147483648\n}\n
"},{"location":"components/ray_tracer/#3d-fast-marching","title":"3D Fast Marching","text":"

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

  • Import NonLinLoc 3D velocity model
  • 1D layered model \ud83e\udd5e
  • Constant velocity, mainly for testing purposes \ud83e\udd7c

"},{"location":"components/ray_tracer/#exec-6--fastmarchingtracer-module","title":"FastMarchingTracer Module","text":"Config FastMarchingTracerJSON Block interpolation_method

Interpolation method for travel times.Choose from nearest, linear or cubic.

nthreads

Number of threads to use for travel time. If set to 0, cpu_count*2 will be used.

lut_cache_size

Size of the LUT cache. Default is 2G.

velocity_model

Velocity model for the ray tracer.

JSON block for FastMarchingTracer
{\n  \"tracer\": \"FastMarchingRayTracer\",\n  \"phase\": \"fm:P\",\n  \"interpolation_method\": \"linear\",\n  \"nthreads\": 0,\n  \"lut_cache_size\": 2147483648,\n  \"velocity_model\": {\n    \"model\": \"Constant3DVelocityModel\",\n    \"grid_spacing\": \"octree\",\n    \"velocity\": 5000.0\n  }\n}\n
"},{"location":"components/ray_tracer/#visualizing-3d-models","title":"Visualizing 3D Models","text":"

For quality check, all 3D velocity models are exported to vtk/ folder as .vti files. Use ParaView to inspect and explore the velocity models.

Seismic velocity model of the Utah FORGE testbed site, visualized in ParaView.

"},{"location":"components/seismic_data/","title":"Seismic Data","text":""},{"location":"components/seismic_data/#waveform-data","title":"Waveform Data","text":"

The seismic can be delivered in MiniSeed or any other format compatible with Pyrocko.

Organize your data in an SDS structure or just a single MiniSeed file.

"},{"location":"components/seismic_data/#exec-7--pyrockosquirrel-module","title":"PyrockoSquirrel Module","text":"

Waveform provider using Pyrocko's Squirrel.

Config PyrockoSquirrelJSON Block environment

Path to a Squirrel environment.

waveform_dirs

List of directories holding the waveform files.

start_time

Start time for the search in ISO8601.

end_time

End time for the search in ISO8601.

highpass

Highpass filter, corner frequency in Hz.

lowpass

Lowpass filter, corner frequency in Hz.

channel_selector

Channel selector for waveforms, use e.g. EN? for selection of all accelerometer data.

JSON block for PyrockoSquirrel
{\n  \"provider\": \"PyrockoSquirrel\",\n  \"environment\": \".\",\n  \"waveform_dirs\": [],\n  \"start_time\": null,\n  \"end_time\": null,\n  \"highpass\": null,\n  \"lowpass\": null,\n  \"channel_selector\": \"*\",\n  \"async_prefetch_batches\": 4\n}\n
"},{"location":"components/seismic_data/#meta-data","title":"Meta Data","text":"

Meta data is required primarily for station locations and codes.

Supported data formats are:

  • StationXML
  • Pyrocko Station YAML

Metadata does not need to include response information for pure detection and localisation. If local magnitudes \\(M_L\\) are extracted response information is required.

"},{"location":"components/seismic_data/#exec-8--stations-module","title":"Stations Module","text":"Config StationsJSON Block pyrocko_station_yamls

List of Pyrocko station YAML files.

station_xmls

List of StationXML files.

blacklist

Blacklist stations and exclude from detecion. Format is ['NET.STA.LOC', ...]

JSON block for Stations
{\n  \"pyrocko_station_yamls\": [],\n  \"station_xmls\": [],\n  \"blacklist\": [],\n  \"stations\": []\n}\n
"},{"location":"components/station_corrections/","title":"Station Corrections","text":"

Station corrections can be extract from previous runs to refine the localisation accuracy. The corrections can also help to improve the semblance find more events in a dataset.

"},{"location":"components/station_corrections/#exec-9--stations-module","title":"Stations Module","text":"Config StationsJSON Block pyrocko_station_yamls

List of Pyrocko station YAML files.

station_xmls

List of StationXML files.

blacklist

Blacklist stations and exclude from detecion. Format is ['NET.STA.LOC', ...]

JSON block for Stations
{\n  \"pyrocko_station_yamls\": [],\n  \"station_xmls\": [],\n  \"blacklist\": [],\n  \"stations\": []\n}\n
"}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 22aabb2fa009ad23df5ca8a14c8963178c28d9a9..025361f5af614704df9ddf64cc665de1c6cb0eb7 100644 GIT binary patch delta 11 Scmb=gXO-{f;FvR!wF&?fX9H>g delta 11 Scmb=gXO-{f;INv=S_J?S-vbB$