mirror of
https://github.com/wassname/segpy.git
synced 2026-06-27 19:48:48 +08:00
81 lines
2.3 KiB
Python
81 lines
2.3 KiB
Python
"""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 ===")
|
|
|
|
for trace_index in segy_reader.trace_indexes():
|
|
trace_header = segy_reader.trace_header(trace_index)
|
|
print("Inline {}, Crossline {}, Shotpoint {}".format(trace_header.Inline3D, trace_header.Crossline3D,
|
|
trace_header.ShotPoint))
|
|
|
|
|
|
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()) |