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 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 hardward to run CUDA/Tensorflow, which usually means some sort of GPU. This has been tested on servers with nVidia compute cards, but also runs well on a modest multi-core with gaming PC nVidia card. The event-mode can be run efficiently enough on a laptop.

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

  • code was used from obspyck, gpd, hashpy, and others
  • would not be possible without obspy
  • this work was developed at the Oklahoma Geological Survey

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.2.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

easyQuake-0.1.2-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: easyQuake-0.1.2.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • 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.2.tar.gz
Algorithm Hash digest
SHA256 89a4fb164cd718a0b049505a0af6b4574b0d7b19a63cb322933f31c09c0bd936
MD5 c75a372babacc0402aca985c64a3fac7
BLAKE2b-256 9fd219297f7a1bab031343dc9dfba6e4db1d92716fccf7806b22c76c479e6d72

See more details on using hashes here.

File details

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

File metadata

  • Download URL: easyQuake-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 36.4 kB
  • 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 75c1e71f2e1db50795a5490f3eb2edb63bbc7a89ef04d3e91beea7e711158413
MD5 d9e7d32e188fff950f3966893ff4b24f
BLAKE2b-256 404871579c8ba84adc909365efab7db66654d25bb6c82f95d87b2dc6b52fc8ee

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