I would like to thank S. Bäumler for extensive testing, bug reporting and help with writing of the documentation, E. Corradini and S. Fischer for testing of the program, A. Fediuk, S. Hildebrandt and A. Lohrberg for help with the *.sgy-format and H. Stümpel for help with the *.dzt-import.
1Several commercial programs are available for processing of multichannel GPR (Ground Penetrating Radar) data. Nevertheless, often the problem arises that the documentation of the black-box program is incomplete and it is not clear what the program is doing exactly, i.e. in a mathematical sense. In addition, if processing steps apart from the provided ones are necessary, it is often hard to export the partly processed data to a data format that is readable with another program. To overcome these problems a script-based MATLAB program was developed, which imports data from Malå or GSSI antennas, provides several processing and visualisation steps and enables the export as *.sgy-files. For all internal calculations resultsthe well-documented MATLAB *.mat-format is used. This provides the possibility to include own processing or visualisation steps at any point during the processing or to extract data easily, e.g. single amplitude values. The GPR data can be acquired on arbitrary lines using a RTK-DGPS or a robotic total station, or can be collected on a regular grid with coordinate assignment by hand markers.
2The MATLAB-code is available upon request from the author.
3The program MultichannelGPR is a collection of MATLAB-scripts in a folder structure, which groups the scripts into different subfolders: Import and export, migration, plotting, processing, scripts for 2D or 3D processing, velocity analysis and subfunctions that are used internally. Originally it was developed for the processing of multichannel GPR data from the Malå MIRA system, but also some scripts for the import of GSSI data are provided converting the data to the same *.mat-format as for the Malå data. It is not meant to be a complete and closed program in which the user can click on different buttons, and basic understanding of how to use MATLAB scripts is helpful. For the advanced MATLAB user it will be easy to extract data from different stages of the workflow.
4The workflow for a standard Malå MIRA dataset will be explained in the following and is also displayed in Figure 1.
Figure 1. Architecture of Multichannel-GPR (blue ellipsoids are scripts, hexagons are datasets).
5First, the best flow of processing steps has to be determined, which is probably not the same for each data set (Fig. 1: Testing). Two GUIs (Graphical User Interfaces) are provided for this task: One for the determination of time zero by choosing one of four different methods of correction and one for the order of other processing steps. Different processing steps can be applied using different parameters until the result, which is produced preliminarily, is satisfactory. The used processing steps and parameters can be saved in a *.txt-file, which is then used for the processing of the complete data set.
6The main script for multichannel Malå MIRA GPR data is called Mala3D (Fig. 1: Processing). It reads the raw data, sets coordinates and saves them as *.mat-files. This has the advantage that the user can come back to this raw data and start a different processing without the need to read all data again. This is especially useful for larger data sets. Then, the flow of processing steps determined before is read from the *.txt-file and applied to the profile data.
7The processed data is again saved in *.mat-format. Due to the small profile spacing of Malå MIRA data of 8 cm the radargrams can be combined to build a 3D data block using binning onto a user-defined grid and avoiding interpolation at this step. Depending on the computer used and on the size of the data set, it has to be divided into several rectangles with overlapping borders that can be merged again later.
8The resulting 3D blocks can be used for different purposes: One can further postprocess them by e.g. applying 3D migration, produce timeslices with various settings (including interpolation) or extract new radargrams along bins or along user-defined lines.
9For visualisation of the data again several GUIs are available (Fig. 1: Displaying). These can be used for displaying of the binned 3D blocks and cutting along x-, y- or z-axis, and to plot timeslices and radargrams. The timeslices can also be exported as georeferenced *.png/*.pgw- files for direct import into GIS (Geographical Information Systems).
10For the interactive picking of events in radargrams another GUI is provided (Fig. 2), where the user can pick different layers in the data and export these as *.txt-files for further processing or visualisation. The upper radargram is shown for comparison, whereas the picking is performed in the lower profile.
Figure 2. GUI for picking of layers with example profiles.
11For velocity analysis using diffraction hyperbolae another GUI is provided enabling the user to pick velocities interactively (Fig. 1: Velocity analysis). The resulting velocities are saved as *.txt-file including position and traveltime for further usage. A simple script is provided for the easy interpolation of these velocity picks into a 1D velocity model.
12Apart from this standard workflow it is also possible (a) to use single processing functions for own specialised applications that are not covered by the standard processing flow, (b) to include own processing functions or (c) to extract data between processing steps for analysis.
13An example dataset consisting of 50 profiles with 8 channels each was processed and the runtime recorded. For this purpose a standard MacBook Pro with a 2.7 GHz Intel Core i5, 8 GB RAM and MATLAB R2020b was used. The processing consisting of a) DC amplitude removal, b) trace interpolation, c) time zero correction, d) bandpass filtering, e) cutting of the range and f) removal of a mean trace, took 3-5 seconds for each of the approx. 20 m long profiles with 8 channels. In total the importing of raw data, processing and saving of profiles as well as binning onto a 22 × 32 m grid with 0.08 × 0.08 m cell size took less than 5 minutes using also parallelization with two workers. The data can be displayed as timeslices and radargrams or in 3D view with slices along the bin edges (Fig. 3).
Figure 3. Processed dataset in GUI for 3D view.
14For a larger dataset with 182 profiles with 16 channels, the processing took about 1 minute for each profile and the binning about 1 hour. Due to memory limitations the area had to be split into 20 rectangles with overlapping borders of 0.5 m that can be merged again for the creation of timeslices. To decrease runtime, parallel computing is used wherever possible, if the Parallel Computing Toolbox of MATLAB is available.
15MultichannelGPR is a flexible program for processing of multichannel Malå MIRA GPR data allowing the easy documentation of the data processing flow and thus reproducibility of results through text-based setting files. The source code (MATLAB) is open and can be inspected for the underlying mathematical expressions. In addition the user can include own processing or visualisation steps easily or can extract data at every point of the processing flow. Several GUIs are provided for visualisation and analysis of the data, but own figures can be produced easily using MATLAB standard functions on the data available in *.mat-format. The program is continuously extended and user reporting of bugs or desired functions is highly welcome.