If you have any questions, comments or suggestions, feel free to contact me (in english, french or german): emanuel.huber@pm.me
I am developing this package on my free time as a gift to the GPR community. Any support will be appreciated!
RGPR is a free and open-source software package to read, export, analyse, process and visualise ground-penetrating radar (GPR) data. RGPR is written in R, a high-level programming language for statistical computing and graphics that is freely available under the GNU General Public License and runs on Linux, Windows and MacOS. R is a interpreted scripting language (not compiled) in the same veine as python or matlab.
RGPR was initially developed to compensate for shortcomings of commercial GPR data processing applications. The ultimate goal of RGPR is to promote GPR related research by providing access to the flexible and rich R environment. RGPR has also a didactic vocation by encouraging students and researchers to learn about GPR signal processing through various tutorials available on the RGPR GitHub repository and the R documentation (companion website with tutorials: http://emanuelhuber.github.io/RGPR).
E. Huber and G. Hans (2018) RGPR — An open-source package to process and visualize GPR data. 17th International Conference on Ground Penetrating Radar (GPR), Switzerland, Rapperswil, 18-21 June 2018, pp. 1-4. doi: 10.1109/ICGPR.2018.8441658
Bibtex format
@INPROCEEDINGS{huber&hans:2018,
author = {Emanuel Huber and Guillaume Hans},
booktitle = {2018 17th International Conference on Ground Penetrating Radar (GPR)},
title = {RGPR — An open-source package to process and visualize GPR data},
year = {2018},
pages = {1--4},
doi = {10.1109/ICGPR.2018.8441658},
ISSN = {2474-3844}}
My current affiliation:
Emanuel Huber,
GEOTEST AG
Bernstrasse 165
3052 Zollikofen
Switzerland
Instead of plot(x)
use plotFast(x)
!
See tutorial Import GPR data.
Do you miss your preferred file format? Send me the file format description with a test file and I will adapt the RGPR-package to support this file format.
This is an ongoing project.
To report bugs and contribute to the development of RGPR, see how to contribute.
If you have any questions, comments or suggestions, feel free to contact me (in english, french or german):
emanuel.huber@pm.me
Thank you!
Check the companion website for more info, tutorials, etc.
http://emanuelhuber.github.io/RGPR
You must first install R. Then, in R console, enter the following:
if(!require("devtools")) install.packages("devtools")
devtools::install_github("emanuelhuber/RGPR")
library(RGPR)
frenkeLine00 # data from the package
plot(frenkeLine00)
Alternatively, you can download the package as a zip file and install it in R following these instructions:
https://riptutorial.com/r/example/5556/install-package-from-local-source
NOTE: this overview is not up to date!! More functions than those listed below are available!
The documentation is still incomplete (but check the tutorials, http://emanuelhuber.github.io/RGPR and do not hesitate to contact me if you need addtional informations)
readGPR()
: reads various GPR file formats (Sensors & Software, MALA, SEG-Y, ImpulseRadar, GSSI, Utsi Electronic, IDS, Tansient technology, serialized Python object, ENVI band sequential file format, ASCII, etc.)writeGPR()
: writes various GPR file format (Sensors & Software, R-format, ASCII, 'xyz')exportPDF()
: exports high quality pdf graphicexportDelineations()
: exports delineationsexportFID()
: exports fiducial markers as ASCII-fileexportCoord()
: exports coordinates as SpatialLines, SpatialPoints or ASCII-fileexportProc()
: exports the processing steps as ASCII-fileplot()
, plotFast(),
contour(),
lines(),
points()`plot3DRGL()
trPlot()
plotAmpl()
spec()
spec(x, type = "f-k")
plotDelineations()
plot3DDelineations()
plotVelocityLayers()
plotTensor()
plotPal()
reverse()
traceShift()
georef()
interpPos()
shiftEst()
ampl()
, plot trace amplitude: plotAmpl()
traceAverage()
spec(x, type = c("f-x", "f-k"))
strTensor()
, plot structure tensor: plotTensor()
regInterpPos()
upsample()
relPos()
dcshift()
dewow()
(type = "MAD", "Gaussian")firstBreak()
(method = "coppens", "threshold", "MER")time0Cor()
timeCorOffset()
gain()
(type = "power", "exp", "agc")clip()
gammaCorrection()
traceScaling()
filter1D()
: type = "median", "hampel", "Gaussian"filter2D()
: type = "median3x3", "adimpro"fFilter()
: freqency filter, type = 'low','high','bandpass'fkFilter()
conv1D()
and conv2D()
deconv()
(type = "spiking", "wavelet", "min-phase",
"mixed-phase")rotatePhase()
CMPAnalysis()
(method = "semblance", "winsemblance",
"wincoherence")NMOCor()
migration()
(type = "static", "kirchhoff")papply()
delineate()
rmDelineations()<-
delineations()
addDelineation()
plotDelineations3D()
plotDelineations()
identifyDelineation()
+
, -
, *
, /
, ^
max()
, min()
, mean()
, median()
, summary()
, range()
, abs()
, sign()
, sqrt()
, ceiling()
, ...length()
, nrow()
, ncol()
, dim()
as.matrix()
, as.numeric()
, as.double()
, as.list()
, as.SpatialLines()
, as.SpatialPoints()
depthunit()
& depthunit()<-
description()
& description()<-
ann()
& ann()<-
coord()
& coord()<-
crs()
& crs()<-
fid()
& fid()<-
filepath()
& filepath()<-
pos()
& pos()<-
posunit()
& posunit()<-
proc<-()
& processing
name()
& name()<-
values()
& values()<-
vel()
& vel()<-
gethd()
svDate()
& svDate()<-
GPR
library(RGPR)
mtext <- showMethods(class="GPR", printTo =FALSE )
i <- grepl('Function', mtext) & grepl('package RGPR', mtext)
fvec <- gsub( "Function(\\:\\s|\\s\\\")(.+)(\\s\\(|\\\")(.+$)", "\\2", mtext[i] )
fvec
GPRsurvey
library(RGPR)
mtext <- showMethods(class="GPRsurvey", printTo =FALSE )
i <- grepl('Function', mtext) & grepl('package RGPR', mtext)
gvec <- gsub( "Function(\\:\\s|\\s\\\")(.+)(\\s\\(|\\\")(.+$)", "\\2", mtext[i] )
gvec
?RGPR
Thanks to: