2.8 KiB
🔍 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