def __init__(self, fpath):
    self.fpath = fpath
    (headers, block_times, data_start_bytes) = map_file_blocks(fpath)
    self.headers = headers
    self.block_times = block_times
    self.data_start_bytes = data_start_bytes
    h = headers[0]
    (raw_dtype, dtype) = raw_parsing.parse_dtype(h)
    self.raw_dtype = raw_dtype
    self.dtype = dtype
    block_shape = raw_parsing.parse_block_shape(h)
    self.block_shape = block_shape
    self.nprofiles_per_block = block_shape[0]
    self.nsamples_per_profile = block_shape[1]
    self.nchannels = block_shape[2]
    self.nitems_per_profile = (block_shape[1] * block_shape[2])
    self.nblocks = len(block_times)
    self.nprofiles = (self.nblocks * block_shape[0])
    self.profile_bytes = (self.nitems_per_profile * self.raw_dtype.itemsize)
    self.shape = (self.nprofiles, self.nchannels, self.nsamples_per_profile)
    self.ts = raw_parsing.parse_ts(h)
    self.ipp = raw_parsing.parse_ipp(h)
    self.r = raw_parsing.parse_range_index(h)
def __init__(self, fpath):
    self.fpath = fpath
    (headers, block_times, data_start_bytes) = map_file_blocks(fpath)
    self.headers = headers
    self.block_times = block_times
    self.data_start_bytes = data_start_bytes
    h = headers[0]
    (raw_dtype, dtype) = raw_parsing.parse_dtype(h)
    self.raw_dtype = raw_dtype
    self.dtype = dtype
    block_shape = raw_parsing.parse_block_shape(h)
    self.block_shape = block_shape
    self.nprofiles_per_block = block_shape[0]
    self.nsamples_per_profile = block_shape[1]
    self.nchannels = block_shape[2]
    self.nitems_per_profile = (block_shape[1] * block_shape[2])
    self.nblocks = len(block_times)
    self.nprofiles = (self.nblocks * block_shape[0])
    self.profile_bytes = (self.nitems_per_profile * self.raw_dtype.itemsize)
    self.shape = (self.nprofiles, self.nchannels, self.nsamples_per_profile)
    self.ts = raw_parsing.parse_ts(h)
    self.ipp = raw_parsing.parse_ipp(h)
    self.r = raw_parsing.parse_range_index(h)