LWD Sonic Waveform Data Processing


Operator and logging contractor: LDEO-BRG

Hole: 5A (proposed site KGGH02-A)

Expedition: NGHP-1

Location: Krishna-Godavari Basin, Eastern India (Bay of Bengal)

Latitude: 16° 1.722' N

Longitude: 81° 2.678' E

Logging date: May 24-25, 2006

Sea floor depth (drillers'): 963 mbrf

Sea floor depth (loggers'): 956 mbrf

Total penetration: 1163 mbrf (200 mbsf)

Lithology: Nannofossil-rich clay with occasional thin silt beds and abundant carbonatic nodules (from Hole 5C)




The original LWD sonic data have been translated into DLIS format by Schlumberger Drilling and Measurements. Each of the four waveforms consists of 151 samples at depth intervals of 15.24 cm (6 inches) and 5.08 cm (2 inches). The data in DLIS format is first loaded on a Sun system using GeoFrame software. The waveform data files, consisting of  4 waveforms each) are then converted into ASCII and finally binary format.

Each line of the binary files is composed of the entire waveform set recorded at each depth, preceded by the depth (multiplied by 10 to be stored as an integer). In the case of 4 waveforms with 151 samples per waveform, this corresponds to 1 + 4x151 = 605 columns. In this hole, the specifications of the files are:


Number of columns: 

Number of rows: 3770 (5.08 cm 2 inch sampling rate)

Number of rows: 1258 (15.24 cm / 6 inch sampling rate)


The following binary files are available at Hole 5A:

 5A-swf-2in.bin: -0.96 to 190.45 mbsf

 5A-swf-6in.bin: -0.91- to 190.51 mbsf


All values are stored as '32 bits IEEE float'.

Any numerical software or programing language (matlab, python,...) can import the files for further analysis of the waveforms.


The sonic waveform files were depth-shifted to the seafloor (-956 m).


NOTE: For users interested in converting the data to a format more suitable for their own purpose, a simple routine to read the binary files would include a couple of basic steps (here in old fashioned fortran 77, but would be similar in matlab or other languages):

The first step is to extract the files dimensions and specification from the header, which is the first record in each file:

  open (1, file = *.bin,access = 'direct', recl = 50) <-- NB:50 is enough to real all fields

  read (1, rec = 1)nz, ns, nrec, ntool, mode, dz, scale, dt

  close (1)

The various fields in the header are:
      - number of depths
      - number of samples per waveform and per receiver
      - number of receivers
      - tool number (0 = DSI; 1 = SonicVISION; 2 = SonicScope; 3 = Sonic Scanner; 4 = XBAT; 5 = MCS; 6 = SDT; 7 = LSS; 8 = SST; 9 = BHC; 10 = QL40; 11 = 2PSA)
      - mode (1 = Lower Dipole, 2 = Upper Dipole, 3 = Stoneley, 4 = Monopole)
      - vertical sampling interval *
      - scaling factor for depth (1.0 = meters; 0.3048 = feet) *
      - waveform sampling rate in microseconds *

All those values are stored as 4 bytes integers, except for the ones marked by an asterisk, stored as 4 bytes IEEE floating point numbers.

Then, if the number of depths, samples per waveform/receiver, and receivers are nz, ns, and nrec, respectively, a command to open the file would be:

  open (1, file = *.bin, access = 'direct', recl = 4*(1 + nrec*ns))

Finally, a generic loop to read the data and store them in an array of dimension nrec × ns × nz would be:

  do k = 1, nz

    read (1, rec = 1+k) depth(k), ((data(i,j,k), j = 1,ns), i = 1,nrec)



For further questions about the logs, please contact:


Cristina Broglia

Phone: 845-365-8343

Fax: 845-365-3182

E-mail: Cristina Broglia


Gilles Guerin

Phone: 845-365-8671

Fax: 845-365-3182

E-mail: Gilles Guerin