Battling SEGY Once Again!

Chesapeake Times, Vol 14 | July 2023

Over the past few years, we have spent considerable development time on addressing the needs of our sub bottom processor geos. We have made great improvements to the available tools and workflow. We have time and time again had to battle with how to make sure that all of the processing steps done inside of the program can be translated out to .SEGY format. Despite being 50 years old, this file format somewhat unfortunately remains the industry standard for seismic.

In this months battle we had a customer reach out to our support team with an issue, their SEGY files had been corrected vertically inside of SonarWiz against a multibeam surface but when exported into SEGY and then reimported downstream, the profile no longer aligned.

After digging around the problem was an artifact of another limitation to the format that we needed to find a solution for! We need to remember that SEGY does not store the range of your seismic data directly, it stores the number of samples per trace along with the microseconds per sample.

For this example, line there are 7267 samples per trace x 10.417144119105458 microseconds which inside of SonarWiz results in the actual range being 56.776 meters. Everything lines up in the digitizer without issue!

The problem arises in how SEGY stores this information, the location (Bin Header Bytes 17-18) is in an unsigned integer which truncates the 0.417144… which changes the actuated range to 54.503 meters, introducing a 2.2 meter offset!

Our team here at CTI is small and we are constantly battling trying to keep our development goals on track but when a customer has deliverables due by the end of the week, sometimes the best solution is a simple one. Our goal for the future is to implement support for SEGY V2 inside of the exports as this does contain a new location for these additional values smaller than microseconds but this would have
taken days of development time.

Instead, we adjusted the CSF to SEGY format so that it would resample the trace in order to export more accurately. Instead of finding a home for these additional digits past microseconds we increased the number of samples to so that the record lengths remain close to the raw data. Here is the new equation:

7571 (added 304 samples) x 10 (microseconds per record) / 1,000,000 (convert to seconds) * 1500 (SV) = 56.78 meters

Another happy customer and data out the door!