I have a seismic dataset that contains a depth-migrated seismic (amplitude) volume in depth and then the exact same volume converted to time using the migration velocities. Unfortunately, I do not have the velocity volume used to do the conversion.

How can I extract the velocity volume using only these two (amplitude) volumes?

Since the signals are exactly the same, just stretched and squeezed, I believe the solution will require something like dynamic time warping but I don't have enough experience with this to make it work.

Since each trace in the volume is converted independently, this reduces to a 1D problem. An optimal solution for a single trace can be used to solve the entire 3D volume (unless there is a lot of error and then we can have lateral instability, but I can live with that).

I will eventually need to code it in MATLAB for application on sgy-formatted data.


1 Answer 1


Disclaimer: It a very crude way to do it.! Take it as the last resort.

It assumes that you know velocity for the shallower reflectors/layers. I will explain for one reflector and you can extend for deeper reflectors.

Step 1. You slice out the reflector event (in a trace) you want to find the velocity for.

Step 2. Take a correlation with the respective trace in other time/depth domain part and find the max correlation time/depth. Here you may assume this time corresponds to the respective depth so you get total travel time.

Step 3. At this point you know the interval velocities for layers at the shallower depth, so you can find out the interval velocity for this layer.

You start from the top and continue to bottom side. You may treat it as layer stripping.

  • $\begingroup$ I am looking for a fully automated solution as I will have to implement it on thousands of traces in a 3D volume. What you are describing here is how we tie synthetic seismograms. I am basically looking for a way to tie synthetics automatically but assuming that the synthetic matches the real seismic perfectly given the correct velocity function. $\endgroup$
    – Antonio
    Commented Jan 27, 2017 at 17:22
  • $\begingroup$ @Antonio You should make that requirement clear in the question. Seeking a solution for one case is of course very different from seeking an automated solution for thousands of cases. $\endgroup$
    – gerrit
    Commented Mar 31, 2017 at 10:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.