This repository contains a set of MATLAB scripts designed for the advanced visualization, processing, and verification of Ground Penetrating Radar (GPR) data. The suite enables the comparison of simulated GPR reflection data against a ground truth porosity model, utilizing HDF5 data formats.
The primary objective is to validate subsurface radar detections by correlating signal amplitudes with the physical properties (porosity) of the modeled environment.
- Efficient handling of high-dimensional
.h5datasets for both GPR traces and volumetric porosity models. - Extraction of metadata (center frequency, model discretization, geometry vectors).
- B-Scans: Inline and crossline profile slicing.
- Time-Slices: Depth-dependent signal analysis.
- C-Scans: 2D reduction of 3D data using Maximum Amplitude Projection to map subsurface features.
- Side-by-side analysis of the GPR signal strength map versus the reference porosity model (Ground Truth).
- Validates the accuracy of the radar simulation against the physical model.
- Includes a "Smart Downsampling" algorithm to visualize dense 3D GPR point clouds.
- Filters low-energy noise (threshold-based) and limits point count to ensure smooth rendering on standard hardware without data loss in critical regions.
| File Name | Description |
|---|---|
import_gpr_data.m |
Loads raw GPR data and visualizes B-Scans (profile slices) and Time-Slices. |
import_porosity_model.m |
Loads and visualizes the reference volumetric porosity model (x-z and x-y slices). |
process_gpr_data_2d.m |
Performs the core verification logic. Generates C-Scan maps and compares GPR signals with the porosity model. |
process_gpr_data_3d.m |
Optimized 3D visualization script using downsampling and energy thresholding. |
*.h5 |
[Excluded] Data files are not included in this repository due to size constraints. |
The 3D GPR data is collapsed into a 2D map to highlight strong reflectors:
To handle large datasets efficiently in process_gpr_data_3d.m, the following logic is applied:
- Thresholding: Only data points exceeding 20% of the maximum signal energy are retained.
- Downsampling: If the remaining point count exceeds the target limit (e.g., 30,000 points), the dataset is strided to maintain performance while preserving spatial distribution.
- MATLAB R2019b or later.
- Signal Processing Toolbox.
- Image Processing Toolbox.
Important: This repository does not contain the required dataset. To run the simulations, you must obtain the following files and place them in the root directory:
GPR_Data.h5Porosity_Model.h5
- 2D Verification: Run
process_gpr_data_2d.mto generate the comparison map between the GPR signal strength and the reference porosity model. - 3D Visualization: Run
process_gpr_data_3d.mto view the interactive, optimized 3D scatter plot of the subsurface structures. - Raw Data Inspection: Use
import_gpr_data.morimport_porosity_model.mto inspect individual slices of the raw data.