BOMTOM


Table of Contents

  • Introduction
  • Operation of Program
  • Description of input file
  • Notes on choosing the constraints
  • Definitions for some variables
  • Example input file

  • BOMTOM (Bureau of Mines tomography) is a simultaneous iterative reconstruction technique (SIRT) tomographic program for crosshole seismic travel times. BOMTOM will generate synthetic travel times if the iteration limit equals -1. Input, output and data file names are entered from the keyboard. Interactive instructions are given for creating a new input file if the specified input file is not found. There is an output file with titles for printing, and a data file in which results are saved every 10 iterations and at the end. This data file can be used as the input file when resuming a run. Options can be changed from the keyboard interactively. Options include applying constraints, smoothing, and changing initial velocity guesses. Execution can be stopped by holding control-break until BOMTOM writes to the screen, every 10 iterations. Correction factors are weighted by the fraction of a given ray in a given pixel (cell) divided by the sum of fractions of ray paths in that pixel, and by an optional weight accounting for relative reliability of data.

    Written by Daryl Tweeton, U.S. Bureau of Mines, Minneapolis, MN, 1986. Latest revision November, 1991. BOMTOM produces a grid for SURFER contours.

    The Bureau of Mines expressly declares that there are no warranties expressed or implied which apply to the software contained herein. By acceptance and use of said software, which is conveyed to the user without consideration by the bureau of mines, the user expressly waives any and all claims for damage and/or suits for or by reason of personal injury, or property damages, including special, consequential, or other similar damages arising out of or in any way connected with the use of the software contained herein.

    Return to the table of contents


    Operation of Program
    Operation of programlabel numbers
    Read or create input file 100-299
    Write options and data in output file 300-399
    Calculate general geometric factors 400-499
    Calculate lengths of path segments 500-599
    Accumulate correction factors for each pixel 600-649
    Apply weighted correction factors to velocities 650-699
    Averaging and smoothing options 700-799
    Save results in data file 800-899
    Write results in output file 900-999

    Return to the table of contents


    Description of data input read from input file.

    Units for length, travel times, and velocities must be self-consistent. Usual units are length in meters, time in milliseconds, velocity in km/sec. For labeling in the program, transmitters are assumed to be on left and receivers on right side. Pixel 1 is at top left. Pixel 2 is next pixel in top row.

    All data are in list-directed format. Input numbers must be separated by a space or comma. They do not need to be in particular columns.

    header
    One line of comments for the top of output file. Leave first column blank.

    mdata mwt mstor mcor mbore msmth mdif

    itrmax itrsav tolabs tolinc relax ipdat ipivg ipfrc iperr ipseg ipgra isgra posp1x posp1y posp1z pospnx pospny pospnz npixh npixv nlitop nlibot nfxlft nfxrht
    The input of transmitter and receiver locations depends on mdata and itrmax.
    If mdata = 0 or itrmax = -1, use the following form:

    npst npsr adjdis

    idpst(ipst) postx(ipst) posty(ipst) postz(ipst) (one line for each ipst = 1 to npst). idpsr(ipsr) posrx(ipsr) posry(ipsr) posrz(ipsr) (one line for each ipsr = 1 to npsr). nexptt adjtt
    If itrmax = -1, skip the following input.


    If mdata = 1, use the following form:
    smfpll vlocal vhical vlodsp vhidsp vlodif vhidif invopt If invopt = 1, input is uniform and the format is:

    If invopt = 2, input is row by row and the format is:

    If invopt = 3, input is pixel by pixel and the format is:

    Return to the table of contents


    Notes for choosing constraint parameters

    The constraint that the velocity is not varied for pixels containing a transmitter or receiver is activated by setting MBORE = 1. The pixels at the borehole are those for which the velocity is most probably known. An option for fixing the velocity in columns at the sides is also provided by setting NFXRHT and NFXLFT equal to the desired number of columns. The program is easy to modify to fix the velocities in other pixels because the array LGLCOR controls whether the velocity is varied for the corresponding pixel. If LGLCOR(PIXEL) is set to FALSE in FORTRAN or 0 in BASICA, then the velocity in the corresponding pixel will not be varied.

    NLITOP and NLIBOT are used to set the number of laterally invariant rows along the top or the bottom of the model. This constraint was expected to prevent artifacts of vertical strips of contrasting velocity passing through the ray path region. It will be satisfied in many applications in in situ mining above the water table because the top of the pixel grid will represent a region with no leachate and the bottom will represent a saturated region. An option was added to BOMTOM for designating the number of rows at the top and bottom in which the velocity for all pixels in the row is set equal to the average velocity for that row. The option does not specify the average velocity nor that the average velocity for any row is related to the velocity in any other row.

    A second constraint consists of setting the velocities near the boreholes to known values and not allowing them to change. This constraint could be applied to in situ mining if sonic logs were run in the boreholes.

    Another constraint is to limit the calculated velocity to a specified range. This constraint was not helpful in the tests unless the upper limit was set quite close to the maximum velocity in the model. In practice, one may not know the limits precisely enough to help the reconstruction significantly.

    Smoothing provides another type of constraint on the model. Smoothing consists of replacing the velocity in each pixel with a weighted average velocity, averaged over that pixel and its neighbors. The smoothing option in BOMTOM uses weighting factors of 20, 4, and 1 for the pixel whose velocity is being replaced, its nearest neighbors, and its corner neighbors, respectivity. Smoothing is performed after each iteration. With more pixels than ray paths, some of the pixels do not contain any rays. Without smoothing, there is no basis for changing the velocity in them. With smoothing, those pixels have their velocity adjusted by the effect of their neighbors. The reconstruction without smoothing is so uneven that it would be difficult to interpret. With smoothing, patterns are more evident. Smoothing has been reported to provide a better looking reconstriuction with field data. The purpose of smoothing is to average random inconsistencies in the data, so smoothing would not be beneficial with self-consistent synthetic data. The inconsistencies with field data arise only partially from experimental errors in measureing the travel times and position. They occur also because the real velocity distribution can vary continuously with position. Real data come from a very large number of very small pixels. Tomography uses fewer, larger pixels, each containing a constant velocity.

    Return to the table of contents


    Definitions of some other variables used in BOMTOM

    dpixh
    distance from center of left pixel to center of right pixel.
    dpixv
    distance from center of top pixel to center of bottom pixel.
    posth and posrh
    the horizontal coordinates of the transmitter and receiver in the coordinate system of the pixel grid.
    icolt and icolr
    the pixel columns containing posth and posrh.
    irowt and irowr
    the pixel rows containing postz and posrz.
    nacros
    the number of times a path crosses pixel row boundary lines.
    tcros(i), i = 1, nacros
    the horizontal distance from a transmitter to a point where the path crosses a pixel row boundary line.
    icol(i)
    the column in which crossing i occurs.
    edcros(i)
    the horizontal distance from the left edge of icol(i) to crossing i.
    d(j), j = 1 to between sqrt(npixh**2 + npixv**2) and 2*sqrt(npixh**2 + npixv**2)
    the length of a path segment in a pixel. j does not designate a particular pixel.
    smfpix(ipixel), ipixel = 1 to npixh*npixv
    the sum of the fraction of path lengths in pixel(ipixel).
    ipixsg(ipixel), ipixel = 1 to npixh*npixv
    an array keeping track of which path segments are in which pixels.
    lglcor(ipixel), ipixel = 1 to npixh*npixv
    a logical array. If lglcor(i) is false, then v(ipixel) is not changed.
    delt(i)
    exptt(i) - calculated travel time for path i.
    ratio(i)
    exptt(i)/calculated travel time for path i.

    Return to the table of contents


    Sample input file for BOMTOM

    MARCH 6, 1987. SYNTHETIC TRAVEL TIMES FOR 11 COLUMNS, 16 ROWS.
    0 0 1 1 1 0 0
    50 0 0.0000000 0.0000000 1.000000
    0 1 0 0 0 1 1
    0.0000 0.0000 0.0000 15.0000 0.0000 15.0000
    11 16 0 0 0 0
    16 16 0.0
    1 0.0000 0.0000 0.0000
    2 0.0000 0.0000 1.0000
    3 0.0000 0.0000 2.0000
    4 0.0000 0.0000 3.0000
    5 0.0000 0.0000 4.0000
    6 0.0000 0.0000 5.0000
    7 0.0000 0.0000 6.0000
    8 0.0000 0.0000 7.0000
    9 0.0000 0.0000 8.0000
    10 0.0000 0.0000 9.0000
    11 0.0000 0.0000 10.0000
    12 0.0000 0.0000 11.0000
    13 0.0000 0.0000 12.0000
    14 0.0000 0.0000 13.0000
    15 0.0000 0.0000 14.0000
    16 0.0000 0.0000 15.0000
    1 15.0000 0.0000 0.0000
    2 15.0000 0.0000 1.0000
    3 15.0000 0.0000 2.0000
    4 15.0000 0.0000 3.0000
    5 15.0000 0.0000 4.0000
    6 15.0000 0.0000 5.0000
    7 15.0000 0.0000 6.0000
    8 15.0000 0.0000 7.0000
    9 15.0000 0.0000 8.0000
    10 15.0000 0.0000 9.0000
    11 15.0000 0.0000 10.0000
    12 15.0000 0.0000 11.0000
    13 15.0000 0.0000 12.0000
    14 15.0000 0.0000 13.0000
    15 15.0000 0.0000 14.0000
    16 15.0000 0.0000 15.0000
    256 0.0
    1 1 3.750000
    1 2 3.758325
    1 3 3.783186
    1 4 3.824264
    1 5 3.836941
    1 6 3.898944
    1 7 3.947081
    1 8 4.044185
    1 9 4.129261
    1 10 4.234066
    1 11 4.363536
    1 12 4.477325
    1 13 4.605884
    1 14 4.759353
    1 15 4.919724
    1 16 5.086348
    2 1 3.758325
    2 2 3.750000
    2 3 3.758325
    2 4 3.783186
    2 5 3.772115
    2 6 3.828121
    2 7 3.863009
    2 8 3.947081
    2 9 4.006565
    2 10 4.114772
    2 11 4.218605
    2 12 4.322564
    2 13 4.460031
    2 14 4.605884
    2 15 4.759353
    2 16 4.913063
    3 1 3.783186
    3 2 3.758325
    3 3 3.750000
    3 4 3.758325
    3 5 3.731597
    3 6 3.766321
    3 7 3.792838
    3 8 3.845042
    3 9 3.910364
    3 10 4.003878
    3 11 4.080966
    3 12 4.194310
    3 13 4.322564
    3 14 4.460031
    3 15 4.602245
    3 16 4.736796
    4 1 3.824264
    4 2 3.783186
    4 3 3.758325
    4 4 3.750000
    4 5 3.707074
    4 6 3.697205
    4 7 3.737349
    4 8 3.757556
    4 9 3.827075
    4 10 3.885886
    4 11 3.968944
    4 12 4.076136
    4 13 4.194310
    4 14 4.322564
    4 15 4.438893
    4 16 4.565864
    5 1 3.881044
    5 2 3.824264
    5 3 3.783186
    5 4 3.758325
    5 5 3.698864
    5 6 3.672908
    5 7 3.697205
    5 8 3.702583
    5 9 3.748735
    5 10 3.791140
    5 11 3.873647
    5 12 3.968944
    5 13 4.076136
    5 14 4.174431
    5 15 4.281591
    5 16 4.402382
    6 1 3.952847
    6 2 3.881044
    6 3 3.824264
    6 4 3.783186
    6 5 3.707074
    6 6 3.664773
    6 7 3.638741
    6 8 3.662812
    6 9 3.667817
    6 10 3.713453
    6 11 3.773172
    6 12 3.849169
    6 13 3.907139
    6 14 3.979545
    6 15 4.083875
    6 16 4.199647
    7 1 4.008276
    7 2 3.916912
    7 3 3.836941
    7 4 3.772115
    7 5 3.680009
    7 6 3.621658
    7 7 3.579545
    7 8 3.553324
    7 9 3.576831
    7 10 3.586696
    7 11 3.634068
    7 12 3.683335
    7 13 3.745137
    7 14 3.837273
    7 15 3.926420
    7 16 4.026449
    8 1 4.081806
    8 2 3.983798
    8 3 3.898944
    8 4 3.819300
    8 5 3.685200
    8 6 3.576831
    8 7 3.553324
    8 8 3.511363
    8 9 3.519158
    8 10 3.542438
    8 11 3.563519
    8 12 3.598786
    8 13 3.647400
    8 14 3.708420
    8 15 3.799653
    8 16 3.902272
    9 1 4.177557
    9 2 4.057621
    9 3 3.947081
    9 4 3.845042
    9 5 3.704633
    9 6 3.615668
    9 7 3.542438
    9 8 3.519158
    9 9 3.511363
    9 10 3.502074
    9 11 3.473653
    9 12 3.511370
    9 13 3.563504
    9 14 3.629432
    9 15 3.708420
    9 16 3.799653
    10 1 4.273823
    10 2 4.153409
    10 3 4.044186
    10 4 3.922603
    10 5 3.755205
    10 6 3.642889
    10 7 3.580902
    10 8 3.542438
    10 9 3.467908
    10 10 3.443182
    10 11 3.450824
    10 12 3.473653
    10 13 3.511370
    10 14 3.563504
    10 15 3.629432
    10 16 3.696181
    11 1 4.404509
    11 2 4.273823
    11 3 4.153409
    11 4 4.001191
    11 5 3.806332
    11 6 3.683335
    11 7 3.598786
    11 8 3.528753
    11 9 3.473653
    11 10 3.450824
    11 11 3.443182
    11 12 3.450824
    11 13 3.473653
    11 14 3.511370
    11 15 3.537042
    11 16 3.593497
    12 1 4.544581
    12 2 4.404509
    12 3 4.262779
    12 4 4.051989
    12 5 3.839960
    12 6 3.745137
    12 7 3.647400
    12 8 3.563504
    12 9 3.511370
    12 10 3.473653
    12 11 3.450824
    12 12 3.443182
    12 13 3.450824
    12 14 3.439260
    12 15 3.476604
    12 16 3.528222
    13 1 4.675008
    13 2 4.515757
    13 3 4.363536
    13 4 4.110380
    13 5 3.940909
    13 6 3.818463
    13 7 3.708420
    13 8 3.629432
    13 9 3.563504
    13 10 3.511370
    13 11 3.473653
    13 12 3.416658
    13 13 3.409091
    13 14 3.416658
    13 15 3.439260
    13 16 3.476604
    14 1 4.806200
    14 2 4.649541
    14 3 4.456187
    14 4 4.199647
    14 5 4.035284
    14 6 3.902272
    14 7 3.799653
    14 8 3.708420
    14 9 3.629432
    14 10 3.554683
    14 11 3.476604
    14 12 3.439260
    14 13 3.416658
    14 14 3.409091
    14 15 3.416658
    14 16 3.439260
    15 1 4.966358
    15 2 4.790585
    15 3 4.558588
    15 4 4.310146
    15 5 4.138189
    15 6 4.015406
    15 7 3.902272
    15 8 3.796965
    15 9 3.683942
    15 10 3.593497
    15 11 3.528222
    15 12 3.476604
    15 13 3.439260
    15 14 3.416658
    15 15 3.409091
    15 16 3.416658
    16 1 5.126524
    16 2 4.919725
    16 3 4.658717
    16 4 4.431253
    16 5 4.269792
    16 6 4.138189
    16 7 3.999945
    16 8 3.868465
    16 9 3.762032
    16 10 3.671703
    16 11 3.593497
    16 12 3.528222
    16 13 3.476604
    16 14 3.439260
    16 15 3.416658
    16 16 3.409091
    0.001 -99. 4.4 3.8 4.6 -0.5 0.5 3
    1 4.000000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.000000
    2 4.000000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.000000
    3 4.000000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.000000
    4 4.000000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.000000
    5 4.000000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    6 4.000000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    7 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    8 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    9 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    10 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    11 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    12 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    13 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    14 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    15 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000
    16 4.400000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.200000 4.400000

    Return to the table of contents

    Return to top
    © William P. Clement 2000