Module 01 · Geometric attributes
Rock layers are almost never flat. Beds tilt, fold, thin and break, and reflectors follow them. Any measurement made along a reflector therefore has to begin by establishing which way that reflector runs. This module covers it in three steps: what dip is, how you would estimate it by hand, and how the standard algorithm estimates it.
The seismic — and the line you are fitting to it
The search settings — results update as you drag
The largest tilt allowed in either direction. Dips steeper than this cannot be found, and nothing in the output records that the limit was reached.
The spacing between successive tilts. Larger steps mean fewer trials and a faster run, at the cost of precision.
Fits a parabola through the winning tilt and its two neighbors, so the estimate can fall between the values actually tested.
The number of traces compared at once. Three gives very little evidence to work from; twenty-one spans 250 m either side of the point being described.
The length of trace compared. A common guideline is about one period of the wavelet, roughly ±17 ms at 30 Hz. At ±100 ms the window spans three separate reflectors.
No effect while the window stays narrow. Beyond nine traces the window reaches across the fault.
Beds below about 290 ms dip in the opposite direction. This affects the estimate only once the window is tall enough to include them.
Field traces are never identical. Increasing this lowers both the score and the accuracy of the estimate.
Work through the three steps in order, then try the exercises. Method and references are there when you want them.
Each wiggle is one seismic trace. Traces are plotted side by side, and time increases downward. These nine contain a single reflector, with a small amount of random noise added. Move the slider to change how steeply the reflector crosses them.
The time difference between one trace and the next. Negative values mean the reflector arrives earlier as you move right, so it climbs rather than falls. Zero gives a flat reflector, which is uncommon in real data.
Twenty-five traces, and this time the dip is not shown. The crimson line is your estimate of the bed orientation. Adjust its tilt until it follows a reflector instead of cutting across one. This is the same judgement an interpreter makes by eye on a section.
The dashed box outlines the data being scored. It tilts with the line, so the window follows the bedding rather than the time axis.
1 How well the traces match along your line 1.0 would mean every trace is identical
2 The same traces, redrawn along your line what the score is measuring
Each trace is sampled along the tilted line and the results are plotted side by side. At the correct tilt they coincide. At the wrong tilt they are offset from one another.
The algorithm cannot judge by eye whether the line follows a bed, but it can do the rest of what you just did: sample the traces along a tilted line, measure how well they agree, and record the result. It repeats this for every tilt in a range and keeps the highest-scoring one. The estimate it returns is the tilt that best aligns the traces, which is what correcting for bed dip amounts to in practice.
1 The score for every tilt it has tried the tallest bar wins
Geometric attributes are measured along the reflector, not horizontally across the display. That requires knowing the reflector orientation before you can compute anything else, and because bedding is rarely flat, the orientation differs from sample to sample. So the dip field is rarely the endpoint of an interpretation — it is mainly the coordinate system every other attribute in this course is expressed in, though dip magnitude and azimuth maps are also read directly, as the end of this page describes.
An error in the dip field is not reported by anything downstream. A coherence volume computed on a bad dip field still looks like a coherence volume. It is simply imaging the wrong thing, and it will keep doing so all the way to the interpretation.
Dip azimuth and dip magnitude do get displayed in their own right. A dip magnitude map highlights fault planes and steep flanks; a dip azimuth map shows structural grain and picks out lineaments that are hard to see on amplitude, which is why the two are often co-rendered. But the main reason to spend real effort here is the one above: every attribute is built on the dip field, and an error in it propagates into all of them with nothing in the output to record that it happened.
Twenty-five traces sampled every 2 ms, formed by convolving a set of reflection coefficients with a 30 Hz Ricker wavelet and shifting each trace according to the dip. The hidden dip is drawn from a seeded random number, so "new hidden dip" produces a different case each time while a shared link reproduces the same one. The optional fault is a step in arrival time applied to every trace from trace 18 rightward, five traces from the analysis point at trace 13. The optional depth change reverses the dip of every bed below about 290 ms.
The score is semblance: the energy of the average trace divided by the average of the energies of the individual traces, over the analysis window. Written out for N traces, that is the energy of the summed traces divided by N times the summed energy of the individual traces. It is 1 when every trace in the window is identical and falls toward 1/N when they are unrelated. Marfurt et al. (1998) introduced it as a coherence measure, and it is also the quantity the dip search maximizes. Coherence and dip estimation are the same calculation used to answer two different questions.
The search is the discrete dip scan of Marfurt et al. (1998), offered today as one of the two algorithms in AASPI program dip3d. Candidate tilts are spaced evenly across the range, each trace is read along the tilted line with linear interpolation between samples, and the winner is refined by fitting a parabola through it and its two neighbors.
Several simplifications, each treated in a later module. This is 2D, so there is a single dip component rather than the inline and crossline pair, and no dip azimuth. The search range is quoted in milliseconds per trace, whereas production software asks for it in degrees and requires a conversion velocity. Semblance is computed on the plain trace rather than the analytic trace, meaning the trace together with its Hilbert transform, which module 04 introduces. Dip is estimated at a single point rather than at every sample in a volume. There is no Kuwahara search — testing several windows offset around the sample and keeping the most internally consistent one — which is what keeps a production dip estimate from smearing across a fault.
Next up
A line of traces becomes a patch of traces in a survey, and one dip component becomes two: the time shift per trace along the inline, and the time shift per line along the crossline. Dip magnitude and dip azimuth are derived from that pair.
Open module 02 → All modules