Skip to content

tperol/EQcorrscan

 
 

Repository files navigation

EQcorrscan

A python package to conduct matched-filter earthquake detections.

Join the chat at https://gitter.im/calum-chamberlain/EQcorrscan TravisCIStatus Build status Coverage Status DOI DocumentationStatus

Installation

Installation has been tested on both OSX and Linux (Ubuntu), we currently do not support Windows systems, but plan to in the future (check the appveyor status, when it passes we might be good to go!). Installation for Linux and OS X should be as simple as:

pip install EQcorrscan

If upgrading from a previous version, rather than running install --upgrade, I recommend the following:

pip install -U --no-deps EQcorrscan

This will not try to upgrade your dependencies, which is not needed. You may wish to update your obspy version to 1.0.0 which was recently released. We have tested this and support it, nevertheless, if you find any issues then let us know.

You will likely need sudo permissions to run this command.

If you have any issues installing please let me know. You will need to install openCV separately using (on Linux):

apt-get install python-opencv

Or, for Mac users, this is available on Macports or other similar package managers.

For those who want to un the GUIs (in very early development) you will need to install tk, on Windows and OSX this is usually pre-installed, on Linux you may need to run:

apt-get install python-tk

You will also need Qt and PyQT > 4.4. Installation for these can be a bit of a dog, you will need to google around - hopefully I can have better instructions here soon.

Updates

If you want to be kept informed about releases, bug-tracking and enhancements without having to keep looking on github, subscribe to our google group.

Documentation

The full documentation for this package can be found here: Docs. Any errors including typos and just missing bits can either be fixed by you, or flagged in the issues tab here. We host our docs on readthedocs, which uses sphinx to scrape the docstrings in the codes, so it is simple to match the docs to the codes and change the docstrings.

We also have a github-pages site EQcorrscan, which uses jekyll to build the site. Changes or additions to this site can be made on the gh-pages branch.

Functionality

This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Neither of these packages are installed by this software, due to a range of licenses being implemented. However, both are open-source and should be installed before using this package. This package was written to implement the Matlab routines used by Chamberlain et al. (2014) for the detection of low-frequency earthquakes.

Also within this package are:

  • Clustering routines for seismic data;
  • Peak finding algorithm (basic, but appropriate for noisy data);
  • Automatic amplitude picker for local magnitude scale;
  • Seisan S-file integration for database management and routine earthquake location;
  • Obspy.core.event integration, which opens up lots of other functions (Seishub, hypoDDpy etc.);
  • Stacking routines including phase-weighted stacking based on Thurber at al. (2014);
  • Brightness based template creation based on the work of Frank et al. (2014);
  • Singular Value Decomposition derived magnitude calculations based on Rubinstein & Ellsworth (2010).

We are currently hovering around 9,000 lines of code (including doc-strings) - it is probably worth having a look at the docs to check what functions we have. We plan to write a series of tutorials to be included on the EQcorrscan API to highlight key functions, currently our tutorials only show how to do the core matched-filter detection.

Licence

This package is written by Calum Chamberlain and Chet Hopp of Victoria University of Wellington, and is distributed under the LGPL GNU License, Copyright Calum Chamberlain and Chet Hopp 2015, 2016.

Contributing

Please fork this project and work on it there then create a pull request to merge back into develop.

When you make changes please run the tests in the test directory to ensure everything merges with minimum effort. If there is not yet a test to cope with your changes then please write one.

Please document your functions following the other documentation within the functions, these doc-scripts will then be built into the main documentation using Sphinx.

We are trying to implement a better branching model, following that found here. To this end, please fork the development branch if you want to develop things, and flag issues in the master for us to bugfix. If you have a feature you want to develop please create a new branch from the development branch and work on it there, we can then merge it back in to the development branch when it is stable enough.

This branching model (git-flow) is pretty well established, and I would recommend you to install git-flow and read their documentation. It seems pretty intuitive and will keep us all branching in the same way.

References

About

Matched-filter earthquake detection and analysis in Python.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 96.3%
  • Batchfile 1.9%
  • Makefile 1.4%
  • PowerShell 0.4%