All Projects → liamtoney → sonify

liamtoney / sonify

Licence: MIT license
Sonification of seismic and infrasound signals

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to sonify

MTfit
MTfit code for Bayesian Moment Tensor Fitting
Stars: ✭ 61 (+134.62%)
Mutual labels:  seismology
fteikpy
Accurate Eikonal solver for Python
Stars: ✭ 34 (+30.77%)
Mutual labels:  seismology
stream2segment
A Python project to download, process and visualize medium-to-massive amount of seismic waveforms and metadata
Stars: ✭ 18 (-30.77%)
Mutual labels:  seismology
disba
Numba-accelerated computation of surface wave dispersion
Stars: ✭ 66 (+153.85%)
Mutual labels:  seismology
mtuq
moment tensor uncertainty quantification
Stars: ✭ 40 (+53.85%)
Mutual labels:  seismology
axisem
AxiSEM is a parallel spectral-element method to solve 3D wave propagation in a sphere with axisymmetric or spherically symmetric visco-elastic, acoustic, anisotropic structures.
Stars: ✭ 34 (+30.77%)
Mutual labels:  seismology
sl2influxdb
Fetch seedlink data and store them into InfluxDB
Stars: ✭ 28 (+7.69%)
Mutual labels:  seismology
from-data-to-sound
🎵 Simple Node.js script for transforming data to a MIDI file
Stars: ✭ 33 (+26.92%)
Mutual labels:  sonification
seispy
Python module of seismology and receiver functions
Stars: ✭ 50 (+92.31%)
Mutual labels:  seismology
noisi
A tool for modeling and source inversion of auto- and cross-correlations of ambient seismic "noise".
Stars: ✭ 32 (+23.08%)
Mutual labels:  seismology
MuRAT
A multi-resolution seismic attenuation tomography code - currently in its 3.0 release
Stars: ✭ 24 (-7.69%)
Mutual labels:  seismology
Telewavesim
Teleseismic body wave modeling through stacks of (submarine/anisotropic) layers
Stars: ✭ 41 (+57.69%)
Mutual labels:  seismology
scrtdd
Double Difference Relocator for SeisComP
Stars: ✭ 17 (-34.62%)
Mutual labels:  seismology
zmap7
ZMAP Seismology Software. V 7.x has been updated to MATLAB R2018a.
Stars: ✭ 60 (+130.77%)
Mutual labels:  seismology
REDPy
Repeating Earthquake Detector (Python)
Stars: ✭ 62 (+138.46%)
Mutual labels:  seismology
nllgrid
Python class for reading and writing NLLoc grid files.
Stars: ✭ 23 (-11.54%)
Mutual labels:  seismology
obsplus
A Pandas-Centric ObsPy Expansion Pack
Stars: ✭ 28 (+7.69%)
Mutual labels:  seismology
astronify
Astronomical data sonification.
Stars: ✭ 57 (+119.23%)
Mutual labels:  sonification
etas
calibrate ETAS, simulate using ETAS, estimate completeness magnitude & magnitude frequency distribution
Stars: ✭ 37 (+42.31%)
Mutual labels:  seismology
RfPy
Teleseismic receiver function calculation and post-processing
Stars: ✭ 25 (-3.85%)
Mutual labels:  seismology

sonify

Documentation status Build status Test coverage Link to Black Link to isort

sonify “squeezes” seismic or infrasound signals into audible frequencies and creates animated spectrograms to accompany the audio. Data are pulled from any of the FDSN data centers available through the Incorporated Research Institutions for Seismology (IRIS) Data Management Center (DMC) fedcatalog web service.

Screenshot of example

sonify won an Honorable Mention in the 2020 SciPy John Hunter Excellence in Plotting Contest (JHEPC).

Quickstart

  1. Obtain

    git clone https://github.com/liamtoney/sonify.git
    cd sonify
  2. Create environment, install, and activate (install conda first, if necessary)

    conda env create
    conda activate sonify
  3. Run using the Python interpreter

    python
    >>> from sonify import sonify

    or via the command-line interface

    sonify --help

Example

To make a movie of the seismic signal generated by a massive avalanche occurring in Alaska on 21 June 2019, sped up by a factor of 200:

from sonify import sonify
from obspy import UTCDateTime

sonify(
    network='AV',
    station='ILSW',
    channel='BHZ',
    starttime=UTCDateTime(2019, 6, 20, 23, 10),
    endtime=UTCDateTime(2019, 6, 21, 0, 30),
    freqmin=1,
    freqmax=23,
    speed_up_factor=200,
    fps=1,  # Use fps=60 to ~recreate the JHEPC entry (slow to save!)
    spec_win_dur=8,
    db_lim=(-180, -130),
)

Or (equivalently), via the command-line interface:

sonify AV ILSW BHZ 2019-06-20T23:10 2019-06-21T00:30 --freqmin 1 --freqmax 23 --speed_up_factor 200 --fps 1 --spec_win_dur 8 --db_lim -180 -130

The result is a 4K 1fps video file named AV_ILSW_BHZ_200x.mp4. A screenshot of the movie is shown at the top of this README.

Documentation

Application programming interface (API) documentation for the module is available here. For command-line usage instructions, type sonify --help (the sonify conda environment must be active).

Contributing

If you notice a bug with sonify (or if you'd like to request/propose a new feature), please create an issue on GitHub (preferred) or email me at [email protected]. You are also welcome to create a pull request. Please don't allow imposter syndrome to obstruct you from contributing your valuable ideas and skills to this project — I'm happy to help you contribute in any way I can.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].