def test_read_trace(): with seismic_zfp.open(SGZ_FILE) as sgzfile: with segyio.open(SGY_FILE) as segyfile: for trace_number in range(25): sgz_trace = sgzfile.trace[trace_number] segy_trace = segyfile.trace[trace_number] assert np.allclose(sgz_trace, segy_trace, rtol=1e-6)
def compare_zslice(sgz_filename, tolerance): with seismic_zfp.open(sgz_filename) as sgzfile: with segyio.open(SGY_FILE) as segyfile: for line_number in range(50): slice_sgz = sgzfile.depth_slice[line_number] slice_segy = segyfile.depth_slice[line_number] assert np.allclose(slice_sgz, slice_segy, rtol=tolerance)
def test_read_trace_header(): with seismic_zfp.open(SGZ_FILE) as sgzfile: with segyio.open(SGY_FILE) as sgyfile: for trace_number in range(25): sgz_header = sgzfile.header[trace_number] sgy_header = sgyfile.header[trace_number] assert sgz_header == sgy_header
def compare_crossline(sgz_filename, tolerance): with seismic_zfp.open(sgz_filename) as sgzfile: with segyio.open(SGY_FILE) as segyfile: for line_number in range(5): slice_sgz = sgzfile.xline[sgzfile.xlines[line_number]] slice_segy = segyfile.xline[segyfile.xlines[line_number]] assert np.allclose(slice_sgz, slice_segy, rtol=tolerance)
def compare_crossline_number(sgz_filename, sgy_filename, lines_to_test, tolerance): with seismic_zfp.open(sgz_filename) as sgzfile: with segyio.open(sgy_filename) as segyfile: for line_number in lines_to_test: slice_segy = segyfile.xline[line_number] slice_sgz = sgzfile.xline[line_number] assert np.allclose(slice_sgz, slice_segy, rtol=tolerance)
def compare_inline_ordinal(sgz_filename, sgy_filename, lines_to_test, tolerance): with seismic_zfp.open(sgz_filename) as sgzfile: with segyio.open(sgy_filename) as segyfile: for line_ordinal in lines_to_test: slice_segy = segyfile.iline[segyfile.ilines[line_ordinal]] slice_sgz = sgzfile.iline[sgzfile.ilines[line_ordinal]] print(slice_segy) print(slice_sgz) assert np.allclose(slice_sgz, slice_segy, rtol=tolerance)
def test_compress_headers(tmp_path): out_sgz = os.path.join(str(tmp_path), 'small_test_headers.sgz') with SegyConverter(SGY_FILE) as converter: converter.run(out_sgz, bits_per_voxel=8) with seismic_zfp.open(out_sgz) as sgz_file: with segyio.open(SGY_FILE) as sgy_file: for sgz_header, sgy_header in zip(sgz_file.header, sgy_file.header): assert sgz_header == sgy_header
def test_read_trace_header_slicing(): slices = [ slice(0, 5, None), slice(0, None, 2), slice(5, None, -1), slice(None, None, 10), slice(None, None, None) ] with seismic_zfp.open(SGZ_FILE) as sgzfile: with segyio.open(SGY_FILE) as sgyfile: for slice_ in slices: sgy_headers = sgyfile.header[slice_] sgz_headers = sgzfile.header[slice_] for sgz_header, sgy_header in zip(sgz_headers, sgy_headers): assert sgz_header == sgy_header
import os import sys import seismic_zfp import segyio base_path = sys.argv[1] with segyio.open(os.path.join(base_path, '0.sgy')) as segyfile: print(segyfile.bin) print(segyfile.text[0]) with seismic_zfp.open(os.path.join(base_path, '0.sgz')) as sgzfile: print(sgzfile.bin) print(sgzfile.text[0])
def test_read_bin_header(): with seismic_zfp.open(SGZ_FILE) as sgzfile: with segyio.open(SGY_FILE) as segyfile: assert sgzfile.bin == segyfile.bin
def test_header_is_iterable(): with seismic_zfp.open(SGZ_FILE) as sgz_file: with segyio.open(SGY_FILE) as sgy_file: for sgz_header, sgy_header in zip(sgz_file.header, sgy_file.header): assert sgz_header == sgy_header