Files
segpy/examples/report.py
T
2015-05-14 10:04:19 +02:00

78 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""Displays a simple report of a SEG Y file.
Usage:
report.py <in.segy>
"""
from __future__ import print_function
import os
import sys
import traceback
from segpy.reader import create_reader
def report_segy(in_filename):
with open(in_filename, 'rb') as in_file:
segy_reader = create_reader(in_file)
print()
print("Filename: ", segy_reader.filename)
print("SEG Y revision: ", segy_reader.revision)
print("Number of traces: ", segy_reader.num_traces())
print("Data format: ",
segy_reader.data_sample_format_description)
print("Dimensionality: ", segy_reader.dimensionality)
try:
print("Number of CDPs: ", segy_reader.num_cdps())
except AttributeError:
pass
try:
print("Number of inlines: ", segy_reader.num_inlines())
print("Number of crosslines: ", segy_reader.num_xlines())
except AttributeError:
pass
print("=== BEGIN TEXTUAL REEL HEADER ===")
for line in segy_reader.textual_reel_header:
print(line[3:])
print("=== END TEXTUAL REEL HEADER ===")
print()
print("=== BEGIN EXTENDED TEXTUAL HEADER ===")
print(segy_reader.extended_textual_header)
print("=== END EXTENDED TEXTUAL_HEADER ===")
def main(argv=None):
if argv is None:
argv = sys.argv[1:]
try:
in_filename = argv[0]
except IndexError:
print(globals()['__doc__'], file=sys.stderr)
return os.EX_USAGE
try:
report_segy(in_filename)
except (FileNotFoundError, IsADirectoryError) as e:
print(e, file=sys.stderr)
return os.EX_NOINPUT
except PermissionError as e:
print(e, file=sys.stderr)
return os.EX_NOPERM
except Exception as e:
traceback.print_exception(type(e), e, e.__traceback__, file=sys.stderr)
return os.EX_SOFTWARE
return os.EX_OK
if __name__ == '__main__':
sys.exit(main())