Base

class baseband_tasks.base.Base(shape, start_time, sample_rate, *, samples_per_frame=1, dtype=<class 'numpy.complex64'>, **kwargs)[source] [edit on github]

Bases: object

Base class of all tasks and generators.

Following the design of baseband stream readers, features properties describing the size, shape, data type, sample rate and start/stop times of the task’s output. Also defines methods to move a sample pointer across the output data in units of either complete samples or time.

Subclasses should define

_read_frame: method to read (or generate) a single block of data.

Parameters:
shapetuple, optional

Overall shape of the stream, with first entry the total number of complete samples, and the remainder the sample shape.

start_timeTime

Start time of the stream.

sample_rateQuantity

Rate at which complete samples are produced.

samples_per_frameint, optional

Number of samples dealt with in one go. The number of complete samples (shape[0]) should be an integer multiple of this.

dtypedtype, optional

Dtype of the samples.

— **kwargsmeta data for the stream, which usually include
frequencyQuantity, optional

Frequencies for each channel. Should be broadcastable to the sample shape.

sidebandarray, optional

Whether frequencies are upper (+1) or lower (-1) sideband. Should be broadcastable to the sample shape.

polarizationarray or (nested) list of char, optional

Polarization labels. Should broadcast to the sample shape, i.e., the labels are in the correct axis. For instance, ['X', 'Y'], or [['L'], ['R']].

Attributes Summary

closed

complex_data

dtype

Data type of the output.

meta

ndim

Number of dimensions of the output.

offset

sample_rate

Number of complete samples per second.

sample_shape

Shape of a complete sample.

samples_per_frame

Number of samples per frame of data.

shape

Shape of the output.

size

Number of component samples in the output.

start_time

Start time of the output.

stop_time

Time at the end of the output, just after the last sample.

time

Time of the sample pointer's current offset in the output.

Methods Summary

close()

read([count, out])

Read a number of complete samples.

seek(offset[, whence])

Change the sample pointer position.

tell([unit])

Current offset in the file.

Attributes Documentation

closed = False
complex_data
dtype

Data type of the output.

meta
ndim

Number of dimensions of the output.

offset = 0
sample_rate

Number of complete samples per second.

sample_shape

Shape of a complete sample.

samples_per_frame

Number of samples per frame of data.

For compatibility with file readers, to help indicate what a nominal chunk of data is.

shape

Shape of the output.

size

Number of component samples in the output.

start_time

Start time of the output.

See also time and stop_time.

stop_time

Time at the end of the output, just after the last sample.

See also start_time and time.

time

Time of the sample pointer’s current offset in the output.

See also start_time and stop_time.

Methods Documentation

close()[source] [edit on github]
read(count=None, out=None)[source] [edit on github]

Read a number of complete samples.

Parameters:
countint or None, optional

Number of complete samples to read. If None (default) or negative, the number of samples left. Ignored if out is given.

outNone or array, optional

Array to store the samples in. If given, count will be inferred from the first dimension; the remaining dimensions should equal sample_shape.

Returns:
outndarray of float or complex

The first dimension is sample-time, and the remaining ones are as given by sample_shape.

seek(offset, whence=0)[source] [edit on github]

Change the sample pointer position.

This works like a normal filehandle seek, but the offset is in samples (or a relative or absolute time).

Parameters:
offsetint, Quantity, or Time

Offset to move to. Can be an (integer) number of samples, an offset in time units, or an absolute time. For the latter two, the pointer will be moved to the nearest integer sample.

whence{0, 1, 2, ‘start’, ‘current’, or ‘end’}, optional

Like regular seek, the offset is taken to be from the start if whence=0 (default), from the current position if 1, and from the end if 2. One can alternativey use ‘start’, ‘current’, or ‘end’ for 0, 1, or 2, respectively. Ignored if offset is a time.

tell(unit=None)[source] [edit on github]

Current offset in the file.

Parameters:
unitUnit or str, optional

Time unit the offset should be returned in. By default, no unit is used, i.e., an integer enumerating samples is returned. For the special string ‘time’, the absolute time is calculated.

Returns:
offsetint, Quantity, or Time

Offset in current file (or time at current position).