Skip to content

radiens_core.models.signals

Signal selection, signal data array models, and signal enums.

CLASS DESCRIPTION
KeyIndex

Channel index space.

SigSelect

Signal selection specifying channels per signal type.

SignalArrays

Container for signal data arrays, one per signal type.

SignalSpec

Semantic signal selection specification.

SignalType

Signal type.

ATTRIBUTE DESCRIPTION
FlexSignalSpec

SignalSpec, or a shorthand for one.

FlexSignalType

SignalType that also accepts a string name (case-insensitive).

Attributes

FlexSignalSpec module-attribute

FlexSignalSpec = SignalSpec | str | Sequence[int] | Mapping[str, Sequence[int] | str]

SignalSpec, or a shorthand for one.

"all" selects every amplifier channel, and a list or tuple selects amplifier channels by native index. A dict keyed by amp, ain, din and dout selects across signal types; each value is a list of native indices, "all", or "selected".

FlexSignalType module-attribute

FlexSignalType = SignalType | SignalTypeStr

SignalType that also accepts a string name (case-insensitive).

Classes

KeyIndex

Bases: IntEnum

Channel index space.

ATTRIBUTE DESCRIPTION
NTV

Native index, counted within the signal type (KeyIdxs.ntv).

DATA

Dataset index, counted within the signal type (KeyIdxs.dset).

SYS

System index, counted across all signal types (KeyIdxs.sys).

SigSelect

Bases: BaseModel

Signal selection specifying channels per signal type.

ATTRIBUTE DESCRIPTION
amp

Amplifier channel indices, in the index space given by key_idx.

TYPE: NDArray[int64]

gpio_ain

Analog input channel indices, in the same space.

TYPE: NDArray[int64]

gpio_din

Digital input channel indices, in the same space.

TYPE: NDArray[int64]

gpio_dout

Digital output channel indices, in the same space.

TYPE: NDArray[int64]

key_idx

Index space the arrays are written in.

TYPE: KeyIndex

SignalArrays

Bases: BaseModel

Container for signal data arrays, one per signal type.

ATTRIBUTE DESCRIPTION
amp

2D array (channels, samples) for amplifier data.

TYPE: NDArray[float64] | None

gpio_ain

2D array (channels, samples) for analog input data.

TYPE: NDArray[float64] | None

gpio_din

2D array (channels, samples) for digital input data.

TYPE: NDArray[float64] | None

gpio_dout

2D array (channels, samples) for digital output data.

TYPE: NDArray[float64] | None

time_range

The range the samples cover; sample 0 is at time_range.sec[0]. The server clips a read to the data it holds, so this can be shorter than the requested range.

TYPE: TimeRange

SignalSpec

Bases: BaseModel

Semantic signal selection specification.

Use factory methods for clean channel selection:

spec = SignalSpec.amp([0, 1, 2, 3]) spec = SignalSpec.ain("all") spec = SignalSpec.multi(amp=[0, 1], din="all")

ATTRIBUTE DESCRIPTION
sig_type

Primary signal type.

TYPE: SignalType | None

channels

Native channel indices (KeyIdxs.ntv), "all", or "selected". "multi" when multi_select is set.

TYPE: tuple[int, ...] | str

multi_select

Map of signal types to channel selections.

TYPE: dict[SignalType, tuple[int, ...] | str] | None

METHOD DESCRIPTION
ain

Select analog input channels by native index, or "all" / "selected".

all_amp

Convenience: all amplifier channels.

amp

Select amplifier channels by native index, or "all" / "selected".

din

Select digital input channels by native index, or "all" / "selected".

dout

Select digital output channels by native index, or "all" / "selected".

is_multi

Check if this is a multi-type specification.

multi

Select channels from multiple signal types.

to_sig_select

Convert to SigSelect for API calls.

Functions

ain classmethod
ain(channels: list[int] | str = 'all') -> SignalSpec

Select analog input channels by native index, or "all" / "selected".

all_amp classmethod
all_amp() -> SignalSpec

Convenience: all amplifier channels.

amp classmethod
amp(channels: list[int] | str = 'all') -> SignalSpec

Select amplifier channels by native index, or "all" / "selected".

din classmethod
din(channels: list[int] | str = 'all') -> SignalSpec

Select digital input channels by native index, or "all" / "selected".

dout classmethod
dout(channels: list[int] | str = 'all') -> SignalSpec

Select digital output channels by native index, or "all" / "selected".

is_multi
is_multi() -> bool

Check if this is a multi-type specification.

multi classmethod
multi(
    amp: list[int] | str | None = None,
    ain: list[int] | str | None = None,
    din: list[int] | str | None = None,
    dout: list[int] | str | None = None,
) -> SignalSpec

Select channels from multiple signal types.

to_sig_select
to_sig_select(channel_metadata: ChannelMetadata) -> SigSelect

Convert to SigSelect for API calls.

SignalType

Bases: IntEnum

Signal type.