Collection of Python scripts to perform Eikonal Tomography

Overview

Python script - Eikonal tomography

v. 2021.03.20 for the latest version, please visit https://github.com/ekaestle

Author: Emanuel D. Kästle [email protected]

###########################

REFERENCES

###########################

The following article should be cited by anyone who uses this code:

Kästle, E. D., Molinari, I., Boschi, L., Kissling, E., & AlpArray Working Group. (2022). Azimuthal anisotropy from Eikonal Tomography: example from ambient-noise measurements in the AlpArray network. Geophysical Journal International, 229(1), 151-170.

###########################

INSTRUCTIONS

###########################

The Python scripts can be used to apply isotropic and azimuthally anisotropic Eikonal tomography after Lin et al. (2009). Detailed instructions on the principles of the Eikonal method and how this code works are given in the article referenced above.

Prerequisites

Python v.3.6 or above with the following packages: numpy, mpi4py, scipy, matplotlib, basemap, pyproj, cartopy optional: scikit-fmm, pillow (to use the fast-marching method and create synthetic data) recommended: spyder or another python editor

It is recommended to install Python and all required packages via Anaconda (executable installers and instructions for Linux/Windows/Mac can be found on the Anaconda webpage).

Once Anaconda is installed, create a new environment in a console window, for example: $ conda create -n py39 python=3.9 # or other supported Python version $ conda activate py39 # activate the newly created environment

Then, install all the required packages $ conda install numpy scipy matplotlib basemap pyproj cartopy mpi4py

The optional packages can be installed the same way $ conda install scikit-fmm pillow spyder=4

You should now be able to run the first example $ cd {path_to_this_folder}/synthetic_example_simple/ $ python eikonal_tomography.py

Running the synthetic examples

The input should be given as travel times between station pairs. An example input file is given in the synthetic_example_simple folder. The example dataset can be re-created with the provided script

$ python create_synthetic_data_simple.py

The creation of synthetic data requires that the FMM.py script is in the same folder.

The second synthetic example provided in the synthetic_example_publication/ folder re- creates the data presented in the above referenced article. Execution of this script will take very long. Finally, example_dataset_rayleigh.txt is created. The Eikonal tomography is applied by running

$ python eikonal_tomography.py

Inside the eikonal_tomography.py script, there is a header section with user-defined parameters. The function of these parameters is explained in the script itself and in the above-referenced article.

Running the Eikonal tomography script with an own dataset

Prepare one or several input files according to the scheme explained at the top of the eikonal_tomography.py script (compare example datasets in the synthetic_example_.../ folders).

Copy the eikonal_tomography.py script to a new folder. Adapt all the parameters in the USER-DEFINED PARAMETERS section of the script to your needs.

Run $ python eikonal_tomography.py

The results will appear in a newly created subfolder.

In case of questions/problems, feel free to contact [email protected]

References

Lin, F.-C., Ritzwoller, M. H., and Snieder, R. (2009). Eikonal tomography: surface wave tomography by phase front tracking across a regional broad-band seismic array. Geophysical Journal International, 177(3):1091–1110.

Owner
Emanuel Kästle
Emanuel Kästle
A Blender addon to align the origin to the top, center or bottom of a mesh object

Align Origin Blender Addon. Align Origin Blender Addon. What? This simple addon lets you align the origin to the top, center or bottom of a mesh objec

VA79 7 Nov 30, 2022
A wrapper script to make working with ADB (Android Debug Bridge) easier

Python-ADB-Wrapper A wrapper script to make working with ADB (Android Debug Bridge) easier This project was just a simple test to see if I could wrap

18iteration 1 Nov 25, 2021
tidevice can be used to communicate with iPhone device

h 该工具能够用于与iOS设备进行通信, 提供以下功能 截图 获取手机信息 ipa包的安装和卸载 根据bundleID 启动和停止应用 列出安装应用信息 模拟Xcode运行XCTest,常用的如启动WebDriverAgent测试

Alibaba 1.8k Dec 30, 2022
A general-purpose wallet generator, for supported coins only

2gen A general-purpose generator for keys. Designed for all cryptocurrencies supporting the Bitcoin format of keys and addresses. Functions To enable

Vlad Usatii 1 Jan 12, 2022
Identifies the faulty wafer before it can be used for the fabrication of integrated circuits and, in photovoltaics, to manufacture solar cells.

Identifies the faulty wafer before it can be used for the fabrication of integrated circuits and, in photovoltaics, to manufacture solar cells. The project retrains itself after every prediction, mak

Arun Singh Babal 2 Jul 01, 2022
Click2call for asterisk with python

Click2call para Asterisk com Python Este projeto disponibiliza uma API construíd

Benedito Marques 1 Jan 17, 2022
Bu repoda python ile CAN-Bus çalışmalarını nasıl gerçekleyeceğiniz anlatılmaktadır.

CAN-Bus-with-Python "CAN Bus 1980'li yıllarda Robert BOSCH tarafından geliştirilmiş bir iletişim protokoldür. Hızlı ve hata oranının çok düşük olması

Yunus Emre Coşkun 16 Aug 29, 2022
take home quiz

guess the correlation data inspection a pretty normal distribution train/val/test split splitting amount .dataset: 150000 instances ├─8

HR Wu 1 Nov 04, 2021
A pet facts python api

Pet-Facts-API A pet facts python api Project Links API :- https://pet-facts-api.vercel.app Docs :- https://fayasnoushad.github.io/Pet-Facts-API

Fayas Noushad 3 Dec 18, 2021
python scripts to perform coin die clustering (performed on Riedones3D).

python scripts to perform coin die clustering (performed on Riedones3D).

Sofiane 2 Apr 29, 2022
SymbLang are my programming language! Insired by the brainf**k.

SymbLang . - output as Unicode. , - input. ; - clear data. & - character that the main line start with. @value: 0 - 9 - character that the function

1 Apr 04, 2022
dta Convert Dict To Attributes!

dta (Dict to Attributes) dta is very small dict (or json) to attributes converter. It is only have 1 files and applied to every python versions.

Rukchad Wongprayoon 0 Dec 31, 2021
Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.

Advent Of Code 2021 - Python English Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels th

Coral Izquierdo Muñiz 2 Jan 09, 2022
Gmvault: Backup and restore your gmail account

Gmvault: Backup and restore your gmail account Gmvault is a tool for backing up your gmail account and never lose email correspondence. Gmvault is ope

Guillaume Aubert 3.5k Jan 01, 2023
LibreMind is a free meditation app made in under 24 hours. It has various meditation, breathwork, and visualization exercises.

libreMind Meditation exercises What is it? LibreMind is a free meditation app made in under 24 hours. It has various meditation, breathwork, and visua

1 May 24, 2022
Find out where all films you want to watch are streaming

Just Watch Letterboxd Find out where all films you want to watch are streaming Ever wonder what films you want to watch are already on the streaming p

Jordan Oslislo 2 Feb 04, 2022
A module to prevent invites and joins to Matrix rooms by checking the involved server(s)' domain.

Synapse Domain Rule Checker A module to prevent invites and joins to Matrix rooms by checking the involved server(s)' domain. Installation From the vi

matrix.org 4 Oct 24, 2022
A simple armature retargeting tool for Blender

Simple-Retarget-Tool-Blender A simple armature retargeting tool for Blender Update V2: Set Rest Pose to easily apply rest pose. Preset Import/Export.

Fahad Hasan Pathik 74 Jan 04, 2023
ERPNext Easy Letterhead

ERPNext Easy Letterhead Intro Quality letterheads are a problem for non-technical users. So we've built (really hacked together) a slightly easier sol

Bantoo 3 Jan 02, 2023
Python dictionaries with advanced dot notation access

from box import Box movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } }) movie_box.Robin_Hood_Men_in_Tights.imdb_s

Chris Griffith 2.1k Dec 28, 2022