A C-based controlled-source seismic data cross-correlation program with Seismic Unix (SU) format support.
The program provides serial and OpenMP parallel implementations for efficient waveform cross-correlation using FFT-based methods.
The program reads seismic data in Seismic Unix (SU) format and performs waveform cross-correlation between seismic records and pilot signals using FFT-based methods.
Two implementations are provided:
-
sucorrpilot : serial version
-
sucorrpilot_omp : OpenMP parallel version
sucorrpilot uses several functions provided by Seismic Unix (SU).
The program is developed and tested with:
- Seismic Unix (SU) release 44R24
- GCC compiler
- Linux operating system
The program uses SU components including:
- SU trace data structure (
segy) - SU trace input/output functions
- SU FFT routines
- SU mathematical libraries
Before compilation, please install Seismic Unix and set the environment variable:
export CWPROOT=/path/to/cwpThe Makefile uses:
SU header files:
${CWPROOT}/include
SU libraries:
${CWPROOT}/lib
Compile the serial implementation:
cd sucorrpilot
makeThe executable will be generated as:
../bin/sucorrpilot
Compile the OpenMP parallel implementation:
cd sucorrpilot_omp
makeThe executable will be generated as:
../bin/sucorrpilot_omp
The OpenMP version requires OpenMP support:
-fopenmp
After successful compilation, run the executable without arguments to display the usage information.
Serial version:
sucorrpilotOpenMP version:
sucorrpilot_ompThe program provides detailed parameter descriptions and runtime information through the built-in help message.
Two ready-to-run examples are provided in the example directory:
Numerical-Example: a small, fast dataset for verifying the installation and correlation resultActual-Example: a field-data shot gather that demonstrates a realistic processing workflow
After compiling either implementation, run an example from the repository root. For example, with the serial executable:
./bin/sucorrpilot \
input_dir=example/Numerical-Example/01_raw_data \
output_dir=example/Numerical-Example/04_generated_corr \
pilot_dir=example/Numerical-Example/03_control_signal \
outtime=0.004 clean=1 verbose=1The generated result can be checked against the included reference output:
cmp example/Numerical-Example/04_generated_corr/rawdata.su \
example/Numerical-Example/02_corr_data/rawdata_corr.suSee example/README.md for the complete directory layout, commands for both datasets, and OpenMP usage.
This project is released under the MIT License.