diff --git a/examples/timed_reader.py b/examples/timed_reader.py new file mode 100644 index 0000000..dc31f20 --- /dev/null +++ b/examples/timed_reader.py @@ -0,0 +1,66 @@ +"""A simple example which times reading of all traces in a SEG Y file. + +Usage: + + timed_reader.py + +""" +from __future__ import print_function +import datetime + +import os + +import sys +import traceback + +from segpy.reader import create_reader +from segpy.writer import write_segy + + +def read_traces(in_filename): + with open(in_filename, 'rb') as in_file: + + t0 = datetime.datetime.now() + + segy_reader = create_reader(in_file) + + t1 = datetime.datetime.now() + + for trace_index in segy_reader.trace_indexes(): + trace = segy_reader.trace_samples(trace_index) + + t2 = datetime.datetime.now() + + time_to_read_header = (t1 - t0).total_seconds() + time_to_read_traces = (t2 - t1).total_seconds() + time_to_read_both = (t2 - t0).total_seconds() + + print("Time to read headers : {} seconds", time_to_read_header) + print("Time to read traces : {} seconds", time_to_read_traces) + print("Total time : {} seconds", time_to_read_both) + +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: + read_traces(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())