Dataset and Trained Models for "Depth-progressive 3D seismic velocity model building via 2D generative diffusion models"
收藏资源简介:
Overview This repository provides the training dataset, test dataset, and pre-trained model weights for the paper: "Depth-progressive 3D seismic velocity model building via 2D generative diffusion models" by Shijun Cheng, Tariq Alkhalifah, et al. The associated open-source code is available at: https://github.com/DeepWave-KAUST/DiffVMB3D-pub Contents This Zenodo record contains three archive files: File Description train.zip Training dataset (5,500 3D velocity models) test.zip Test dataset (4 benchmark 3D velocity models) trained_model.zip Pre-trained model weights for result reproduction Dataset Generation Source models The training data is built from both 2D and 3D industrial velocity models: 2D sources (5 models, 500 samples each = 2,500 samples): BP1994, BP2004, Hess, Otway, and Sigsbee. Each 2D model is resized to 128 × 128 grid points. 3D sources (3 models, 1,000 samples each = 3,000 samples): 2D slices extracted from the Overthrust, SEAM Arid, and SEG/EAGE 3D industrial models, each resized to 128 × 128. This yields 5,500 base samples before augmentation. 2D-to-3D extension Each 3D velocity model (128 × 128 × 128) is generated from a 2D base model using an undulation-based extension. For each sample, two random displacement curves are independently generated along the y-direction. These curves consist of a B-spline long-wavelength component and a multi-sine short-wavelength component, which control the lateral structural variations in the z- and x-directions, respectively. The 2D base model is then resampled at each y-slice according to these displacements, producing a 3D velocity volume with spatially varying lateral structures. Structural attribute (seismic image) The structural attribute used for conditioning is a synthetic seismic image obtained by convolving the vertical reflectivity of each velocity model with a Ricker wavelet (dominant frequency = 60 Hz, temporal sampling interval dt = 0.01 s). Although more realistic constraints could be derived from migrated seismic data, this convolution image provides a controlled proxy for proof-of-concept validation. Data augmentation (not included in this archive) To increase training data diversity, each 3D model can be augmented by rotating 90°, 180°, and 270° about the vertical axis, expanding the dataset by a factor of four to 22,000 models. The train.zip archive contains the 5,500 pre-augmentation samples; the rotation augmentation is applied on-the-fly during training by the data loader. Training patch extraction During training, paired shallow–deep patches (v_shallow, v_deep) are extracted by sliding a depth window of size nz along the depth axis. Rather than using a fixed stride, the overlap between each shallow and deep patch pair is drawn randomly from the range [1, nz − 1] at each extraction, exposing the model to a wide variety of relative depth offsets. File Descriptions 1. Training Dataset (train.zip) Contains 5,500 NumPy .npz files, each storing one 3D velocity model of size 128 × 128 × 128 with the following keys: Key Shape Description v3d (128, 128, 128) 3D P-wave velocity model (m/s) ref (128, 128, 128) Reflectivity model derived from the velocity model seis (128, 128, 128) Synthetic seismic image (convolution of reflectivity with a 60 Hz Ricker wavelet, dt = 0.01 s) Loading example (Python): import numpy as np data = np.load('sample_0001.npz') v3d = data['v3d'] # 3D velocity model ref = data['ref'] # Reflectivity model seis = data['seis'] # Synthetic seismic data (structural attribute) 2. Test Dataset (test.zip) Contains 4 benchmark 3D velocity models used for evaluation in the paper, stored as MATLAB .mat files: File Model Name Type Overthrust.mat SEG/EAGE Overthrust In-distribution SEAMArid.mat SEAM Arid In-distribution SEGEAGE.mat SEG/EAGE Salt In-distribution Marmousi.mat Marmousi2 Out-of-distribution The Overthrust, SEAM Arid, and SEG/EAGE test volumes are in-distribution samples, generated from unseen 2D slices of the same source models using the same undulation-based 2D-to-3D extension process. The Marmousi model serves as an out-of-distribution test, since its geological structures (e.g., complex faulting and folding) are absent from the training data. Each .mat file contains the same three keys as the training data: Key Description v3d 3D velocity model ref Reflectivity model seis Synthetic seismic image Loading example (Python): import scipy.io as sio data = sio.loadmat('Overthrust.mat') v3d = data['v3d'] # 3D velocity model ref = data['ref'] # Reflectivity model seis = data['seis'] # Synthetic seismic data 3. Pre-trained Model (trained_model.zip) Contains the trained model weights (EMA with decay rate 0.999, trained for 200,000 iterations on a single NVIDIA A100 GPU) that can be used to reproduce all results presented in the paper. Usage: # Extract the model weights unzip trained_model.zip # Run inference (50 ensemble samples, 10-step DDIM, with well and structural conditioning) python sample.py --model_path ./trained_model.pt \ --use_ddim True --timestep_respacing ddim10 \ --batch_size 50 --use_well True --use_ref True For complete instructions on training and inference, please refer to the GitHub repository: https://github.com/DeepWave-KAUST/DiffVMB3D-pub Citation If you use this dataset or model in your research, please cite the associated paper. License Please refer to the GitHub repository for license information: https://github.com/DeepWave-KAUST/DiffVMB3D-pub Contact For questions regarding this dataset, please contact Shijun Cheng (sjcheng.academic@gmail.com).



