Understanding background seismic noise levels is crucial for assessing the suitability of a site for seismic monitoring and instrumentation. Background noise analysis helps identify optimal locations for seismic sensors and ensures accurate detection of seismic events. This blog explores how to calculate background noise levels based on methodologies from Ramirez et al. (2019), using power spectral density (PSD) techniques.
Why Measure Seismic Noise Levels?
Seismic stations continuously record ambient noise from both natural and anthropogenic sources. High noise levels can mask low-magnitude earthquakes and reduce the effectiveness of seismic monitoring networks. The analysis of background noise levels provides insights into:
- The impact of environmental conditions on sensor performance.
- The influence of geological settings on noise characteristics.
- The optimal placement of seismic sensors for improved data quality.
Step 1: Data Collection
To measure background seismic noise, long-term continuous seismic data from a given site must be collected. Typically, broadband seismometers and accelerometers are used to capture signals across a wide range of frequencies. These data are stored in a digital format, such as miniSEED, which allows for efficient processing.
Step 2: Preprocessing the Seismic Data
Before analyzing noise levels, raw seismic data must be preprocessed to remove unwanted signals. This includes:
- Segmenting Data: Breaking continuous records into smaller time windows (e.g., hourly segments) to analyze temporal variations.
- Applying Windowing Functions: Using techniques like cosine tapers to reduce spectral leakage.
- Fourier Transform: Converting time-domain data into the frequency domain for spectral analysis.
- Acceleration Conversion: Deriving acceleration spectra from velocity or displacement records.
Step 3: Power Spectral Density (PSD) Calculation
The Power Spectral Density (PSD) method is widely used to quantify ambient seismic noise levels. This technique measures the energy distribution of seismic signals across different frequencies. The steps include:
- Computing the Fast Fourier Transform (FFT): This transforms seismic data from the time domain to the frequency domain.
- Averaging Spectra: To improve statistical reliability, multiple PSD estimates are averaged over time.
- Expressing Noise Levels in Decibels (dB): PSD values are converted to decibels relative to a reference power level (e.g., 1 μm²/s⁴/Hz).
- Generating PSD Probability Density Functions (PDFs): A statistical representation of noise levels over time to assess variations.
Step 4: Analyzing Noise Level Trends
Once PSDs are computed, trends in noise levels can be analyzed:
- Comparing Different Geological Settings: Sites on sedimentary deposits often exhibit higher noise levels than those on bedrock.
- Assessing Diurnal Variations: Noise levels tend to be higher during the day due to human activities.
- Impact of Environmental Factors: Atmospheric pressure and temperature fluctuations can influence background noise levels.
Step 5: Comparing with Standard Noise Models
To interpret seismic noise levels, results are compared with global noise models:
- New High-Noise Model (NHNM): Represents the highest observed noise levels at global seismic stations.
- New Low-Noise Model (NLNM): Represents the lowest possible ambient noise levels.
Step 6: Identifying and Mitigating Noise Sources
If noise levels are excessive, it is essential to identify and mitigate noise sources:
- Relocating Sensors: Moving stations away from urban areas or installing them in underground vaults can reduce anthropogenic noise.
- Improving Insulation: Using thermal and acoustic insulation can minimize environmental noise interference.
- Using Different Sensor Types: Some sensors may exhibit different sensitivity to background noise, requiring careful selection based on site conditions.
Complete Python Code for Computing Background Seismic Noise Levels
Below is a full Python script that includes preprocessing, PSD computation, and noise model comparison.
import numpy as np
import obspy
import matplotlib.pyplot as plt
from obspy.signal.spectral_estimation import PSD, get_nlnm, get_nhnm
def preprocess_seismic_data(trace):
"""Preprocess seismic data: detrend, taper, and remove response."""
trace.detrend("linear")
trace.taper(max_percentage=0.05, type="hann")
return trace
def compute_psd(trace, nfft=1024, overlap=0.5):
"""Compute Power Spectral Density (PSD) for a given seismic trace."""
psd, freq = PSD(trace.data, nfft=nfft, overlap=overlap, fs=trace.stats.sampling_rate)
psd_db = 10 * np.log10(psd)
return freq, psd_db
def plot_noise_models(freq, psd_db):
"""Plot the computed PSD against global noise models."""
nlnm_freq, nlnm_psd = get_nlnm()
nhnm_freq, nhnm_psd = get_nhnm()
plt.figure(figsize=(8,6))
plt.plot(nlnm_freq, nlnm_psd, label="NLNM", linestyle="dashed")
plt.plot(nhnm_freq, nhnm_psd, label="NHNM", linestyle="dashed")
plt.plot(freq, psd_db, label="Computed PSD", color='red')
plt.xlabel("Frequency (Hz)")
plt.ylabel("Power Spectral Density (dB)")
plt.legend()
plt.title("Comparison of Seismic Noise Levels with Global Models")
plt.grid()
plt.show()
# Example usage
st = obspy.read("example.mseed")
st = st.select(component="Z")
for tr in st:
tr = preprocess_seismic_data(tr)
freq, psd_db = compute_psd(tr)
plot_noise_models(freq, psd_db)
Conclusion
Calculating background seismic noise levels using the PSD method provides a robust approach to evaluating site suitability for seismic monitoring. By following these steps, researchers and engineers can optimize sensor placement, minimize noise interference, and enhance the reliability of seismic data. Understanding noise trends and environmental influences allows for better decision-making in seismic instrumentation and hazard assessment.ntal influences allows for better decision-making in seismic instrumentation and hazard assessment.
Reference
Ramírez, E. E., Vidal-Villegas, J. A., Nuñez-Leal, M. A., Ramírez-Hernández, J., Mejía-Trejo, A., & Rosas-Verdug, E. (2019). Seismic noise levels in northern Baja California, Mexico. Bulletin of the Seismological Society of America, 109(2), 610–620. https://doi.org/10.1785/0120180155