Giter Club home page Giter Club logo

malmi's Introduction

MALMI (MAchine Learning aided earthquake MIgration location)

MALMI is developed on a Linux OS system. Therefore, we suggest using MALMI on Linux. For using MALMI on Windows and Mac OS systems, we anticipated there might be problems during compiling and running. Please feel free to create "Pull requests" or suggest changes if you solve problems/bugs in Windows and Mac OS systems.

Installation

We suggest to create and work in a new python environment for MALMI. The installation is done via Anaconda. For more information see conda.

Currently MALMI can utilize EQTransformer and SeisBench as the ML engine and loki as the migration engine. So the these softwares should be installed as well. We will guide you step by step in this section to install all the required packages. It seems the installation of EQTransformer and SeisBench are not compatible, so you will have to choose one as ML engine, or install two virtual environments.

Create and activate a new environment

If you want to use original EQTransformer as ML engine:

conda config --add channels conda-forge
conda config --set channel_priority strict
conda create -n malmi python=3.7 obspy spyder==5.0.3 pygmt six~=1.15.0 numpy~=1.19.2 protobuf'<3.20,>=3.9.2'
conda activate malmi

If you want to use SeisBench as ML engine:

conda config --add channels conda-forge
conda config --set channel_priority strict
conda create -n malmi python=3.9 pygmt
conda activate malmi

Install EQTransformer (to use EQT as ML engine)

git clone https://github.com/speedshi/EQTransformer.git
cd WHERE_EQTransformer_IS_STORED
python setup.py install

Install SeisBench (to use SeisBench as ML engine)

pip install seisbench

Install loki (GNU gcc compiler and openmp required)

git clone https://github.com/speedshi/LOKI.git
cd WHERE_LOKI_IS_STORED
pip install .

Install MALMI

git clone https://github.com/speedshi/MALMI.git

Install NonLinLoc if you want to generate travetime tables in MALMI (optional)

Currently only Vel2Grid and Grid2Time programs are used and remember to put them in a executable path after compiling NonLinLoc.
There are two ways to install NonLinLoc:

  1. Through NonLinLoc GitHub Page (Recomended)
    Install example:
git clone https://github.com/alomax/NonLinLoc.git
cd NonLinLoc/src
mkdir bin   # bin/ is a subdirectory of src/
cmake .
make
echo 'export PATH="WHERE_CODE_IS_STORED/NonLinLoc/src/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
  1. Follow NonLinLoc Home Page for installing the NonLinLoc software.
    Install example:
wget http://alomax.free.fr/nlloc/soft7.00/tar/NLL7.00_src.tgz
mv NLL7.00_src.tgz WHERE_CODE_IS_STORED
cd WHERE_CODE_IS_STORED
mkdir NLL
tar -xzvf NLL7.00_src.tgz -C ./NLL
cd ./NLL/src
make -R distrib
echo 'export PATH="WHERE_CODE_IS_STORED/NLL/src:$PATH"' >> ~/.bashrc
source ~/.bashrc

Usage

Follow the user manual page to use MALMI.

Reference

Please cite the following paper in your documents if you use MALMI in your work.
Peidong Shi, Francesco Grigoli, Federica Lanza, Gregory C. Beroza, Luca Scarabello, Stefan Wiemer; MALMI: An Automated Earthquake Detection and Location Workflow Based on Machine Learning and Waveform Migration. Seismological Research Letters 2022; doi: https://doi.org/10.1785/0220220071

BibTex:

@article{10.1785/0220220071,
    author = {Shi, Peidong and Grigoli, Francesco and Lanza, Federica and Beroza, Gregory C. and Scarabello, Luca and Wiemer, Stefan},
    title = "{MALMI: An Automated Earthquake Detection and Location Workflow Based on Machine Learning and Waveform Migration}",
    journal = {Seismological Research Letters},
    year = {2022},
    month = {05},
    issn = {0895-0695},
    doi = {10.1785/0220220071},
    url = {https://doi.org/10.1785/0220220071},
    eprint = {https://pubs.geoscienceworld.org/ssa/srl/article-pdf/doi/10.1785/0220220071/5602568/srl-2022071.1.pdf},
}

License

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details, see in the license file.

Contributing

If you would like to contribute to the project or have any suggestions about the code, please feel free to create Pull Requests, raise issues and contact me.
If you have any questions about the usage of this package or find bugs in the code, please also feel free to contact me.

Contact information

Copyright(C) 2021 Peidong Shi
Author: Peidong Shi
Email: [email protected] or [email protected]

malmi's People

Contributors

speedshi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.