Skip to content

JuliaSeismo/SeisNoise.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SeisNoise.jl

SeisNoise.jl is designed for fast and easy ambient noise cross-correlation in Julia.

Build Status Coverage Status

Noise.jl Logo

Installation

From the Julia command prompt:

  1. Press ] to enter pkg.
  2. Type or copy: add SeisNoise
  3. Press backspace to exit pkg.
  4. Type or copy: using SeisNoise

Package Features

  • Built upon SeisIO for easy and fast I/O.
  • Custom types for saving Fourier Transforms of data and cross-correlations
  • Array-based processing of raw data and cross-correlation.
  • Methods for dv/v measurements.
  • Coming soon: GPU support and dispersion analysis.

Basic Cross-Correlation

Once you have installed the package you can type using SeisNoise to start cross-correlating. For example

using SeisNoise, SeisIO
fs = 40. # sampling frequency in Hz
freqmin,freqmax = 0.1,0.2 # min and max frequencies 
cc_step, cc_len = 450, 1800 # corrleation step and length in S
maxlag = 60. # maximum lag time in correlation
s = "2019-02-03"
t = "2019-02-04"
S1 = get_data("FDSN","CI.SDD..BHZ",src="SCEDC",s=s,t=t)
S2 = get_data("FDSN","CI.PER..BHZ",src="SCEDC",s=s,t=t)
process_raw!(S1,fs)
process_raw!(S2,fs)
R = RawData.([S1,S2],cc_len,cc_step)
detrend!.(R)
taper!.(R)
bandpass!.(R,freqmin,freqmax,zerophase=true)
FFT = compute_fft.(R)
whiten!.(FFT,freqmin,freqmax)
C = compute_cc(FFT[1],FFT[2],maxlag)
clean_up!(C,freqmin,freqmax)
abs_max!(C)
corrplot(C)

will produce this figure:

plot1