bobf - BSU program computes a wavefield inversion objective function (C-Language Version)
bobf [ -h | infile1 | infile2 | tmin | tmax ]
Basic Seismic Utilities (BSU) program computes an objective function for comparison of two data sets. The smaller the objective function value, the more the two shot gathers match. An innerproduct is taken for each trace pair. The acosine of the innerproduct normalized by the L2 norms of each trace in the pair gives the angle. If traces are the same, then the angle will be zero. If they are orthogonal, the angle returned will be 90 degrees. If one data set is the negative of the other, the angle will be 180 degrees. However, if the two shot gathers are so dissimilar that the two wavefields don’t overlap in time, then the angle will also be 90 degrees. To form a more useful objective function, the sample corresponding to the largest amplitude in a trace is found for each trace pair being compared, and the difference in these two samples (hence also difference in maximum amplitude arrival times) is added to the angle between each trace pair to form an objective function useful in a wavefield inversion problem.
The code generates a gnuplot (graph.gp) and also runs it with a system command. When run on a multi-trace shot gather, the angles may be different for each trace. If they are all the same, then the data sets only differ by a wavelet (unless there is poor overlap in arrival times). The mean angle is the red line in the plot, and the two blue lines mark upper and lower standard deviations about the mean. The title of the graph includes the computed objective function value (standard deviation of angles + max amplitude arrival time differences in samples. C-language version.
NOTE:
Two data sets must have same number of traces, samples, and
sample interval.
Options
-h |
Online help giving details on command line arguments |
infile1
First argument is the first input file name
infile2
Second argument is the second input file name
tmin |
This is the start time in seconds for the analysis window. | ||
tmax |
This is the end time in seconds for the analysis window. The dimension of the vector space is set by the number of samples between tmin and tmax. |
NOTE:
If invoked with no options, will prompt user for input
parameters.
EXAMPLE:
bobf w001.seg wavV.seg 0. 0.5
Files w001.seg and wavV.seg are processed by bobf. For example, maybe wavV.seg is a synthetic seismogram meant to match w001.seg (perhaps in a full wave inversion scheme). The angles between traces are a measure of how close the synthetic matches the field data. The ideal case would be an angle of zero for each trace.
bobfxxxx.lst
named according to convention (first 4char bobf, the next 4char are the first 4char of the input file name, suffix .lst). This is a text file which lists 2 columns, (trace number, angle) and standard deviation about mean angle.
standard output
produces a progress bar
graph.gp
The gnuplot plot file, which is displayed with the system command. The file can also be edited to produce image files.
bhelp(1), c_bsegin(3), bargrid(3), exbar(3), in_chk(3), c_bsegy(5), bwfi(1), bagl(1), bphz(1)
no known bugs
Copyright © 2023 by Paul Michaels
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
P. Michaels, PE. <paulmichaels@boisestate.edu>