mirror of
https://github.com/wassname/segpy.git
synced 2026-06-27 17:17:13 +08:00
Building the initial catatogs is now about 7 times faster.
This commit is contained in:
+13
-3
@@ -14,6 +14,7 @@ from segpy.binary_reel_header import BinaryReelHeader
|
||||
from segpy.catalog import CatalogBuilder
|
||||
from segpy.datatypes import SEG_Y_TYPE_TO_CTYPE, size_in_bytes, DATA_SAMPLE_FORMAT_TO_SEG_Y_TYPE, CTYPE_TO_SIZE
|
||||
from segpy.encoding import guess_encoding, is_supported_encoding, UnsupportedEncodingError
|
||||
from segpy.header import SubFormatMeta
|
||||
from segpy.ibm_float import IBMFloat
|
||||
from segpy.packer import make_header_packer
|
||||
from segpy.revisions import canonicalize_revision
|
||||
@@ -335,7 +336,18 @@ def catalog_traces(fh, bps, trace_header_format=TraceHeaderRev1, endian='>', pro
|
||||
if not callable(progress_callback):
|
||||
raise TypeError("catalog_traces(): progress callback must be callable")
|
||||
|
||||
trace_header_packer = make_header_packer(trace_header_format, endian)
|
||||
class CatalogSubFormat(metaclass=SubFormatMeta,
|
||||
parent_format=trace_header_format,
|
||||
parent_field_names=(
|
||||
'file_sequence_num',
|
||||
'ensemble_num',
|
||||
'num_samples',
|
||||
'inline_number',
|
||||
'crossline_number',
|
||||
)):
|
||||
pass
|
||||
|
||||
trace_header_packer = make_header_packer(CatalogSubFormat, endian)
|
||||
|
||||
length = file_length(fh)
|
||||
|
||||
@@ -347,8 +359,6 @@ def catalog_traces(fh, bps, trace_header_format=TraceHeaderRev1, endian='>', pro
|
||||
alt_line_catalog_builder = CatalogBuilder()
|
||||
cdp_catalog_builder = CatalogBuilder()
|
||||
|
||||
# TODO: Use a SubHeaderFormat to only load the fields we're interestedin
|
||||
|
||||
for trace_number in count():
|
||||
progress_callback(_READ_PROPORTION * pos_begin / length)
|
||||
fh.seek(pos_begin)
|
||||
|
||||
Reference in New Issue
Block a user