Skip to content

A comprehensive MATLAB toolkit for processing, optimizing, and validating Ground Penetrating Radar (GPR) reflection data against volumetric porosity models using HDF5 formats.

Notifications You must be signed in to change notification settings

karsterr/MATLAB-GPR-Analysis-Tool

Repository files navigation

GPR Data Verification Suite

Overview

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.

Features

1. HDF5 Data Integration

  • Efficient handling of high-dimensional .h5 datasets for both GPR traces and volumetric porosity models.
  • Extraction of metadata (center frequency, model discretization, geometry vectors).

2. Multi-Dimensional Visualization

  • 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.

3. Verification & Comparison

  • 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.

4. Optimized 3D Rendering

  • 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 Structure

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.

Algorithm Details

C-Scan Mapping (2D Projection)

The 3D GPR data is collapsed into a 2D map to highlight strong reflectors: $$M(x,y) = \max_{t} |S(x,y,t)|$$ Where $S$ is the signal amplitude. This is compared against the cumulative porosity model.

3D Optimization Strategy

To handle large datasets efficiently in process_gpr_data_3d.m, the following logic is applied:

  1. Thresholding: Only data points exceeding 20% of the maximum signal energy are retained.
  2. 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.

Requirements

  • MATLAB R2019b or later.
  • Signal Processing Toolbox.
  • Image Processing Toolbox.

Usage

1. Data Setup

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.h5
  • Porosity_Model.h5

2. Running the Analysis

  • 2D Verification: Run process_gpr_data_2d.m to generate the comparison map between the GPR signal strength and the reference porosity model.
  • 3D Visualization: Run process_gpr_data_3d.m to view the interactive, optimized 3D scatter plot of the subsurface structures.
  • Raw Data Inspection: Use import_gpr_data.m or import_porosity_model.m to inspect individual slices of the raw data.

About

A comprehensive MATLAB toolkit for processing, optimizing, and validating Ground Penetrating Radar (GPR) reflection data against volumetric porosity models using HDF5 formats.

Topics

Resources

Stars

Watchers

Forks

Languages