<< Chapter < Page | Chapter >> Page > |
If the sample qualifies as valid, we must find the ellipse which satisfies the condition that the sample distance equals the distance to the reflection surface and back. Using ellipse properties, we can see that the points of this ellipse can be found relative either the source or receiver.The equation for the ellipse in polar coordinates (r,phi) from one focus is:
where e is the eccentricity of the ellipse, a is the semi-major axes, and c is the distance of the focus to the center of the ellipse. The geometry for finding a and c is shown below:
We know c as the distance between the source and receiver divided by 2. a can be found by realizing that:
b can be obtained since the hypotenuse of each right triangle is equal to half the sample distance. A little trigonometry takes care of finding b :
Eccentricity e is simply defined as:
We then plug all this into Equation (6) and get a vector of radii for all phi between pi and 2*pi (the negative half of the unit circle).
This vector is mapped to the image grid via the matlab command pol2cart and the shifted by c to bring the ellipse into line with the focii (source and receiver).
Finally, the value of the time sample is then added to these grid coordinates. The process is repeated for each source-receiver time vector.
Both methods require treating each of the 4096 vectors separately and traversing the vectors one by one. Therefore, we can talk about efficiency in terms of the time required to process one vector and extrapolate this to total processing time. Without any optimizations, both methods take several seconds to process one vector, which means that total process time is on the order of 5-10 hours. So how can we reduce these times? Well, one obvious answer would be to use a different computing simulator or work with a language more optimized for this type of processing. However, for our purposes, let’s only consider optimizations to the actual algorithms.
For method one, the main factor we can control is the size of the grid. We may greatly reduce our processing time by simply searching a smaller grid. The idea is to traverse the entire grid for the first few vectors and then to only traverse the areas where the magnitude is greater than some threshold. It is possible, in this way, to decrease the area by a factor of 2-10 and thus improve the speed.
For method two, we set a threshold value and only consider time samples above this value. This is helpful in eliminating all of the zero values in the early part of the time vectors that occur before any pulse returns. We must be careful however in this optimization because if we set the threshold too high, we will be hurting our resolution and/or creating noise in the graph.
Experiment | Algorithm | |
---|---|---|
Method 1 | Method 2 | |
Mountain (Full Algorithm) | 10-12 sec | 5 sec |
Mountain (Optimized) | 3-4 sec | 1-2 sec |
ELEC (Optimized) | 5-6 sec | 3-4 sec |
Here are two pictures of the same image reconstructed using each method
As you can see, Method 1 shows details much more clearly because it uses a linear interpolation formula, while Method 2 rounds off the ellipse coordinates to fit them to the grid. This means that method one should be more accurate and should show less error from the discrete nature of the samples. Method 2 is faster, but method 1 shows higher resolution.
You can download copies of the matlab code for method 1 , the optimizing wrapper for method 1 and method 2 .
Notification Switch
Would you like to follow the 'Seismic imaging' conversation and receive update notifications?