Exploring attributes on outcrops with an eye on better seismic algorithms

Moenkopi Formation Moab Canyon Utah USA


This post documents an ongoing experiment. It is not a finished method, not a polished algorithm, and not yet something that should be trusted blindly. The motivation is simple: use outcrops as controlled laboratories to test attribute style ideas that are often applied directly to seismic data without enough geometric intuition.

Outcrops provide a rare opportunity. Faults, layering, and discontinuities are visible, interpretable, and debatable. If an algorithm cannot begin to detect what the eye clearly sees on an outcrop, it has little chance of behaving well in seismic volumes.

Geological reference and manual interpretation

The starting point is a high resolution photograph of a layered outcrop affected by multiple fault sets. The image below shows a manual interpretation of the main fault traces, drawn in red. This interpretation is subjective but grounded in geological reasoning and serves as a reference, not as ground truth.


The goal is not to reproduce this interpretation exactly. The goal is to see whether simple, physically interpretable attributes can begin to highlight similar structures without explicit supervision.

A) Conditioning: illumination and contrast normalization

Natural outcrop photographs contain strong illumination gradients, shadows, and color variations unrelated to structure. Before any structural analysis, the image is converted to grayscale and conditioned by removing long wavelength illumination and stretching contrast using percentile clipping.

This step is intentionally simple. The idea mirrors basic seismic preprocessing, where gain, filtering, and balancing aim to reduce acquisition related artifacts while preserving geological signal.


D) Masking: defining what is worth analysing

Not all pixels contain geological information relevant to structural analysis. Vegetation, sky, loose debris, and low coherence areas introduce noise and bias. A dedicated masking step is therefore introduced to restrict the analysis to areas that are both visually meaningful and structurally coherent.

The masking combines color based exclusion, coherence thresholds, and an optional manual exclude mask. The result is a final useful area where attributes are evaluated and visualized. This is critical. Without masking, attribute responses quickly become dominated by irrelevant textures.


White areas correspond to automatically selected pixels (in this case with the current paramenters non is selected), red and black areas to manually excluded regions, and green areas to the final mask used by the attribute pipeline.

B) Fabric: orientation and coherence

Local fabric is estimated using the two dimensional structure tensor built from image gradients. From the tensor eigenvalues, a coherence measure is computed as:

(λ₁ − λ₂) / (λ₁ + λ₂)

High coherence indicates consistent local orientation, while low coherence highlights chaotic or discontinuous regions. The dominant orientation is derived from the tensor eigenvectors and represents the local structural trend in the image plane.

The image below shows the fabric orientation encoded in color. Hue represents orientation, saturation represents coherence, and black areas correspond to masked pixels.


Conceptually, this step is directly analogous to seismic coherence and dip attributes. The difference is that here the geometry can be visually inspected and questioned.

C) Discontinuities and fault likelihood

Faults are treated as zones where orientation changes abruptly across otherwise coherent fabric. Discontinuities are therefore emphasized by combining orientation gradients with low coherence:

|∇θ| · (1 − coherence)

This formulation suppresses noisy gradients in chaotic regions and focuses on structured breaks. To enhance narrow linear features, a multi scale Hessian based line filter is applied, similar in spirit to Frangi style vesselness filters.

An optional angular gate further boosts fault likelihood for preferred orientations, allowing multiple fault sets to coexist without hard thresholding.

At this stage, the results are imperfect. Faults begin to appear, but continuity is incomplete and parameter sensitivity remains high. This is expected.

Relation to seismic attributes

Although applied here to outcrop images, the logic mirrors established seismic attributes. Structure tensor coherence relates to semblance and coherence volumes. Orientation gradients echo curvature and azimuthal variation measures. Line enhancement parallels fault likelihood and ant tracking approaches.

The intention is not to reinvent these ideas, but to stress test them in a setting where geometry is observable. Classic work by Bigün and Granlund on tensor based orientation, Förstner on structure tensors, Frangi on multi scale line enhancement, and later seismic developments in fault detection all inform this experiment.

Current limitations and next steps

This work is explicitly a work in progress. The current pipeline requires tuning, produces fragmented fault traces, and does not yet enforce geological consistency. The immediate next steps are improving fault connectivity, stabilizing responses across scales, and introducing objective diagnostics rather than relying solely on visual inspection.

The longer term goal is to arrive at a proper algorithmic endpoint that can be transferred to seismic data, where similar logic can be tested in three dimensions and compared against existing interpretation workflows.

For now, this sandbox remains what it is: an exploratory bridge between what the eye sees on rock and what algorithms attempt to infer from pixels. 

Comments