# Qseek
*The friendly earthquake detector*
[](https://github.com/astral-sh/ruff)
[](https://pre-commit.com/)
[](https://github.com/pyrocko/qseek/actions/workflows/build.yaml)
[](https://python.org/)

[](https://pyrocko.github.io/qseek/)
<!-- [](https://pypi.org/project/lassie/) -->
Qseek is a data-driven earthquake detection and localisation framework for large seismic data sets. The framework is based on a stacking and migration approach, a beamforming method. It combines neural network phase annotations with an iterative octree localisation approach for efficient and accurate localisation of seismic events.
Key features are of the earthquake detection and localisation framework are:
* 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 (ML), different attenuation models
* Moment Magnitudes (MW) based on modelled peak ground motions
* Different ground motion attributes (e.g. PGA, PGV, ...)
* Automatic extraction of modelled and picked travel times
* Station Corrections
* station specific corrections (SST)
* source specific station corrections (SSST)
Qseek is built on top of [Pyrocko](https://pyrocko.org).
## Documentation
For more information check out the documentation at <https://pyrocko.github.io/qseek/>.
## Installation
Simple installation from GitHub.
```sh
pip install git+https://github.com/pyrocko/qseek
```
## Project Initialisation
Show the default config.
```sh
qseek config
```
Edit the `my-project.json`
Start the earthquake detection with
```sh
qseek search search.json
```
## Packaging
The simplest and recommended way of installing from source:
### Development
Local development through pip.
```sh
cd qseek
pip3 install .[dev]
```
The project utilizes pre-commit for clean commits, install the hooks via:
```sh
pre-commit install
```
## Citation
Please cite Qseek as:
> Marius Paul Isken, Peter Niemz, Jannes Münchmeyer, Sebastian Heimann, Simone Cesca, Torsten Dahm, Qseek: A data-driven Framework for Machine-Learning Earthquake Detection, Localization and Characterization, Seismica, 2024, *submitted*
## License
Contribution and merge requests by the community are welcome!
Qseek was written by Marius Paul Isken and is licensed under the GNU GENERAL PUBLIC LICENSE v3.
Raw data
{
"_id": null,
"home_page": null,
"name": "qseek",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.10",
"maintainer_email": "Marius Paul Isken <mi@gfz-potsdam.de>, Sebastian Heimann <heimann@uni-potsdam.de>",
"keywords": "earthquake, detection, localization, stacking-migration, beamforming",
"author": null,
"author_email": "Marius Paul Isken <mi@gfz-potsdam.de>, Sebastian Heimann <heimann@uni-potsdam.de>, Marius Kriegerowski <mk@quakesaver.de>",
"download_url": "https://files.pythonhosted.org/packages/d6/c9/62e0eef5f3ba609e9a75b932219c938264f00d289d1d23bc93ea9e35eee6/qseek-0.1.1.tar.gz",
"platform": null,
"description": "# Qseek\n\n*The friendly earthquake detector*\n\n[](https://github.com/astral-sh/ruff)\n[](https://pre-commit.com/)\n[](https://github.com/pyrocko/qseek/actions/workflows/build.yaml)\n[](https://python.org/)\n\n[](https://pyrocko.github.io/qseek/)\n<!-- [](https://pypi.org/project/lassie/) -->\n\nQseek is a data-driven earthquake detection and localisation framework for large seismic data sets. The framework is based on a stacking and migration approach, a beamforming method. It combines neural network phase annotations with an iterative octree localisation approach for efficient and accurate localisation of seismic events.\n\nKey features are of the earthquake detection and localisation framework are:\n\n* Earthquake phase detection using machine-learning model from [SeisBench](https://github.com/seisbench/seisbench), pre-trained on different data sets.\n * [PhaseNet (Zhu and Beroza, 2018)](https://doi.org/10.1093/gji/ggy423)\n * [EQTransformer (Mousavi et al., 2020)](https://doi.org/10.1038/s41467-020-17591-w)\n * [OBSTransformer (Niksejel and Zahng, 2024)](https://doi.org/10.1093/gji/ggae049)\n * LFEDetect\n* Octree localisation approach for efficient and accurate search\n* Different velocity models:\n * Constant velocity\n * 1D Layered velocity model\n * 3D fast-marching velocity model (NonLinLoc compatible)\n* Extraction of earthquake event features:\n * Local magnitudes (ML), different attenuation models\n * Moment Magnitudes (MW) based on modelled peak ground motions\n * Different ground motion attributes (e.g. PGA, PGV, ...)\n* Automatic extraction of modelled and picked travel times\n* Station Corrections\n * station specific corrections (SST)\n * source specific station corrections (SSST)\n\nQseek is built on top of [Pyrocko](https://pyrocko.org).\n\n## Documentation\n\nFor more information check out the documentation at <https://pyrocko.github.io/qseek/>.\n\n## Installation\n\nSimple installation from GitHub.\n\n```sh\npip install git+https://github.com/pyrocko/qseek\n```\n\n## Project Initialisation\n\nShow the default config.\n\n```sh\nqseek config\n```\n\nEdit the `my-project.json`\n\nStart the earthquake detection with\n\n```sh\nqseek search search.json\n```\n\n## Packaging\n\nThe simplest and recommended way of installing from source:\n\n### Development\n\nLocal development through pip.\n\n```sh\ncd qseek\npip3 install .[dev]\n```\n\nThe project utilizes pre-commit for clean commits, install the hooks via:\n\n```sh\npre-commit install\n```\n\n## Citation\n\nPlease cite Qseek as:\n\n> Marius Paul Isken, Peter Niemz, Jannes M\u00fcnchmeyer, Sebastian Heimann, Simone Cesca, Torsten Dahm, Qseek: A data-driven Framework for Machine-Learning Earthquake Detection, Localization and Characterization, Seismica, 2024, *submitted*\n\n## License\n\nContribution and merge requests by the community are welcome!\n\nQseek was written by Marius Paul Isken and is licensed under the GNU GENERAL PUBLIC LICENSE v3.\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "qseek - The earthquake detector.",
"version": "0.1.1",
"project_urls": {
"GitHub": "https://github.com/pyrocko/qseek",
"Home": "https://pyrocko.org",
"Issues": "https://github.com/pyrocko/qseek/issues"
},
"split_keywords": [
"earthquake",
" detection",
" localization",
" stacking-migration",
" beamforming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8ccf94f1eebb7da23488208c1320aa1791ba5a2cfdeab908164a6d2a50b750df",
"md5": "afeefa9e437cb34fbe79dee99f40327b",
"sha256": "3377bd8eaaca6a598ab39adf7fd7fa801465363bc86d087bd6eeaec3012c7f57"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "afeefa9e437cb34fbe79dee99f40327b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 227651,
"upload_time": "2024-12-04T17:34:37",
"upload_time_iso_8601": "2024-12-04T17:34:37.159386Z",
"url": "https://files.pythonhosted.org/packages/8c/cf/94f1eebb7da23488208c1320aa1791ba5a2cfdeab908164a6d2a50b750df/qseek-0.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0934cb0f755bc30101a3a922cf65d01e424679e777216e48429c122e4bccee0d",
"md5": "f0cf44a5b74a03fec2a2c765f33c497f",
"sha256": "0ac60f56d53c52b0b39fbd5e88ed0763772a6e64e3cd5dbebe7b8ded6a69c4ec"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f0cf44a5b74a03fec2a2c765f33c497f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 225238,
"upload_time": "2024-12-04T17:34:39",
"upload_time_iso_8601": "2024-12-04T17:34:39.309031Z",
"url": "https://files.pythonhosted.org/packages/09/34/cb0f755bc30101a3a922cf65d01e424679e777216e48429c122e4bccee0d/qseek-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "907c9b8d5ffc37c72b46ecc88186bd404aeb9c35222a6215cf62855d3fc0dc67",
"md5": "071947aa5e73ab8d03f460677a6128d4",
"sha256": "c3ffc65c62deeab51a4a63d15ac3565263fbde32f2fc44001f3538a5ce036ef1"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "071947aa5e73ab8d03f460677a6128d4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 308792,
"upload_time": "2024-12-04T17:34:40",
"upload_time_iso_8601": "2024-12-04T17:34:40.691601Z",
"url": "https://files.pythonhosted.org/packages/90/7c/9b8d5ffc37c72b46ecc88186bd404aeb9c35222a6215cf62855d3fc0dc67/qseek-0.1.1-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c4558120f46b6dd4fc9d220f89f7eac8fbf89edaa15fdff665dcee7f231afca1",
"md5": "cbdcf3cb7a3a5f1a47a93689539c50e6",
"sha256": "7b610045ff0693e3bed5d74d9980095e7bb9976b0ba8f2eaf202c5212ad09382"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "cbdcf3cb7a3a5f1a47a93689539c50e6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.13,>=3.10",
"size": 300182,
"upload_time": "2024-12-04T17:34:42",
"upload_time_iso_8601": "2024-12-04T17:34:42.585222Z",
"url": "https://files.pythonhosted.org/packages/c4/55/8120f46b6dd4fc9d220f89f7eac8fbf89edaa15fdff665dcee7f231afca1/qseek-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a0dea0c528ba3ee79283fe98b47f44b5c1a5b2a1d7cd218e3905cab52cd71ce0",
"md5": "907f74476a3d3589f288e9a3d25a1533",
"sha256": "0ab2a6c92606ed6772b44ec2bdb4f9cf93822039fb507bcba26cf44d5a9fac59"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "907f74476a3d3589f288e9a3d25a1533",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 228583,
"upload_time": "2024-12-04T17:34:44",
"upload_time_iso_8601": "2024-12-04T17:34:44.563083Z",
"url": "https://files.pythonhosted.org/packages/a0/de/a0c528ba3ee79283fe98b47f44b5c1a5b2a1d7cd218e3905cab52cd71ce0/qseek-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0fc3749341e9da3223b8b9e9a29818bdf4598fde63fa153eca8f8c0fd31f8679",
"md5": "c9ff5b3370b9727e09af821d3965f2bc",
"sha256": "0854cd09eca0e48f071a5dad767a57d961fe8d3bd60505be658bfea737f64ec0"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c9ff5b3370b9727e09af821d3965f2bc",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 226242,
"upload_time": "2024-12-04T17:34:46",
"upload_time_iso_8601": "2024-12-04T17:34:46.466636Z",
"url": "https://files.pythonhosted.org/packages/0f/c3/749341e9da3223b8b9e9a29818bdf4598fde63fa153eca8f8c0fd31f8679/qseek-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "069c3ba228762b61961be3e4ad40b46efbb49421bcf4dae91d2f77087c9dee93",
"md5": "51892cafc0947b39942901d91ebd5b99",
"sha256": "a0afcf14cdf8c8519fd257bb62f68e17a563cee077b2f60c4362614b134aa07d"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "51892cafc0947b39942901d91ebd5b99",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 309634,
"upload_time": "2024-12-04T17:34:48",
"upload_time_iso_8601": "2024-12-04T17:34:48.627874Z",
"url": "https://files.pythonhosted.org/packages/06/9c/3ba228762b61961be3e4ad40b46efbb49421bcf4dae91d2f77087c9dee93/qseek-0.1.1-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f8e53f7eab5992ea54728cf60b2f3f8d35b8b1112c7c01bc4f5c76fe0acb2a08",
"md5": "2b989428fae256611c0d3c8a623ced95",
"sha256": "920f5d6ddcf8fc44d83e9ba6c70957668c27a8a7f76bae8a7e70534faffc7993"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "2b989428fae256611c0d3c8a623ced95",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.13,>=3.10",
"size": 301073,
"upload_time": "2024-12-04T17:34:49",
"upload_time_iso_8601": "2024-12-04T17:34:49.922487Z",
"url": "https://files.pythonhosted.org/packages/f8/e5/3f7eab5992ea54728cf60b2f3f8d35b8b1112c7c01bc4f5c76fe0acb2a08/qseek-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4797fb45da328862d3027eb023d719b3a88c2aa49ac194205dd630a50142879a",
"md5": "fd357ff44a75166ccf5d6816bb33d958",
"sha256": "92b23eeadc37e55056eb184c74c67243ffcdf893cd81204523733c942c8bb060"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "fd357ff44a75166ccf5d6816bb33d958",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 228257,
"upload_time": "2024-12-04T17:34:51",
"upload_time_iso_8601": "2024-12-04T17:34:51.981221Z",
"url": "https://files.pythonhosted.org/packages/47/97/fb45da328862d3027eb023d719b3a88c2aa49ac194205dd630a50142879a/qseek-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0fcee3446e8ddd38271fbcc990dd003df13b97830946da9e8a915d711e8d32d9",
"md5": "2507084c8d3e634fa6b2dd68cb0cdb1b",
"sha256": "c467e02ef5d0ef5045cf260c6817d9fb4b22b1cfbb7066253c55c8e11fff7c9c"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "2507084c8d3e634fa6b2dd68cb0cdb1b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 225922,
"upload_time": "2024-12-04T17:34:53",
"upload_time_iso_8601": "2024-12-04T17:34:53.874776Z",
"url": "https://files.pythonhosted.org/packages/0f/ce/e3446e8ddd38271fbcc990dd003df13b97830946da9e8a915d711e8d32d9/qseek-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6791f7371e1b985028008d20369690a5796fadbab49e8d448fb115e8be2133ee",
"md5": "55c881dd9ff65a88198665ce8528206e",
"sha256": "fcf3ef58e3093754688db22c9c0e57dd2752fbb742f06497af6662caa084c5a6"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "55c881dd9ff65a88198665ce8528206e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 309325,
"upload_time": "2024-12-04T17:34:55",
"upload_time_iso_8601": "2024-12-04T17:34:55.165068Z",
"url": "https://files.pythonhosted.org/packages/67/91/f7371e1b985028008d20369690a5796fadbab49e8d448fb115e8be2133ee/qseek-0.1.1-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e3f9fa101b7632360531955737aedce73de1aef674ea76fc355b7574a249ccf0",
"md5": "7c5c9a37ba934052eff08cbe73ae3225",
"sha256": "9660f69fbe3343285319f79cc15a5efa57ab568a89f5bade9313be3fcce882e6"
},
"downloads": -1,
"filename": "qseek-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "7c5c9a37ba934052eff08cbe73ae3225",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.13,>=3.10",
"size": 300812,
"upload_time": "2024-12-04T17:34:56",
"upload_time_iso_8601": "2024-12-04T17:34:56.455916Z",
"url": "https://files.pythonhosted.org/packages/e3/f9/fa101b7632360531955737aedce73de1aef674ea76fc355b7574a249ccf0/qseek-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "22ee75177debe4ebbb26ad98c2ea34a204557efc9845c99e75c82e98784319ce",
"md5": "a35da10e3df278124fb0ee7e71844afa",
"sha256": "4a9e0cc00e2efd2567434c18928fe9b19c5f97da195f4113874ac4da2a7c2886"
},
"downloads": -1,
"filename": "qseek-0.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "a35da10e3df278124fb0ee7e71844afa",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "<3.13,>=3.10",
"size": 214996,
"upload_time": "2024-12-04T17:34:58",
"upload_time_iso_8601": "2024-12-04T17:34:58.261086Z",
"url": "https://files.pythonhosted.org/packages/22/ee/75177debe4ebbb26ad98c2ea34a204557efc9845c99e75c82e98784319ce/qseek-0.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e42ae41d17556d30d1aa47ce5f000f04fe4b28a4a1c0dd70302afaf72d30bdd1",
"md5": "663f3a8c5b7e2829c5ae4196dc40ddeb",
"sha256": "99ce6393be2005ec1851925233236195cc086292568b6870acfe180515ccab53"
},
"downloads": -1,
"filename": "qseek-0.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "663f3a8c5b7e2829c5ae4196dc40ddeb",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "<3.13,>=3.10",
"size": 211766,
"upload_time": "2024-12-04T17:35:00",
"upload_time_iso_8601": "2024-12-04T17:35:00.180342Z",
"url": "https://files.pythonhosted.org/packages/e4/2a/e41d17556d30d1aa47ce5f000f04fe4b28a4a1c0dd70302afaf72d30bdd1/qseek-0.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d6c962e0eef5f3ba609e9a75b932219c938264f00d289d1d23bc93ea9e35eee6",
"md5": "80f57098e77e6eb3805ca7115c4a00c1",
"sha256": "7207cdc493bfd79aa43ffc91b17d25943150babc29abdc0460ae06a2da8cd232"
},
"downloads": -1,
"filename": "qseek-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "80f57098e77e6eb3805ca7115c4a00c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 980053,
"upload_time": "2024-12-04T17:35:01",
"upload_time_iso_8601": "2024-12-04T17:35:01.665226Z",
"url": "https://files.pythonhosted.org/packages/d6/c9/62e0eef5f3ba609e9a75b932219c938264f00d289d1d23bc93ea9e35eee6/qseek-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-04 17:35:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pyrocko",
"github_project": "qseek",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "qseek"
}