### **🔍 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