MATLAB function set toolbox for importing, processing, and plotting data from a GSSI-StructureScan Mini GPR
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.
There are two ways of using the IET GPR set of functions.
-
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.
-
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.
See functions
readdzt – Read and convert GSSI StructureScan Mini dzt format.
- Syntax:
[data, header] = readdzt(filename)
- Application: see Example 1
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
See functions
dcoffset – Corrects the DC-offset of a B-Scan data.
- Syntax:
data = dcoffset(data)
- Application: see linearoffset in Example 2
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
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.
iadgain1 – Applies an inverse amplitude decay to the data, based on the curve
iadgain2 – Applies an inverse amplitude decay to the data, based on the curve
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
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.
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.
The code is distributed under a GNU-GPL 3.0 license.
If you use this software, please cite it using these metadata.