X-ray vision for aspiring superheroes: Introduction to Ground Penetrating Radar data analysis using Matlab

Alain Plattner
California State University-Fresno,
Author Profile


Click to watch Alain Plattner discuss his activity or watch the full webinar.
In this lab activity, students learn the basics of ground penetrating radar data processing using Matlab.

Learning Goals

Most commercially available and open-source ground penetrating radar data processing software make heavy use of graphical user interfaces. This prevents users from understanding two key aspects of the processing: 1) Which variables go into the processing step and 2) Which parts of the data are affected. The GPR-O software package is developed for Matlab/Octave and works without a graphical user interface. Instead of clicking on buttons without understanding what goes in and what comes out of the processing, users type commands defining specifically which variables to use and which output to change.

This teaching activity has two main goals: 1) Teaching students the basics of ground penetrating radar data processing using free software and 2) demonstrating the usefulness of basic programming skills and practicing scripting.

Context for Use

I use this teaching activity in my "Introduction to applied geophysics" class, in which the students conduct their own research using our Ground Penetrating Radar system by developing a research question, designing a ground penetrating radar field work survey, conducting the field work, process and interpret the data and finally answer their original research question using the data.

Description and Teaching Materials

Obtaining the functions, data files and tutorial

Install GPR-O Matlab Ground Penetrating Radar functions following the instructions on https://github.com/NSGeophysics/GPR-O/wiki

After downloading GPR-O, start Matlab and switch to the folder GPR-O. Finalize installation by running "setup" in Matlab.

Before you use any of the GPR-O functions, make sure you read the help page to understand how to use the function and what the function does.

Part 1

Follow the instructions on https://github.com/NSGeophysics/GPR-O/blob/master/doc/GPR-O.pdf to plot and process your first GPR profiles, horizontal slices, and Wide Angle Reflection and Refraction data.

Part 2

For this part we work with a data file that was collected during the Fall 2015 Freshman Seminar taught by Frederik Simons and Adam Maloof at the Department of Geosciences at Princeton University. The data traverses the Dune du Pilat in the southwest of France. We have topographical information for this profile.

Run the script "run_Dune_Line32" in Matlab to plot the topographically corrected data file.

Use what you have learned in Part 1 to improve the resulting figure.

Part 3

Use your own data set and what you have learned in Part 1 and Part 2 to process your own data GPR-O works with Sensors and Software .dt1 files and with GSSI .dzt files (see "help preprawdata"). If you do not have your own data files, you can use one of the many freely available GPR files online, for example: https://alaska.usgs.gov/portal/project.php?project_id=384

Use the following available GPR-O processing functions:

timeZeroAdjust: If your traces are not well aligned perhaps because your antenna separation was not constant, then timeZeroAdjust aligns your traces for each profile by the location of the trace maximum.

dewowData: Your data may have a very low frequency noise superimposed. dewowData removes this noise by subtracting a running mean from each sample (you need to provide the window width).

smoothData: Your data may contain high-frequency noise. smoothData removes this noise by replacing each sample by a moving average (you need to provide the window width).

stolt_fk_mig: Reflected waves arrive at the receiver from all directions, not just from exactly below (which is how we plot the data). Migration attempts to undo this effect. For example, the arrivals from a pipe running perpendicular to our profile look like a hyperbola. After migrating the data using the correct velocity, the arrivals should only show a single point. stolt_fk_mig uses an F-K migration approach.

Generally, when processing GPR data, make sure that whatever you observe in you processed data is contained in your raw data. It is very easy to accidentally create artifacts in your data from ill-chosen processing steps.

Teaching Notes and Tips

Students need a basic understanding of Ground Penetrating Radar and of Matlab. For GPR intro, I recommend the open-source textbook "Geophysics for Practicing Geoscientists" https://gpg.geosci.xyz/


I grade this assignment in two parts:

First, the students need to submit a figure of their resulting data from their field work together with a figure caption. I use the following scoring rubric to grade it. The assignment counts for 5% of the overall grade

  • Grammar, writing style, typos: [1%]
  • Figure quality, is the target of the research question visible, are the axes labeled: [2%]
  • Des the caption describe the figure? Is the target of the research question explained, together with its relevance for answering the scientific question? [2%]
Toward the end of the semester, the students hand in a full research report for their fieldwork including data analysis and interpretation, which I then grade and which counts for 20% of their overall grade in the class.

References and Resources