SeisNoise.jl is designed for fast and easy ambient noise cross-correlation in Julia.
From the Julia command prompt:
- Press
]
to enterpkg
. - Type or copy:
add SeisNoise
- Press backspace to exit
pkg
. - Type or copy:
using SeisNoise
- 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.
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: