rm_lite.utils.clean

RM-clean utils

Attributes

Classes

CleanLoopResults

Results of the RM-CLEAN loop

MinorLoopArrays

Arrays for the RM-CLEAN minor loop

MinorLoopOptions

Options for the RM-CLEAN minor loop

MinorLoopResults

Results of the RM-CLEAN minor loop

RMCleanOptions

Options for RM-CLEAN

RMCleanResults

Results of the RM-CLEAN calculation

RMSynthArrays

Arrays for RM-synthesis

Functions

_rmclean_nd(→ RMCleanResults)

minor_cycle(→ CleanLoopResults)

minor_loop(→ MinorLoopResults)

restore_fdf(→ numpy.typing.NDArray[numpy.complex128])

rmclean(→ RMCleanResults)

Perform RM-CLEAN on a Faraday dispersion function array.

Module Contents

class rm_lite.utils.clean.CleanLoopResults

Bases: NamedTuple

Results of the RM-CLEAN loop

clean_fdf_spectrum: numpy.typing.NDArray[numpy.complex128]

The cleaned Faraday dispersion function cube

iter_count: int

The number of iterations

model_fdf_spectrum: numpy.typing.NDArray[numpy.complex128]

The clean components cube

resid_fdf_spectrum: numpy.typing.NDArray[numpy.complex128]

The residual Faraday dispersion function cube

class rm_lite.utils.clean.MinorLoopArrays

Bases: NamedTuple

Arrays for the RM-CLEAN minor loop

with_options(**kwargs)
peak_find_arr: numpy.typing.NDArray[numpy.float64] | None = None

Peak finding array

phi_arr_radm2: numpy.typing.NDArray[numpy.float64]

Faraday depth array in rad/m^2

phi_double_arr_radm2: numpy.typing.NDArray[numpy.float64]

Double-length Faraday depth array in rad/m^2

resid_fdf_spectrum_mask: numpy.ma.MaskedArray

Residual Faraday dispersion function spectrum

rmsf_fwhm: float

FWHM of the RMSF

rmsf_spectrum: numpy.typing.NDArray[numpy.complex128]

RMSF spectrum

class rm_lite.utils.clean.MinorLoopOptions

Bases: NamedTuple

Options for the RM-CLEAN minor loop

with_options(**kwargs)
gain: float

Loop gain

mask: float

Masking threshold

max_iter: int

Maximum number of iterations

start_iter: int = 0

Starting iteration

threshold: float

Threshold for stopping the loop

update_mask: bool = True

Update the mask after each iteration

class rm_lite.utils.clean.MinorLoopResults

Bases: NamedTuple

Results of the RM-CLEAN minor loop

clean_fdf_spectrum: numpy.typing.NDArray[numpy.complex128]

The cleaned Faraday dispersion function cube

iter_count: int

The number of iterations

model_fdf_spectrum: numpy.typing.NDArray[numpy.complex128]

The clean components cube

model_rmsf_spectrum: numpy.typing.NDArray[numpy.complex128]

Model * RMSF

resid_fdf_spectrum: numpy.typing.NDArray[numpy.complex128]

The residual Faraday dispersion function cube

resid_fdf_spectrum_mask: numpy.ma.MaskedArray

The masked residual Faraday dispersion function cube

class rm_lite.utils.clean.RMCleanOptions

Bases: NamedTuple

Options for RM-CLEAN

gain: float = 0.1

Clean loop gain

mask: float

Masking threshold - pixels below this value are not cleaned

mask_arr: numpy.typing.NDArray[numpy.bool_] | None = None

Additional mask of pixels to avoid

max_iter: int = 1000

Maximum clean iterations

threshold: float

Cleaning threshold - stop when all pixels are below this value

class rm_lite.utils.clean.RMCleanResults

Bases: NamedTuple

Results of the RM-CLEAN calculation

with_options(**kwargs)
clean_fdf_arr: numpy.typing.NDArray[numpy.complex128]

The cleaned Faraday dispersion function cube

clean_iter_arr: numpy.typing.NDArray[numpy.int16]

The number of iterations for each pixel

model_fdf_arr: numpy.typing.NDArray[numpy.complex128]

The clean components cube

resid_fdf_arr: numpy.typing.NDArray[numpy.complex128]

The residual Faraday dispersion function cube

class rm_lite.utils.clean.RMSynthArrays

Bases: NamedTuple

Arrays for RM-synthesis

dirty_fdf_arr: numpy.typing.NDArray[numpy.complex128]

Dirty Faraday dispersion function array

fdf_mask_arr: numpy.typing.NDArray[numpy.bool_] | None = None

Mask of pixels to clean

fwhm_rmsf_arr: numpy.typing.NDArray[numpy.float64]

FWHM of the RMSF array

phi_arr_radm2: numpy.typing.NDArray[numpy.float64]

Faraday depth array in rad/m^2

phi_double_arr_radm2: numpy.typing.NDArray[numpy.float64]

Double-length Faraday depth array in rad/m^2

rmsf_arr: numpy.typing.NDArray[numpy.complex128]

RMSF array

rm_lite.utils.clean._rmclean_nd(rm_synth_arrays: RMSynthArrays, clean_options: RMCleanOptions) RMCleanResults
rm_lite.utils.clean.minor_cycle(rm_synth_1d_arrays: RMSynthArrays, clean_options: RMCleanOptions) CleanLoopResults
rm_lite.utils.clean.minor_loop(minor_loop_arrays: MinorLoopArrays, minor_loop_options: MinorLoopOptions) MinorLoopResults
rm_lite.utils.clean.restore_fdf(model_fdf_spectrum: numpy.typing.NDArray[numpy.complex128], phi_double_arr_radm2: numpy.typing.NDArray[numpy.float64], fwhm_rmsf: float) numpy.typing.NDArray[numpy.complex128]
rm_lite.utils.clean.rmclean(dirty_fdf_arr: numpy.typing.NDArray[numpy.complex128], phi_arr_radm2: numpy.typing.NDArray[numpy.float64], rmsf_arr: numpy.typing.NDArray[numpy.complex128], phi_double_arr_radm2: numpy.typing.NDArray[numpy.float64], fwhm_rmsf_arr: numpy.typing.NDArray[numpy.float64], mask: float, threshold: float, max_iter: int = 1000, gain: float = 0.1, mask_arr: numpy.typing.NDArray[numpy.bool_] | None = None) RMCleanResults

Perform RM-CLEAN on a Faraday dispersion function array.

Parameters:
  • dirty_fdf_arr (NDArray[np.complex128]) – Dirty Faraday dispersion function array

  • phi_arr_radm2 (NDArray[np.float64]) – Faraday depth array in rad/m^2

  • rmsf_arr (NDArray[np.complex128]) – RMSF array

  • phi_double_arr_radm2 (NDArray[np.float64]) – Double-length Faraday depth array in rad/m^2

  • fwhm_rmsf_arr (NDArray[np.float64]) – FWHM of the RMSF array

  • mask (float) – Masking threshold - pixels below this value are not cleaned

  • threshold (float) – Cleaning threshold - stop when all pixels are below this value

  • max_iter (int, optional) – Maximum clean iterations. Defaults to 1000.

  • gain (float, optional) – Glean loop gain. Defaults to 0.1.

  • mask_arr (NDArray[np.bool_] | None, optional) – Additional mask of pixels to avoid. Defaults to None.

Returns:

clean_fdf_arr, model_fdf_arr, clean_iter_arr, resid_fdf_arr

Return type:

RMCleanResults

rm_lite.utils.clean.DType
rm_lite.utils.clean.TQDM_OUT