sigpyproc.block#

Block classes for handling 2D data blocks.

This module contains the base class for handling 2D data blocks and the FilterbankBlock and DMTBlock classes for handling filterbank and DM-time transform data blocks, respectively.

Classes

BaseBlock

Base class for handling data blocks.

DMTBlock

A class to handle a DM-time transform block in time-major order.

FilterbankBlock

A class to handle a block of filterbank data in time-major order.

class sigpyproc.block.BaseBlock(data, header)[source]#

Bases: ABC

Base class for handling data blocks.

Parameters:
datandarray

2-D array of shape (nchans, nsamples).

headerHeader

Header object containing metadata.

Attributes:
data

Block data array.

header

Metadata header object.

nsamples

Number of samples.

Methods

normalise([loc_method, scale_method, axis])

Normalise/standardise the data block.

pad_samples(nsamps_final, offset[, pad_mode])

Pad the data block with the given mode.

plot(*args, **kwargs)

Plot the data block.

property data#

Block data array.

Returns:
NDArray[float32]

2-D array of shape (nchans, nsamples).

property header#

Metadata header object.

Returns:
Header

Header object containing metadata.

property nsamples#

Number of samples.

Returns:
int

Number of samples in the data block.

normalise(loc_method='mean', scale_method='std', axis=1)[source]#

Normalise/standardise the data block.

Normalisation is performed by subtracting the loc estimate, and dividing by the scale estimate along the given axis.

Parameters:
loc_method{“mean”, “median”}, optional

Method to estimate location to subtract, by default “mean”.

scale_method{“std”, “iqr”, “mad”}, optional

Method to estimate scale to divide by, by default “std”.

axisint, optional

Axis along which to perform normalisation, by default 1.

Returns:
BaseBlock

Normalised data block.

pad_samples(nsamps_final, offset, pad_mode='median')[source]#

Pad the data block with the given mode.

Parameters:
nsamps_finalint

Number of time samples in the final padded data block.

offsetint

Offset to start padding.

pad_mode{“mean”, “median”}, optional

Mode for padding the data, by default “median”.

Returns:
BaseBlock

Padded data block.

Raises:
ValueError

If the pad_mode is not “mean” or “median”.

abstractmethod plot(*args, **kwargs)[source]#

Plot the data block.

class sigpyproc.block.DMTBlock(data, header, dms)[source]#

Bases: BaseBlock

A class to handle a DM-time transform block in time-major order.

Parameters:
datandarray

2-D array of shape (ndms, nsamples).

headerHeader

Header object containing metadata.

dmsndarray

Array of DM values corresponding to each row of data.

Attributes:
dms

Array of DM values corresponding to each row of data.

ndms

Number of DM values.

Methods

plot(*args, **kwargs)

Plot the data block.

property dms#

Array of DM values corresponding to each row of data.

Returns:
ndarray

DM array.

property ndms#

Number of DM values.

Returns:
int

Number of DMs.

plot(*args, **kwargs)[source]#

Plot the data block.

class sigpyproc.block.FilterbankBlock(data, header, dm=0)[source]#

Bases: BaseBlock

A class to handle a block of filterbank data in time-major order.

Parameters:
datandarray

2-D array of shape (nchans, nsamples).

headerHeader

Header object containing metadata.

dmfloat, optional

Dispersion measure of the data, by default 0.

Attributes:
dm

Dispersion measure of the data.

nchans

Number of frequency channels.

Methods

dedisperse(dm[, ref_freq, only_valid_samples])

Dedisperse the block.

dmt_transform(dm[, dmsteps, ref_freq, ...])

Compute the DM-time transform.

downsample([ffactor, tfactor, filter_method])

Downsample data block in frequency and/or time.

get_bandpass()

Sum across all time samples for each channel.

get_tim()

Sum across all frequencies for each time sample.

plot(*args, **kwargs)

Plot the data block.

to_file([filename])

Write the data to file.

property dm#

Dispersion measure of the data.

Returns:
float

Dispersion measure.

property nchans#

Number of frequency channels.

Returns:
int

Number of frequency channels.

plot(*args, **kwargs)[source]#

Plot the data block.

downsample(ffactor=1, tfactor=1, filter_method='mean')[source]#

Downsample data block in frequency and/or time.

Parameters:
ffactorint, optional

Factor by which to downsample in frequency, by default 1.

tfactorint, optional

Factor by which to downsample in time, by default 1.

filter_method{“mean”, “median”}, optional

Method to downsample, by default ‘mean’.

Returns:
FilterbankBlock

Downsampled data block.

get_tim()[source]#

Sum across all frequencies for each time sample.

Returns:
TimeSeries

Sum of all channels as timeseries.

get_bandpass()[source]#

Sum across all time samples for each channel.

Returns:
ndarray

Bandpass of the data block.

dedisperse(dm, ref_freq='fch1', *, only_valid_samples=False)[source]#

Dedisperse the block.

Frequency dependent delays are applied as rotations to each channel in the block with respect to the reference frequency.

Parameters:
dmfloat

Dispersion measure to dedisperse to.

ref_freqstr, optional

Reference frequency to dedisperse to, by default “fch1”.

only_valid_samplesbool, optional

Return a FilterbankBlock for valid time samples, by default False.

Returns:
FilterbankBlock

Dedispersed data block.

Raises:
ValueError

If there are not enough time samples to dedisperse.

dmt_transform(dm, dmsteps=512, ref_freq='fch1', *, only_valid_samples=False)[source]#

Compute the DM-time transform.

The transform is computed by dedispersing data block at adjacent DMs.

Parameters:
dmfloat

Central DM to dedisperse to.

dmstepsint, optional

Number of adjacent DMs to dedisperse to, by default 512.

ref_freqstr | float, optional

Reference frequency to dedisperse to, by default “fch1”.

only_valid_samplesbool, optional

Return a DMTBlock for valid time samples, by default False.

Returns:
DMTBlock

DM-time transform block.

to_file(filename=None)[source]#

Write the data to file.

Parameters:
filenamestr, optional

Name of the output file, by default basename_split_start_to_end.fil.

Returns:
str

Name of the output file.