psy a72c027bd7 initial commit 4 weeks ago
..
sonify a72c027bd7 initial commit 4 weeks ago
LICENSE.txt a72c027bd7 initial commit 4 weeks ago
README.rst a72c027bd7 initial commit 4 weeks ago
setup.py a72c027bd7 initial commit 4 weeks ago

README.rst

*sonify*
========

|docs_badge| |build_badge| |cov_badge| |black_badge| |isort_badge|

*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|

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

Quickstart
----------

1. Obtain

.. code-block:: xml

git clone https://github.com/liamtoney/sonify.git
cd sonify

2. Create environment, install, and activate (`install conda
`__
first, if necessary)

.. code-block:: xml

conda env create
conda activate sonify

3. Run using the Python interpreter

.. code-block:: python

python
>>> from sonify import sonify

or via the command-line interface

.. code-block:: xml

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:

.. code-block:: python

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:

.. ~BEGIN~
.. code-block:: xml

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
.. ~END~

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).

.. |docs_badge| image:: https://readthedocs.org/projects/sonify/badge/?version=latest
:alt: Documentation status
:target: https://sonify.rtfd.io/

.. |build_badge| image:: https://github.com/liamtoney/sonify/actions/workflows/build.yml/badge.svg
:alt: Build status
:target: https://github.com/liamtoney/sonify/actions/workflows/build.yml

.. |cov_badge| image:: https://codecov.io/gh/liamtoney/sonify/branch/main/graph/badge.svg?token=3OIGM34OFL
:alt: Test coverage
:target: https://codecov.io/gh/liamtoney/sonify

.. |black_badge| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:alt: Link to Black
:target: https://black.readthedocs.io/en/stable/

.. |isort_badge| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
:alt: Link to isort
:target: https://pycqa.github.io/isort/

.. |screenshot| image:: screenshot.png
:alt: Screenshot of example
:target: #example

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
|liam@liam.earth|_. 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.**

.. |liam@liam.earth| replace:: ``liam@liam.earth``
.. _liam@liam.earth: mailto:liam@liam.earth