|
<< Click to Display Table of Contents >> Navigation: Migration > Kirchhoff PreSDM(Offset mode) - file in/out - migration TT |
Pre Stack Depth Migration via Kirchhoff algorithm (PSDM stage). Seismic data sets are migrated as separated offset panels (cubes).
![]()
![]()
Kirchhoff depth migration is a fundamental algorithm in seismic data processing used to reconstruct subsurface images by mapping recorded seismic data to their true spatial locations in depth. The method is based on the Kirchhoff integral solution to the wave equation and assumes that seismic waves can be treated as high-frequency approximations propagating through the subsurface. It requires an accurate velocity model and the calculation of travel times for each source-receiver pair. The ail difference from similar module Kirchhoff PreSDM(Offset mode) - file in/out - migration TT is offset mode, i.e. execution performs by each offset panel independently.
The algorithm uses the Kirchhoff integral equation to represent the seismic wavefield:

where:
• u(Xs, Xr, t) is the recorded seismic data,
• G(X, Xs, t) and G(X, Xr, t) are Green's functions describing the travel time from the source (Xs) and receiver (Xr) to the subsurface point (X),
• m(X) is the reflectivity model being reconstructed.
Kirchhoff migration involves summing the contributions of seismic energy along isochron surfaces, defined by the travel time equation:
![]()
where T(X, Xs) and T(X, Xr) are the travel times from the subsurface point to the source and receiver, respectively. The reflectivity at a given point is determined by stacking the seismic amplitudes along these surfaces. This process is computationally intensive, requiring accurate travel-time tables and an efficient summation scheme.
Kirchhoff depth migration is particularly effective in areas with relatively simple subsurface structures or where a good initial velocity model is available. The algorithm's flexibility allows it to handle varying offsets and irregular acquisition geometries. However, its accuracy depends on the resolution of the velocity model and the correct computation of travel times, making iterative velocity model updates a crucial part of the workflow.
The module requires travel time file as input data, therefore please be sure that it was calculated before via Time table calculation for tomo update module.
![]()
![]()
![]()
The smallest source-receiver offset (in meters) that will be included when building the output common-image gathers (CIGs). Traces with offsets below this value are excluded from migration. Default is 0 m. Set to a value greater than zero to suppress near-offset noise or to focus on a specific offset range for AVO analysis.
The largest source-receiver offset (in meters) to include in the migrated CIGs. Default is 3000 m. Traces with offsets beyond this value are discarded. Set this to match the maximum usable offset in your survey, taking into account muting applied during preprocessing. Including excessively far offsets can introduce migration noise and stretch artifacts.
The width of each offset panel (in meters) in the output CIG volume. Default is 100 m. Traces whose offsets fall within each [min, min+step) window are stacked into a single offset panel. Smaller increments produce finer offset sampling (more panels, larger output file) and are better for detailed velocity analysis. Larger increments reduce output volume but may smooth AVO character.
The half-aperture (in meters) of the Kirchhoff migration operator — the maximum horizontal distance between an output image point and the source or receiver location considered during the summation. Default is 3000 m. Note that the value entered is the half-distance, so a value of 3000 m means traces up to 3 km away from the image point are summed. Larger apertures capture more steeply dipping events and improve continuity of dipping reflectors, but increase computation time. Set this to approximately the maximum dip * target depth / velocity to balance image quality and run time. This parameter is active only when Aperture type is set to Constant.
Controls how the migration aperture varies with depth. When set to Constant (default), a single aperture value (set in the Aperture field) is applied at all depths. When set to Depth variant, the aperture is defined by a table of depth-aperture pairs, allowing the aperture to grow with depth (reflecting the increasing velocity and offset requirements at depth). Use Depth variant for surveys with significant velocity variation to optimize both image quality and run time at each depth level. Default depth-aperture pairs in the table are: 0 m → 100 m, 500 m → 500 m, 1000 m → 1000 m, 2000 m → 3000 m, 3000 m → 5000 m.
Enable this option when migrating 3D seismic data. When checked, the Kirchhoff summation operator uses full 3D geometry, collecting contributions from traces in all azimuthal directions around each image point. For 2D surveys, leave this unchecked (false by default) so the operator is restricted to the 2D inline plane, which reduces memory usage and run time. Using 3D mode on a 2D dataset will produce incorrect results.
The total number of depth levels in the output migrated cube. Default is 1000. The maximum imaging depth equals Depth samples count multiplied by the Depth sample rate. For example, 1000 samples at 5 m/sample produces a depth image from 0 to 5000 m. Increase this value to image deeper targets; decrease it to reduce output file size when shallow targets are the focus.
The vertical distance (in meters) between consecutive depth samples in the output image. Default is 5 m. This is the vertical resolution of the migrated depth cube — finer sampling (smaller value) resolves thin-bed features more accurately but increases output file size. The total imaging depth is Depth samples count × Depth sample rate. A typical choice is 2–5 m for shallow high-resolution surveys and 5–10 m for deeper exploration targets.
The constant velocity (in m/s) assumed in the near-surface layer between the datum plane and the shot/receiver elevations. Default is 1500 m/s. This velocity is used to apply a datum static correction: the migration operator shifts traces from the actual recording datum up (or down) to the flat datum plane using this velocity. Set this to a value representative of the near-surface velocity at your site — for land data this is typically the weathering or replacement velocity determined from uphole surveys or refraction analysis. An incorrect replacement velocity will introduce systematic depth errors in the migrated image.
The spatial bin size (in meters) used by the anti-aliasing filter in the inline (X) direction. Default is 15 m. Together with the Anti-aliasing coefficient, this controls how aggressively the migration operator low-pass filters data as a function of dip angle in the inline direction. A larger step size increases the anti-aliasing effect (more filtering) at the cost of suppressing steep dips. Set this to approximately the bin spacing of your output grid in the X direction.
The spatial bin size (in meters) used by the anti-aliasing filter in the crossline (Y) direction. Default is 15 m. Set to the bin spacing of your output grid in the crossline direction. For 2D surveys, this parameter has no effect. Matching the step to the actual output bin size ensures the anti-aliasing filter is calibrated correctly for the output grid geometry.
The flat reference elevation (in meters) to which all traces are statically shifted before migration. Default is 1100 m. In depth migration, the datum acts as the starting surface from which the migration operator propagates energy downward. Set this to a value near mean sea level (0 m) for marine data, or to the average surface elevation of the survey area for land data. Using the correct datum is critical: an incorrect datum shifts the entire migrated image vertically in depth. The replacement velocity is used to apply the time-domain static shifts between source/receiver elevations and this datum.
The upper frequency limit (in Hz) used in the rho-filter (anti-derivative filter) applied as part of the Kirchhoff amplitude correction. Default is 120 Hz. This value should match or slightly exceed the highest signal frequency in your data. Setting it too low will over-smooth the migrated image; setting it too high will amplify high-frequency noise. Use the frequency spectrum of your pre-migration gathers to guide this choice.
The maximum reflection angle (in degrees) relative to vertical that the Kirchhoff migration operator will image. Default is 90°. Traces contributing to a reflection angle greater than this threshold are excluded from the summation. Reducing this angle (for example, to 45–60°) suppresses migration noise from steeply dipping events and can improve signal-to-noise at the cost of limiting dip imaging capability. Use the full 90° range unless noise or aliasing from steep dips is a problem.
An integer factor by which the input trace count is decimated before migration. Default is 1 (use all traces). Setting this to 2 uses every other trace, 3 uses every third trace, and so on. Use a value greater than 1 during parameter testing to reduce run time — migrating a sparse subset of traces gives a quick preview of image quality to validate aperture, datum, and anti-aliasing settings before committing to a full-dataset run. Return to 1 for production migrations.
![]()
![]()
![]()
![]()

There is no information.
![]()
![]()
There are no action buttons and Visual Vista Items.
![]()
![]()
The entire workflow example with all necessary modules (travel time calculation, migration and QC).
As input data we need travel time tables, seismic gathers (no NMO-ed), output geometry we can get from the input seismic gathers:


On the output we have migrated CIGs dataset, for QC we need to read it via Read seismic traces. For Stack please use PSDM imaging, it can create stack in depth and in time domains:


For the impulse response test we need to select one CMP from the input gathers and set ALL DATA WITHOUT SELECTION to the Output geometry:


![]()
![]()
If you have any questions, please send an e-mail to: support@geomage.com