Ad Hoc Programming

Seismic processing in remote locations can be an exercise in improvisation.  Likewise, when a system update leaves the office without vital software while IT scrambles to reverse the damage.  After the first few times, it became necessary to write my own utilities for plotting, geometry application, binning, etc.  Programming Action Request response time was measured in years.  We were told not to “Program”. Programs are compiled.  These were “Macros” that are “interpreted”. So, no problem, right?  I mention this in the Resume, but I don’t think you all are getting the idea.  Hence this graphic presentation.

The graphic below is the Excel “Control Panel” for a Seismic trace plotting utility.  There is a background Visual Basic language that puts code behind those command buttons. The spreadsheet acts as the parameter input and status output. Samples are read from the binary SEG-Y standard format and written to a bitmap file. There are many gain and plot color options.


Next is the plot generated by this utility of a United States Geological Survey  stacked section of a seismic  line (5688 traces) collected offshore of New England in 1978.  This is public domain and can be downloaded at the USGS website.

This was written all by top-down principles “from scratch”.  The header was “built” from USGS metadata and pasted in with MS Paint.

The following utility reads the SEG-Y trace headers and populates a spreadsheet with the information.  The values can be altered with header math or cut-and-paste.  Then the data are written back to the headers to assign geometry.

This one evolved over years as an extremely useful tool.  I wrote this from scratch, as well.

Below is the Control Panel for a Fourier Analysis tool to plot an amplitude spectrum.  This was originally for source signatures, so it has maximum and bubble picks, with P/B ratio calculations. again straight from the SEG-Y dataset.  I did look up an algorithm for this, but the VB coding was all my own.  I calibrated by comparing to MASOMO plots – Source Modeling Nerds will understand that. 😉  The trace analyzed here came from that same USGS section plotted above.


Below is the amplitude spectrum and a detail plot of the trace itself.  Both appear on another page of the spreadsheet when the “Execute” button is pressed.  This one makes use of the Excel chart generation tools.



I wrote a binning application that reads P190 multi-streamer navigation files and writes a holoSeis dataset with full, near, nearmid, farmid and far offset coverage planes. I modified it to handle multi-boat surveys – before PGS managed that trick. 

I wrote one that reads a SEG-Y trace and writes a WAV file. The original 12 second record is mostly below audible range, so I tripled the frequency.  The result is the 4 second recording with some distortion at the initial reflection off the seafloor (d/t mp3 conversion).  It is still barely in audible range and headphones are required unless you have a system with good low response. 


One thought on “Ad Hoc Programming

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s