import matplotlib.pyplot as plt
frequency_band = 0.2, 1
# Calculate cross-correlation
lags, pairs, cross_correlation = csn.calculate_cross_correlation_matrix(
covariances
)
# Get inter-station distance
distances = csn.pairwise_great_circle_distances_from_stats(
cross_correlation.stats
)
# Bandpass filter
# cross_correlation = cross_correlation.mean(axis=1)
cross_correlation = cross_correlation[:, 0]
cross_correlation = cross_correlation.bandpass(frequency_band)
cross_correlation = cross_correlation.taper()
# Plot
fig, ax = plt.subplots()
for i_pair, pair in enumerate(pairs):
cc = cross_correlation[i_pair] / abs(cross_correlation[i_pair]).max() * 0.5
ax.plot(lags, cc + distances[i_pair], color="C0", alpha=0.8)
# Plot some velocity
v = 3.2
ax.axline((0, 0), slope=v, color="C1", label=f"{v} km/s", ls="--")
ax.axline((0, 0), slope=-v, color="C1", ls="--")
ax.legend(loc="lower left")
ax.grid()
periods = list(sorted(int(1 / f) for f in frequency_band))
ax.set_title(
f"Cross-correlation functions between {periods[0]} and {periods[1]} seconds"
)
ax.set_xlabel("Lag time (s)")
ax.set_ylabel("Pairwise distance (km)")