Skip to main content

Simplified machine-learning driven earthquake detection, location, and analysis

Project description

easyQuake

Simplified machine-learning driven earthquake detection, location, and analysis in one easy-to-implement python package.

On most systems you should be able to simply:

pip install easyQuake

Or if you need to tweak something, like the number of GPUs in gpd_predict, you could:

git clone https://github.com/jakewalter/easyQuake.git
cd easyQuake
pip install .

If you find this useful, please cite:

Walter et al. (in prep) easyQuake: Putting machine learning to work for your regional seismic network or local earthquake study

Requirements

This code leverages machine-learning for earthquake detection. You should have suitable hardware to run CUDA/Tensorflow, which usually means some sort of GPU. This has been tested on servers with nvidia compute cards and modest multi-core desktop with consumer gaming nvidia card (e.g. Geforce 1050 Ti). The event-mode can be run efficiently enough on a laptop.

  • Requires obspy, keras, tensorflow-gpu, basemap
  • Easiest installation path includes installing Anaconda python, "conda install tensorflow-gpu" installs cudatookkit and tensorflow

Running easyQuake

The example runs easyQuake for a recent M6.5 earthquake in Idaho

from easyQuake import download_mseed
from easyQuake import daterange
from datetime import date
from easyQuake import combine_associated
from easyQuake import detection_continuous
from easyQuake import association_continuous

from easyQuake import magnitude_quakeml
from easyQuake import simple_cat_df

import matplotlib.pyplot as plt
maxkm = 300
maxdist=300
lat_a = 42
lat_b = 47.5
lon_a = -118
lon_b = -111


start_date = date(2020, 3, 31)
end_date = date(2020, 4, 1)

project_code = 'idaho'
project_folder = '/data/id'
for single_date in daterange(start_date, end_date):
    print(single_date.strftime("%Y-%m-%d"))
    dirname = single_date.strftime("%Y%m%d")
    download_mseed(dirname=dirname, project_folder=project_folder, single_date=single_date, minlat=lat_a, maxlat=lat_b, minlon=lon_a, maxlon=lon_b)
    detection_continuous(dirname=dirname, project_folder=project_folder, project_code=project_code, single_date=single_date, machine=True,local=True)
    association_continuous(dirname=dirname, project_folder=project_folder, project_code=project_code, maxdist=maxdist, maxkm=maxkm, single_date=single_date, local=True)

cat, dfs = combine_associated(project_folder=project_folder, project_code=project_code)
cat = magnitude_quakeml(cat=cat, project_folder=project_folder,plot_event=True)
cat.write('catalog_idaho.xml',format='QUAKEML')


catdf = simple_cat_df(cat)
plt.figure()
plt.plot(catdf.index,catdf.magnitude,'.')

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyQuake-0.1.5.tar.gz (19.4 MB view details)

Uploaded Source

Built Distribution

easyQuake-0.1.5-py3-none-any.whl (19.4 MB view details)

Uploaded Python 3

File details

Details for the file easyQuake-0.1.5.tar.gz.

File metadata

  • Download URL: easyQuake-0.1.5.tar.gz
  • Upload date:
  • Size: 19.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for easyQuake-0.1.5.tar.gz
Algorithm Hash digest
SHA256 03eb20da62964e2c0e5ef3f585a5271b070b37df5037c52cd3bc18b5b7b3cd15
MD5 897e992475700c2aa14710aa537be892
BLAKE2b-256 44bca7b44b307be4879c388a96ed1f040b857508a44e13615f3cb004e516b635

See more details on using hashes here.

File details

Details for the file easyQuake-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: easyQuake-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 19.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for easyQuake-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bd399c7929402f4c5db9ced0e2402cd4be68e91d42968a7562bb1d7c8f08d469
MD5 eb8fe79f0dfb67058467175571722504
BLAKE2b-256 7df3e4d254142620ea0fc566af16d00a15c9344581b65389e8b0c928ac5f0134

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page