🔍 Source-Independent Full Waveform Inversion for GPR using Deep Learning
A PyTorch-based implementation of a source-independent full waveform inversion (FWI) framework tailored for ground-penetrating radar (GPR) data, leveraging deep learning techniques to reconstruct subsurface permittivity models. This method is particularly suitable for GPR investigation in permafrost environments or undulating strata.
📌 Features:
🚀 Source-independent inversion: The model learns to invert waveforms even with varying GPR sources.
🧠 Noise simulation: The dataset can simulate real noisy environments.
🌍 Using gprMax to establish reliable datasets in three-dimensional simulation scenarios
📉 Support initial model or none, time-depth conversion, depth-time conversion, GSSI data conversion and other functions...
📂 Project Structure
GPR-SIDL-inv/
├── dataset/ # Training/testing data and synthetic datasets
├── field_data/ # Used to store field data for inversion
├── gprMax/ # Forward modeling package developed by the University of Edinburgh
├── IMG/ # Used for storing data processing and inversion result graphs
├── impulse/ # Used to store simulated and measured source wavelet files
├── log/ # operation log
├── Network/ # Used for storing network models and data loading programs
├── readgssi/ # Software package for reading and converting raw data
├── SAVE/ # Save the trained model
├── time_result_csv/ # Inverse results in the time domain
├── utils/ # tool kit
├── 1_model_generator.py # Randomly generate in files as needed to support forward modeling of gprMax in 3D media.
├── 2_forward_simulation.py # Run the forward modeling program to generate A-scan results
├── 3_combine_dataset.py # Filter all A-scan data and generate a dataset
├── 4_gssi_data_convert.py # Convert the dzt file of the measured GSSI GPR to CSV format
├── 5_data_preprocess.py # Preprocess the measured raw data (dewow, direct wave removal, static correction, etc.)
├── 6_extract_impulse.py # Extract the true source wavelet from the processed data
├── 7_network_train.py # Training a deep learning network for inversion
├── 8_prediction.py # Predicting real measured data
├── 9_time_depth_convert.py # Convert the predicted results into the deep domain through integration
├── config.yaml # Configuration file
├── requirements.txt # Python dependencies
└── README.md # This file
🛠️ Installation
1. Clone the repository
git clone https://gitee.com/sduem/gpr-sidl-inv
cd GPR-FWI-DeepLearning
2. Install gprMax (optional but recommended)
3. Install dependencies
pip install -r requirements.txt
📊 Usage
1. Dataset generation
.......
.......
2. Field data convertion and prepocessing
3. Source wavelet select and network training
4. Prediction and time-depth convertion
📝 Citation
If you use this code in your research, please cite:
@article{your2025sourceindependent, title={Source-independent Full Waveform Inversion for GPR Using Deep Learning}, author={Junkai Ge, Rui Liu, Shirong Zhang, Xiaodong Li, Huaifeng Sun, Bo Tian, Ziqiang Zheng}, journal={Computers & Geosciences}, year={2025}, doi={under review} }
📫 Contact
If you have questions, reach out to:
Rui Liu Email: your.email@domain.com Affiliation: Institute / Lab Name