https://github.com/anowacki/beamforming.jl

Global seismic array analysis in Julia

https://github.com/anowacki/beamforming.jl

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary

Keywords

array-seismology beamforming julia seis-jl seismology vespagram
Last synced: 6 months ago · JSON representation

Repository

Global seismic array analysis in Julia

Basic Info
  • Host: GitHub
  • Owner: anowacki
  • License: other
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 2.25 MB
Statistics
  • Stars: 13
  • Watchers: 5
  • Forks: 2
  • Open Issues: 5
  • Releases: 1
Topics
array-seismology beamforming julia seis-jl seismology vespagram
Created almost 6 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

Beamforming

Beamforming is a Julia module for the array analysis of seismic data, using Seis.jl.

Build status

Build Status codecov

Installation

```julia julia> ] # press ']' to enter pkg mode

(v1.7) pkg> add https://github.com/anowacki/Geodesics.jl https://github.com/anowacki/Seis.jl https://github.com/anowacki/Beamforming.jl ```

Beamforming.jl requires Julia v1.6 or above.

Usage overview

The main functions exported are:

  • For traditional beamforming:
    • array_response: Compute the array response function for a set of stations
    • beamform: Compute the beam power across a grid of slowness points (as in f–k analysis)
    • vespagram: Compute a slowness vespagram
  • For cross-correlation beamforming:
    • crosscorrelation_array_response
    • crosscorrelation_beamform

Docstrings are exhaustive, and can be consulted for usage of these functions. To bring up docstrings in the REPL, type ? followed by the name of the function and press return.

Array response

The array response for a set of stations can be computed like so: ```julia using Beamforming, Seis t = sample_data(:array); # 60 UK stations

Array response parameters

arf = arrayresponse( t, # Set of traces 5, # Maximum slowness in s/° 0.1, # Slowness grid spacing 0.1, # Minimum frequency in Hz 1, # Maximum frequency 0.1, # Frequency spacing true # true for s/° slowness; false for s/km ) using CairoMakie plot(arf, powscale=:dB) # If a Makie backend is installed ``` <img src="doc/images/arrayresponse.png" width="600">

Beamforming

Beamforming can be performed like so: julia bf = beamform( t, 1100, # Start time in s 1160, # End time in s -1, # Minimum east slowness in s/° 0.5, # Maximum east slowness 0, # Minimum north slowness 4, # Maximum north slowness 0.01 # Slowness spacing ) using SeisTau # See note below plot(bf, phases=["PKiKP", "PKIKP"])

Vespagrams

Compute a vespagram like so: julia vesp = vespagram( t, 1110, # Start time in s 1150, # End time 1, # Minimum slowness in s/° 4, # Maximum slowness 0.01, # Slowness spacing ) plot(vesp, phases=["PKiKP", "PKIKP"])

Optional extras

Plotting

Makie.jl

Plots can be created using the Makie.jl ecosystem. To enable this, load a Makie backend module by doing e.g. using GLMakie in your REPL or module. You will likely need to add this backend as a package to your environment, e.g. by doing import Pkg; Pkg.add("GLMakie").

The following plotting functions are provided through Makie: - plot_array_response - plot_array_response! - plot_beamfomring - plot_beamfomring! - plot_vespagram - plot_vespagram!

Makie.plot and Makie.plot! are overloaded such that plot(arf_or_bf_or_vesp) and plot!(axis, arf_or_bf_or_vesp) will produce the right plot, whether the result of array_response, beamform or vespagram is passed in, as seen above.

Plots.jl

As an alternative to Makie plotting, Beamforming.jl supports using Plots.jl as a legacy implementation. If you have installed Plots to your environment, then you can easily create plots as shown above.

For more help on the Plots.jl plotting commands provided in this package, call up the online help for Beamforming.plot:

julia help?> Beamforming.plot

Travel times

To plot the predicted location in slowness and time of arrivals, you can install SeisTau.jl. (See the installation notes for more.)

Simply do using SeisTau, then the phases option to plot will enable easy predicted phase arrival plotting for BeamformGrids and VespaGrids, produced respectively by beamform and vespagram.

Owner

  • Name: Andy Nowacki
  • Login: anowacki
  • Kind: user

Lecturer at the School of Earth and Environment, University of Leeds, studying the Earth's deep interior.

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Delete event: 3
  • Issue comment event: 4
  • Push event: 4
  • Pull request event: 10
  • Create event: 6
Last Year
  • Issues event: 2
  • Watch event: 2
  • Delete event: 3
  • Issue comment event: 4
  • Push event: 4
  • Pull request event: 10
  • Create event: 6

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 13
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.92
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 9
Past Year
  • Issues: 2
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.6
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • anowacki (2)
Pull Request Authors
  • dependabot[bot] (11)
  • github-actions[bot] (4)
  • anowacki (4)
Top Labels
Issue Labels
enhancement (1) good first issue (1)
Pull Request Labels
dependencies (11) github_actions (1)

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite