open

baseband.mark4.base.open(name, mode=u'rs', **kwargs) [edit on github]

Open Mark4 file for reading or writing.

Opened as a binary file, one gets a wrapped filehandle that adds methods to read/write a frame. Opened as a stream, the handle is wrapped further, with methods such as reading and writing to the file as if it were a stream of samples.

Parameters:

name : str or filehandle

File name or handle.

mode : {‘rb’, ‘wb’, ‘rs’, or ‘ws’}, optional

Whether to open for reading or writing, and as a regular binary file or as a stream. Default: ‘rs’, for reading a stream.

**kwargs

Additional arguments when opening the file as a stream.

— For reading a stream : (see Mark4StreamReader)

sample_rate : Quantity, optional

Number of complete samples per second, i.e. the rate at which each channel is sampled. If not given, will be inferred from scanning two frames of the file.

ntrack : int, optional

Number of Mark 4 bitstreams. If None (default), will attempt to automatically detect it by scanning the file.

decade : int or None

Decade of the observation start time (eg. 2010 for 2018), needed to remove ambiguity in the Mark 4 time stamp (default: None). Can instead pass an approximate ref_time.

ref_time : Time or None

Reference time within 4 years of the start time of the observations. Used only if decade is not given.

squeeze : bool, optional

If True (default), remove any dimensions of length unity from decoded data.

subset : indexing object, optional

Specific channels of the complete sample to decode (after possible squeezing). If an empty tuple (default), all channels are read.

fill_value : float or complex, optional

Value to use for invalid or missing data. Default: 0.

verify : bool, optional

Whether to do basic checks of frame integrity when reading. The first frame of the stream is always checked. Default: True.

— For writing a stream : (see Mark4StreamWriter)

header0 : Mark4Header

Header for the first frame, holding time information, etc. Can instead give keyword arguments to construct a header (see **kwargs).

sample_rate : Quantity

Number of complete samples per second, i.e. the rate at which each channel is sampled. Needed to calculate header timestamps.

squeeze : bool, optional

If True (default), writer accepts squeezed arrays as input, and adds any dimensions of length unity.

**kwargs

If the header is not given, an attempt will be made to construct one with any further keyword arguments. See Mark4StreamWriter.

Returns:

Filehandle