Coder Social home page Coder Social logo

mkvishesh / array_processing Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uafgeotools/array_processing

0.0 0.0 0.0 196 KB

Various array processing tools for infrasound and seismic data

Home Page: https://uaf-array-processing.readthedocs.io/

License: MIT License

Python 100.00%

array_processing's Introduction

array_processing

Various array processing tools for infrasound and seismic data. By default uses least-squares to determine the trace velocity and back-azimuth of a plane wave crossing an array in sliding time windows. More advanced processing (such as least-trimmed squares) is easily integrated. Also provides tools to characterize the array response, uncertainty, source-location of a spherical wave crossing the array, etc. See documentation and example.py for more info.

General References and Suggested Citations

Least squares and array uncertainty:

Szuberla, C. A. L., & Olson, J. V. (2004). Uncertainties associated with parameter estimation in atmospheric infrasound arrays, J. Acoust. Soc. Am., 115(1), 253โ€“258. https://doi.org/doi:10.1121/1.1635407

Least-trimmed squares:

Bishop, J. W., Fee, D., & Szuberla, C. A. L. (2020). Improved infrasound array processing with robust estimators, Geophys. J. Int., 221 p. 2058-2074. https://doi.org/10.1093/gji/ggaa110

Installation

We recommend you install this package into a new conda environment. (Please install Anaconda or Miniconda before proceeding.) The environment must contain all of the packages listed in the Dependencies section. For ease of installation, we've provided an environment.yml file which specifies all of these dependencies as well as instructions for installing array_processing itself. To install array_processing in this manner, execute the following commands:

git clone https://github.com/uafgeotools/array_processing.git
cd array_processing
conda env create -f environment.yml

This creates a new conda environment named uafinfra and installs array_processing and all of its dependencies there.

The final line in the environment.yml file installs array_processing in "editable" mode, which means that you can update it with a simple git pull in your local repository. We recommend you do this often, since this code is still under rapid development.

For installation into a pre-existing conda environment, click here.
First ensure you have ObsPy and FastKML installed (conda install -c conda-forge obspy fastkml) and then download and install the uafgeotools dependencies and this package with:

pip install git+https://github.com/uafgeotools/waveform_collection.git
pip install git+https://github.com/uafgeotools/lts_array.git
pip install git+https://github.com/uafgeotools/array_processing.git

(Note that this option does not produce a local clone of the repository.)

Dependencies

uafgeotools packages:

Python packages:

Usage

Import the package like any other Python package, ensuring the correct environment is active. For example,

$ conda activate uafinfra
$ python
>>> import array_processing

Documentation is available online here. For a usage example, see example.py.

Note: The array_plot() function does not allow both sigma_tau and dropped elements from least trimmed squares to be plotted.

The sigma_tau variable is an indicator of nonplanar propagation across an array (using all elements), and least trimmed squares drops element pairs that appear "too far" from planar. In this way, having a large sigma_tau value and having consistently dropped element pairs (while not the same) suggest a departure from the plane wave model.

sigma_tau is only calculated when ordinary least squares (ALPHA=1.0) is used. The ability to plot one or the other was intended as a safeguard against potentially conflicting processing assumptions. To maintain a consistent output data structure, the sigma_tau key returns a np.nan in the case that subset pairs are trimmed (0.5 <= ALPHA < 1.0).

If ALPHA=1.0, the dropped stations are not plotted since least trimmed squares is not used, and sigma_tau may be plotted if specified. If ALPHA < 1.0, then sigma_tau is not plotted or calculated.

Authors

(Alphabetical order by last name.)

Jordan Bishop
David Fee
Curt Szuberla
Liam Toney
Andrew Winkelman

array_processing's People

Contributors

atwinkelman avatar davidfee5 avatar drz-watc avatar jwbishop avatar liamtoney 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.