Code your way to the Common Reflection Surface

Build a Common Reflection Surface Workflow in 6 easy steps

This article aims to be an in-depth article about building a workflow suited for proper use of the Common Reflection Surface. This resource is aimed at a specialist audience, however maybe this is a rare insight into the intricacies of seismic processing for some of our readers.

The processing package for CRS is often regarded as a Blackbox. You adjust some parameters, run the code and wait and hope for the best. In my experience this is different and depends on the implementation of the code. I have worked with code that overdid it with the user-supplied input, however this also enables me now to talk about all the different options that influence the CRS workflow.

What does the Common Reflection Surface do?

Generally speaking, CRS searches for wavefield attributes in the data to perform an advanced stack, improving upon the Signal to Noise Ratio and exploiting concepts such as the Fresnel zone. In the hyperbolic case, it works just like an extension of the Common Midpoint stack.

In consequence it’s a search tool that subsequently uses the search result for a stack.

Any processes based on CRS such as CRS interpolation use these search results in a related but different way.

How to Common Reflection Surface

The velocity reference

Starting out, in my experience, CRS will always perform better, once a sufficiently good velocity model is supplied. While CRS is capable of performing a velocity search on its own, the models obtained through standard processing techniques from experienced processors outperform the CRS search and eliminate one source of uncertainty.

Many implementations have a distinct reference velocity model option. However sometimes one has to trick the code into taking a supplied model. This is usually done in the following way:

The velocity model from CRS is written to the disk, to provide the evaluated model. The next module reads the data from disk and processes in. By assessing the naming convention of the algorithm, we can deactivate the search module and provide the velocity file to subsequent processes. You can decide yourself if it’s a hack or a feature, nevertheless it works.

The Apertures

The apertures for CRS have been a source of legend and mysticism. And they’re probably the reason most people struggle with CRS. There is barely any material on apertures and some er even plain wrong.
Let me use an analogy. Kirchhoff migration apertures are in theory closely tied to the Fresnel zone. In reality, it takes work and experience to find the right apertures. Same is true for CRS, in theory the Fresnel zone is the sweet spot for the apertures. In reality you have to trade off. As small as necessary, to retain geologically complex features and as large as possible to get the improvement while stacking.

Additionally, we have to consider that the CRS search is an optimization problem, so choosing large apertures may narrow the maxima too much, the algorithm will miss the maximum and provide a less than optimal solution.

My approach is the following:
Search with larger apertures to get stable wavefield parameter sections. Stack with small apertures to retain more details. My Master thesis contains these tests as well.

Emergence angles

Build a CRS workflow

Build a CRS workflow

Some older versions of the code default the emergence angle to 60 degrees. This is unacceptable for modern processing. The full 90 the – 90 degrees in reasonable steps, nothing less.

Pick an appropriate surface velocity

You may think I’m all about velocities today, but this is incredibly important. The right surface velocity is crucial if you want to utilize the wavefield attributes from the data. If you just want a stack is use interpolation, this isn’t as important, as the stack will most likely still be stable. But for the parameter sections you need the right surface velocity.

In case of land data this can be especially tricky and you should consider to consult someone that has done the work to develop Land CRS.

Skip the Optimization

Until the very last stack, you will probably be fine without an optimization. It is time consuming and in the case of a simplex optimization may not be a vast improvement after all.

I hope this may get you started. In case of any questions, leave them in the comments!

What do I do with the Common Reflection Surface?

There are many uses for the Common Reflection Surface. The algorithm extracts the curvature of the data and can be used to separate diffractions from reflections. Additionally, the emergence angle is extracted.

The partial Common Reflection Surface can be used to interpolate and regularize data. Especially, when using the velocity reference, the module has been shown to work very well.

The following two tabs change content below.
... is a geophysicist by heart. He works at the intersection of machine learning and geoscience. He is the founder of The Way of the Geophysicist and a deep learning enthusiast. Writing mostly about computational geoscience and interesting bits and pieces relevant to post-grad life.

Latest posts by Jesper Dramsch (see all)

Posted in Software and Programming and tagged , , , , , , .