Dataset Open Access
Schippkus, Sven;
Hadziioannou, Céline;
Hillers, Gregor
This repository contains the C1 cross-correlation functions of the ambient seismic field and station metadata required to reproduce the results described in the manuscript "Source effects in higher-order ambient seismic field correlations" by Schippkus et al., 2025.
We provide a complete set of Jupyter notebooks that implements all processing described in the manuscript for full reproducibility. They make use of the data provided in this repository. The notebooks are hosted on GitHub at https://github.com/schipp/higher_order_correlations_c2.
The files hosted here are:
The cross-correlations are computed as described in the manuscript: ~4 weeks of continuous recordings are cut into 1-hr windows and spectrally whitened. All windows are cross-correlated and linearly stacked. No additional processing is applied. For more details on these data, please see the manuscript.
We provide a minimal Python code snippet to load the C1 correlation functions with the master station ("OMV.GDT"), read station locations, filter the correlation functions with a narrowband-filter around 0.3 Hz, and plot the focal spot of the C1 correlation wavefield in space:
import torch
import polars as pl
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt
# load correlation functions
sampling_rate = 5
lapse_times = torch.arange(-300, 300 + 1 / sampling_rate, 1 / sampling_rate)
corrs = torch.load("correlations_for_c1_data.pt", weights_only=False)
# load metadata
stations = pl.read_csv("stations_receivers.csv")
names = stations.select("station").to_series().to_list()
x, y = stations.select(["X", "Y"]).to_numpy().T
master_station = "OMV.GDT"
# apply acausal narrowband filter
frequency_band = (0.29, 0.31)
a, b = butter(4, frequency_band, btype="bandpass", fs=sampling_rate)
filtered_corrs = torch.tensor(filtfilt(a, b, corrs, axis=-1).copy())
# extract focal spot and set master station (=auto-correlation) to zero
focal_spot = filtered_corrs[:, torch.argmin(torch.abs(lapse_times))]
focal_spot[names.index(master_station)] = 0
# plot focal spot
fig, ax = plt.subplots()
ax.scatter(
x,
y,
c=focal_spot,
cmap="RdBu_r",
vmin=-focal_spot.abs().max(),
vmax=focal_spot.abs().max(),
)
ax.set(
xlabel="Distance (km)",
ylabel="Distance (km)",
title="Focal spot",
aspect="equal"
)
| Name | Size | |
|---|---|---|
|
correlations_for_c1_data.pt
md5:5a2a7e42e32bf8a439c6054092d63179 |
23.9 MB | Download |
|
correlations_for_c2_data.pt
md5:8455b002fc1c4f9718141c7568e79a18 |
14.5 GB | Download |
|
stations_auxiliary.csv
md5:2f22d2729fb29be8542db6136f726caf |
6.4 kB | Download |
|
stations_receivers.csv
md5:b39976c6c62e3cedacd64e09fcfe1a83 |
41.4 kB | Download |