HPS noise reduction method especially for OBS data based on harmonic percussive separation (HPS) algorithms
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zahra 162e716210 test 5 months ago
examples cleanup 2 years ago
src update figure 5 months ago
test get test running 2 years ago
.gitignore cleanup and add .gitignore 2 years ago
Application example.png update 5 months ago
LICENSE add LICENSE file 2 years ago
README.md Update README.md 5 months ago
setup.py get test running 2 years ago
test.rtf testing 5 months ago
test.txt test 5 months ago




NoiseCut is a Python package for denoising seismic records and specializes in denoising Ocean Bottom Seismometer (OBS) data. It effectively separates long-lasting narrowband signals from broadband transients using harmonic-percussive separation algorithms (Zali et al., 2021 & Zali et al., 2023). The advantage of NoiseCut is that it preserves the earthquake signal with its entire frequency and amplitude after denoising.


Paper: https://se.copernicus.org/articles/14/181/2023/se-14-181-2023.pdf

Paper: https://pubs.geoscienceworld.org/ssa/srl/article/92/6/3668/606262/Volcanic-Tremor-Extraction-and-Earthquake

Usage example

After installing the package to denoise a signal, you can use the following code. Outputs are the denoised signal and a figure showing the spectrogram of the input signal, the separated noise, and the denoised signal in the frequency range of [0-1] Hz.

import noisecut
import obspy

st = obspy.read('file_name')
hps_trace, spectrograms = noisecut.noisecut(st[0], ret_spectrograms=True)

Installation instructions

You can clone the public repository:

git clone git://github.com/ZahraZali/NoiseCut

Once you have a copy of the source, you can cd to NoiseCut directory and install it with:

python setup.py install

You need the Numpy version of 2.21.


NoiseCut is licenced under the GNU Affero General Public License (AGPLv3).