Git Product home page Git Product logo

iet-gpr's Introduction

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.

iet-gpr's People

Contributors

quelopelo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.