Skip to content

GPR Reprojection

episarenko edited this page May 20, 2026 · 1 revision

GPR Reprojection

The reprojection tool converts raw GPR samples from a trace-vs-sample image into a true metric cross-section, accounting for antenna trajectory, terrain, and wave propagation in soil.

The reprojection tool window opens via the Reprojection button in the Elevation section of the GPR file. It is only available for files with a ground profile.

Overview

Input. An SGY file with per-trace GPS positions and a ground profile providing terrain altitude and antenna height above ground.

What it does. For each trace the tool casts a ray downward from the antenna position. The ray refracts at the air–soil boundary (Snell's law, using the relative permittivity) and travels through the subsurface at v = c / √εr. Each recorded sample is placed at the spatial point that its two-way travel time corresponds to along the ray. The resulting samples are then resampled into a regular 2D grid.

Result on screen. A vertical cross-section along the selected survey line:

  • X axis, distance along the survey line, in metres.
  • Y axis, height (altitude) in metres. Zero is the reference of the input ground profile, typically mean sea level. Terrain, antenna trajectory and samples all live in this absolute vertical frame.

Color represents sample amplitude after gain and contrast. The terrain surface, antenna trajectory and ray normals can be overlaid for inspection.

Migration (Sector Summation)

A single sample on a GPR trace does not come from a single point directly under the antenna - it comes from the whole wavefront that returned in that time bin. To model this, when Migration (sector summation) option is enabled the tool replaces the single vertical ray with a fan of rays centered on the antenna's nominal ray direction:

  1. Sector aperture computed from the first Fresnel zone width at the air gap between antenna and terrain, given the center frequency and εr. The aperture is then scaled by Fresnel aperture factor and clamped to 120°.
  2. Number of rays in the fan determined by the resolution setting. Higher resolution → more rays per sector. Rays are distributed at equal angular steps across the aperture.
  3. Each ray is independently refracted at the terrain surface if refraction is enabled.
  4. For every recorded sample time t, the point p is computed for every ray in the fan. Each p falls into one grid cell, and the sample's amplitude is added to that cell.
  5. Each cell accumulates contributions from all rays (across all traces) that hit it; the final cell value is the average of those contributions. Within a single trace, the same cell is never counted twice - only the first hit per fan is kept - so cells lit by many neighbouring traces gain confidence rather than artificial weight.

With migration off, only the single nominal ray per trace is sampled. With migration on, off-nadir energy is correctly migrated back toward its true position and reflectors become focused.

Parameters

The cross-section is regenerated in two stages: rays are traced from the current projection parameters, then samples are resampled into a grid at the chosen resolution. Use low resolution for quick parameter previews, then raise it for the final render or before exporting. A progress bar appears under the controls while gridding runs.

Parameter Effect
Line A survey line. Every line is limited by the first 5000 traces.
Fit (button) Resets the viewport so the entire reprojected profile fills the canvas. Use it after switching lines, after large parameter changes, or whenever you have lost orientation by zooming and panning.
Resolution A single control that jointly governs three independent grid-building choices: trace decimation, migration sector ray count and grid cell size. See details below.
Auto-update When on, the grid is rebuilt automatically every time a parameter, resolution or option changes. Convenient for interactive tuning. Turn it off if rebuilding is too slow on your data.
Grid (button) Triggers a manual rebuild. Use it when Auto-update is disabled, or to retry after cancelling.
Export 3D Grid… (button) Opens the export dialog.

What resolution affects:

  1. Trace decimation. At 100% every trace is sampled; at lower percentages traces are skipped at a roughly linear rate, up to one in twenty at 1%. Coarser decimation means fewer ray fans to compute but also fewer redundant contributions per cell.
  2. Sector ray count. The number of rays inside each migration fan grows with resolution. At low resolution the fan collapses toward a single ray (effectively disabling migration); at high resolution the fan contains many rays, producing better focusing at the cost of compute.
  3. Cell size. Cell width and height start from the natural data scale (mean trace spacing along X, half-sample wave path length along Y) and are multiplied by a factor that grows from 1x at 100% to 10x at 1%. Larger cells are faster to fill but blur fine detail.

Projection Parameters

All parameters live in the Projection group on the right-hand panel.

Parameter Effect
Zero ns sample Index of the first sample that corresponds to t = 0 at the antenna. Earlier samples (pulse delay / pre-trigger) are skipped. Auto-initialized from the SGY header - adjust only if the vertical scale appears shifted.
Center frequency, MHz Antenna center frequency. Drives the Fresnel zone width used to size the migration sector: higher frequency → narrower aperture → sharper but noisier image; lower frequency → wider aperture → smoother image.
Relative permittivity εr Soil permittivity. Sets in-soil wave speed (v = c / √εr) and the refraction angle at the surface. Increasing εr stretches features deeper and steepens ray paths. The single most important parameter for vertical scale calibration.
Antenna offset Vertical distance from the GPS antenna phase center to the GPR antenna phase center. Negative values place the GPR antenna below the GPS. Shifts the antenna trajectory (and therefore the whole image) vertically.
Terrain offset Vertical correction applied to the ground profile. Use it when the supplied terrain is biased relative to the antenna track.
Antenna smoothing Gaussian smoothing radius applied to the antenna trajectory before ray tracing. Suppresses GPS noise that would otherwise produce jagged ray origins.
Terrain smoothing Gaussian smoothing radius applied to the terrain surface. Removes terrain noise; too large a value will flatten real topography and bias refraction.
Normal weight Blends the ray direction between straight-down (0) and perpendicular to the local terrain surface (1). Use higher values on strongly tilted terrain where the antenna follows the slope.

View Parameters

The View group controls how the grid values are mapped to pixels. These settings affect only the display - the grid itself is unchanged.

Parameter Effect
Palette Color map used to render amplitude.
Gain at max depth, dB Amount of gain (0 dB-128 dB) applied to the deepest samples. Gain ramps from 0 dB at the surface to this value at the bottom of the grid, compensating for soil attenuation. Increase to recover deep reflectors; too high a value will saturate noise. Also applied to exported amplitudes.
Contrast, % Contrast stretch (0%-100%) applied after gain. Higher contrast clips a larger fraction of the amplitude range, making mid-range features more visible.

Advanced Parameters

The Advanced group gathers options that change the algorithm behavior or add overlays useful for diagnostics.

Parameter Effect
Show trace origins Overlay marks showing the antenna position of every traced ray. Useful for verifying the antenna trajectory and the effect of antenna smoothing.
Show terrain Overlay of the terrain surface used by the algorithm (after terrain smoothing and terrain offset). Visualizes the actual air-soil boundary against which refraction is computed.
Show trace normals Overlay of the per-trace ray direction (the axis of the migration fan). Useful for inspecting the effect of normal weight on tilted terrain.
Interpolate grid Fills empty cells inside the soil mask by bilinear interpolation from neighbours. Produces a smoother image when traces are sparse or resolution is high relative to the data, at the cost of hiding genuine data gaps.
Remove background Subtracts a per-sample background trace (mean across the line) from each trace before projection. Affects both the on-screen image and the export.
Crop air gap Clips the grid to the soil region, discarding cells above the terrain surface. Turn off to inspect the air-gap samples (useful for debugging zero ns sample and antenna offset).
Migration (sector summation) When on, every trace is sampled with a fan of rays (see Migration section). When off, only the single nominal ray per trace is used.
Refraction Applies Snell's law at the air-soil boundary using the relative permittivity εr. When off, rays travel in a straight line and εr only affects the time-to-depth scale.
Fresnel aperture factor Multiplier (1-3) on the natural Fresnel-zone aperture of the migration sector. Larger values widen the fan, smaller values keep the fan tight.

Navigation

  • Drag with the left mouse button to pan.
  • Scroll to zoom (zooms toward the cursor). Hold Shift to zoom horizontally only.
  • Use the Fit button to recenter on the full profile.
  • Use the right-click context menu to set the axis origin.

Setting the Axis Origin

By default the X axis is measured from the start of the survey line and the Y axis from the reference altitude (0). To shift the axis origin to a feature of interest:

  1. Right-click anywhere on the canvas.
  2. The context menu shows the clicked location relative to the current origin, e.g. Set axis origin to (x: 12.34, y: -1.20). Select it to make that point the new (0, 0).
  3. Reset axis origin returns the origin to the default.

This affects only the axis labels - the underlying data and geometry are unchanged.

Exporting Projected Grid

The on-screen image is a 2D grid indexed by (column, row), where each column corresponds to one position along the survey line. Each non-empty cell becomes one 3D point in the export:

  • x, y are taken from the GPS coordinates of the trace at that column. All samples in the same column share the same x, y and form a vertical "stick" of points hanging below the antenna trajectory.
  • z is a height read from the grid row (same y you see on screen).
  • value is the cell amplitude scaled by depth-dependent gain (driven by Gain at max depth).

Cells outside the soil mask or with NaN value are omitted. The result is a georeferenced 3D scalar point cloud - one curtain of points per surveyed line.

Export Formats

Format Extension Coordinate space
LAS .las UTM projection. X, Y are eastings/northings in metres in the UTM zone derived from the centroid of the exported data; Z is altitude in metres. Amplitude is stored in the intensity field, normalised across the file to the 16-bit range. Coordinates are stored at 1 mm precision.
PLY .ply Local metric frame relative to a reference point. The reference point is the corner of the data with minimum X, Y, and Z. X and Y are meters east and north of that reference. Z is altitude in meters. Amplitude is stored as a scalar named amplitude. Useful for 3D visualisation tools that prefer local coordinates over a global CRS.

The format is selected by the file extension you save to.

Export Scope

Scope Exports
Selected line Only the currently displayed line.
Selected file All lines of the currently selected SGY file.
All files All lines of all open SGY files that have a ground profile. Files without a ground profile are skipped.

For Selected file and All files the grid is rebuilt independently for every line, using the current projection and grid settings.

Clone this wiki locally