Source code and trained model for noise reduction for seismic record sections with DDPM

Read full text
Authors: Jun Su, Ryoichiro Agata, Gou Fujie, Yasuyuki Nakamura
Cited by: 0

Abstract

This repo includes the code to train and apply the DDPM for wide-angle seismic survey data, along with the trained model. To train the model or to apply the trained model on your own data, you will need .segy files for seismic survey waveforms and modify the data handler in profiledd.py according to the SEG-Y header. If you would like to test the trained model on the Noto dataset, please download it from DOI: 10.5281/zenodo.18593830. Below is a brief explanation of each file: model-final.pt: The PyTorch file for the trained model. diffusion.py: Modified from Ricard Durall's work (https://github.com/dlseis/diffseis). The module that defines the DDPM architecture. Note that we use our own functions in profiledd for training and inference. profiledd.py: This module handles the record section data, including preprocessing, trimming, diversity stacking, and normalizing. refine_train.py: This optional module reads the pretrained results to get the first arrival time in every trace, to include the noise as much as possible for normalization. unet.py: Modified from Ricard Durall's work (https://github.com/dlseis/diffseis). The module that defines the U-Net architecture for predicting noise components from input 2D arrays. train.py: The script used for training the DDPM. Users can prepare their data and train their model here. rebuild.py: The script used for inference. Users can prepare their data and apply the trained model here.

Fields of Study & Subjects

Image and Signal Denoising Methods Seismic Imaging and Inversion Techniques Seismic Waves and Analysis

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
12 February 2026
Language
EN