#!/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())