Skip to content

MATLAB function set for importing, processing, and plotting data from a GSSI-StructureScan Mini GPR

License

Notifications You must be signed in to change notification settings

quelopelo/iet-gpr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IET GPR

MATLAB function set toolbox for importing, processing, and plotting data from a GSSI-StructureScan Mini GPR

Introduction

IET GPR consists of a set of functions for importing, processing and ploting data from a GSSI-StructureScan Mini ground penetrating radar (GPR). The software is distributed as a MATLAB toolbox or via the open source code files.

Firstly, the program allows to load and convert a dzt file generated by a GSSI-StructureScan Mini GPR. In this way, the readdzt function builds a numerical matrix and an information header, with which the data can be easily manipulated from MATLAB. This is the only function that was strongly based on a previous work.

Once the data is loaded into MATLAB, the program allows to process it using various functions, including: DC-offset (dcoffset), linear-offset (linearoffset), trend removal (removetrend) and noise reduction (smoothscan). IET GPR also includes a number of gain functions to improve the data visualization (lingain, expgain, agcgain, iadgain1 and iadgain2).

With the processed data, the program allows applying the synthetic aperture focusing technique (SAFT) to improve the visualization by means of two functions: saftproc and saftpost. This is one of many techniques available to focus or migrate data. As this can be a computationally demanding process, IET GPR incorporates two functions to reduce the amount of data: one to trim or cut a B-Scan (trimscan) and the other to reduce its resolution (resizescan).

Finally, the program includes a couple of functions to plot the GPR and SAFT data. These are plotascan, which plots a series of A-Scans, and plotbscan, which plots a B-Scan.

All functions include a help text that can be consulted using the command help followed by the name of the function (example: help plotbscan). Additionally, there are three example files that guide the user along the first steps.

Installation

There are two ways of using the IET GPR set of functions.

  1. Install the toolbox located in the dist folder. This official link contains additional information about the installation and management of toolboxes. This method adds the functions to the MATLAB path, so that they are built into the IDE each time MATLAB is started.

  2. Download the src folder to your computer. Change the MATLAB current path to the downloaded folder and run the ietgpr command. This second step is not automatic, so it must be repeated every time MATLAB is restarted.

List of functions

Load GPR data (input)

See functions

readdzt – Read and convert GSSI StructureScan Mini dzt format.

  • Syntax: [data, header] = readdzt(filename)
  • Application: see Example 1

Visualize data (output)

See functions

plotascan – Plots a series of A-Scans of the data between two positions.

  • Syntax: fig = plotascan(data, header, startPos, endPos, relPerm)
  • Application: see Example 1

plotbscan – Plots a B-Scan of the data.

  • Syntax: fig = plotbscan(data, header, relPerm)
  • Application: see Example 1

Process data

See functions

dcoffset – Corrects the DC-offset of a B-Scan data.

linearoffset – Corrects the linear-offset of a B-Scan data.

  • Syntax: data = linearoffset(data)
  • Application: see Example 2

removetrend – Removes the trend from a B-Scan data.

  • Syntax: data = removetrend(data, cvFactor)
  • Application: see Example 2

smoothscan – Reduces the noise (or smooths) of a B-Scan data.

  • Syntax: data = smoothscan(data, dataHeader, horScale, verScale)
  • Application: see Example 2

trimscan – Trims a B-Scan data between two positions.

  • Syntax: [data, dataHeader] = trimscan(data, dataHeader, startPos, endPos)
  • Application: see resizescan in Example 3

resizescan – Resizes a B-Scan data to the specified size.

  • Syntax: [data, dataHeader] = resizescan(data, dataHeader, horSize, verSize)
  • Application: see Example 3

Apply a gain function

See functions

lingain – Applies a custom linear gain to the data.

expgain – Applies a custom exponencial gain to the data.

agcgain – Applies an automatic gain control to the data.

  • Syntax: data = agcgain(data, windowSize, gainFactor)
  • Application: see iadgain1 in Example 2

iadgain1 – Applies an inverse amplitude decay to the data, based on the curve $y=a e^{-b x} + c$.

iadgain2 – Applies an inverse amplitude decay to the data, based on the curve $y=a \frac{b x}{b x + 1} e^{-c x} + d$.


Migrate using SAFT algorithm

See functions

saftproc – Returns a matrix (and a header) with the results of the SAFT migration process.

  • Syntax: [saft, saftHeader] = saftproc(data, dataHeader, relPerm, sep, antPattern)
  • Application: see Example 3

saftpost – Post-processes the results of the SAFT algorithm (trim or mirror the edges).

  • Syntax: [saft, saftHeader] = saftpost(saft, saftHeader, mirror)
  • Application: see Example 3

Auxiliary functions

See functions

safmat1 – Returns the SAFT coefficients matrix corresponding to index k, considering a null separation between the sender and the receiver.

saftmat2 – Returns the SAFT coefficients matrix corresponding to index k, considering a separation between the sender and the receiver sep.

saftmats – Returns a cell with the SAFT coefficients matrixes.

linearcoef – Returns the square of the linear approximation coefficient.


Possible future works

The program is in an early stage, so there is room for many improvements.

  • Add support for other ground penetrating radars and antennas.
  • Add processing functions, such as a dewow, a band-pass filter or a process to remove bad traces.
  • Add gain functions, especially one that uses a numerical physical model to determine the attenuation as a function of the relative permittivity of the medium.
  • Add other focusing or migration techniques.
  • Add support for importing, processing and visualizing 3D scans.
  • Add a focusing or migration technique for 3D scans.
  • Add a graphical user interface (GUI).
  • Rewrite the program in an open and widely used programming language, such as Python.

Licence and citation

The code is distributed under a GNU-GPL 3.0 license.

If you use this software, please cite it using these metadata.

About

MATLAB function set for importing, processing, and plotting data from a GSSI-StructureScan Mini GPR

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages