diff --git a/components/configuration/index.html b/components/configuration/index.html index d439b3bd..b7627bb8 100644 --- a/components/configuration/index.html +++ b/components/configuration/index.html @@ -519,6 +519,19 @@ Example Config + + @@ -688,6 +701,19 @@ Example Config + + @@ -794,6 +820,8 @@

Example Config

"n_threads_argmax": 4, } +

Paths

+

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

diff --git a/components/seismic_data/index.html b/components/seismic_data/index.html index 33c437e8..144ce8ca 100644 --- a/components/seismic_data/index.html +++ b/components/seismic_data/index.html @@ -792,7 +792,7 @@

Waveform Data

environment
-

Path to Squirrel environment.

+

Path to a Squirrel environment.

waveform_dirs
@@ -800,11 +800,11 @@

Waveform Data

start_time
-

Start time for the search.

+

Start time for the search in ISO8601.

end_time
-

End time for the search.

+

End time for the search in ISO8601.

highpass
@@ -816,7 +816,7 @@

Waveform Data

channel_selector
-

Channel selector for Pyrocko's Squirrel, use e.g. EN? for selection.

+

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

@@ -853,7 +853,7 @@

Meta Data

pyrocko_station_yamls
-

List of Pyrocko station yaml files.

+

List of Pyrocko station YAML files.

station_xmls
@@ -861,7 +861,7 @@

Meta Data

blacklist
-

Blacklist as ['NET.STA.LOC', ...]

+

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

diff --git a/components/station_corrections/index.html b/components/station_corrections/index.html index 3f6c0870..ced2264d 100644 --- a/components/station_corrections/index.html +++ b/components/station_corrections/index.html @@ -724,7 +724,7 @@

Station Corrections
pyrocko_station_yamls
-

List of Pyrocko station yaml files.

+

List of Pyrocko station YAML files.

station_xmls
@@ -732,7 +732,7 @@

Station Corrections

blacklist
-

Blacklist as ['NET.STA.LOC', ...]

+

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

diff --git a/search/search_index.json b/search/search_index.json index 508c328d..41622294 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":"

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    \"weights\": {\n        \"P\": 1.0,\n        \"S\": 1.0\n    }\n    }\n],\n\"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n],\n\"station_corrections\": {\n    \"rundir\": null,\n    \"measure\": \"median\",\n    \"weighting\": \"mul-PhaseNet-semblance\",\n    \"minimum_num_picks\": 5,\n    \"minimum_distance_border\": 2000.0,\n    \"minimum_depth\": 3000.0\n},\n\"event_features\": [],\n\"sampling_rate\": 100,\n\"detection_threshold\": 0.05,\n\"detection_blinding\": \"PT2S\",\n\"image_mean_p\": 1.0,\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      \"weights\": {\n        \"P\": 1.0,\n        \"S\": 1.0\n      }\n    }\n  ],\n  \"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n  ],\n  \"station_corrections\": {\n    \"rundir\": null,\n    \"measure\": \"median\",\n    \"weighting\": \"mul-PhaseNet-semblance\",\n    \"minimum_num_picks\": 5,\n    \"minimum_distance_border\": 2000.0,\n    \"minimum_depth\": 3000.0\n  },\n  \"event_features\": [],\n  \"sampling_rate\": 100,\n  \"detection_threshold\": 0.05,\n  \"detection_blinding\": \"PT2S\",\n  \"image_mean_p\": 1.0,\n  \"node_split_threshold\": 0.9,\n  \"window_length\": \"PT300S\",\n  \"n_threads_parstack\": 0,\n  \"n_threads_argmax\": 4,\n}\n
"},{"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:

"},{"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 Squirrel environment.

waveform_dirs

List of directories holding the waveform files.

start_time

Start time for the search.

end_time

End time for the search.

highpass

Highpass filter, corner frequency in Hz.

lowpass

Lowpass filter, corner frequency in Hz.

channel_selector

Channel selector for Pyrocko's Squirrel, use e.g. EN? for selection.

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:

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 as ['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 as ['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":"

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    \"weights\": {\n        \"P\": 1.0,\n        \"S\": 1.0\n    }\n    }\n],\n\"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n],\n\"station_corrections\": {\n    \"rundir\": null,\n    \"measure\": \"median\",\n    \"weighting\": \"mul-PhaseNet-semblance\",\n    \"minimum_num_picks\": 5,\n    \"minimum_distance_border\": 2000.0,\n    \"minimum_depth\": 3000.0\n},\n\"event_features\": [],\n\"sampling_rate\": 100,\n\"detection_threshold\": 0.05,\n\"detection_blinding\": \"PT2S\",\n\"image_mean_p\": 1.0,\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      \"weights\": {\n        \"P\": 1.0,\n        \"S\": 1.0\n      }\n    }\n  ],\n  \"ray_tracers\": [\n    {\n    \"tracer\": \"ConstantVelocityTracer\",\n    \"phase\": \"constant:P\",\n    \"velocity\": 5000.0\n    }\n  ],\n  \"station_corrections\": {\n    \"rundir\": null,\n    \"measure\": \"median\",\n    \"weighting\": \"mul-PhaseNet-semblance\",\n    \"minimum_num_picks\": 5,\n    \"minimum_distance_border\": 2000.0,\n    \"minimum_depth\": 3000.0\n  },\n  \"event_features\": [],\n  \"sampling_rate\": 100,\n  \"detection_threshold\": 0.05,\n  \"detection_blinding\": \"PT2S\",\n  \"image_mean_p\": 1.0,\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/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:

"},{"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:

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 81c4b397..087a2e6d 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ