ivis.models.lrsb

Classes

LRSB(basis[, lambda_r, lambda_pos, ...])

Low-rank spectral basis model driven by a user-supplied basis matrix.

LRSBMemory(basis[, lambda_r, lambda_pos, ...])

Memory-streaming LRSB variant.

LRSB_C(basis[, continuum_basis, ...])

LRSB variant with explicit continuum basis functions.

LRSB_CMemory(basis[, continuum_basis, ...])

Memory-streaming LRSB_C variant.

class ivis.models.lrsb.LRSB(basis, lambda_r=1.0, lambda_pos=0.0, conj_data=True, assume_channel_invariant_operator=False, reference_channel=0)[source]

Bases: BaseModel

Low-rank spectral basis model driven by a user-supplied basis matrix.

The basis must have shape (nbasis, nchan).

forward(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fill_flagged='zero')
loss(x, shape, device, vis_data, **kwargs)[source]

Compute scalar loss and gradient for optimization.

Parameters:

x (np.ndarray) – Flattened parameter vector.

Returns:

  • loss (float) – Scalar loss.

  • grad (np.ndarray) – Flattened gradient.

property nbasis
property nchan
objective(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fftsd=None, fftbeam=None, tapper=None, lambda_sd=0.0, lambda_pos=None, fftkernel=None, beam_workers=4, verbose=False, **_)[source]
reconstruct_cube(x, device=None, return_numpy=False)[source]
reconstruct_cube_from_coeffs(coeffs, device=None, return_numpy=True)[source]
class ivis.models.lrsb.LRSBMemory(basis, lambda_r=1.0, lambda_pos=0.0, conj_data=True, assume_channel_invariant_operator=False, reference_channel=0)[source]

Bases: LRSB

Memory-streaming LRSB variant.

LRSB stores a smaller coefficient cube than Classic3D, but its objective still accumulates one large autograd graph by default. This variant backpropagates independent loss blocks as soon as they are computed.

objective(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fftsd=None, fftbeam=None, tapper=None, lambda_sd=0.0, lambda_pos=None, fftkernel=None, beam_workers=4, verbose=False, **_)[source]
class ivis.models.lrsb.LRSB_C(basis, continuum_basis=None, continuum_order=0, frequency=None, reference_frequency=None, continuum_only_channels=None, lambda_r_line_factor=1.0, lambda_r_cont_factor=1.0, **kwargs)[source]

Bases: LRSB

LRSB variant with explicit continuum basis functions.

This augments the learned line basis with fixed smooth spectral modes. By default, it adds a single flat continuum mode psi_0(nu) = 1.

property continuum_basis
property continuum_nbasis
property continuum_only_channels
property continuum_order
property line_nbasis
reconstruct_continuum_cube(x, device=None, return_numpy=False)[source]
reconstruct_line_cube(x, device=None, return_numpy=False)[source]
property reference_frequency
split_coeffs(x)[source]
class ivis.models.lrsb.LRSB_CMemory(basis, continuum_basis=None, continuum_order=0, frequency=None, reference_frequency=None, continuum_only_channels=None, lambda_r_line_factor=1.0, lambda_r_cont_factor=1.0, **kwargs)[source]

Bases: LRSBMemory, LRSB_C

Memory-streaming LRSB_C variant.

This combines the hybrid line+continuum basis construction from LRSB_C with the blockwise backward pass from LRSBMemory.